elo ole automation interface description uk

423
ELOprofessional - OLE Automation Interface 02.03.2007 © 1998..2002 ELO Digital Office GmbH Page: 1 ELOprofessional - OLE Automation Interface Structure and Application of the Automation Interface The ELOoffice 2.1 DDE Interface has been replaced by a more modern and improved OLE Automation Interface with the professional version. It is now possible to send commands to ELO from outside, make entries or request information from ELO. Script names can be allocated freely. They must only meet the rules for a file name. All script names starting with ELO are reserved for ELO Digital Office. You should not use these, as otherwise name conflicts may occur. The OLE Automation Interface by ELO is very similar to the previous DDE interface. For this reason it cannot be called object oriented, but command oriented. The interface is more or less identical for ELOoffice and ELOprofessional, however, not all functions are available under ELOoffice. When creating the objects it needs to be remembered that ELOoffice has another ID than ELOprofessional. For ELOoffice, the object must be created with the ID ELO.office instead of ELO.professional. If you want to use the Automation Interface under ELOprofessional 2.5, you must use the ID LeitzElo.Elo32, ELOoffice 4.5 required the ID LeitzElo.Elo32o. The LeitzElo Ids are still valid for the program versions ELOprofessional 3.0 or 5.0 for compatibility reasons, but will be discarded in the next program version. Important Information: Please note the character of the OLE Automation Interface: 1. Easy and fast extendibility of the ELO client by additional functions 2. Highest possible upward compatibility between versions These two main targets may result in the introduction of new Automation commands in the project within a short period of time, that are intended to execute one particular function only. Consequently, it is not guaranteed that each command is executable in each workview and in any combination with other commands. Due to the compatibility requirement, new client functions cannot always be introduced to the existing commands. In this case, either an xyz_EXT function is created or the functionality is not exported via the Automation Interface at all. Please note also, that this interface is a Client-Interface. It’s not conceived for executing a large amount of actions. You should check before penetrating in border ranges, whether the OLE Interface meets your requests at all. Since here are many components involved on which we have no influence, we’re not able to offer you a work around at some limitations (e.g. memory leaks in the OLE Interface, in Windows Scripting Host or in the Compiler Run-time environment as well).

Upload: macmacu27526

Post on 05-Apr-2015

1.220 views

Category:

Documents


59 download

TRANSCRIPT

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 1

ELOprofessional - OLE Automation Interface

Structure and Application of the Automation Interface The ELOoffice 2.1 DDE Interface has been replaced by a more modern and improved OLE Automation Interface with the professional version. It is now possible to send commands to ELO from outside, make entries or request information from ELO. Script names can be allocated freely. They must only meet the rules for a file name. All script names starting with ELO are reserved for ELO Digital Office. You should not use these, as otherwise name conflicts may occur. The OLE Automation Interface by ELO is very similar to the previous DDE interface. For this reason it cannot be called object oriented, but command oriented. The interface is more or less identical for ELOoffice and ELOprofessional, however, not all functions are available under ELOoffice. When creating the objects it needs to be remembered that ELOoffice has another ID than ELOprofessional. For ELOoffice, the object must be created with the ID ELO.office instead of ELO.professional. If you want to use the Automation Interface under ELOprofessional 2.5, you must use the ID LeitzElo.Elo32, ELOoffice 4.5 required the ID LeitzElo.Elo32o. The LeitzElo Ids are still valid for the program versions ELOprofessional 3.0 or 5.0 for compatibility reasons, but will be discarded in the next program version.

Important Information: Please note the character of the OLE Automation Interface:

1. Easy and fast extendibility of the ELO client by additional functions 2. Highest possible upward compatibility between versions

These two main targets may result in the introduction of new Automation commands in the project within a short period of time, that are intended to execute one particular function only. Consequently, it is not guaranteed that each command is executable in each workview and in any combination with other commands. Due to the compatibility requirement, new client functions cannot always be introduced to the existing commands. In this case, either an xyz_EXT function is created or the functionality is not exported via the Automation Interface at all. Please note also, that this interface is a Client-Interface. It’s not conceived for executing a large amount of actions. You should check before penetrating in border ranges, whether the OLE Interface meets your requests at all. Since here are many components involved on which we have no influence, we’re not able to offer you a work around at some limitations (e.g. memory leaks in the OLE Interface, in Windows Scripting Host or in the Compiler Run-time environment as well).

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 2

Table of Contents

ELOPROFESSIONAL - OLE AUTOMATION INTERFACE........................................1 Structure and Application of the Automation Interface .......................................................................................1 Important Information:.........................................................................................................................................1

Table of Contents ...................................................................................................................................................2

Extended System Settings....................................................................................................................................10 Under ELOprofessional 3.0, the following additional ID is available:..............................................................10 Additional IDs from Version 3.00.360 ..............................................................................................................10 Separate Registry Information ...........................................................................................................................10

First Steps .............................................................................................................................................................11 Starting ELO, Selecting Archive and Login Dialog ..........................................................................................11 Detecting the Currently Selected Entry..............................................................................................................13 List of All Documents in the Accounting Cabinet, Invoice Folder, 1998 Tab ..................................................13 Adding a New Document to the Tab .................................................................................................................13 Detecting the Mask (Document Type) Number from the Description...............................................................13 Adding a Mail with Text Body and File Attachment to the Archive .................................................................14 Editing a Mask ...................................................................................................................................................15 Reading a Color Value or the Entire Color Table..............................................................................................16 Requesting and Setting the Workview...............................................................................................................17 Editing Postbox Content ....................................................................................................................................17 Scanning Documents Horizontally ....................................................................................................................17 Finding Entries via the OLE Interface ...............................................................................................................18 EloScript Example: Issuing an Access Path to the Currently Selected Object ..................................................19 EloScript Example: Empty and Separator Page Check in the Postbox..............................................................19 Simple Form Management.................................................................................................................................20 Example: Before Editing a Self-Adhesive Note ................................................................................................21 Example of a Microsoft WinWord 8 Macro ......................................................................................................22 Scripting within the Process Control .................................................................................................................24 "Entering/Moving an Object Reference" Script Event ......................................................................................25 "When Checking a Document In/Out" Script Event..........................................................................................25 Editing the Subject Data Script Event................................................................................................................27 Before the Search Script Event ..........................................................................................................................27 Viewer Export Script Event ...............................................................................................................................27 Batch Scan Script Event.....................................................................................................................................28 Collecting the Workflows Script Event (available from version 4.00.214 on)..................................................29

Workflow Start and End Scripts ........................................................................................................................32 Creating a Workflow Report when Terminating a Workflow ...........................................................................32

HTML Subject Data View Script Event ............................................................................................................35 Example for a view of the short name and the first 11 index lines (if they are not empty): ..............................36

Special Script Events ...........................................................................................................................................38 Freezing a Document (ELO_Freeze) .................................................................................................................38 Thesaurus (ELO_Thesaurus) .............................................................................................................................38 Reminders/Workflow Notifications (ELO_OUTLOOK) ..................................................................................39 Keyword Lists (ELO_BUZZLIST)....................................................................................................................42 Automatic Action when Starting the Program (ELO_START) .........................................................................44 Project Default for Activities (ELO_CHECKPROJ) .........................................................................................44 Special Handling Upon New Storage of Documents.........................................................................................44 Suppress “Document of the Backup” Dialog (ELO_READDOC) ....................................................................44

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 3

Own Reports ......................................................................................................................................................45 Requesting Scripts .............................................................................................................................................46

Form Detection API.............................................................................................................................................47 Overview............................................................................................................................................................47 Commands of the Pattern Detection-API...........................................................................................................47 Examples............................................................................................................................................................47 Syntax of the format strings of the pattern detection .........................................................................................53 Annotations ........................................................................................................................................................53

List of the Available OLE Functions..................................................................................................................55 General Information about the Functions ..........................................................................................................55 Property ActionKey (int, read only) ..................................................................................................................56 Function ActivateFlow.......................................................................................................................................58 Property ActivePostFile (AnsiString) ................................................................................................................59 Property ActiveUserId (int, read only) ..............................................................................................................60 Property Activity (AnsiString)...........................................................................................................................61 Function AddAutoDlgControl (int, int, AnsiString, AnsiString).......................................................................62 Function AddLink..............................................................................................................................................63 Function AddNote..............................................................................................................................................64 Function AddNoteEx .........................................................................................................................................64 Function AddPostboxFile ..................................................................................................................................65 Function AddSignature ......................................................................................................................................66 Function AddSw ................................................................................................................................................67 Function AddThesaurus .....................................................................................................................................68 Function AnalyzeFile.........................................................................................................................................69 Property ArchiveDepth (int) ..............................................................................................................................70 Function ArcListLineId .....................................................................................................................................71 Function ArcListLineSelected ...........................................................................................................................72 Function AssignWorkflowUser (int) .................................................................................................................73 Property AttId (int) ............................................................................................................................................74 Property AutoDlgResult (AnsiString)................................................................................................................75 Function Backup (int, int, int)............................................................................................................................76 Property BackupPath (AnsiString).....................................................................................................................77 Function BringToFront ......................................................................................................................................78 Function ChangeObjAcl (int ObjId, AnsiString Acl, int Option) ......................................................................79 Function CheckFile ............................................................................................................................................80 Function CheckFileHash....................................................................................................................................81 Function CheckIn...............................................................................................................................................82 Function CheckInEx ..........................................................................................................................................82 Property CheckInOutFileName (AnsiString).....................................................................................................83 Property CheckInOutObjID (int) .......................................................................................................................84 Function CheckObjAcl ......................................................................................................................................85 Function CheckOut ............................................................................................................................................86 Function CheckPage ..........................................................................................................................................87 Function CheckUpdate.......................................................................................................................................88 Function ClickOn...............................................................................................................................................89 Function CloseActivateDocDlg .........................................................................................................................90 Function CollectChildList..................................................................................................................................91 Function CollectLinks........................................................................................................................................92 Function CollectWv ...........................................................................................................................................93 Property ColorInfo (int) .....................................................................................................................................94 Property ColorName (AnsiString) .....................................................................................................................95 Property ColorNo (int) .......................................................................................................................................96 Function ConfirmWorkflow ..............................................................................................................................97 Function ConfirmWorkflowEx..........................................................................................................................98 Function CreateAutoDlg (AnsiString Caption) .................................................................................................99 Function CreateCounter ...................................................................................................................................100

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 4

Function CreateStructure (AnsiString Path, int StartID) .................................................................................101 Function CreateViewer ....................................................................................................................................102 Function DateToInt (AnsiString Date) ............................................................................................................103 Function DeleteFlow(int, int)...........................................................................................................................104 Function DeleteMask .......................................................................................................................................105 Function DebugOut..........................................................................................................................................106 Function DeleteObj ..........................................................................................................................................107 Function DeleteProjectOptions ........................................................................................................................108 Function DeleteSwl..........................................................................................................................................109 Function DeleteWv ..........................................................................................................................................110 Function DeleteWvLine...................................................................................................................................111 Property DelOutlookName (AnsiString)..........................................................................................................112 Function DoCheckInOut..................................................................................................................................113 Function DoCheckInOut2................................................................................................................................114 Function DoCheckInOut3................................................................................................................................115 Property DocId (int) .........................................................................................................................................116 Property DocKey (int)......................................................................................................................................117 Property DocKind (int) ....................................................................................................................................118 Property DocPath (int) .....................................................................................................................................119 Property DocTPath (int)...................................................................................................................................120 Function DoEditObject ....................................................................................................................................121 Function DoEditObjectEx................................................................................................................................121 Function DoExecute.........................................................................................................................................122 Function DoExecuteEx ....................................................................................................................................123 Function DoFullTextSearch.............................................................................................................................124 Function DoInvisibleSearch.............................................................................................................................125 Function DoSearch...........................................................................................................................................126 Function DoSearchSel (AnsiString).................................................................................................................126 Function DoSearchEx (AnsiString, int) ...........................................................................................................126 Function DoSelArcTree ...................................................................................................................................127 Function EditActivity (AnsiString)..................................................................................................................128 Property EditDlgActive (int)............................................................................................................................129 Function EditWv (int WvId, int ParentId) .......................................................................................................130 Function EloWindow.......................................................................................................................................131 Function Export ...............................................................................................................................................132 Function FindFirstWv......................................................................................................................................133 Function FindFlowTemplate............................................................................................................................134 Function FindNextWv .....................................................................................................................................135 Function FindUser ...........................................................................................................................................136 Function FreezeDoc .........................................................................................................................................137 Function FromClipboard..................................................................................................................................138 Function GetArcName .....................................................................................................................................139 Function GetArchiveName ..............................................................................................................................140 Function GetAutoDlgValue (int Index) ...........................................................................................................141 Function GetBarcode .......................................................................................................................................142 Function GetChildNode ...................................................................................................................................143 Function GetCookie .........................................................................................................................................144 Function GetCounter........................................................................................................................................145 Function GetCounterList..................................................................................................................................146 Function GetDocExt ........................................................................................................................................147 Function GetDocFromObj ...............................................................................................................................148 Function GetDocRefComment.........................................................................................................................149 Function GetDocumentExt ..............................................................................................................................150 Function GetDocumentOrientation..................................................................................................................151 Function GetDocumentPath.............................................................................................................................152 Function GetDocumentPathName ...................................................................................................................153 Function GetDocumentPathVersion ................................................................................................................154 Function GetDocumentSize .............................................................................................................................155

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 5

Function GetEntryId ........................................................................................................................................156 Function GetEntryName ..................................................................................................................................157 Function GetGuidFromObj ..............................................................................................................................158 Function GetHistDoc .......................................................................................................................................159 Function GetHistObj ........................................................................................................................................160 Function GetIndexGroups................................................................................................................................161 Function GetLastDocId....................................................................................................................................162 Function GetLastVersionTimeStamp (int, int).................................................................................................163 Function GetListEntry......................................................................................................................................164 Function GetMD5Hash....................................................................................................................................165 Function GetNodeList......................................................................................................................................166 Function GetObjAttrib .....................................................................................................................................167 Function GetObjAttribFlags ............................................................................................................................168 Function GetObjAttribKey ..............................................................................................................................169 Function GetObjAttribMax..............................................................................................................................170 Function GetObjAttribMin ..............................................................................................................................171 Function GetObjAttribName............................................................................................................................172 Function GetObjAttribType.............................................................................................................................173 Function GetObjFromDoc ...............................................................................................................................174 Function GetObjFromDocEx...........................................................................................................................175 Function GetObjFromGuid ..............................................................................................................................176 Function GetObjMaskNo.................................................................................................................................177 Function GetObjRef (int ObjId, int RefNo).....................................................................................................178 Function GetPopupObjectId ().........................................................................................................................179 Function GetPostDir ........................................................................................................................................180 Function GetRegInfo .......................................................................................................................................181 Function GetScriptButton ................................................................................................................................183 Function GetScriptEvent (AnsiString Event, int Mode) ..................................................................................184 Function GetTreePath(int Mode, AnsiString Delimiter, int MaxLength)........................................................185 Function GotoId ...............................................................................................................................................186 Function GotoPath ...........................................................................................................................................187 Function GovAddInfo......................................................................................................................................188 Function GovDeleteRequest ............................................................................................................................189 Property GovDueDate (AnsiString).................................................................................................................190 Function GovGetRequestId .............................................................................................................................191 Function GovMoveRequest .............................................................................................................................192 Property GovObjId (int)...................................................................................................................................193 Property GovOwner (int) .................................................................................................................................194 Property GovReqDate (AnsiString) .................................................................................................................195 Property GovReqId (int) ..................................................................................................................................196 Property GovReqPrio (int) ...............................................................................................................................197 Property GovReqStatus (int)............................................................................................................................198 Function GovRequestList ................................................................................................................................199 Function GovRequestNext...............................................................................................................................200 Property GovRetDate (AnsiString) ..................................................................................................................201 Property GovSender (int) .................................................................................................................................202 Function Import ...............................................................................................................................................203 Function ImportScript ......................................................................................................................................204 Function ImportWorkflow ...............................................................................................................................205 Function InsertDocAttachment ........................................................................................................................206 Function InsertDocAttachmentEx....................................................................................................................207 Function InsertProjectOptions .........................................................................................................................208 Function InsertRef ...........................................................................................................................................210 Function InsertVTRep(int, int, AnsiString) .....................................................................................................211 Function IntToDate..........................................................................................................................................212 Property IsWfLine(int).....................................................................................................................................213 Function LoadPostImg.....................................................................................................................................214 Function LoadUserName .................................................................................................................................215

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 6

Function LockObject .......................................................................................................................................216 Function Login.................................................................................................................................................217 Property LookupDelimiter (AnsiString) ..........................................................................................................218 Function LookupDocType ...............................................................................................................................219 Function LookupHistMD5Ext .........................................................................................................................220 Function LookupHistMD5 (deprecated) ..........................................................................................................220 Function LookupIndex.....................................................................................................................................221 Function LookupKeyName..............................................................................................................................222 Function LookupMaskName............................................................................................................................223 Function LookupUserName.............................................................................................................................224 Property MaskFlags (int) .................................................................................................................................225 Property MaskKey (int) ...................................................................................................................................226 Property MaxResultSet(int) .............................................................................................................................227 Function MergeImages ....................................................................................................................................228 Function MergeImagesEx ................................................................................................................................228 Function MergePostPages................................................................................................................................229 Property MinDocLevel (int).............................................................................................................................230 Function MovePostboxFile ..............................................................................................................................231 Function MovePostboxFile2 ............................................................................................................................231 Function MoveToArchive................................................................................................................................232 Function MoveToArchiveEx ...........................................................................................................................232 Function NextActivity (AnsiString).................................................................................................................233 Property NodeAction (int) ...............................................................................................................................235 Property NodeActivateDate (AnsiString) ........................................................................................................236 Property NodeActivateScript (AnsiString) ......................................................................................................237 Property NodeAlertWait (int) ..........................................................................................................................238 Property NodeAllowActivate (int)...................................................................................................................239 Property NodeAvailable (int)...........................................................................................................................240 Property NodeComment (AnsiString)..............................................................................................................241 Property NodeDepartment (int) .......................................................................................................................242 Property NodeFlowId (int)...............................................................................................................................243 Property NodeFlowName (AnsiString) ...........................................................................................................244 Property NodeId (int) .......................................................................................................................................245 Property NodeName (AnsiString)....................................................................................................................246 Property NodeObjectID (int) ...........................................................................................................................247 Property NodeTerminateDate (AnsiString) .....................................................................................................248 Property NodeTerminateScript (AnsiString) ...................................................................................................249 Property NodeType (int) ..................................................................................................................................250 Property NodeUser (int)...................................................................................................................................251 Property NodeYesNoCondition (AnsiString) ..................................................................................................252 Property NoteOwner(int) .................................................................................................................................253 Property NoteText (AnsiString).......................................................................................................................254 Property NoteType(int) ....................................................................................................................................255 Property ObjAcl (AnsiString) ..........................................................................................................................256 Property ObjBarcodeInfo(AnsiString).............................................................................................................257 Property ObjFlags (int) ....................................................................................................................................258 Property ObjGuid (AnsiString)........................................................................................................................259 Property ObjIDate (AnsiString) .......................................................................................................................260 Property ObjIndex (AnsiString).......................................................................................................................261 Property ObjInfo (int) ......................................................................................................................................262 Property ObjKey (int) ......................................................................................................................................263 Property ObjLock(int) read only......................................................................................................................264 Property ObjMainParent (int) ..........................................................................................................................265 Property ObjMaskNo (int) ...............................................................................................................................266 Property ObjMemo (AnsiString) .....................................................................................................................267 Property ObjMemoInfo (AnsiString)...............................................................................................................268 Property ObjMName (AnsiString)...................................................................................................................269 Property ObjOwner (int) ..................................................................................................................................270

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 7

Property ObjSDate (AnsiString), ObjSIDate, ObjSVDate ..............................................................................271 Property ObjSReg (AnsiString) .......................................................................................................................272 Property ObjShort (AnsiString) .......................................................................................................................273 Property ObjStatus (int) ...................................................................................................................................274 Property ObjType (int), ObjTypeEx (int) ........................................................................................................275 Property ObjVDate (AnsiString) .....................................................................................................................276 Property ObjXDate (AnsiString) .....................................................................................................................277 Function OcrAddRect ......................................................................................................................................278 Function OcrAnalyze and OcrAnalyzeEx........................................................................................................279 Function OcrClearRect ....................................................................................................................................280 Function OcrGetPattern ...................................................................................................................................281 Function OcrGetText .......................................................................................................................................282 Function OcrPattern .........................................................................................................................................283 Property OfficeMaskNo (AnsiString) ..............................................................................................................284 Property OkEnabled (int) .................................................................................................................................285 Function OpenChildNodes...............................................................................................................................286 Property (AnsiString) OpenSave (int value) ....................................................................................................287 Function (AnsiString) OpenSaveDialog (int Type) .........................................................................................289 Function OrientFile ..........................................................................................................................................290 Property OutlookName (AnsiString) ...............................................................................................................291 Function PostBoxLineSelected ........................................................................................................................292 Function PrepareObject, PrepareObjectEx ......................................................................................................293 Function PrepareReplSet..................................................................................................................................295 Function PromoteAcl .......................................................................................................................................297 Property PrintDocListTabs (int Nr) .................................................................................................................299 Function PrintDocument ..................................................................................................................................300 Function QueryOption .....................................................................................................................................301 Function QueryReplSet....................................................................................................................................302 Function ReadActivity (AnsiString) ................................................................................................................303 Function ReadBarcodes ...................................................................................................................................304 Function ReadColorInfo ..................................................................................................................................305 Function ReadKey (int)....................................................................................................................................306 Function ReadObjMask ...................................................................................................................................307 Function ReadSwl............................................................................................................................................308 Function ReadUser...........................................................................................................................................309 Function ReadUserProperty.............................................................................................................................310 Function ReadWFNode(int, int, int, int) ..........................................................................................................311 Function ReadWv ............................................................................................................................................312 Function ReloadWv .........................................................................................................................................313 Function RemoveDocs(int, AnsiString, int).....................................................................................................314 Function RemoveRef (int, int) .........................................................................................................................315 Function RotateFile..........................................................................................................................................316 Function RunEloScript.....................................................................................................................................317 Function SaveDocumentPage ..........................................................................................................................318 Function SaveDocumentZoomed.....................................................................................................................319 Function SaveObject ........................................................................................................................................320 Property ScriptActionKey (int) ........................................................................................................................321 Property SearchListColumns ( AnsiString ) ....................................................................................................322 Function SearchListLineId...............................................................................................................................323 Function SearchListLineSelected.....................................................................................................................324 Function SelectAllPostBoxLines .....................................................................................................................325 Function SelectArcListLine .............................................................................................................................326 Function SelectCurrentNode............................................................................................................................327 Function SelectLine .........................................................................................................................................328 Function SelectNode........................................................................................................................................329 Function SelectPostBoxLine............................................................................................................................330 Function SelectPostBoxLineEx .......................................................................................................................330 Function SelectRootNode ................................................................................................................................331

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 8

Function SelectSearchListLine ........................................................................................................................332 Function SelectTreePath ..................................................................................................................................333 Function SelectUser .........................................................................................................................................334 Function SelectUserEx.....................................................................................................................................334 Function SelectView........................................................................................................................................335 Function SelectWorkArea................................................................................................................................336 Function SelList ...............................................................................................................................................337 Function SeparateTiffFile ................................................................................................................................338 Function SetCookie..........................................................................................................................................339 Function SetObjAttrib......................................................................................................................................340 Function SetObjAttribFlags .............................................................................................................................341 Function SetObjAttribKey ...............................................................................................................................342 Function SetObjAttribMax ..............................................................................................................................343 Function SetObjAttribMin ...............................................................................................................................344 Function SetObjAttribName ............................................................................................................................345 Function SetObjAttribType..............................................................................................................................346 Function SetOption ..........................................................................................................................................347 Function SetReplSet.........................................................................................................................................348 Function SetScriptButton.................................................................................................................................349 Function SetScriptEvent ..................................................................................................................................350 Function SetScriptMenu ..................................................................................................................................352 Function ShowActivities (int,AnsiString)........................................................................................................353 Function ShowAutoDlg ()................................................................................................................................354 Function ShowDocInverted .............................................................................................................................355 Property SigId (int) ..........................................................................................................................................356 Function Sleep .................................................................................................................................................357 Function SortSearchList...................................................................................................................................358 Function SplitFileName ...................................................................................................................................359 Function StartFlow...........................................................................................................................................360 Function StartFlowEx ......................................................................................................................................361 Function StartScan ...........................................................................................................................................362 Function Status.................................................................................................................................................363 Function StoreDirect ........................................................................................................................................364 Function StoreKeyword ...................................................................................................................................365 Function StoreMulti .........................................................................................................................................366 Function ToClipboard......................................................................................................................................367 Function TreeWalk ..........................................................................................................................................368 Function UnselectAllPostBoxLines .................................................................................................................370 Function UnselectArcListLine.........................................................................................................................371 Function UnselectLine .....................................................................................................................................372 Function UnselectPostBoxLine........................................................................................................................373 Function UnselectSearchListLine ....................................................................................................................374 Function UpdateDocument, UpdateDocumentEx............................................................................................375 Function UpdateObject ....................................................................................................................................376 Function UpdatePostbox..................................................................................................................................377 Function UpdatePostboxEx .............................................................................................................................378 Function UpdateReplSet ..................................................................................................................................379 Property UserFlags (int)...................................................................................................................................380 Property UserGroup (int) .................................................................................................................................381 Property UserGroups (AnsiString) ..................................................................................................................382 Property UserId (int) ........................................................................................................................................383 Property UserKeys (AnsiString) ......................................................................................................................384 Property UserName (AnsiString).....................................................................................................................385 Property UserParent (int) .................................................................................................................................386 Property UserTerminate (AnsiString) ..............................................................................................................387 Function Version..............................................................................................................................................388 Property ViewFileName (String) .....................................................................................................................389 Property WFComment (AnsiString) ................................................................................................................390

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 9

Property WFFlowName (AnsiString) ..............................................................................................................391 Property WFName (AnsiString) ......................................................................................................................392 Property WFOwner (AnsiString) .....................................................................................................................393 Property WindowState (int) .............................................................................................................................394 Function WriteActivity (AnsiString) ...............................................................................................................395 Function WriteColorInfo .................................................................................................................................396 Function WriteKey (int KeyNo, AnsiString KeyName)..................................................................................397 Function WriteObjMask ..................................................................................................................................398 Function WriteUser..........................................................................................................................................399 Function WriteUserProperty ............................................................................................................................400 Function WriteWv ...........................................................................................................................................402 Property WvCreateDate (AnsiString) ..............................................................................................................403 Property WvDate (AnsiString) ........................................................................................................................404 Property WvDesc (AnsiString) ........................................................................................................................405 Property WvDueDate (AnsiString)..................................................................................................................406 Property WvIdent (int) .....................................................................................................................................407 Function WvListInvalidate ()...........................................................................................................................408 Property WvNew (int)......................................................................................................................................409 Property WvParent (int) ...................................................................................................................................410 Property WvParentType (int), WvParentTypeEx (int) ....................................................................................411 Property WvPrio (int) ......................................................................................................................................412 Property WvShort (AnsiString) .......................................................................................................................413 Property WvUserFrom (int) .............................................................................................................................414 Property WvUserOwner (int)...........................................................................................................................415

Appendix.............................................................................................................................................................416 Appendix A, Description of dialog elements in the main ELO view...............................................................416

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 10

Extended System Settings

Under ELOprofessional 3.0, the following additional ID is available: The ELO object is only simply available, several CreateObject requests trigger off the same program instance to be accessed. In order to be able to use two ELOprofessional versions per scripting at the same time (e.g. for script-controlled transfer between two different archives), the following procedure needs to be followed:

1. A copy of the ELO32.EXE client to ELO32D.EXE is created (precisely this name!). 2. The ELO32D.EXE program is requested once, it then registers in the OLE runtime system under the ID

"ELO.professional2" 3. Scripts that want to work with this instance use the "ELO.professional2" ID for CreateObject instead of

or in addition to "ELO.professional".

Additional IDs from Version 3.00.360

• Apart from the ELO32D.EXE version, you can now additionally create ELO32E.EXE, ELO32F.EXE and ELO32G.EXE.

• These programs then answer to ELO.professional2 (ELO32D.EXE), ELO.professional3 (ELO32E.EXE), ELO.professional4 (ELO32F.EXE), and ELO.professional5 (ELO32G.EXE).

You can now use separate program allocations for different script tasks. For example, if you have written a series of extensions for a help desk function and another group of scripts for automatic e-mail storage in another archive, you can use the two applications (up to 4) via this extension.

Separate Registry Information If you want to work with different archives from one workplace, you can do so to a certain extent with the profiles. For this purpose, you can automatically switch the settings for AccessManager and database login during program start. However, there are a large number of settings that are not part of the profiles, but must be switched in practice. These are for example ScriptEvents, button allocations, and preset storage masks. This is especially annoying if you want to work in the different areas at the same time. For this reason, from version 3.00.360 there is a possibility to operate the clients completely with their own registry branches.

1. As described above, create program copies ELO32D.EXE, ELO32E.EXE, ELO32F.EXE and ELO32G.EXE (naturally only as many as you actually need).

2. Copy the registry branches HKCU\Software\ELO Digital\ELO32.1 und HKLM\Software\ELO Digital\ELO32.1 to ...\ELO32D.1 (or \ELO32E.1, \ELO32F.1 and \ELO32G.1). If required, adjust the database, server and AccessManager settings.

3. When you start an ELO32x.EXE program version, it first requests from the registry whether there is a branch ...\Software\ELO Digital\ELO32x.1. If it exists, it is used, if it does not exist, the default branch ...\Software\ELO Digital\ELO32.1 is used.

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 11

First Steps The following sections provide an overview of ELO Automation Interface programming. The examples focus on the required steps, no error log is carried out. From version 3.0 onwards you have the opportunity to record all automation accesses in one file. This is a practical extension for the script creation. However, this new function is rendered special importance in case of malfunctions or when controlling completed components, whose interior structure cannot be viewed. The report is switched on via the Options dialog:

Starting ELO, Selecting Archive and Login Dialog In general, there are two different scenarios for ELO remote control:

1. A user works with ELO and you want to carry out actions in the work area of this user via your application. In this case no login is required, it has already been carried out by the user. You then only need to check in your application whether ELO is already active.

2. You have an independent process (e.g. automatic fax or mail transfer). In this case the application has to carry out a login (and a logout at the end).

Login to ELO for case 1:

// Start ELOprofessional ... try { EloServer= CreateOleObject("ELO.professional");

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 12

} catch (...) { // ELOprofessional must have been called at least once // at the workplace - it then registers // automatically as OLE Automation Server return; }; // First of all, you should make sure that // a user is actually logged in. ObjId=EloServer.OleFunction("GetEntryId",-1); if (ObjId==-1) { // error: no work area active, i.e. // ELO is started, but no user is logged in return; };

Login to ELO for case 2:

// Start ELOprofessional ... try { EloServer= CreateOleObject("ELO.professional"); } catch (...) { // ELOprofessional must have been called at least once // at the workplace - it then registers // automatically as OLE Automation Server return; }; // check version iOleResult=EloServer.OleFunction("Version"); if (iOleResult<101002) { // version is smaller than 1.01.002 // too old! EloServer.OleFunction("Login","LOGOUT","",""); EloServer=NULL; return; }; // System login iOleResult=EloServer.OleFunction("Login", Login name, password, archive); if (iOleResult<0) { // Unknown login name, password or archive EloServer.OleFunction("Login","LOGOUT","",""); EloServer=NULL; };

Logoff ELO for case 2:

// Log off from archive and exit ELO again EloServer.OleFunction("Login","LOGOUT","",""); EloServer=NULL;

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 13

Detecting the Currently Selected Entry With the GetEntryId function, you can request the currently selected entry, GetEntry then supplies you with the appropriate name.

ObjectId=EloServer.OleFunction("GetEntryId",-1); ObjectShort=EloServer.OleFunction("GetEntryName",ObjectId);

List of All Documents in the Accounting Cabinet, Invoice Folder, 1998 Tab First of all, the ObjectId of the 1998 tab in the invoices folder in the accounting cabinet is detected with LookupIndex. After switching to the tab, all documents can be requested.

// First of all find the tab RegisterId=EloServer.OleFunction("LookupIndex", "¿Accounting¿Invoice¿1998"); if (RegisterId>0) { // now request the tab found EloServer.OleFunction ("GotoId",0-RegisterId); // ... and request the documents in the tab for (i=0; i<10000; i++) { DocumentId=EloServer.OleFunction("GetEntryID",i); if (DocumentId<1) break; // here the document is added to a list }; };

Adding a New Document to the Tab In order to add a new document, first of all an empty input must be prepared, the subject data are to be added, and the image file must be transferred to the user postbox with AddToPostbox. This entry can then be added to the archive.

// prepare empty data set and add to it EloServer.OleFunction("PrepareObject",0,4,0); EloServer.OlePropertySet("ObjShort","Holiday in Florida"); EloServer.OlePropertySet("ObjMemo","Ford Home in Naples"); EloServer.OlePropertySet("ObjFlags",2); // add to the postbox iOleResult=EloServer.OleFunction("AddPostboxFile", "c:\temp\ford.tif"); // and transfer to archive from the postbox sDestInfo="¿Holiday 98¿Florida West Coast¿Ford Meyers"; iOleResult=EloServer.OleFunction("MoveToArchive",sDestInfo);

Detecting the Mask (Document Type) Number from the Description

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 14

If you want to add a document to the archive, you must first determine the document type. ELO works internally with mask numbers in this case, the real world with descriptions. In order to convert the description into a mask number, you have to browse through the available masks and compare with the description.

int __fastcall TMailImpMainDlg::FindEloMailMask() { AnsiString sTmp; int iEloMask; iEloMask=0; for (iEloMask=0;iEloMask<MAX_MASKNO;iEloMask++) { if (EloServer.OleFunction("ReadObjMask",iEloMask)>=0) { sTmp=EloServer.OlePropertyGet("ObjMName"); if (sTmp.UpperCase()=="ELOMAIL") { return iEloMask; }; }; }; return -1; };

It will be simpler from version 1.01.048 with the LookupMaskName function. The function described above is reduced to one request: iEloMask=EloServer.LookupMaskName("ELOMAIL");

Adding a Mail with Text Body and File Attachment to the Archive The following example shows how an e-mail is automatically added to the archive. For this purpose, the e-mail is first checked in, the subject, sender and recipient are evaluated and the body and the file attachment are saved. The basic information and the file names are then transferred to the InsertIntoELO function.

bool __fastcall TMailImpMainDlg::InsertIntoElo(int iMailMask, const AnsiString sDestination, const AnsiString sSubject, const AnsiString sFrom, const AnsiString sTo, const AnsiString sMailText, const AnsiString sMailAttchment) { int iOleResult,iObjId; EloServer.OleFunction("PrepareObject",0,4,iMailMask); EloServer.OlePropertySet("ObjShort",sSubject); EloServer.OlePropertySet("ObjFlags",1); // version controlled if (iMailMask>0) { // the EloMail mask has two // additional entries: sender and recipient EloServer.OleFunction("SetObjAttrib",0,sFrom); EloServer.OleFunction("SetObjAttrib",1,sTo); }; iOleResult=EloServer.OleFunction("AddPostboxFile",sMailText); // if no archive target is available,

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 15

// the mail remains in the postbox if (iOleResult>0 && sDestination!="") { iOleResult=EloServer.OleFunction("MoveToArchive", sDestination); // here the new ObjectId is detected ... iObjId=EloServer.OleFunction("GetEntryId",-2); if (iOleResult>0) { // ... and the file attachment is carried out. iOleResult=EloServer.OleFunction("InsertDocAttachment", iObjId,sMailAttachment); }; }; return iOleResult>0; };

Editing a Mask With the ReadObjMask and WriteObjMask commands you can read document type information and save it again. The following values are available as document type information:

ObjMName Mask name ObjMIndex Target information for automatic storage MaskFlags Bit ... MaskKey Mask key DocKey Default value for document key DocKind Default value for document color DocPath Document storage path DocTPath Default value for the storage path

In addition there are 50 attribute lines (0..49) available. Each attribute line has the following values:

Get/SetObjAttrib() User entry, e.g. an invoice number Get/SetObjAttribName() Description of the field in the mask, e.g. "Invoice number" Get/SetObjAttribKey() Index description in the database, e.g. "INVNO" Get/SetObjAttribType() 0: Text, 1: Date, 2: Numerical Get/SetObjAttribMin() Minimum input length in digits, 0: No control Get/SetObjAttribMax() Maximum input length in digits, 0: No control

The ObjAttrib field is irrelevant for definition of an input mask, it is not stored at this point, as it will only record the user input at a later stage when creating documents. The differentiation of ObjAttribName and ObjAttribKey is carried out for three reasons: • If different language versions need to cooperate, a suitable text (e.g. "Rechnungsnummer" and "Invoice

No.") can be displayed in the input masks. However, the same key is used database-internal in both cases (e.g. "INVNO").

• A mask can contain several of the same fields. For example, a "Book" input mask can contain several lines on the authors (author, co-author etc.). All these lines can then be added to the same key (e.g. author) database-internally and thus they can all be considered during the search.

• Different masks can contain similar fields. An invoice contains the "Client name" field, a delivery note contains the "Supplier name" field. Both fields can contain the internal "Name" database key and can thus be triggered directly during the search.

Please note that the minimum and maximum input refers to the number of digits and not (not even for numerical fields) to the input value.

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 16

Index lines 0..49 are available for the subject data fields. This is followed by 10 lines that are reserved for ELO-internal tasks. Line 50 contains the link information at present. For this purpose, the index line is allocated the group description ELO_XLINK in the AttribName field and a 12-digit random character string in the Field value. The following is a short example for creating a new mask: NEWMASK=9999 Set Elo=CreateObject("ELO.professional") if Elo.ReadObjMask(NEWMASK)<0 then MsgBox "Error while preparing mask" else Elo.ObjMName="ELO test mask" Elo.MaskFlags=25 ' one index line, input length 5..10 digits call Elo.SetObjAttribName(0, "Index 1") call Elo.SetObjAttribKey(0, "IDX1") call Elo.SetObjAttribMin(0, 5) call Elo.SetObjAttribMax(0, 10) x=Elo.WriteObjMask() if x<0 then MsgBox "Error no. " & x & " when creating new mask." else MsgBox "New mask with number " & Elo.ObjMaskNo & " created." end if end if

Reading a Color Value or the Entire Color Table For reading color values, the ReadColorInfo function and the ColorInfo and ColorName properties are available.

iOleResult=EloServer.OleFunction("ReadColorInfo",MyColorNumber); if (iOleResult>0) { MyColorRGB=EloServer.OlePropertyGet("ColorInfo"); MyColorName=EloServer.OlePropertyGet("ColorName"); };

For detecting the complete color table, a special form of ReadColorInfo is available. If you set the 0x8000 bit in the color number while reading, the function reads the desired color or if it is not available, the next highest color number.

MyColorNumber=0; for (;;) { MyColorNumber=MyColorNumber|0x8000; iOleResult= EloServer.OleFunction("ReadColorInfo",MyColorNumber); if (iOleResult<0) break; MyColorNumber= EloServer.OlePropertyGet("ColorNo"); // Now edit the current color value here MyColorNumber++; };

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 17

Requesting and Setting the Workview For requesting or setting the current workview, the SelectView function is available. When you request this function with the 0 parameter, you receive the number of the currently set worksheet (1..5) as return value. If you use one of the values 1…5, the selected view is displayed.

// Request current status ActView=EloServer.OleFunction("SelectView",0); if (ActView!=3) { // is not set to the postbox -> switch EloServer.OleFunction("SelectView",3); };

Editing Postbox Content The following example illustrates how an external program or an ELO scripting macro can search the postbox and edit the available entries. In this example, all entries are loaded and the selected entries are appended by the term "Important" in the memo field, the non-selected entries by the term "Unimportant".

for (iPostLine=0;i<1000;i++) // observe a maximum of 1000 entries { // first of all, load the desired line iRes=EloServer.OleFunction("PrepareObject",-1,iPostLine,0) switch (iRes) { case –5: continue; // no subject data available case -7: continue; // no subject data available case -6: return true; // finished, no further entries case 3: sText="Important"; break; case 4: sText="Unimportant"; break; default: return false; // something went wrong }; // Read content of the memo field, add additional text and back sText=EloServer.OlePropertyGet("ObjMemo")+sText; EloServer.OlePropertySet("ObjMemo",sText); // save changed dataset again EloServer.OleFunction("AddPostboxFile",""); };

Scanning Documents Horizontally Many feed scanners can only scan A4 documents in longitudinal direction. If a number of documents need to be scanned horizontally, the user must intervene for every single document. This process can be automated with a simple script. Create a new script with the following content: Set Elo=CreateObject("ELO.professional") res=Elo.RotateFile("",90) Now log in this script for the "after scanning" event. A rotation process is actuated after each page fed.

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 18

This script can also easily be extended so that it searches the complete post list for selected entries and rotates them accordingly. This way it can then be placed onto a user-free button and a larger group of documents can thus be rotated at the same time.

Finding Entries via the OLE Interface This example is based on the following scenario:

In a company, delivery notes are printed with barcode. These delivery notes are then appended with notes by hand and cannot be directly transferred via COLD for this reason. Instead they are scanned in again and stored in the archive via the barcode component. In the example, the ELO documents are then to be checked regularly from the order management (has the delivery note been scanned in the meantime?) and additional information is to be entered. The storage mask for the delivery notes contains a line "Delivery note number – DLNO", which is entered via the barcode component and the lines "Customer number – CTNO" and "Delivery date – DLDAT", which are appended from the order management.

As preparation for the subsequent lines, the application must create an EloServer object and determine the mask with the name "Delivery notes" from the masks list (iLfMaskNo). First of all, the order management has to browse all delivery notes that are still open – for each delivery note the following routine is then requested (please note that a "real" routine should contain respective error checks, which have been removed hear for reasons of clarity):

bool AddInfo(AnsiString sDlno, AnsiString sCtno, AnsiString sDldat) { EloServer.OleFunction("PrepareObject",0,0,iLfMaskNo); EloServer.OleFunction("SetObjAttrib",0,sDlno); iCnt=EloServer.OleFunction("DoSearch"); switch (iCnt) { case -1: // error return false; case 0: // not found return false; case 1: // found – enter now break; default: // Multiple entries, must be dealt with somehow // e.g. all entries are appended. return false; }; iObjId=EloServer.OleFunction("GetEntryId",0) EloServer.OleFunction("PrepareObject",iObjId,4,iLfMaskNo); EloServer.OleFunction("SetObjAttrib",1,sCtno); EloServer.OlePropertySet("ObjXDate",sDldat); EloServer.OleFunction("UpdateObject"); return true; }

As a consequence of the function request, the order management then only has to issue an error message or append its internal database with the information that the comparison could be carried out successfully. This procedure has the advantage that a control is given whether all delivery notes have been scanned in again, and the data that are available in the system anyway (customer number, date) do not need to be manually processed further.

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 19

EloScript Example: Issuing an Access Path to the Currently Selected Object Set Elo=CreateObject("ELO.professional") STemp="" id=Elo.GetEntryId(-1) ires=Elo.PrepareObject(id,0,0) STemp=Elo.ObjShort while ires=2 and Elo.ObjMainParent>1 ires=Elo.PrepareObject(Elo.ObjMainParent,0,0) STemp=Elo.ObjShort & " : " & STemp wend MsgBox "Access path: " &STemp

EloScript Example: Empty and Separator Page Check in the Postbox ' TestPage.VBS 10.10.2001 '------------------------------------------------------------------ ' © 2001 ELO Digital Office GmbH ' Author: M.Thiele ([email protected]) '------------------------------------------------------------------ ' This script checks all entries in the postbox for empty ' or separator pages. If an empty page (at least 97% white content ' in each segment) was found, it is additionally checked how ' "empty" it is and the respective value is issued. ' ----------------------------------------------------------------- set Elo = CreateObject("ELO.professional") ver=Elo.Version if ver<300220 then MsgBox "This script requires at least version ELOprofessional 3.00.220" else ' Browse all postbox entries, but a maximum of 100 for i=0 to 100 ' Select the entry in the viewer if Elo.SelectLine(i)<0 then exit for end if ' Checks for separator and empty page at the same time res=Elo.CheckPage(3, 970) if res=1 or res=3 then ' is an empty page, now determine limit value for j=970 to 999 if Elo.CheckPage(1,j)=0 then exit for end if next sTmp=sTmp & " [ IsWhite: " & j/10.0 & " % ] " end if ' add separator text if res=2 or res=3 then sTmp=sTmp & " [ IsSeparator ] "

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 20

' Add file name to message sPathName=Elo.ActivePostFile sName=Elo.SplitFileName(sPathName, 2) sTmp=sTmp & " : " &sName & vbcrlf ' carries out a ProcessMessages internally, that’s all Elo.UpdatePostboxEx 23,1 ' Takes the SelectLine back Elo.UnselectPostboxLine(i) next ' Display result in a MessageBox. MsgBox sTmp End if

Simple Form Management The following example browses the postlist, takes each selected example and browses a defined section for the keywords "Invoice" and "Delivery note" via the OCR software. If one of these keywords is found, it reads the related mask definition and browses additional sections of the form for invoice number, customer number etc. These entries are then saved with the document and added to the archive. ' The program reads all selected entries of the postbox and ' checks whether the document belongs to the "invoice" or "Delivery note" ' mask type. The respective data of the mask lines are then checked out from the ' form and saved. ' Afterwards, the document is moved to the archive. set ELO = CreateObject("ELO.professional") iNum=0 Do while (1) iRet=Elo.PrepareObject (-1,iNum,0) If (iRet = -6) Then MsgBox "Program finished!" Exit Do End If if (iRet = 3 Or iRet = -7) Then ' Only edit selected documents. SaveObjShort=Elo.ObjShort ELo.ObjShort="" iRet=Elo.AddPostBoxFile("") strLine="#"+CStr(iNum) res=Elo.AnalyzeFile(strLine,"R(333,100,666,200)P(1)S(SHORT=1,100)",0) If (res = 1) Then obs=Trim(Elo.ObjShort) i=1 do while i<= len(obs) if mid(obs,i,1)=" " then obs=mid(obs,1,i-1)+mid(obs,i+1,Len(obs)-i) end if i=i+1 loop If (InStr(obs,"Invoice")>0) then res=Elo.Status("Invoice in line " & strLine & " detected.")

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 21

res=Elo.AnalyzeFile(strLine,"R(600,100,1000,200) P(1) S(InvNo=1,10) R(450,180,1000,220) P(1) S(CtNo=1,10) R(450,220,1000,260) P(1) S(Locrt=1,10) ",6) If (res = 1) Then InvNo=Elo.GetObjAttrib(0) iRet=Elo.PrepareObject (-1,iNum,0) ELo.ObjShort=ELo.ObjShort+InvNo iRet=Elo.AddPostBoxFile("") ObjIndex="REG=Invoice" iRet=Elo.MoveToArchive (ObjIndex) if (iRet <> 1) then msgbox "Error during transfer, RetValue = " & Cstr(iRet) End If End If Else If (InStr(Elo.ObjShort,"Delivery note")>0) then res=Elo.Status("Delivery note in line " & strLine & " detected.") res=Elo.AnalyzeFile(strLine,"R(600,100,1000,200) P(1) S(DlNo=1,10) R(500,180,1000,220) P(1) S(CtNo=1,10) R(500,220,1000,260) P(1) S(Product=1,10) R(500,260,1000,320) P(1) S(Storage location=1,50) ",7) SupplyNo=Elo.GetObjAttrib(0) iRet=Elo.PrepareObject (-1,iNum,0) ELo.ObjShort=ELo.ObjShort+SupplyNo iRet=Elo.AddPostBoxFile("") ObjIndex="REG=Delivery note" iRet=Elo.MoveToArchive (ObjIndex) if (iRet <> 1) then msgbox "Error during transfer, RetValue = " & Cstr(iRet) End If Else res=Elo.Status("Unknown document in " & strLine) If SaveObjShort="" then Elo.ObjShort="Unknown document" Else Elo.ObjShort=SaveObjShort End If iRet=Elo.AddPostBoxFile("") End If End If Else res=Elo.Status("Document type could not be checked in line " & strLine) If SaveObjShort="" then Elo.ObjShort="Unknown document" Else Elo.ObjShort=SaveObjShort End If iRet=Elo.AddPostBoxFile("") End If End If iNum=iNum+1 Loop res=Elo.UpdatePostbox()

Example: Before Editing a Self-Adhesive Note When editing a self-adhesive note, the name and time are automatically entered into the text field. The ScriptActionKey parameter contains values 1: before the request, 2: after the request, completed with Ok and 3: after the request, completed with Cancel. set Elo=CreateObject("ELO.professional")

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 22

if Elo.ScriptActionKey=1 then note=Elo.NoteText if note<>"" then note=note & vbcrlf & vbcrlf & "====" & vbcrlf end if Elo.ReadUser(Elo.ActiveUserId) note=note & Date & Time & ": " & Elo.UserName & vbcrlf & "----" & vbcrlf Elo.NoteText=note end if

Example of a Microsoft WinWord 8 Macro The following lines contain an example for the automatic transfer of a document from WinWord to ELO using a macro. Public Sub MAIN() TempDir$ = Environ("TEMP") ' Temporary directory of environmental variables If Documents.Count < 1 Then ' If no document open MsgBox ("Transfer is not possible, as no document was opened") GoTo ENDE End If If Tasks.Exists("The electronic Leitz folder") = False Then ' if ELO is not active -> GoTo StartEloProgram ' Message that ELO must be started End If i = 1 ' Possible Temp file names "WW_ELOi.doc" Loop: ' detect which does not exist in window list For j = 1 To Application.Windows.Count ' Examine for all opened windows If Application.Windows(j).Caption="WW_ELO"+LTrim(Str(i))+".doc" Then i = i + 1 ' next temporary file name "WW_ELOi.doc" GoTo loop ' find in window list End If Next j TempName$ = "WW_ELO" + LTrim(Str(i)) + ".doc" If Dir(ActiveDocument.FullName) <> "" Then ' Was document saved before ? If ActiveDocument.Saved = False Then ' Saved, but was changed

MsgText$ = "Document was changed and receives temporary file name: " + TempName$ + Chr$(13) + Chr$(10)

File name$ = TempDir$ + "\" + TempName$ ActiveDocument.SaveAs FileName:=File name$ Else ' is saved and was not changed

MsgText$ = "" ' no indication that document only exists temporarily File name$ = ActiveDocument.FullName ' File name+path (copies original file) End If Else ' Document is a new document MsgText$ = "Caution: The document is not yet saved and receives the temporary file name: "

+ TempName$ + Chr$(13) + Chr$(10) File name$ = TempDir$ + "\" + TempName$ ' set temporary file name ActiveDocument.SaveAs FileName:=File name$ ' save under temporary file name End If ShortName = ActiveDocument.BuiltInDocumentProperties("Title") If ShortName = "" Then ' if no title entered, it receives ShortName = ActiveDocument.Name ' document name as short name End If Com = ActiveDocument.BuiltInDocumentProperties("Comments") ' Copy comment DDate$ = ActiveDocument.BuiltInDocumentProperties("Last Save Time") DDate$ = DateValue(DDate$) ' Determines valid date: dd.mm.yy Dim ELOServer As Object Set ELOServer = CreateObject("ELO.professional") ' ELO32 OLE-Server On Error GoTo LOGIN ' ELO is in Login dialog iOleResult = ELOServer.PrepareObject(0, 4, 0) ' new entry, document, standard On Error GoTo 0 ELOServer.ObjMemo = Com ' Document comment ELOServer.ObjXDate = DDate$ ' last storage date EntryID = ELOServer.GetEntryID(-12) ' >0 -> There is an enabled tab If (ELOServer.SelectView(0) = 1) And (EntryID > 0) Then ' ELO is found in "Archive + Tab" txt = MsgText$ + Chr$(13) + Chr$(10) + "The document is saved in the archive under the

following short name." ShortName = InputBox(txt, "ELOprofessional document transfer", ShortName) ' Short name can be changed via ELOServer.ObjShort = ShortName ' dialog iOleResult = ELOServer.AddPostboxFile(File name$) ' first of all into postbox, iOleResult = ELOServer.MoveToArchive("#" + Str(EntryID)) ' then into archive

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 23

Else ' otherwise transfer into postbox txt = MsgText$ + Chr$(13) + Chr$(10) + "The document is saved in the postbox under the

following short name." ELOServer.ObjShort = InputBox(txt, "ELOprofessional document transfer", ShortName) iOleResult = ELOServer.AddPostboxFile(File name$) ' transfer to postbox End If Set ELOServer = Nothing ' release server object again GoTo END LOGIN: Set ELOServer = Nothing ' release server object again MsgBox ("Error: You must login under ELOprofessional.") GoTo END StartEloProgram: MsgBox ("Error: ELOprofessional must be enabled for transfer.") END: End Sub

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 24

Scripting within the Process Control Within the process control two scripts can be allocated to each node, which are automatically processed at each activation or termination of a node respectively. Within such a script the data of the current node can be accessed, for this purpose, the properties NodeAction, NodeActivateScript, NodeAlertWait, NodeAvailable, NodeComment, NodeFlowName, NodeName, NodeTerminateScript, NodeType, NodeUser and NodeYesNoCondition are available (for description of individual properties, see below). Before these properties are accessed, the NodeAvailable property must be checked. For a value of 1, information is available on a node, otherwise no information is available. If the script is requested manually for example, i.e. not within the context of a process, there is no information available on a node. In this case the NodeAvailable property has the value 0. Caution: When forwarding a workflow activity, first of all the entire workflow is checked into the document including the ELO index information. Afterwards, the required steps are executed in the workflow including the respective scripts. if you change the index information in one of the scripts, the new data are not yet visible within this step. This can be especially critical for branch nodes. If the branching occurs due to the "AMOUNT" field, and this field is changed before branching in the end script of the node, this new value will not included in the decision making process. If this should be necessary, however, the group name of the respective field must be preceded by an exclamation mark in the decision node. This informs the workflow that it has to check out the respective field directly from the database and not from the internal data.

Example script that accesses the data of a node:

CRLF=Chr(13)&Chr(10) Set Elo=CreateObject("ELO.professional") If Elo.NodeAvailable=1 Then FlowTxt="Name of process: "&Elo.NodeFlowName Select Case Elo.NodeType Case 1 NTxt="Start node" Case 2 NTxt="Person" Case 3 NTxt="Division node" Case 4 NTxt="Decision node" Case 5 NTxt="Collective node" End Select if Elo.NodeAction=1 Then NTxt=NTxt&" enabled." Else NTxt=NTxt&" terminated." End If NTxt="Action: "&NTxt NameTxt="Name of node: "&Elo.NodeName CommentTxt="Comment: "&Elo.NodeComment If Elo.NodeType=4 Then ConditionTxt="Condition: "&Elo.NodeYesNoCondition Else ConditionTxt="" End If ActivateTxt="Script when activating: "&Elo.NodeActivateScript TerminateTxt="Script when terminating: "&Elo.NodeTerminateScript MsgBox FlowTxt&CRLF&NTxt&CRLF&NameTxt&CRLF&KommentarTxt&CRLF_ &ConditionTxt&CRLF&ActivateTxt&CRLF&TerminateTxt End If

If the active node is a distribution node, the script can control to which successor the document is to be forwarded. Such a script is entered in the End Script field of a (distribution) node:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 25

Set Elo=CreateObject("ELO.professional") ObjID=Elo.NodeObjectID 'Access to the data... Elo.PrepareObject ObjID,0,0 '...of the document being processed MsgBox Elo.ObjShort Rv=Elo.OpenChildNodes 'Open access to the subsequent nodes If Rv=1 Then Do rv=Elo.GetChildNode 'Read subsequent node... If (rv>0) Then '...available for If Elo.NodeUser=3 Then 'Only user no. 3 receives the document... Elo.NodeAllowActivate=1 Else '...none of the others Elo.NodeAllowActivate=0 End If End If Loop Until rv<0 Elo.SelectCurrentNode 'Switch back to current node End If

"Entering/Moving an Object Reference" Script Event With the "When entering/moving an object reference" script event you can react when a user moves a document or a storage structure element within the archive. Here, one could make adjustments for example within the authorization structure or the subject data. Set Elo=CreateObject("ELO.professional") ObjectId=Elo.NodeAction ParentId=Elo.ScriptActionKey NewParent=Elo.WvNew if Elo.ActionKey=1 then MsgBox "AddRef ObjId=" & ObjectId & " Parent: " & ParentId else MsgBox "MoveRef ObjId=" & ObjectId & " OldParent: " & _ ParentId & " NewParent: " & NewParent end if Via the action key, you can detect if an object is inserted new (1), copied (2) or moved (3). The additional parameters like ObjectId and Predecessor can be determined via the OLE interface. This request is only activated if the moving/inserting is carried out directly via the client. If the operation was enabled via the OLE interface, this ScriptEvent is not triggered. This script event is available from version 3.00.584, respectively 4.00.182 .

"When Checking a Document In/Out" Script Event With this script event, you receive notifications on documents to be registered in or out at various times. The individual times are specified via the ActionKey, the following values are available for this (values 1001 … 1005 are only available from version 5.00.020 on): Value Action 30 After checking out a document, but before activating the application for processing. The

CheckInOutFileName property contains the file name. With the ScriptActionKey property you can be informed whether a document is created out of a document template directly in the archive view; in this case the Bit 8 (value = 256) is set to 1. Moreover this property contains information, if the document shall be activated afterwards by

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 26

ShellExecute. 0: don’t activate, 1: activate without demand, 2: activate with demand. You can also change this value in the script and thus change the planed view type.

31 Immediately before checking in a document. The CheckInOutFileName property contains the name of the file to be checked in.

32 After checking in the document. The CheckInOutFileName property contains the name of the file to be checked in, this will be deleted immediately after the event.

33 Before checking out a document. The CheckInOutObjID property contains the ELO ObjectId of the document to be checked out. With the ScriptActionKey property you can determine if ELO is to continue with normal processing after the script request. If you leave the property unchanged at 1, the procedure is continued. If you enter the value 14, ELO assumes that you have completed the checkout procedure via the script and no further actions are necessary. All other values also cancel the processing and actuate a respective message box.

34 Before checking in a document. The CheckInOutFileName property contains the name of the file to be checked in. With the ScriptActionKey property you can determine if ELO is to continue with normal editing after the script request. If you leave the property unchanged at 1, the procedure is continued. If you enter the value 14, ELO assumes that you have completed the checkin procedure via the script and no further actions are necessary. All other values also cancel the processing and actuate a respective message box.

1001 Before the view of a file list for a register-checkout oder –checkin procedure. This event is requested for every file, the file name is in the CheckInOutFileName property, the CheckInOutObjId contains the ELO ObjectId. The ScriptActionKey property contains the information, how the procedure is planed (bottom 8 bit), if a checkin (0x200) or a checkout (0x100) procedure is active. Besides the bit 0x10000000 is set. If this bit is set to 0 by the script event, this file is not included in the view list. Caution: this script event is possibly requested several in one procedure – e.g. if the user changes an option in the dialog and the view list is built up again for this reason.

1002 Before checking out a document from the register list. The further parameters are set like in event 1001. Is the ScriptActionKey Bit 0x10000000 is set back to 0 the checkout procedure for this document is suppressed.

1003 After checking out a document from the register list. 1004 Before checking in a document from the register list. The further parameters are set like in event

1001. If the ScriptActionKey Bit 0x10000000 is set back to 0, the checkout procedure for this document is suppressed.

1005 After checking in a document from the register list. Example: SET Elo=CreateObject("ELO.professional") if Elo.ActionKey=33 then Id=Elo.CheckInOutObjID Ext=UCase(Elo.GetDocExt(Id, 1)) if Ext="MSG" then MsgBox "E-mails cannot be checked out" Elo.ScriptActionKey=14 end if end if if Elo.ActionKey=34 then File=Elo.CheckInOutFileName Ext=UCase(Right(File,3)) if Ext="TIF" then MsgBox "Tiffs cannot be checked in anymore."

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 27

Elo.ScriptActionKey=14 end if end if

Editing the Subject Data Script Event This script event contains a collection of actions, which are differentiated by the ActionKey. While starting the subject data dialog it is first of all questioned which index line shall get an user-defined button (24). Afterwards the message to the start of editing the subject data follows. Every entering or leaving an index line triggers off a notification as well, changing the document type too. When finished editing the subject data an event is triggered off one more time. To fade in own action buttons at the end of an index line, the event 24 has to be served. This event expects a vector with a list of all buttons in the TextParam property as return. This vector consinsts of up to 54 ‘0’ and ‘1’ values, each entry is responsible for one index line. The first character stands for the short name, the second for the fulltext entry in the search dialog, the following 2 are reserved for extensions and the last 50 are for the 50 index lines. So, if you need a button on the short name and the 2. and 4. index line, you have to enter the value 10000101 in TextParam (only necessary until the last 1, all zeros at the end can be left out). If a user activates such a button, you receive in this event an ActionKey value 3xxx, the first index line 3000, the next 3001. The short name provides a value 3999. Take care of the additional offset, which is entered when the mask in the search view is requested. Normally the buttons as a function of the active document mask are used in different ways. For this reason the interrogation for the display vector comes up not only at the start of the display but additionally at every change of the document type.

Before the Search Script Event The Before the Search script event allows to change the SQL search inquiry before it is sent to the SQL server. Thereby th SQL command is delivered in the TextParam property and changes caused by the script are taken over by Elo from there. Please note, that this script is activated at every search, also at intern searches (e.g. for the link list). So, you have to check before changing an search inquiry, if the wanted inquiry is active.

Viewer Export Script Event With the "Viewer Export" script event you can intervene in the export process in several places. The different times can be identified with the ActionKey properties. The target directory for the viewer can be checked out in the ActivePostFile property. On the other hand, you can cancel the action prematurely via the ScriptActionKey property. As long as you leave this value unchanged at 1, the process is continued, if you enter a 0 via your script, it is cancelled. "Time" 2 is favorable for copying keyword lists. Under ELOprofessional 3.0, here you can execute the commands for copying the desired keyword lists. Under 4.0, this can also be manually configured by the user. However, you can also replace the user request with your own control via respective script settings. ActionKey Time 1 Before the copy process of the viewer data. If you cancel here, you get the same status as if the

viewer had not been selected in the first place.

2 After copying the viewer data and before starting viewer import. If you cancel at this point, you have the general viewer files, but your export dataset is not checked in.

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 28

3 After starting the viewer. Please note that at this moment, the actual import process in the viewer is

not yet completed. Unfortunately there is no easy way to determine this time via script.

4 (From ELOprofessional 4.0) Before copying a keyword list, the file name and path can be found in the ActivePostFile property. If you set the ScriptActionKey to 0, this file is not copied with the others. Through this you can control (if the user has enabled copying of the keyword lists) which lists are actually included in the copying process.

Example: Set Elo=CreateObject("ELO.professional") MsgBox Elo.ActionKey & " : " & Elo.ActivePostFile

Batch Scan Script Event The Batch Scan script event is activated from different positions. About this you have an influence on the clipped documents, the non-clipped documents and the actual storage process. The document for the batch storage is defined by the postbox function “preset storage mask” (as with the barcode storage). The normal storage target is defined here as well, so the mask must have a storage index. This event is available from version 4.00.042 on. ActionKey=1: Filing in the archive This request comes off for each (already clipped) document immediately before the filing. The ActivePostFile property points at the file to scan, MainParentId at the planed target, the other subject data referred properties (e.g. short name, index lines) are already loaded as well. With the script you can make any changes in the subject data at this time. Additionally the target can be changed. The possibilities of this request also include an completely script controlled storage. In this case the script is responsible for the actual storage process and the deleting of the data and subject data file. The client signals this case with setting the SciptActionKey property to a value unequal to 0. ActionKey=2: Pre-processing After the scan process a barcode analysis is automatically performed (if a barcode is defined for the document mask). Next a decision over start- and continuation pages of the documents is reached. Via default each page with a barcode is a start page, all others are continuation pages. The script request is executed thereby for all pages. By setting the DocKind property the script can make own divisions. ActionKey=3: Before clipping This request is sent before clipping. It comes off, when the user wants to transfer the documents in the archive via “A” or “S”. ActionKey=4: Before filing in the archive By this request the script gets a message again after clipping, before the transfer to the archive begins. At this time actions can be performed, which concern the whole batch. ActionKey=5: After filing in the archive With this request it is possible to let an end action come off, e.g. writing a report. Example:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 29

The following example does not require a barcode component, the document analysis takes place by a OCR procedure instead (only possible with fulltext option). Demo documents are easily created by printing the pages 100…200 of this document. With the help of the words “property” and “function” in the document head the script recognizes the start pages, all other pages are declared as countinuation pages. For storage mask you should select a mask, which has no barcode entry. The index with the storage target has to be entered in any case. Set Elo=CreateObject("ELO.professional") ' at the storage nothing happens, the normal target ' of the mask definition is used if Elo.ActionKey=1 then ' showing the currently edited document in the status line Elo.Status Elo.ObjShort end if ' since the example documents contain no barcode, ' the division start page/continuation page has to be ' taken over completely by the script if Elo.ActionKey=2 then Elo.Status "OCR-processing " & Elo.ActivePostFile ' evaluating document head via OCR call ELO.OcrClearRect() call ELO.OcrAddRect("100,80,999,200") call ELO.OcrAnalyze(Elo.ActivePostFile,0) 'MsgBox Elo.OcrGetText(0) ' If the head contains the text „function“ followed ' by a function name, then it is a start page Cnt=Elo.OcrPattern(10,"*'Function'_*L*", Elo.OcrGetText(0)) if Cnt>0 then Elo.ObjShort=Elo.OcrGetPattern(3) Elo.DocKind=60 else ' Or if the head contains the text „property“ followed ' by a name, it is also a start page Cnt=Elo.OcrPattern(10,"*'Property'_*L*", Elo.OcrGetText(0)) if Cnt>0 then Elo.ObjShort=Elo.OcrGetPattern(3) Elo.DocKind=60 else ' All other pages are continuation pages Elo.ObjShort="continuation page" Elo.ObjMemo=Elo.OcrGetText(0) Elo.DocKind=61 end if end if end if

Collecting the Workflows Script Event (available from version 4.00.214 on) This script event is requested after the client created the SQL inquiry for the workflow list in the task view and before the current database operation is executed. In the script the SQL command then can be changed, which can be read and written by the TextParam property. Remember, that the changed request must not lead to SQL syntax errors, otherwise the task list stays empty. The possibilities to manipulate concern following regions:

• The WHERE clause can be changed, so that a subset of workflows can be displayed, e.g. selected by customer numbers.

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 30

• The SELECT list can be changed, so that one column shows additional information. Mind that the type and the amount of columns must not be changed, otherwise the output occurs incomplete or is missing.

• The ORDER BY clause can be changed to get special sort orders. If you need data to be entered by the user for this action, you shouldn’t question them in the script event, because it is requested quite often. Here it offers itself instead to use cookies. Put a script onto a user-defined button which questions the parameters and saves them into a cookie. Following “ClickOn” is executed on the workflow collecting button, so that the list is actualized immediately. The current event script then works with the data of the cookies area. Example for simple customer number inquiry: set Elo = CreateObject("ELO.professional") Ctno = InputBox( "Please enter the wanted customer number now" ) if Ctno <> "" then if Ctno = "*" then Ctno = "" call Elo.SetCookie( "WF_CTNO", Ctno ) call Elo.ClickOn( "WvCollect" ) end if The Event Script belonging to it: set Elo = CreateObject("ELO.professional") Cmd = Elo.TextParam wPos = Instr( Cmd, " where " ) if wPos > 0 then Cmd = Left( Cmd, wPos - 1 ) & " , objkeys keys " & Mid( Cmd, wPos, 2000 ) oPos = Instr( Cmd, " order by " ) if oPos > 0 then Ctno = Elo.GetCookie( "WF_CTNO") if Ctno <> "" then Selection = " and keys.parentid = obj.objid and keys.okeyname = 'CTNO' and keys.okeydata = '" & Ctno & "' " Cmd = Left( Cmd, oPos -1 ) & Selection & Mid( Cmd, oPos, 2000 ) Cmd = Replace( Cmd, "fl.wf_flow_name", "fl.wf_flow_name + ' : " & Ctno & "'" ) 'MsgBox Cmd Elo.TextParam = Cmd end if end if end if

This script performs two changes:

1. The selection is limited additionally to a specific customer number. 2. In the output is additionally displayed the corresponding customer number to the workflow name.

You need access to a further table for this action: the index data. The name of this table is objkeys, it is included in the list of the table between FROM und WHERE. The normal SQL command approximately looks like that: select fl.wf_flowid, fl.wf_eloobjid, fl.wf_flow_name, fl.wf_nodeid, obj.objtype, fl.wf_activate, fl.wf_name, wf_comment, fl.wf_department, wf_terminate, fl.wf_department2 from workflowactivedoc fl, objekte obj where fl.wf_eloobjid = obj.objid and (wf_department = 25) and wf_is_next = 1 order by fl.wf_activate, fl.wf_department

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 31

With the line [wPos = Instr( Cmd, " where " )] the end of the table is searched and afterwards the further table is included by [Cmd = Left( Cmd, wPos - 1 ) & " , objkeys keys " & Mid( Cmd, wPos, 2000 )]. The FROM region looks like that: from workflowactivedoc fl, objekte obj, objkeys keys Following the WHERE clause is extended by additional selections. This selection is [and keys.parentid = obj.objid and keys.okeyname = 'CTNO' and keys.okeydata = '" & Ctno & "' "]. Please note the daisy chain keys.parentid = obj.objid. If you forget this, the SQL server will provide a large amount of hits. The further parts express, that on the index line CTNO with content of the variable Ctno shall be limited. Then the WHERE region looks like that: where fl.wf_eloobjid = obj.objid and (wf_department = 25) and wf_is_next = 1 and keys.parentid = obj.objid and keys.okeyname = 'CTNO' and keys.okeydata = '4711' At last the customer number is displayed in the column of the workflow name. That happens by the command [Cmd = Replace( Cmd, "fl.wf_flow_name", "fl.wf_flow_name + ' : " & Ctno & "'" )]. It exchanges the column wf_flow_name with an arrangement of the flow name with a colon and the customer number. The beginning of the SELECT list looks like this: select fl.wf_flowid, fl.wf_eloobjid, fl.wf_flow_name + ' : 4711' , fl.wf_nodeid, obj.objtype, fl.wf_activate, Please note, that an additional column for the customer number is not established (that would lead to an error) but the existing column with the workflow name is only added by further text parts.

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 32

Workflow Start and End Scripts

Creating a Workflow Report when Terminating a Workflow This example script creates a report in HTML format when terminating a workflow and adds it to the document as an attachment. If the WF is linked to a structural element, the report is created in it as new document. The script must be registered as end script in all end nodes of the WF. 'TermFlow.VBS 03/04/2003 '-------------------------------------------- ' © 2003 ELO Digital Office GmbH ' Author: M.Thiele ([email protected]) '-------------------------------------------- ' This script reads the actual workflow ' and creates a report as an ' HTML file which corresponds to the list view ' in the workflow designer. ' ' This report is then attached to ' the document or, if the source is a ' structural element, as new ' document. '-------------------------------------------- Explicit option dim Elo ' active ELO client dim Fso ' Object file system dim FName ' Name of temp file dim file ' temporary HTML file Set Elo=CreateObject("ELO.professional") set Fso = CreateObject("Scripting.FileSystemObject") main sub main dim EloId, cnt, i, UserName EloId=Elo.NodeObjectID cnt=Elo.GetNodeList(1) if EloId>1 and cnt>0 then ' First of all create the temp file and write HTML prefix MakeFile AddHeader Elo.WFFlowName, Elo.LoadUserName(Elo.ActiveUserId) ' run across all WF nodes for i=0 to cnt-1 call Elo.SelectNode(i) if Elo.NodeType=2 then ' Determine user name, UserTerminate has precedence over NodeUser UserName=Elo.UserTerminate if UserName="" then UserName=Elo.LoadUserName(Elo.NodeUser) end if ' Enter node information into report file InsertLine i, Elo.NodeActivateDate, Elo.NodeTerminateDate, UserName, Elo.NodeName, Elo.NodeComment end if next ' Complete HTML file and close CloseReport ' Copy the report as attachment or new document into archive AddAttachment EloId, Elo.WFFlowName end if call Elo.GetNodeList(0) end sub

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 33

' This function copies the report from the postbox to the archive sub AddAttachment(EloId, WFName) if Elo.PrepareObjectEx(EloId,0,0)>0 then ' If the target is a doc., add as attachment, ' otherwise as new document if Elo.ObjTypeEx<254 then call MakeDocument(EloId, WFName) else call MakeAttachment(EloId, WFName) end if end if end sub ' Transfers the report to the structural element, which is ' attached to the workflow. sub MakeDocument(ParentId, WFName) call Elo.PrepareObjectEx(0,254,0) Elo.ObjShort="Workflowreport " & WFName Elo.ActivePostFile=FName call Elo.AddPostboxFile("") call Elo.MoveToArchive("#"&ParentId) end sub ' Attaches the report to the workflow document sub MakeAttachment(EloId, WFName) dim status status=Elo.ObjFlags if (status and 3)<>1 then Elo.ObjFlags=(status and 1073741820) or 1 Elo.UpdateObject else status=-1 end if call Elo.InsertDocAttachmentEx(EloId, FName, "Workflowreport "&WFName, Date) if status <> (-1) then call Elo.PrepareObjectEx(EloId,0,0) Elo.ObjFlags=status Elo.UpdateObject end if end sub ' Determines the file name of the temp file and creates it. sub MakeFile FName=Elo.GetPostDir & "ELO_Workflowreport.htm" set file=Fso.CreateTextFile(FName, true) end sub ' Adds the HTML prefix to the temp file sub AddHeader(WFName, UName) if WFName="" then WFName="-" else WFName=toHtml(WFName) file.WriteLine("<html><head><title>Workflow-Report : " & WFName & "</title></head>") file.WriteLine("<body bgcolor=""#ffffff"" text=""#000000"">") file.WriteLine("&nexp;<p><table><tr><td width=""10%"">&nexp;</td><td width=""85%""><table><tr><td colspan=2><h1>Workflow final report</h></td></tr>") file.WriteLine("<tr><td>&nexp;</td></tr>") file.WriteLine("<tr><td><b>Workflowname</b></td><td><b>" & WFName & "</b></td></tr>") file.WriteLine("<tr><td><b>Final&szlig;date</b></td><td><b>" & Date & " " & Time & "</b></td></tr>") file.WriteLine("<tr><td><b>Editor</b></td><td><b>" & UName & "</b></td></tr>") file.WriteLine("</table><p>") file.WriteLine("<table border=""2"" CELLPADDING=""8"" cellspacing=""0"">") file.WriteLine("<tr bgcolor=""#d0d0d0""><th>No.</th><th>Start date</th><th>End date</th><th>User</th><th>Node</th><th>Remark</th></tr>") end sub ' completes the HTML section and closes the file sub CloseReport file.WriteLine("</table></td></tr></table></body></html>") file.Close end sub ' Adds the information to a node in the file sub InsertLine(LineNo, Startdate, Enddate, User, Node, Comment) dim col if (LineNo Mod 2) = 1 Then Col="""#f0f0f0""" else Col="""#ffffff""" if Startdate="" then Startdate="-" if Enddate="" then Enddate="-"

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 34

if User="" then User="-" else User=toHtml(User) if Node="" then Node="-" else Node=toHtml(Node) if Comment="" then Comment="-" else Comment=toHtml(Comment) file.WriteLine("<tr bgcolor=" & col & ">") file.WriteLine("<td valign=top>" & LineNo & "</td>") file.WriteLine("<td valign=top>" & Startdate & "</td>") file.WriteLine("<td valign=top>" & Enddate & "</td>") file.WriteLine("<td valign=top>" & User & "</td>") file.WriteLine("<td valign=top>" & Node & "</td>") file.WriteLine("<td valign=top>" & Comment & "</td>") file.WriteLine("</tr>") end sub ' Converts the reserved characters to HTML format toHtml function (Text) Text=Replace(Text,"&","&amp;") Text=Replace(Text,"<","&lt;") Text=Replace(Text,">","&gt;") Text=Replace(Text,"ö","&ouml;") Text=Replace(Text,"ä","&auml;") Text=Replace(Text,"ü","&uuml;") Text=Replace(Text,"Ö","&Ouml;") Text=Replace(Text,"Ä","&Auml;") Text=Replace(Text,"Ü","&Uuml;") Text=Replace(Text,"ß","&szlig;") Text=Replace(Text, vbcrlf & vbcrlf, "<p>") Text=Replace(Text, vbcr & vbcr, "<p>") Text=Replace(Text, vblf & vblf, "<p>") toHtml=Text end function

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 35

HTML Subject Data View Script Event Since version 4.00.080 ELO has a new option for displaying the data of the subject data parallel to the document. You can define the view yourself by a HTML document. Thereby you can put a file templ_X.htm for the mask type x (e.g. templ_23.htm for mask 23) in the postbox directory, which contains the subject data view. Furthermore you can deposit a file templ_default.htm for all masks, which need no special description. In this files are put appropriate placeholders for the current data (in terms of a HTML comment, so that the pages can be created with any HTML editors). Then these placeholders are replaced for view with the proper data and displayed in a browser window in the ELO client. ... <td width="80" bgcolor="#d8d8d8"><!--ELO_N_1--></td> <td bgcolor="#d8d8d8"><!--ELO_T_1--></td> ... The two lines listed above show the name(<!--ELO_N_1-->) and the content (<!--ELO_T_1-->) of the index line 1 in two cells of one table. All ELO placeholders begin with a HTML comment introduction <!--, followed by the permanent text ELO_. Afterwards follows the information , if it concerns the name (N) or the content (I). At the end stands the number of the index line and the comment is to be closed. The indicator for the index line can contain the numbers 1 till 50 (for the 50 index lines), furthermore following letters are available: A Storage date <!—ELO_T_A--> B Internal ELO number of the file attachment <!—ELO_T_B--> D Document date <!—ELO_T_D--> E Name of the owner <!—ELO_T_E--> I Internal ELO number of the document file <!—ELO_T_I--> K Short name <!—ELO_T_K--> M Mask name <!—ELO_T_M--> O Internal ELO number of the logical entry <!—ELO_T_O--> S Internal ELO number of the signature file <!—ELO_T_S--> T Document type <!—ELO_T_T--> V Validity end date <!—ELO_T_V--> Moreover you have the possibility to leave out parts of the HTML document completely, as a function of, if a value is entered or not. At the index lines you can save a lot of space, if the empty lines are not displayed. For this you add the complete region to a clip of the comment characters <!--ELO_B_xxx--> and <!--ELO_E_xxx--> (xxx stands for the line number or for one of the special characters mentioned above). ... <!--ELO_B_1--><tr> <td width="80" bgcolor="#d8d8d8"><!--ELO_N_1--></td> <td bgcolor="#d8d8d8"><!--ELO_T_1--></td> </tr><!--ELO_E_1--> ... In this example the index line 1 is included as an table line only if the text in this line is not empty. For the numerical fields with the internal ELO object numbers the 0 (no document assigned) is classified as “empty”. Table characters, which are marked as invisible or allow no reading access to the user, are also not displayed. In the HTML template files are allowed in principle all permitted TML constructs (inclusive CSS and Java Script). But keep in mind, that the scripting functions are switched of in some browsers. Furthermore you have to mind, that the source comes from a file and not from a server, all active contents (active server pages, server side includes) would not be worked on.

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 36

The script event is requested before the template file is loaded. At the time of the request the normal object properties to the document to be displayed are loaded as after a PrepareObjectEx (Id…) and the ViewFileName property contains the name of the template file to be loaded (e.g. c:\temp\templ_7.htm). Now you can redirect the template file in the script to another file (by setting the ViewFileName property). In addition you are able to change the values of the index lines if required (SetObjAttrib…).

Example for a view of the short name and the first 11 index lines (if they are not empty): <html><head> <title>ELOprofessional default mask</title> </head> <body bgcolor="#f0f0f0"> <table cellspacing=2 cellpadding=3 border=0 width=100%> <tr><td width="80" bgcolor="#d8d8d8" valign="top"><span style="font-size:8pt"><!--ELO_T_D--></span></td> <td bgcolor="#d8d8d8"><h4><!--ELO_T_K--></h4></td> </tr> <!--ELO_B_1--><tr> <td width="80" bgcolor="#d8d8d8"><!--ELO_N_1--></td> <td bgcolor="#d8d8d8"><!--ELO_T_1--></td> </tr><!--ELO_E_1--> <!--ELO_B_2--><tr> <td width="80" bgcolor="#d8d8d8"><!--ELO_N_2--></td> <td bgcolor="#d8d8d8"><!--ELO_T_2--></td> </tr><!--ELO_E_2--> <!--ELO_B_3--><tr> <td width="80" bgcolor="#d8d8d8"><!--ELO_N_3--></td> <td bgcolor="#d8d8d8"><!--ELO_T_3--></td> </tr><!--ELO_E_3--> <!--ELO_B_4--><tr> <td width="80" bgcolor="#d8d8d8"><!--ELO_N_4--></td> <td bgcolor="#d8d8d8"><!--ELO_T_4--></td> </tr><!--ELO_E_4--> <!--ELO_B_5--><tr> <td width="80" bgcolor="#d8d8d8"><!--ELO_N_5--></td> <td bgcolor="#d8d8d8"><!--ELO_T_5--></td> </tr><!--ELO_E_5--> <!--ELO_B_6--><tr> <td width="80" bgcolor="#d8d8d8"><!--ELO_N_6--></td> <td bgcolor="#d8d8d8"><!--ELO_T_6--></td> </tr><!--ELO_E_6--> <!--ELO_B_7--><tr> <td width="80" bgcolor="#d8d8d8"><!--ELO_N_7--></td> <td bgcolor="#d8d8d8"><!--ELO_T_7--></td> </tr><!--ELO_E_7--> <!--ELO_B_8--><tr> <td width="80" bgcolor="#d8d8d8"><!--ELO_N_8--></td> <td bgcolor="#d8d8d8"><!--ELO_T_8--></td>

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 37

</tr><!--ELO_E_8--> <!--ELO_B_9--><tr> <td width="80" bgcolor="#d8d8d8"><!--ELO_N_8--></td> <td bgcolor="#d8d8d8"><!--ELO_T_9--></td> </tr><!--ELO_E_9--> <!--ELO_B_10--><tr> <td width="80" bgcolor="#d8d8d8"><!--ELO_N_10--></td> <td bgcolor="#d8d8d8"><!--ELO_T_10--></td> </tr><!--ELO_E_10--> </table> </body> </html>

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 38

Special Script Events ELO knows a number of special scripts that do not need to be configured, but are recognized from their name. As soon as such a script is added to the ELOScripts directory with the respective name, all ELO clients request it during the respective action.

Freezing a Document (ELO_Freeze) The ELO client knows a function for freezing documents. For this purpose, the standard printer is switched to the ELO TiffPrinter, the document is checked in and printed from Windows via ShellExecute ("print"…). If the ShellExecute command does not process this correctly or incompletely, printing can also be carried out via a script. For this purpose, create a script named ELO_Freeze that carries out the respective actions. Before the request, the client sets the ActivePostFile parameter to the file name of the document to be printed. The script notifies via the ActionKey parameter if it wants to take care of printing itself. If the value is set to 0 (default setting), this means that ELO is to take care of the output. Value 1 confirms that the script has been responsible for printing and value 2 is an error message, causing the operation to cancel. Example: For XLS files, only the current table is printed by Excel via ShellExecute. If the document has several tables, the additional ones are not considered. The following example script is responsible for all tables to be printed. Set Elo=CreateObject("ELO.professional") FName=Elo.ActivePostFile Elo.Status "File: " & FName if UCase(Right(FName,4))=".XLS" then Set objXL = CreateObject("Excel.Application") call objXL.Workbooks.Open(FName) objXL.Visible = TRUE call objXL.ActiveWorkbook.PrintOut() objXL.ActiveWorkbook.Close Elo.ActionKey=1 end if

Thesaurus (ELO_Thesaurus) ELO can not only manage one Thesaurus but any number of them. The selection, which Thesaurus is to be used in which index line can be carried out via a script. This can then carry out the selection based on the index line (Property ScriptActionKey), the current user, the current mask or based on the group name of the index line (ActivePostFile property). The number of the Thesaurus to be used is returned via the ActionKey property. Example: Set Elo=CreateObject("ELO.professional") Elo.Status "Group:" & Elo.ActivePostFile & " Line:" & Elo.ScriptActionKey If Elo.ObjMaskNo=3 then Elo.ActionKey=1 Else Elo.ActionKey=2 End if

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 39

Reminders/Workflow Notifications (ELO_OUTLOOK) When creating a reminder date, ELO can create a respective task in Outlook. However, this is only possible if Outlook is operated on an Exchange Server and the respective authorizations are released (which is not the case especially in larger companies, as not every user is supposed to be able to create a date for any other user). In case the available setup cannot be used, it is possible to initiate any action via this script. In addition, any e-mail system can be notified in this case. Example: '=============================================== ' ELOprofessional_Outlook.VBS '=============================================== ' ' ELO reminders and workflows in Outlook ' '----------------------------------------------- ' ' The script is requested by the ELOprofessional client ' when reminder dates or ' workflows are entered into the Outlook task list ' or Outlook mails are ' generated. ' '----------------------------------------------- ' ' © 2001 ELO Digital Office GmbH ' ' Last changed: 24/10/2001 ' '----------------------------------------------- Explicit option Dim oElo, oOutlook GetOutlookObj function GetOutlookObj=false Set oOutlook=CreateObject("Outlook.Application") If Err.Number=0 Then GetOutlookObj=true End If End Function '---------------------------- ' Delete Outlook task entry '---------------------------- Sub WVDeleteOutlook Dim oMAPI, oObjRecipient, oFolder, oItems, oUserProperty, oItem Dim i, iID Set oMAPI=oOutlook.GetNameSpace("MAPI") Set oObjRecipient=oMAPI.CreateRecipient(oElo.DelOutlookName) Set oFolder=oMAPI.GetSharedDefaultFolder(oObjRecipient,13) Set oItems=oFolder.Items For i=1 To oItems.Count Set oItem=oItems(i) iID=oItem.UserProperties(1).Value If iID=oElo.WvIdent Then oItem.Delete Exit For End If

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 40

Next End Sub ' --------------------------------------- ' Reminder date as Outlook task ' --------------------------------------- Sub WVInOutlookTask Dim oMAPI, oObjRecipients, oObjRecipient, oFolder, oItems Dim oUserProperties, oUserProperty, oItem Dim i, iID Set oMAPI=oOutlook.GetNameSpace("MAPI") Set oObjRecipient=oMAPI.CreateRecipient(oElo.OutlookName) Set oFolder=oMAPI.GetSharedDefaultFolder(oObjRecipient,13) Set oItems=oFolder.Items If oElo.WVNew=1 Then Set oItem=oItems.Add oItem.Subject=oElo.WVShort oItem.Body=oElo.WVDesc Set oObjRecipients=oItem.Recipients oObjRecipients.Add(oElo.OutlookName) oItem.Importance=oElo.WVPrio oItem.StartDate=oElo.WVDate Set oUserProperties=oItem.UserProperties Set oUserProperty=oUserProperties.Add("WvId",3) oUserProperty.Value=oElo.WVIdent oItem.Save Else For i=1 to oItems.Count Set oItem=oFolder.Items(i) Set oUserProperty=oItem.UserProperties(1) iID=oUserProperty.Value If iID=oElo.WvIdent Then oItem.Subject=oElo.WVShort oItem.Body=oElo.WVDesc Set oObjRecipient=oItem.Recipients(1) oObjRecipient.Delete Set oObjRecipients=oItem.Recipients oObjRecipients.Add(oElo.OutlookName) oItem.Importance=oElo.WVPrio oItem.StartDate=oElo.WVDate oItem.Save Exit For End If Next End If End Sub ' ------------------------------------ ' Reminder date as Outlook mail ' ------------------------------------ Sub WVInOutlookMail Dim oMail Set oMail=oOutlook.CreateItem(0) oMail.Recipients.Add(oElo.OutlookName) oMail.Subject="[" & Chr(oElo.WvPrio+64) & "] -> " & oElo.WVDate & ": " & oElo.WvShort & " / (ELOprofessional)" oMail.Body=oElo.WvDesc oMail.Send End Sub ' -------------------------

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 41

' Workflow as Outlook task ' ------------------------- Sub WFInOutlookTask Dim oMAPI, oObjRecipients, oObjRecipient, oFolder, oItems, oItem Set oMAPI=oOutlook.GetNameSpace("MAPI") Set oObjRecipient=oMAPI.CreateRecipient(oElo.WFOwner) Set oFolder=oMAPI.GetSharedDefaultFolder(oObjRecipient,13) Set oItems=oFolder.Items Set oItem=oItems.Add oItem.Subject="[W] " & oElo.WFFlowName & ": " & oElo.WFName & " / (ELOprofessional)" oItem.Body=oElo.WFComment oItem.StartDate=Date Set oObjRecipients=oItem.Recipients oObjRecipients.Add(oElo.WFOwner) oItem.Save End Sub ' ------------------------- ' Workflow as Outlook mail ' ------------------------- Sub WFInOutlookMail Dim oMail Set oMail=oOutlook.CreateItem(0) oMail.Recipients.Add(oElo.WFOwner) oMail.Subject="[W] " & oElo.WFFlowName & ": " & oElo.WFName & " / (ELOprofessional)" oMail.Body=oElo.WFComment oMail.Send End Sub '----------------------------------------------- '----------------------------------------------- Sub Main Set oElo=CreateObject("ELO.professional") If Not GetOutlookObj Then oElo.ScriptActionKey=-1 Exit Sub End If Select Case oElo.ActionKey Case 1 WVDeleteOutlook WVInOutlookTask Case 2 WVInOutlookTask Case 3 WVInOutlookMail Case 4 WFInOutlookTask Case 5 WFInOutlookMail End Select End Sub Main

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 42

Keyword Lists (ELO_BUZZLIST) In case different keyword lists are to be displayed behind an index line, depending on the user or environment, the ELO_BUZZLIST script is available. With the ViewFileName parameter, the client notifies the script which keyword list would be displayed by default. This parameter can then be changed by the script and the view can be directed to a different keyword list. From Version 5.0 on the keyword lists are stored in the database. In this case the script is requested with some other parameters. The identifier for the database request is passed on by the ScriptActionKey property, it has the value 1000 (in the old form here the index line number was assigned). ViewFileName contains the group name of the index line and ActionKey shows with 1 or 2, if the request comes from the subject data dialog or from the mask dialog or the main menu. If the group name is changed , you can switch script-controlled to another keyword list, because the collecting of the list is controlled by this entry. Please note, that in the version 5.0 there is no differentiation between selecting and editing the list. If the user owns the right to edit the key keyword list, then it is possible to add new keyword entries directly in the selection. Example 4.0: Option Explicit Dim Elo '----------------------------------------------- Sub Main Dim iRet Dim sGroup Dim aGNum Dim iNum, i Dim sFileName Set Elo=CreateObject("LeitzElo.Elo32") If Elo.ViewFileName="ELOVER.SWL" then iRet=Elo.ReadUser(Elo.ActiveUserId) sGroup=Elo.UserGroups If sGroup="" Then Exit Sub aGNum=Split(sGroup,",",-1,1) iNum=UBound(aGNum) If iNum=0 Then Elo.ViewFileName=aGNum(0) & "_" & Elo.ViewFileName Exit Sub End If ReDim aGName(iNum+1) iRet=Elo.CreateAutoDlg("Select group keyword list:") For i=0 To iNum iRet=Elo.AddAutoDlgControl(3, 1,Elo.LoadUserName(aGNum(i)),"0") Next iRet=Elo.ShowAutoDlg If iRet=0 Then Exit Sub sFileName="" For i=0 To iNum If Elo.GetAutoDlgValue(i+1)="1" Then sFileName=aGNum(i) & "_" & Elo.ViewFileName End If Next If sFileName<>"" Then

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 43

Elo.ViewFileName=sFileName End If End If End Sub '----------------------------------------------- '----------------------------------------------- Main Example 5.0 Set Elo=CreateObject("ELO.Professional") if Elo.ScriptActionKey = 1000 then UserName = Elo.LoadUserName( Elo.ActiveUserId ) MsgBox Elo.ViewFileName & vbcrlf & UserName Elo.ViewFileName = Elo.ViewFileName & "." & UserName End if

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 44

Automatic Action when Starting the Program (ELO_START) Although there are explicit events "when accessing an archive" and "when exiting an archive", we have additionally defined a script (ELO_START.VBS) which starts automatically, which is requested during these actions without having to be set in the client. The script can differentiate between the two states with the ActionKey property (1: Accessing, 2: Exiting). If the explicit script event as well as the automatically starting script have been set, both scripts are executed. Upon starting, first of all the automatic, then the explicit is executed, and vice versa when exiting.

Project Default for Activities (ELO_CHECKPROJ) In many cases, when creating a new activity for a document, the subject data of the document reveal which project this new entry belongs to. For this purpose, ELO requests the ELO_CheckProj script, which can detect the information via the PopupObjectId and which can return the project name via the ViewFileName property. ' There is only one project with the name ELO set Elo=CreateObject("ELO.professional") Elo.ViewFileName="ELO" Within this call, the parameter ActionKey contains following values: 1: Creation of a new Activity, Project name can be changed. 2: Creation of a remind item. 3: Activation of the reminder items list. 4: Closing an activity item. 5: Editing an activity item. This event will not be called if more than one activity has been selected for change (5) or by closing the item via the "done" button (4). Setting the ScriptActionKey to 1 or 2 will suppress the dialog, in this case you can show your own dialog instead. ScriptActionKey 1 signals a "ok", 2 signals an "abort".

Special Handling Upon New Storage of Documents When a document is added to the archive for the first time, a script can take control of the storage process. The process becomes active as soon as the user adds a new document to the archive, either from the postbox or via drag & drop from Windows Explorer. Immediately before ELO displays the storage mask, it is checked whether a script named "ELO_EXT_[Extension]" is available in the system, so a specific handling can be linked to a document type (e.g. "ELO_EXT_DWG" for handling AutoCAD drawings). If the respective script is available, it is started. The ELO property ViewFileName contains the name of the file to be stored, the ObjMainparent property contains the ID of the storage structure element, to which the user has added the document. The script can now carry out the complete document storage on its own, e.g. additional documents that are linked to the original document can be added to the archive with this process. The subject data creation must be carried out within the script. Via the ScriptActionKey property, ELO is informed that the storage process has been taken over by the script, so that no further actions are required by ELO itself. For this purpose, the property is set to the value -30.

Suppress “Document of the Backup” Dialog (ELO_READDOC) If a document is not loaded in the archive view, a dialog appears which offers the user a selection between cancel, try again and load again from backup. By the ELO_READDOC script you can suppress this dialog and effect the decision of the user by an own script. This behaviour is controlled by the ScriptActionKey property. Following values are available: 0: Show normal dialog

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 45

1: No dialog, go on with “cancel” 2: No dialog, go on with “retry” 3: No dialog, go on with “from backup” Caution: This request runs in a loop until the document is either loaded or the user decided to cancel. If you always choose “retry” or “backup” in the script and the document cannot be loaded, the program gets stuck at this position.

Own Reports You can select various preset activity reports from the context menu in the archive view. In addition, you can create up to 4 of your own reports here. All reports are possible that can be triggered via a WHERE clause with an SQL command. The own reports are selected via a script. For this purpose, you must create an entry with the name ELO_ACTSELECT. This contains two actions each for each of the 4 possible reports: a) issue the name in the menu and b) compose the SQL command. For this purpose, the values 1..4 are transferred for a) and values 101..104 for b) in the "ActionKey" property. The script returns the desired value in the ViewFileName property. Example: Set Elo=CreateObject("ELO.professional") select case Elo.ActionKey case 101 Elo.ViewFileName="Recp m.thiele" case 1 Elo.ViewFileName="destination like 'm.thiele'" case 102 Elo.ViewFileName="Back today" case 2 ToDay=Date IsoToDay=Right(ToDay,4)+Mid(ToDay,4,2)+Left(ToDay,2) Elo.ViewFileName="backat like '"&IsoToDay&"'" end select

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 46

Requesting Scripts

The scripts created within the script management can be requested in various ways:

-Request from the context menu of the icon bar:

In any ELO view, press the right mouse button when the cursor is positioned on the icon bar, you can then start one of your scripts from the menu which is subsequently displayed.

-Request via User button:

In each view, 8 buttons are available that can be allocated to one script each. For this purpose, first of all the script menu must be opened (press right mouse button on icon bar) once the cursor is placed on one of the four buttons. If a menu option (=script name) is now selected with the Ctrl key pressed down at the same time, this script is allocated to the button of the current view. The current allocation becomes visible when the mouse is positioned above the button. If a script allocation is to be removed from the button, click on the button with the Ctrl key pressed down. After reinstallation of ELO, the buttons are not visible by default and may have to be activated with the Configure toolbar view function. In order to display an icon on the script button, a BMP file must be created sized 24 x 24 pixels, and stored under the name of the script in the ELO script directory. -Request via context menu:

In each view, the respective context menu can be supplemented by script requests. If a script is to be added to the context menu of a certain view, this view must first be selected. The respective script is then selected in the context menu of the icon bar while pressing down the Shift and Ctrl keys at the same time. In order to remove a script from the context menu, the script is selected in the context menu while the Ctrl key is pressed down. -Request via ELO menu options or buttons:

Each menu item and each button in the ELO main view can be allocated to a script, which is then requested instead of the original function. Within the script it can be determined whether the original ELO function is still to be requested after the end of the script or whether it is going to be discarded. This script allocation is carried out via the internal name of a menu option or button. The name of the script must begin with a ".", followed by the control name (menu option or button). A list of the controls can be found in the documentation’s appendix of the ELO automation interface. When the script is requested for the first time, the ActionKey property has the value 40. The script can control the subsequent process by setting the ScriptActionKey property. 20 = Original ELO function is requested at the end of the script 21 = Original ELO function is requested at the end of a script, then the script is started again, this time with the ActionKey 0.

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 47

Form Detection API

Overview The form detection in ELO proceeds within two or fore steps. In a first step the rectangle areas of the document are marked, which are necessary for the classification of the document type. Typical areas here are the texts “invoice” or “delivery note” or as well a firm name (no graphic elements). This areas then are edited, detected and filed in a text list by the OCR software. For this there is the extended OCR API from version 2.05.104 on. In a second step now is searched for characteristic patterns for every document type in the detected texts. If a certain invoice has the text “invoice” followed by an invoice number at a pretended place (in the upper activated rectangle list), thus only the appropriate invoice text has to be checked for this pattern for the detection of this form. For this the pattern detection API (also new from version 2.05.104 on) is used. If the form type was detected, it can be proved to be necessary to read additionally text regions. So you can detect in addition to the invoice form the order number, customer number or the invoice amount. In principle this step can occur directly with step 1. But thereby please note, that in this step you would have to analyze all rectangle areas for all possible document on suspicion. Since that can be very complex (time-consuming), in general it is more reasonable for a larger amount of types to displace this to a third step. After all text regions are read and the document type is certain, now the indexing has to be extracted systematically out of the text blocks. At this fourth step (which maybe was already covered by step two in easy applications) the pattern detection API is used again.

Commands of the Pattern Detection-API Function OcrAddRect Function OcrAnalyze Function OcrClearRect Function OcrGetPattern Function OcrGetText Function OcrPattern The use of this commands is demonstrated in the following examples. The exact parameters you can extract from the command list.

Examples Example 1: invoice detection This first example emanates from a quite simple case. There are only two possible document types, an invoice and the rest of the world. Only the invoice number shall be indexed. In the first step the rectangle list with the region for the invoice text with the appropriate number is set by the OCR-API and the detection starts.

x=ELO.OcrClearRect() x=ELO.OcrAddRect("500,10,999,100") x=ELO.OcrAnalyze(FileName,0)

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 48

In the second step now is checked, if the form is an invoice. For this it is checked, is the text “invoice” followed by the invoice number can be detected in text block 1.

CntRechnung=ELO.OcrPattern(10,"*'Invoice'_N*", ELO.OcrGetText(0)) Here it is searched for a pattern of 5 parts:

1. Any, maybe empty, prefix of any characters (e.g. because from above foreign characters rise into the rectangle caused by an unpurified scanner feed)

2. The text ‘invoice’ 3. Any long, maybe empty, string of empty characters 4. A number (invoice number) 5. any further text (e.g. also the characters that do not belong to the current text but which rise into the

detection rectangle) If the pattern was detected, the function returns the value 5 (= number of pattern parts), in case of an error you receive a negative value. After that the text for the several pattern parts is available in a text field.

If CntRechnung=5 then ’ it is an invoice, 5 pattern blocks were detected ELO.PrepareObjectEx(0,254,InvoiceMaskNo) ELO.SetObjAttrib(0, ELO.OcrGetPattern(3)) … end if

The four-step work in this simple example reduces to two steps. Step 3 escapes, since no further OCR regions have to be read and step 4 escapes, because the indexing was already detected during the classification. By the check, if it is an invoice, the invoice number was also immediately imported in the pattern text field and can be used directly. Example 2: Invoice/Delivery note detection This example still emanates from a quite simple case. There are only two possible document types, an invoice and a delivery note. Only the invoice or the delivery note number each shall be indexed. In the first step the rectangle list with the two regions for the invoice text respectively the delivery note text, with the appropriate number each, is set and the detection starts.

x=Elo.OcrClearRect() x=Elo.OcrAddRect("500,250,999,390") x=Elo.OcrAddRect("500,10,999,100") x=Elo.OcrAnalyze(FileName,0)

Following it is checked, if the form is an invoice or a delivery note. For this it is checked, if the text ‘invoice’ can be detected in text block 1 or if the text ‘delivery note’ exists in text block 2.

CntInvoice=Elo.OcrPattern(10,“*’Invoice’*“, Elo.OcrGetText(0)) CntDeliveryNote=Elo.OcrPattern(10,“*’Delivery Note’*“, Elo.OcrGetText(1)) If CntInvoice<0 then ’ it is no invoice If CntLieferschein<0 then ’ it is also no delivery note, so nothing is done DocType=0 else ’ delivery note DocType=1 End if Else ’ it is an invoice

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 49

if CntDeliveryNote<0 then ’ it is really only an invoice DocType=2 Else ’ it is an invoice and a delivery note, a fault is existent here DocType=0 End if End if

Now the entry in the indexing. Further rectangles are not read in this simple example, the invoice or delivery note number is already detected by the OCR.

Select Case DocType case 1 ‘DeliveryNote ELO.PrepareObjectEx(0,254,DeliveryNoteMaskNo) CntDeliveryNote=Analyze( “*’Delivery Note’_N*“, OcrText(1) ) If CntDeliveryNote=5 then ELO.SetObjAttrib(0, Elo.OcrGetPattern (3)) ... end if case 2 ‘Invoice ELO.PrepareObjectEx(0,254,InvoiceMaskNo) CntInvoice=Analyze( “*’Invoice’_N*“, OcrText(0) ) If CntInvoice=5 then ELO.SetObjAttrib(0, Elo.OcrGetPattern (3)) … end if end select

Example 3: Form detection trade fair-demo The following example is a complete script for the detection of three different forms and automatic storage in the archive (if required the directory is created as well).

'OCRELO.VBS 24.08.2000 '------------------------------------------------------------------ ' © 2000 ELO Digital Office GmbH ' Author: M.Thiele ([email protected]) '------------------------------------------------------------------ ' This script analyzes the postbox documents for certain texts ' which are marked by invoice numbers and then files the detected ' invoices into the appropriate tab (which are automatically ' created if required) ' ' ----------------------------------------------------------------- set Elo=CreateObject("ELO.professional") MaskNo=Elo.LookupMaskName("ELOInvoice") ' run through all postbox entries (at most 200) Elo.SelectView(3) ' firstly analyzing all documents Elo.Status "Analyze documents" Elo.UnselectAllPostboxLines for i=0 to 300 res=Elo.PrepareObject( -1,i,MaskNo ) if res=-6 then exit for

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 50

end if if Elo.ObjShort="" then fname=Elo.ActivePostFile if UCase(Right(fname,4))=".TIF" then x=Elo.UpdatePostboxEx( 20,i ) x=Elo.Status(fname) Analyze i, fname Elo.UnselectPostboxLine(i) end if end if next ' and now assign the detected documents in the archive for j=i to 0 step -1 Move(j) next ' shortly cleaning the postbox view ... x=Elo.UpdatePostboxEx(0,0) Elo.Status("Finished") ' ... finished ' Help functions ' ' this function assigns a detected documents in the archive sub Move( iPostLine ) res=Elo.PrepareObject( -1, iPostLine, 0 ) if res>0 then Text=Elo.ObjShort Elo.Status("File: " & Text) Datum=Mid(Text,12,10) Kdnr=Mid(Text,23,10) Renr=Trim(Left(Text,10)) if Len(Date)=10 and Len(Ctno)>0 then if Left(Ivnr,3)="300" then Ivnr=Ivnr & " (Credit)" else Ivnr=Ivnr & " (Invoice)" end if Elo.ObjShort=Ivnr iRet=Elo.AddPostBoxFile("") RegId=CheckRegister( Date, Ctno ) if RegId>0 then x=Elo.MoveToArchive( "#" & RegId ) end if end if end if end sub ' this function checks, if the target tab for a document exists ' and creates it if required function CheckRegister( Date, Customerno ) RegId=Elo.LookupIndex( "RELO=" & Right(Date,4) & ":" & Customerno ) if RegId<1 then ' tab does not exists, will be created DirectoryId=Elo.LookupIndex( "¿ELO Invoices¿" & Right(Date,4) ) if DirectoryId>0 then ' directory found, now creating the tab if Elo.PrepareObjectEx( 0,253,0 ) then

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 51

Elo.ObjShort= Customerno x=Elo.SetObjAttrib(0,Right(Date,4) & ":" & Customerno) x=Elo.SetObjAttribKey(0,"RELO") Elo.ObjFlags=4 Elo.ObjIndex="#" & DirectoryId Elo.UpdateObject() RegId=Elo.GetEntryId(-2) end if end if end if CheckRegister=RegId end function ' this function executes an OCR analysis for the current postbox ' document and puts the invoice number into the short name if a ' known document type was found sub Analyze( iPostLine, FileName ) x=Elo.OcrClearRect() x=Elo.OcrAddRect("500,250,999,390") x=Elo.OcrAddRect("500,10,999,100") x=Elo.OcrAnalyze(FileName,0) if x<0 then exit sub end if 'x=Elo.OcrPattern( 10,"*", Elo.OcrGetText(0) ) 'MsgBox Elo.OcrGetPattern(0) 'x=Elo.OcrPattern( 10,"*", Elo.OcrGetText(1) ) 'MsgBox Elo.OcrGetPattern(0) Elo.ObjShort="" Elo.ObjMemo="" found=false if not found then x=Elo.OcrPattern( 10,"'Invoice'L'Number:'NL'Date:'*L'Orderno.:'NL'Customer-No.:'NL*", Elo.OcrGetText(0)) if x>0 then 'ELO Invoice Elo.ObjShort=Left(Elo.OcrGetPattern(3)&" ",10) & " " &Elo.OcrGetPattern(6) & " " & Elo.OcrGetPattern(12) x=Elo.SetObjAttrib(0,Elo.OcrGetPattern(12)) x=Elo.SetObjAttrib(1,Elo.OcrGetPattern(3)) x=Elo.SetObjAttrib(2,Elo.OcrGetPattern(9)) Elo.ObjXDate=Elo.OcrGetPattern(6) found=true end if end if if not found then 'ELO Credit x=Elo.OcrPattern( 10,"*'Credit'L'Number:'NL'Date:'*L'Order-No.:'NL'Customer-No.:'N*", Elo.OcrGetText(0)) if x>0 then Elo.ObjShort=Left(Elo.OcrGetPattern(4)&" ",10) & " " &Elo.OcrGetPattern(7) & " " & Elo.OcrGetPattern(13) x=Elo.SetObjAttrib(0,Elo.OcrGetPattern(13)) x=Elo.SetObjAttrib(1,Elo.OcrGetPattern(4)) x=Elo.SetObjAttrib(2,Elo.OcrGetPattern(10)) Elo.ObjXDate=Elo.OcrGetPattern(7) found=true end if end if

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 52

if not found then 'NOKIA Invoice x=Elo.OcrPattern( 10,"*'Invoice'n*'Customernumber'N*", Elo.OcrGetText(1) ) if x>0 then Elo.ObjShort=Left(Elo.OcrGetPattern(2)&" ",10) & " 01.01.2000 " & Elo.OcrGetPattern(5) x=Elo.SetObjAttrib(0,Elo.OcrGetPattern(5)) x=Elo.SetObjAttrib(1,Elo.OcrGetPattern(2)) Elo.ObjXDate="01.01.2000" found=true end if end if if found then iRet=Elo.AddPostBoxFile("") end if Elo.Status "Detect line " & i & " : " & Elo.ObjShort end sub

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 53

Syntax of the format strings of the pattern detection For the pattern detection only a format string is to be pretended. The check, if the text is enough for this pattern and the division of the text into the pattern parts is accomplished in one step in ELO. Please note, that a pattern may be made up of at most 32 parts (in version 104, maybe later it is changed). Following pattern parts are available: * Any text This partial pattern accepts any text, it can also be empty. You can specify

additionally a length in front of the star, the detected text has to be at least as long as the presetting claims.

_ Empty character This partial pattern accepts any , also empty, string of empty characters. Specifying a length in front of the underscore leads to a detection of a string with the exact presetting.

L Line break This partial pattern detects a line break (exactly one). A number in front of the L (e.g. 3L) claims exactly this amount of line breaks.

N Number It is detected any long string of numerics (but no empty string). The first character which is no numeric closes this string (line break and empty characters as well). If a multiplier is prefixed, a numeric string of exactly this length is detected. Example: ABC12345XYZ *N* detects [ABC][12345][XYZ] *3N* detects [ABC][123][45XYZ] *6N* detects nothing, because there is no numeric string of this length.

n Number (special OCR)

As for N (Number) – the difference is, that this form accept also letters, which are similiar to certain numerics (O, o and Q are detected as a 0 (zero), I and l are detected as 1 (one).

“...“ Text The text between the double quotes is accepted. Thereby the text has to be existent exactly in this form, no additional empty characters or line breaks are detected. Example: xyzInvoice 123 *“Invoice“_N* detects [xyz][Invoice][ ][123][] *“Invoice“N* detects nothing, the empty character was not considered in the format string *“INVOICE“_N* detects nothing, because invoice is written another way

’...’ Text As for the double quotes, but the text is not detected case sensitively. In the example above only the third case would be detected.

Annotations

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 54

Please note, that the detection algorithm searches until it reaches a “match” or until it is sure, that there is none. It does not get stuck at partial solutions. An innocent implementation could locate the text “invoice” of the invoice copy at the pattern “*’invoice’_N*” and the text “xxx invoice copy yyy invoice 12345 zzz” and after no number is following, it could abandon. ELO whereas goes on with its search after this failure and detects the text as you are expecting it. Especially the pattern * causes a high internal efford, since in case of doubt many possibilities must be analyzed. Anyway it often is necessary to use this operator. Particularly the patterns should be framed in general by a *…*. By that “grungy characters” are intercepted at the beginning or the end of the text. There are often caused by foreign characters, which rise into the detection rectangle. Anyway it should be used only where it is justified. The unnecessary, but seeming harmless combination ** does not change the detection result, but it has a very adverse influence on the performance. The pattern ** forces ELO to control the possibilities [][abcd], [a][bcd], [ab][cd], [abc][d], [abcd][] of the text “abcd”. Don’t put too much in one pattern. If you have rectangle with successive lines with invoice number , customer number, order number and job number in an invoice, you can search singly for every number. But you can also formulate a complex search pattern *’invoice’_N*’customer’_N*’order no.’_N*’job’_N*. In the second case all numbers would be expected in one pass. But as soon as one of these numbers was not realized correctly by the OCR software (e.g. cuslomer instead of customer) no more numbers will be detected. If the indexing is interesting you only if all was detected, the second variant is adequate. If you hold the view, that as much as possible should be detected and only the missing parts have to be supplemented, then you should let the number be detected singly. Even for complex patterns it can easily happen, that it is not detected although the text should allow that. Since there are no special “pattern debugger”, here only a stepwise try and error can help. Beginning with the “defective” pattern *’invoice’_N*’customer’_N*’order no.’N*’job’_N* you can test *’invoice’* in one step. After that you check *’invoice’_N* *’invoice’_N*’customer’* *’invoice’_N*’customer’_N* etc... The pattern is always extended by one (or more too) step(s). Mind, that you always finish the pattern with a *. This * is the match for the whole rest. If it is missing, nothing will be detected.

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 55

List of the Available OLE Functions

General Information about the Functions The return values of the functions normally contain an error code. In these cases, negative values indicate a function failure, positive values indicate correct execution. ELO works internally with so-called ObjectIDs. These are (within an archive) unique values, which are allocated to each entry upon creation and via which the entries can be requested again at any time. If you require any references directly from ELO in your program and want to store them, you should use this ObjectId and not the name. The ObjectId remains unchanged and guaranteed for the entire duration of the entry, however, the name can be changed by the user or by other programs.

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 56

Property ActionKey (int, read only) Some ELO events together trigger a script handling. In this case it can be determined via the ActionKey what kind of event has occurred. Dialog: Edit document Dialog opened in postbox view, document type not

yet defined 19

Mask accessed 20 Mask closed with Save 21 Event: Mask closed with Cancel 22 Document type changed 23 Request button list 24 After edit mask field Short name field accessed 10 Short name field closed 11 Memo field accessed 12 Memo field closed 13 Date field accessed 14 Date field closed 15 Index entry line n accessed 1000+n (n=0..49) Index entry line n closed 2000+n Pressed user-defined button 3000+n Before importing/exporting Before importing a storage structure element 1 Before exporting a storage structure element 2 When checking in/out After checking out 30 Before checking in, after requesting version 31 After checking in 32 Before checking out 33 Before checking in, before requesting version 34 Before discarding 38 Before activating/displaying 80 Before printing 81 Register CheckIn/Out 1001…1005 Reading/saving user Immediately before saving 20000 After saving 20001 After reading 20010 Keyword list Before editing the keyword list 1 Before displaying the keyword list 2 Reminder Date as task for other user 1 Date as task for own use 2 Date as e-mail 3 ClickOn Event Selection of a button or menu option 40 Workflow Event Only display workflow date in ELO 3 Workflow date as task 4 Workflow date as e-mail 5 Freezing the document Before printing 0 These numbers are overwritten by the value 0x8000, if it is a research mask and not a data mask. This information must be evaluated by all means, otherwise there may be undesired effects when trying to find documents! Example (store as AutoShortdes script and enter under "When editing the subject data" script event): ' here the number of the document mask is to be stored

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 57

' which is to automatically enter the short name from the index lines ' one and two via the script. DocumentMask = 2 Set Elo=CreateObject("ELO.professional") if Elo.ActionKey=21 and Elo.ObjMaskNo=DocumentMask and Elo.ObjShort="" then ' writing occurs at the end of the subject data, if the ' correct mask is set and no short name is available yet. Elo.ObjShort=Elo.GetObjAttrib(0) & " " & Elo.GetObjAttrib(1) end if Also see:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 58

Function ActivateFlow With this function a process is started within the process control. int ActivateFlow (int FlowID, int ObjectID, int FlowUser, AnsiString FlowName) Parameters: FlowID Internal ELO number (ID) of the process scheme (e.g. determined with FindFlowTemplate) ObjectID Internal ELO number (ID) of the ELO object which is allocated to the process FlowUser ID of the user who starts the process

FlowName Name of the new process Return values: -2: Error when activating the process

-1: No work area active >=0: ID of the newly started process scheme

Example: newCaption="sub " & elo.NodeFlowName if Left(newFlowName,5)="CALL " then newFlowName=Trim(Mid(newFlowName,6,100)) newFlowNo=elo.FindFlowTemplate(newFlowName) if newFlowNo>0 then if elo.OpenChildNodes>0 then if elo.GetChildNode>0 then FlowId=elo.NodeFlowId NodeId=elo.NodeId Dept=elo.NodeDepartment EloId=elo.NodeObjectId Msg = FlowId & "," & NodeId & "," & EloId & "," & Dept 'MsgBox Msg res=elo.ActivateFlow(newFlowNo, EloId, elo.ActiveUserId, newCaption & "¿" & Msg) if res<0 then MsgBox "Error " & res & " when activating the sub program flow" end if end if end if else MsgBox "Unknown workflow " & newFlowName & " " & newFlowNo end if else MsgBox "No workflow CALL node" end if Also see: FindFlowTemplate StartFlow

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 59

Property ActivePostFile (AnsiString) The property includes the access path and name of the active postbox file. This entry is made through actions that carry out a new postbox entry (e.g. scanning or AddPostboxFile). From version 3.00.508 this property can also be named. With this you can make a file active that is already present in the postbox. Also see: AddPostboxFile PrepareObject

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 60

Property ActiveUserId (int, read only) The ActiveUserId property supplies the internal ELO user number of the active login. Also see: LoadUserName FindUser SelectUser

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 61

Property Activity (AnsiString) The Activity property sets or reads the current value of an activity. This value is only valid for the event routine "When reading or writing an activity". If the value is requested at other times, there may be errors up to a protection fault. The value of the activity is a string that includes all fields. These are separated by the separator (i.e. ¿). Available from:

3.00.510 Example: ' When writing an activity, "Test99" is entered in the comment field, ' when reading, the text version of the activity is displayed in a messageBox. Set Elo=CreateObject("ELO.professional") if Elo.ActionKey=0 then act=split(Elo.Activity, "¿") act(15)="Test99" Elo.Activity=join(act,"¿") end if if Elo.ActionKey=1 then MsgBox Elo.Activity end if

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 62

Function AddAutoDlgControl (int, int, AnsiString, AnsiString) Available from: Ver 3.00.228 Creates elements in the dialog previously created with CreateAutoDlg. A CreateAutoDlg must be requested beforehand! int AddAutoDlgControl (int Type, int GridInc, AnsiString Caption, AnsiString Default)

Type Created object Caption Default

1 Label Label text No function 2 CheckBox Text behind checkbox 1 – Checked otherwise unchecked 3 Radio button Text behind selection button 1 – Checked otherwise unchecked 4 Edit field Text before the entry field Text of the Edit field

GridInc:

Horizontal position of the object (permitted values: 0 to ?) Return value: 1 – Object was created. Example: Creates a dialog with a label at top position, an Edit field below with entered content and displays it. Elo.CreateAutoDlg ("New dialog") Elo.AddAutoDlgControl (1,0,"Top label","") Elo.AddAutoDlgControl (4,1,"Your name","Smith") Elo.ShowAutoDlg Also see: CreateAutoDlg ShowAutoDlg GetAutoDlgValue

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 63

Function AddLink Connects two ELO objects (document or storage structure elements) through a logical link. Any entries without hierarchical considerations can be linked. One object can also be linked to several other objects. int AddLink (int StartObject, int TargetObject) Parameters:

StartObject: ObjectId of the entry on which link is based TargetObject: ObjectId of the entry to which the link shows

Return values:

-2: Error when writing the link -1: No work area active 1: Link added

Available from:

3.00.270

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 64

Function AddNote

Function AddNoteEx Adds another self-adhesive note to a document. Please note that there is a maximum number of self-adhesive notes for a document, more are not displayed, but not marked as faulty when saved. Please note, that this function does not result in an update of the view on the actually displayed document. int AddNote (int ObjId, int NoteType, AnsiString NoteText) int AddNoteEx (int ObjId, int NoteType, AnsiString NoteText, int PageNo, int x, int y) Parameters:

ObjId: Number of the logical document NoteType: Type of self-adhesive note NoteText: Text body of the note Page No: Page number 1..n for Tiff-documents with a faded-in post-it note; 0: only icon X: x-position in the Tiff-document Y: y-position in the Tiff-document

Return values:

-5: Invalid note type 1..3 -4: Target object is not a document -3: Target object could not be determined -2: Error when writing the self-adhesive note -1: No work area active >0: Saving ok, return value is internal note number

Available from:

4.00.138

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 65

Function AddPostboxFile This function transfers one file to the postbox. For this purpose, a new entry must be prepared first of all with PrepareObject, the short name and other values must be set via the various properties and the function must then be requested. The file is then copied and stored in the postbox together with the subject data. After requesting this function, the new entry then automatically becomes the "active postbox entry", it then is the source for some further functions. There is another special case for this function: when the "active postbox entry" is changed and is to be saved again in the postbox, this function is requested with an empty string as parameter. This opportunity is for example used by the barcode postprocessing. int AddPostboxFile (AnsiString SourceFile) Parameters:

SourceFile file to be copied Return values:

-3: Error when saving. -2: No active postbox entry available -1: Error when transferring to postbox 1: Ok

Example: open first postbox document, allocate mask number 2 to it and automatically enter the short name as well as first index field. Afterwards, the document is transferred to the archive on the path prescribed: ' Target tab for the document RegisterId = "¿Cabinet¿Folder¿Tab" MaskNo = 2 Set Elo=CreateObject("ELO.professional") ' To be sure, first update the postbox Elo.UpdatePostbox x=Elo.PrepareObjectEx(-1, 0, MaskNo) if x>0 or x=-5 or x=-7 then Elo.ObjShort="Test" & Time call Elo.SetObjAttrib(0,"Index 1") call Elo.AddPostboxFile("") x=Elo.MoveToArchive(RegisterId) else MsgBox "No document found in postbox" end if Also see: MoveToArchive LookupIndex UpdateDocument InsertAttachment

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 66

Function AddSignature This function adds an extern signature file to an existing document. The script has the responsibility to guarantee, that the signature actually belongs to the document. In case of an error an invalid signature is displayed to the user. int AddSignature (int ObjectId, AnsiString SignatureFile) Parameters:

ObjectId Logical ELO Document-Id SignatureFile File with the information of the signature

Return values:

-2: Error while saving the signature file -1: No workspace open 1: Ok

Example: ... Result = Elo.MoveToArchive( DestPath ) If Result > 0 then Id = Elo.GetEntryId(-2) MsgBox Elo.AddSignature( Id, "d:\temp\00016882.ESG" ) End if ... Available from: 4.00.180

See also:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 67

Function AddSw Adds a new entry into a keyword list. Each entry contains a unique two letter level information: AA, AB, AC .. ZZ per level. The root level starts with a dot. „.AAABAC“ starts at the base with the first entry, within this with the second subentry, within this selects the third subentry. The group parameter is connected to the group entry in the keywording form. AnsiString AddSw( AnsiString Group, AnsiString Parent, AnsiString NewEntry) Parameters:

Group Selects a keyword list Parent Path of the subtree NewEntry New keyword entry

Return values:

-1: no work area active -2: error when writing -3: invalid or unknown parent path others: Position of the new entry

Example ... Set Elo=CreateObject("ELO.professional") call Elo.DeleteSwl( "THM", "." ) MsgBox Elo.AddSw( "THM", ".", "1" ) MsgBox Elo.AddSw( "THM", ".AA", "1.1" ) MsgBox Elo.AddSw( "THM", ".AA", "1.2" ) MsgBox Elo.AddSw( "THM", ".AA", "1.3" ) MsgBox Elo.AddSw( "THM", ".", "2" ) MsgBox Elo.AddSw( "THM", ".", "3" ) MsgBox Elo.ReadSwl( "THM", ".", " - " ) MsgBox Elo.ReadSwl( "THM", ".AA", " - " ) call Elo.UpdateSw( "THM", ".AB", "2a" ) MsgBox Elo.ReadSwl( "THM", ".", " - " ) ... Available from 5.00.066

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 68

Function AddThesaurus This function creates a Thesaurus entry in the database. Every Thesaurus group has to own an explicit group number (GroupId), if you assign a 0 to the group at the first entry, ELO acquires a new random number. The Prio parameter defines the sort order, the ListId parameter has to be set permanently to 1 at the moment (Thesaurus in the subject data dialog). int AddThesaurus (int ListId, int GroupId, int Prio, AnsiString Value) Parameters:

ListId Region, set to 1 for the subject data GroupId Thesaurusgroup, 0: acquire a new group Prio Sort order Value Text

Return values:

-2: Error while saving the file -1: No workspace open >0: Ok, GroupId

Example: Set Elo=CreateObject("ELO.professional") Group = Elo.AddThesaurus( 1, 0, 10, "Tool" ) MsgBox Group if Group > 0 then MsgBox Elo.AddThesaurus( 1, Group, 20, "Hammer" ) MsgBox Elo.AddThesaurus( 1, Group, 30, "Screwdriver" ) MsgBox Elo.AddThesaurus( 1, Group, 40, "Nippers" ) end if Available from:

4.00.214

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 69

Function AnalyzeFile This function sends the content of a postbox file to the OCR module and enters the detected sections into predefined mask fields. The name of the postbox file can be transferred with SourceFile. Alternatively, in this parameter a line number (#0, #1, #2 ...) can be transferred. The respective file from the postlist is then used as file name. After detection, the result is saved in the keyword file for the image file. The OcrDescriptor parameter contains the list of the rectangles to be checked and the mask fields to be filled. A detailed description of this list can be found in the barcode documentation. Compared to the barcode module, the rectangle must be defined as follows: "R(left,top,right,bottom)" int AnalyzeFile (AnsiString SourceFile, AnsiString OcrDescriptor, int MaskNo) Parameters:

SourceFile File to be checked or postlist line numbers (with #number). OcrDescriptor Rectangle list, in barcode format. MaskNo Document type of the keyword file to be created

Return values:

-6: error while writing the detected data -5: error during OCR editing -4: faulty rectangle list -3: no rectangle list available -2: OCR subsystem not loaded -1: no workspace open 1: ok

Also see: AddPostboxFile ReadBarcodes

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 70

Property ArchiveDepth (int) With this property you can determine the number of hierarchy levels of the current archive. For this the level of the documents is included in the count, i.e. a classic ELO archive with the file structural elements Cabinet-Folder-Tab-Document has 4 hierarchy levels. If the archive view is not active yet, the ArchiveDepth property has the value –1. Also see:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 71

Function ArcListLineId With this function the ELO ObjectId of a line from the right archive list can be detected. int ArcListLineId (int LineNo) Parameters:

LineNo Line to be selected

Return values:

-2: Invalid line number -1: No work area active >0: ObjectId

Available from:

5.00.036 Example:

Set Elo = CreateObject( "ELO.professional" ) for i = 0 to 8 res = res & Elo.ArcListLineSelected( i ) & " - " & Elo.ArcListLineId( i ) & ", " next for i = 0 to 3 Elo.SelectArcListLine( i ) next for i = 4 to 7 Elo.UnselectArcListLine( i ) next Elo.SelectArcListLine( 8 ) MsgBox res

See also: UnselectArcListLine SelectArcListLine

ArcListLineSelected

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 72

Function ArcListLineSelected With this function you can check, if a line is selected in the right archive list. int ArcListLineSelected (int LineNo) Parameters:

LineNo Line to be selected

Return values:

-2: Invalid line number -1: No work area active 0: Line not selected 1: Line selected

Available from:

5.00.036 Example:

Set Elo = CreateObject( "ELO.professional" ) for i = 0 to 8 res = res & Elo.ArcListLineSelected( i ) & " - " next for i = 0 to 3 Elo.SelectArcListLine( i ) next for i = 4 to 7 Elo.UnselectArcListLine( i ) next Elo.SelectArcListLine( 8 ) MsgBox res

See also: UnselectArcListLine SelectArcListLine

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 73

Function AssignWorkflowUser (int) With the aid of this function workflow nodes which are addressed to a user group can be assigned to a single user. By that the function “accept workflow” of the client can be cloned. int AssignWorkflowUser (int iLine, int iUserID, int iFlags)

Parameters: iLine Line number of the entry inside the task list (0-indexed) -1 = use currently selected line iUserID ID of the user, who shall receive and edit the node, the currently logged-in ELO-user can be entered by the ActiveUserID property iFlags reserved Return values:

-7 Error while assigning the new user -6 Line contains no workflow entry with group node -5 Line contains no workflow entry -4 Invalid line number (at iLine<>-1) -3 No line selected (at iLine=-1) -2 Task view not active -1 No work area active

Available from:

4.00.220

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 74

Property AttId (int) The AttId property defines the working version of the file appendix of a document. This entry has to be extracted of the list of the existing attachments, a foreign entry can lead to serious disfunctions here. Available from:

5.00.042 Example: Set ELO = CreateObject( „ELO.professional“ ) MsgBox Elo.AttId See also: MaskKey DocKey DocKind DocPath

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 75

Property AutoDlgResult (AnsiString) Available from: Ver 3.00.228 This property transfers the result for all objects of the AutoDialog. The individual values are separated by a return. Example: Transfers the content of the Edit field. Elo.CreateAutoDlg ("New dialog") Elo.AddAutoDlgControl (4,1,"Name","") Elo.ShowAutoDialog MsgBox Elo.AutoDlgResult

Also see: CreateAutoDlg AddAutoDlgControl ShowAutoDlg GetAutoDlgValue

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 76

Function Backup (int, int, int) The Backup and BackupPath functions aren’t supported by current clients anymore and are only listed in the OLE interface for compatibility reasons. Since version 3.0 the Backup-functions are executed by the backup server and not by the client anymore.

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 77

Property BackupPath (AnsiString) The Backup and BackupPath functions aren’t supported by current clients anymore and are only listed in the OLE interface for compatibility reasons.

Since version 3.0 the Backup-functions are executed by the backup server and not by the client anymore.

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 78

Function BringToFront With the BringToFront function you can bring ELO into the foreground on the desktop and thus make it visible for the user if ELO has previously been hidden by other remotely controlled applications. void BringToFront () Parameters: none Return values: none

Also see: EloWindow

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 79

Function ChangeObjAcl (int ObjId, AnsiString Acl, int Option) Available from: 3.00.??? With this function, the access rights for the objects can be allocated and/or changed. AnsiString ChangeObjAcl (int ObjId, AnsiString Acl, int Option)

ObjId: Internal ELO ID Acl : Rights to be allocated. Multiple rights are to be separated with a comma. Format : XYZ XY: RW – Write and read authorization RD – Read authorization WT – Write authorization KY – Key Z : User number / Group number/ Key number Option : 32 Bit integer mask

x x x x x x x x x x x x x x x x x x x x x x x x x x x 0 4

0 3

0 2

0 1

0 0

00 0 – Add rights

1 – Overwrite rights 01 0 – Forward non-subordinated objects

1 – Forward to subordinated objects (not implemented) 02 0 – Forward identical rights (not implemented)

1 – Only forward changes (not implemented) 03 0 – Warning dialog for own rights removal on

1 – Warning dialog for own rights removal off 04 0 –

1 – Accept predecessor rights (not implemented) x At present unused (reserved for extensions)

Return value:

-1 - No work area active -2 - insufficient rights to carry out changes -3 - User abortion in case of own rights removal (dialog)

Otherwise new object rights Example: Displays the current rights of object with ID 45. Rights = Elo.ChangeObjAcl (45,"",0) Sets the system key for object 30 and removes all others Elo.ChangeObjAcl (30,"KY0",1) Also see:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 80

Function CheckFile With the CheckFile function you can request various file properties. Int CheckFile (int OptionNo, AnsiString File name) Parameters:

OptionNo: 0: Check exclusive access to file File name: Name of file to be checked

Return values:

-2: Exclusive access not possible -1: Invalid number under OptionNo 1: Ok

Available from:

3.00.288 Also see:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 81

Function CheckFileHash With the function CheckFileHash you can check a file, whether it is already filed in ELO. A dialog is submitted to the user in which the user can decide, if the document shall be filed anyway, a reference shall be entered instead or the storage is to be cancelled completely. Int CheckFileHash (AnsiString HeaderMessage, AnsiString FileName, int ModeMask) Parameters:

HeaderMessage: Additional annotation in the dialog title (e.g. file name or description) FileName: Name and path of the file to be checked ModeFlag: Reserved, has to be set to 128

Return values:

-2: Document available, no storage -1: No work area active, no control possible 0: Document is not yet available in the archive 1: Document available, file anyway >1: Document available, set reference to this DocId

Example: Set Elo=CreateObject("ELO.professional") MsgBox Elo.CheckFileHash( "Testdatei", "d:\temp\Scandatei.tif", 128 ) Available from:

4.00.034 See also: GetMD5Hash LookupHistMD5

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 82

Function CheckIn

Function CheckInEx With this function you can check in a document again that you had previously received from the archive via CheckOut. Please note that you must not change the file name, as this contains the ID for the archive used and the object number. Under ELOprofessional 3.0, the CheckIn command leads to a request of the version number and a comment. You can suppress this request by using the CheckInEx command, this information is sent as parameters instead. int CheckIn (AnsiString FileName) int CheckInEx (AnsiString FileName, AnsiString sComment, AnsiString sVersion) Parameters: FileName : Name of file to be checked in sComment : Comment on the new document version sVersion : Version number Return values: >0: ObjectId of the document checked in -100: No work area active -1..-10 CIO_LockError, CIO_PathError, CIO_CopyError, CIO_ExecError,

CIO_UknError, CIO_NoDocument, CIO_ModeError, CIO_UserAbort, CIO_ArchiveError, CIO_ReadOnly

Example: function CryptIt(ObjId, key circuit) CryptIt=1 x=Elo.PrepareObjectEx(ObjId, 0, 0) if x<0 then CryptId=-1 else if (Elo.ObjFlags and 256)=0 then Elo.ObjFlags=Elo.ObjFlags or (4096*key circuit) or 256 Elo.UpdateObject FName=Elo.CheckOut(objid,0) if FName<>"" then if Elo.CheckInEx(FName,"Automatic encryption","1.0")<0 then CryptId=-3 ' Error during CheckIn end if else CryptId=-2 ' Error during CheckOut end if else CryptIt=2 ' is already encrypted, nothing to do... end if end if end function Available from (Ex):

3.00.278

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 83

Property CheckInOutFileName (AnsiString) With this property, you can determine the file name of the document within the "When checking a document in/out" event. If required, the file name can be changed for the "Before checking in" event. Also see: CheckInOutObjID ActionKey

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 84

Property CheckInOutObjID (int) With this property, you can determine the object ID of the document within the "When checking a document in/out" event. Also see: CheckInOutFileName ActionKey

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 85

Function CheckObjAcl With the function CheckObjAcl you can check, which access rights you own for a certain object. If the object is already active (e.g. inside of a subject data event or after a PrepareObjectEx), then you assign a 0 to lObjectId. In this case the current value from the ObjAcl property is used. If the object is not active yet, you can assign the ObjectId as parameter additionally. Then the ACL list of the object is loaded and checked. Since only one property and not the whole object is read out of the database, this way is faster than the combination of PrepareObjectEx (Id…) and CheckObjAcl(0). Of course that applies only then if no other spots of the script require a PrepareObjectEx. AnsiString CheckObjAcl (int lObjectId) Example: Set Elo = CreateObject( "ELO.professional" ) Id = Elo.GetEntryId(-1) ' Only ObjectId known: MsgBox Elo.CheckObjAcl( Id ) if Elo.PrepareObjectEx( Id, 0, 0 ) then ' The Object is already loaded: MsgBox Elo.CheckObjAcl( 0 ) end if Parameters: lObjectId Number of the document to be checked (internal ELO Id) or 0 Return values:

-2 Error while reading the ACL -1 No work area active >=0 Authorization mask (1: Read, 2: Write, 4: Delete, 8: Edit Document)

Available from:

4.00.178

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 86

Function CheckOut With the CheckOut function, you can remove a document from the current archive for editing. After editing was completed, it can then be re-inserted into the archive via the CheckIn function. Please note that you must not change the file name, as this contains the ID for the archive used and the object number. AnsiString CheckOut (int lObjectId, int iMode) Parameters: lObjectId Number of the document to be checked out (internal ELO ID) iMode 0 Check out only, do not activate application

1 Check out and activate application without request 2 Check out and activate application after confirmation

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 87

Function CheckPage With the CheckPage function you can check if a separator or empty page exists for the current postbox entry . You can find an example for this command in the prefix. Int CheckOut (int Mode, int hit ratio) Parameters: Mode 1: Empty page control 2: Separator page control (combinations also permitted)

Hit ratio 0...999 required hits per thousand. A value of 970 (default in ELO Client) requires a hit ratio of 97%.

Available from:

3.00.220

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 88

Function CheckUpdate With this function you can decide if a change is to be immediately displayed. Especially for automatic recording of mass data it can save a lot of time if ELO does not display each change. In this case, use an ELO.CheckUpdate(0) before the run and an ELO.CheckUpdate(1) after the run. int CheckUpdate (int DoCheck) Parameters: DoCheck : 0: no display, 1: Display Return values: Old status

Also see: EloWindow

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 89

Function ClickOn With this function a mouse click on a dialog component in the ELO main dialog can be simulated. Thus all functions that are available in the menus or toolbar can be requested. int ClickOn (AnsiString ComponentName) Parameters: ComponentName: Name of the dialog component (list of all dialog items see appendix A) Return values:

-5 Function can currently not be requested (dialog component "disabled") -4 Component type is not supported -3 Component does not have OnClick routine -2 Component not available -1 Main dialog not active 1 Ok

Also see:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 90

Function CloseActivateDocDlg With the CloseActivateDocDlg function you can check in a document again onto Elo which was activated from Elo for editing. For this purpose you can choose from the options mode=1: Ok, accept new version and mode=2: Cancel: Discard changes int CloseActivateDocDlg (int Mode) Parameters: Mode 1: Ok, 2: Cancel Return values:

-3 Error when closing the dialog -2 False mode parameter -1 ActivateDocDlg not active 1 Ok

Also see:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 91

Function CollectChildList With the CollectChildList function you can determine all subsequent nodes for an object ID. The node list is transferred as text string, the individual successor IDs are separated by colons. AnsiString CollectChildList (int ObjId) Parameters: ObjId Node number of the start object Return values:

empty: Error, not specified in more detail else: successor list

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 92

Function CollectLinks With the CollectLinks function you can determine all links for an object ID. The Ids of the linked objects are returned as comma list. AnsiString CollectLinks (int iObjID, int iMode) Parameters: iObjId Object ID of the ELO object iMode 0 Return values:

"-1" No work area active empty: No links available else: Successor list (object Ids separated by comma)

Available from:

3.00.378

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 93

Function CollectWv With the CollectWv function, you can collect the reminder dates, workflow tasks and activities of a user. This list is not displayed in ELO, it can only be checked out via the GetListEntry function. Caution: the temporary internal list is also used by DoInvisibleSearch. If you use both actions in a script, you must check out the complete result list each before a change, otherwise the results are discarded. int CollectWv (int UserId, AnsiString StartDate, AnsiString EndDate, int Prio) Parameters: UserId User number (plus 0x40000000 for groups and 0x20000000 for agents) StartDate Start date of report to be collected EndDate End date of collection area Prio Priority (only for reminders and activities (1..3)) Return values:

-2: Invalid date -1: No work area active >=0: Number of found entries

Available from: 3.00.394 Example: Set Elo=CreateObject("ELO.professional") UserId=Elo.ActiveUserId ' only own dates 'UserId=Elo.ActiveUserId + 1073741824 ' with group dates 'UserId=Elo.ActiveUserId + 536870912 ' with agents 'UserId=Elo.ActiveUserId + 1610612736 ' all dates cnt=Elo.CollectWv(UserId, "22.08.2002", "30.08.2002", 3) for i=0 to cnt-1 msg=msg & Elo.GetListEntry(i) & vbcrlf next MsgBox msg

Also see: GetListEntry

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 94

Property ColorInfo (int) The ColorInfo property determines the color value of a color definition. This color value is transmitted in RGB style usual for Windows. Also see: ReadColorInfo WriteColorInfo ColorName

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 95

Property ColorName (AnsiString) The ColorName property determines the color name (short name) of a color definition. Maximum length: 30 characters Also see: ReadColorInfo WriteColorInfo ColorInfo

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 96

Property ColorNo (int) The ColorNo property determines the color number of a color definition. Also see: ReadColorInfo WriteColorInfo ColorName

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 97

Function ConfirmWorkflow With the ConfirmWorkflow function, workflows can be forwarded within the task view of the ELO Client. The name of the node and message text can be set, via the iActivateAll parameter it is controlled whether all succession nodes or only the first are to be activated. ConfirmWorkflow (int iLine, AnsiString sCaption, AnsiString sComment, int iActivateAll, int iFlags) Parameters: iLine Line number of the entry within the task list (o-indexed) -1=use currently selected line sCaption New name of node empty=leave current name unchanged sComment Message text of node empty=leave current message text unchanged iActivateAll 1=activate all succession nodes 0=only activate first succession node iFlags Reserved Return values:

-7 Error while forwarding the workflow -6 Line contains workflow entry with group node -5 Line contains no workflow entry -4 Invalid line number (for line<>-1) -3 No line selected (for iLine=-1) -2 Task view not active -1 No work area active

Available from: 3.00.350

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 98

Function ConfirmWorkflowEx With the ConfirmWorkflow function, any workflows can be forwarded also outside the task view of the ELO Client. The name of the node and message text can be set, via the iActivateAll parameter it is controlled whether all successor nodes or only the first are to be activated. ConfirmWorkflow (int FlowId, int NodeId, int EloObjId, int Department, AnsiString sCaption, AnsiString sComment, int iActivateAll, int iFlags) Parameters: FlowId ELO-internal workflow number NodeId Node ID within the workflow EloObjId Linked ELO document Department Owner of node (not workflow) sCaption New name of node empty=leave current name unchanged sComment Message text of node empty=leave current message text unchanged iActivateAll 1=activate all successor nodes 0=only activate first succession node iFlags Reserved Return values:

-5 Error during WF forwarding -4 The given node could not be found -3 The WF is locked by a different user -2 Database error when reading or writing the WF -1 No work area active 1 Ok

Example: set Elo=CreateObject("ELO.professional") call Elo.SelectRootNode fields=split(Elo.NodeComment,",") call Elo.ConfirmWorkflowEx(fields(0), fields(1), fields(2), fields(3), "Back","", 1,0) Available from:

3.00.380

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 99

Function CreateAutoDlg (AnsiString Caption) Creates an empty dialog with an Ok & Cancel button. int CreateAutoDlg (AnsiString Caption)

Caption: Title of dialog Return value: 1 – dialog could be created. Example: An empty dialog is displayed. Elo.CreateAutoDlg ("An empty dialog") Elo.ShowAutoDlg Available from: 3.00.228 Also see: AddAutoDlgControl ShowAutoDlg GetAutoDlgValue

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 100

Function CreateCounter The CreateCounter function creates a new counter with a start value that can be preset. int CreateCounter (AnsiString CounterName, int InitialValue) Parameters: CounterName Name of counter to be created InitialValue Start value Return values: -1: Error 1: Ok. Also see: GetCounterList GetCounter

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 101

Function CreateStructure (AnsiString Path, int StartID) Available from: Ver 3.00.228 This function creates a list with cabinet, folder, registers etc. from current position, or if a separator is set at the start, from cabinet position. Existing paths with the same name are only initialized again if there is a separator at the end of the path. (AnsiString) CreateStructure (AnsiString Path, int StartID)

Path : Path to be created Individual elements are to be separated by the separator Separator at start Create from cabinet position StartID is ignored Separator at end Existing paths are overwritten StartID : Valid values : ObjectID , 0 , negative ObjectID

0 – Creation of path within currently selected object A negative StartID causes the creation within the object, a positive on the same level.

The separator at the start of a path has precedence over the StartID. (StartID is ignored) Return values: List of ObjectIDs of created elements separated by separator (235¿252¿22) -5 – No entry selected -4 – Empty field name -3 – No valid start position given -2 – No work area active -1 – Too many objects (archive depth is exceeded) Example: Creates a cabinet, folder and tab. Start position is the filing cabinet level. ELO. CreateStructure ("¿My_Cabinet¿My_Folder¿My_Tab",0) Creates tab with sub tab or folder with tab or cabinet with folder Depending on the current position in the archive ELO. CreateStructure ("123¿222",0) Creates tab with sub tab or folder with tab or cabinet with folder At same level of given object ELO. CreateStructure ("123¿222"0.2345) Creates tab with sub tab or folder with tab or cabinet with folder Within the given object ELO. CreateStructure ("123¿222",-764) Also see:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 102

Function CreateViewer With this function you can create a viewer dataset from an export dataset. For this purpose the ViewerPostbox directory must be prepared under ELOprofessional and a completed export dataset must be available. The target path may already contain a viewer. If the target archive already exists, the datasets are added to this archive. Up to 4 archives may be created in the target area. Int CreateViewer (AnsiString ExportPath, AnsiString ArcName,AnsiString DestPath) Example: Set Elo=CreateObject("ELO.professional") call Elo.CreateViewer("D:\ExportPfad", "test1", "D:\Target path") Parameters: ExportPath Directory which contains the export dataset ArcName Viewer archive name DestPath Target directory for the viewer Return values:

-5: Viewer files could not be copied -4: Postbox directory in the target path could not be created -3: Directory structure in the target path could not be created -2: Target path or archive name are missing -1 : No work area active

1: Ok Available from: 3.00.354

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 103

Function DateToInt (AnsiString Date) This function converts a date text to ELO-internal date format. int DateToInt (AnsiString Date) Parameters:

Text Date to be converted. Return values:

0: Invalid date entry >0: ELO date value

Available from:

3.00.196 Also see: IntToDate

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 104

Function DeleteFlow(int, int) Removes an ELO Workflow without transferring it to the list of completet workflows. Only available for ELO Administrators. int DeleteFlow( int FlowId, int ObjId ) Parametes: FlowId: Workflow Id ObjId: Attached ELO Object Return values: -1: No work area active -2: No deletion access rights -3: Database delete error 1: Workflow deleted Example: Set ELO = CreateObject("ELO.professional") FlowId = 4711 ObjId = 12345 Result = ELO.DeleteFlow( FlowId, ObjId ) Available from: 5.00.126

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 105

Function DeleteMask Deletes an ELO subject data mask. Before the Deleting operation it will be checked, if there are still entries with this mask in the archive or with the deleted but not yet permanently removed objects. If there are still entries, the command is cancelled with an error an in the TextParam property a list is located with the first 16 Object-Ids which use this mask. int DeleteMask (int MaskNo) Parameters: MaskNo: Number of the mask to be deleted Return values:

-3: Database error while deleting -2: There are still entries for this mask number -1: No work area active 1: Ok

Example: Set ELO = CreateObject("ELO.professional") MaskNo = ELO.LookupMaskName( "ThisMaskWillBeDeleted" ) if MaskNo > 0 then Res = ELO.DeleteMask( MaskNo ) if Res > 0 then MsgBox "Deleted" else MsgBox "Mask could not be deleted, Error number: " & Res & ", Objects: " & ELO.TextParam end if else MsgBox "Mask not found" end if Available from: 4.00.210 See also: DeleteObj

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 106

Function DebugOut This function sends a text to the Elo Debug window. void DebugOut (AnsiString Text) Parameters:

Text Text to be issued, sent to the Debug window together with time. Return values:

None

Also see:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 107

Function DeleteObj Deletes an Elo entry, pre-defined by the ObjectID. If a cabinet, folder or tab is concerned, all sub-entries are deleted as well. int DeleteObj (int ObjectId) Parameters: ObjectId: Number of entry to be deleted Return values:

-3: Insufficient authorization for deletion -2: Error when deleting -1: No work area active 1: Ok

Also see: PrepareObj UpdateObj

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 108

Function DeleteProjectOptions Deletes all option entries of a project in the defaults for the activities. Possibly existing project activities are not deleted, however, and can still be displayed and listed. You can also selectively delete a single entry. In this case, instead of the project name you must enter a string containing name, major no., minor no. and value, separated by the normal delimiter (¿). The field value can be left empty, the major and minor numbers can be set to 0 if they are not known. However, this deletes entire groups, so be careful when using this option. int DeleteProjectOptions (AnsiString ProjectName) Parameters: ProjectName: Name of project or project entry to be deleted. Return values:

-7: Project entry was not available -6: Project entry not properly formatted -5: Project was not available -3: Error when deleting -2: Missing or invalid project name -1: No work area active 1: ok

Example: set Elo=CreateObject("ELO.professional") res = Elo.DeleteProjectOptions("TEST") if res<0 then select case res case -5 MsgBox "Project is created new" res=1 case -8 MsgBox "You have no authorization for editing the data" case else MsgBox "Error : " & res end select end if if res>0 then call Elo.InsertProjectOptions("ELO_SYSTEM", 1, 0, "TEST") call Elo.InsertProjectOptions("TEST" , 10, 1, "Contact") call Elo.InsertProjectOptions("TEST" , 10, 4, "Meier") call Elo.InsertProjectOptions("TEST" , 10, 2, "Müller") call Elo.InsertProjectOptions("TEST" , 10, 3, "Schulze") end if Available from: 3.00.360 Also see: InsertProjectOption

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 109

Function DeleteSwl Deletes a subtree of a keyword list. Each entry contains a unique two letter level information: AA, AB, AC .. ZZ per level. The root level starts with a dot. „.AAABAC“ starts at the base with the first entry, within this with the second subentry, within this selects the third subentry. Deleting an entry will automatically delete all subentries. The group parameter is connected to the group entry in the keywording form. int DeleteSwl( AnsiString Group, AnsiString Parent) Parameters:

Group Selects a keyword list Parent Path of the subtree

Return values:

-1: no work area active -2: error when writing -3: invalid or unknown parent path 1: Ok

Example ... Set Elo=CreateObject("ELO.professional") call Elo.DeleteSwl( "THM", "." ) MsgBox Elo.AddSw( "THM", ".", "1" ) MsgBox Elo.AddSw( "THM", ".AA", "1.1" ) MsgBox Elo.AddSw( "THM", ".AA", "1.2" ) MsgBox Elo.AddSw( "THM", ".AA", "1.3" ) MsgBox Elo.AddSw( "THM", ".", "2" ) MsgBox Elo.AddSw( "THM", ".", "3" ) MsgBox Elo.ReadSwl( "THM", ".", " - " ) MsgBox Elo.ReadSwl( "THM", ".AA", " - " ) call Elo.UpdateSw( "THM", ".AB", "2a" ) MsgBox Elo.ReadSwl( "THM", ".", " - " ) ... Available from 5.00.066

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 110

Function DeleteWv Deletes a reminder date (determined by parameter WvIdent). When deleting a date, the owner must also be indicated, if you set a –1 here your own EloUserId is used. int DeleteWv (int WvId, int UserOwner) Parameters: WvId: Number of date to be deleted UserOwner: Owner of date Return values:

-2: Error when deleting -1: No work area active 1: Ok

Also see: ReadWv WriteWv WvIdent WvParent WvUserOwner WvUserFrom WvDate WvCreateDate WvPrio WvParentType WvShort WvDesc

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 111

Function DeleteWvLine With this function an entry can be hidden within the display of the reminder dates. The associated reminder entry is not deleted. int DeleteWvLine (int LineNo) Parameters: LineNo: Line number of entry to be hidden Return values:

-1: No work area active 0: Wrong line number 1: Ok

Also see: WriteWv DeleteWv WvIdent WvParent WvUserOwner WvUserFrom WvDate WvCreateDate WvPrio WvParentType WvShort WvDesc

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 112

Property DelOutlookName (AnsiString) Available from: This property indicates the reminder’s name of the person (group) to be deleted. It is used when the name of the person (group) to which the reminder is addressed is changed in ELO, so that the entry can be removed. Also see: OutlookName

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 113

Function DoCheckInOut This function opens a dialog for checking documents in and out.

int DoCheckInOut (int hwndParent, AnsiString DlgTitle, AnsiString Short, AnsiString Desc, AnsiString XDate, AnsiString FileName,int Ctrl, int Minimize)

Parameters:

hwndParent Windows window handle of superordinated window DlgTitle Title of dialog to be opened. Short Short name (check in for new document) Desc Additional text (check in for new document) XDate Document date (check in for new document) FileName File name of file Ctrl -1 new document

0 Check out >0 Check in

Minimize Minimize <>0 for ELO Client Return values: -1 No work area active

or Storage in postbox

0 Cancel >0 Object Id

Also see: DoCheckInOut2

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 114

Function DoCheckInOut2 This function opens a dialog for checking documents in and out. int DoCheckInOut 2(int hwndParent, AnsiString sDlgTitle, AnsiString sShort, AnsiString sDesc, AnsiString sXDate, AnsiString sFilterExt, AnsiString& sFileName, int nMinimize)

Parameters:

hwndParent: Windows window handle of superordinated window sDlgTitle: Title of dialog to be opened. sShort: Short name (check in for new document) sDesc: Additional text (check in for new document) sXDate: Document date (check in for new document) sFilterExt: File endings available for selection. Format expl: "Word documents

(*.doc;*.dot;*.txt)|*.doc;*.dot;*.txt|Excel documents (*.xxx)|*.xls;*.txt". Format entry for "All documents|*:*" is entered automatically

nMinimize: minimize <>0 for ELO Client Return values:

0 ... Cancel 1 ... New document saved 2 ... Document checked in 3 ... Document checked out of archive 4 ... Edit already checked out document

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 115

Function DoCheckInOut3 This function opens a dialog to check documents in/out. int DoCheckInOut3 (int hwndParent, AnsiString sDlgTitle, AnsiString sShort, AnsiString sDesc, AnsiString sXDate, AnsiString sFilterExt, AnsiString& sFileName, int nMinimize, int iFlags, AnsiString sInfo)

Parameters:

hwndParent: Windows window handle of superordinated window sDlgTitle: Title of dialog to be opened. sShort: Short name (check in for new document) sDesc: Additional text (check in for new document) sXDate: Document date (check in for new document) sFilterExt: File endings available for selection. Format expl: "Word documents

(*.doc;*.dot;*.txt)|*.doc;*.dot;*.txt|Excel documents (*.xxx)|*.xls;*.txt". Format entry for "All documents|*:*" is entered automatically

nMinimize: Minimize <>0 for ELO Client iFlags: Bit 0 set: Subject data information will be assumed from the internal, with

PrepareObjectEx initialized object before Bit 0 not set: Subject data information are extracted from the parameters sShort, sDesc and sXDate

sInfo: Reserved for later extensions Return values:

0 ... Cancel 1 ... New document saved 2 ... Document checked in 3 ... Document checked out of the archive 4 ... Edit already checked out document

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 116

Property DocId (int) The DocId property defines the working version of a document. This entry has to be selected from the list of all document files out of the version history of this document. A foreign entry at this place can lead to serious disfunctions. Available from:

5.00.042 See also: MaskKey DocKey DocKind DocPath

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 117

Property DocKey (int) The DocKey property determines the key of an entry. The entry can be a cabinet, folder, tab or document. If you edit a mask definition, this entry contains the default for new documents of this type (the MaskKey contains the key for the mask itself). Also see: MaskKey DocKey DocKind DocPath

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 118

Property DocKind (int) The DocKind property determines the color of an entry. The entry can be a cabinet, folder, tab or document. If you edit a mask definition, this entry contains the default for new documents of this type. Also see: DocKey DocPath

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 119

Property DocPath (int) The DocPath property determines the storage path of an entry. The entry can be a folder or document. If the entry is a folder, with the respective system setting, this path can be the default value for documents in this folder. However, this mode only represents a compatibility mode for old ELO office archives, for new archives it should not be used anymore. If you edit a mask definition, this entry contains the default for new documents of this type. Also see: DocKey DocKind

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 120

Property DocTPath (int) The DocTPath property determines the default storage path of an entry in a mask definition. Also see: DocPath

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 121

Function DoEditObject

Function DoEditObjectEx With this function you can open the subject data dialog. It displays the data that have previously been initialized via PrepareObjectEx. The request of DoEditObject corresponds to a DoEditObjectEx(1,-1,0). int DoEditObjectEx (int Mode, int Handle, int Minimize) int DoEditObject () Parameters:

Mode: 1 – Edit, 2 – Search Handle: Handle of the parent window, Standard = -1 Minimize: 1-Minimize ELO main window (only Edit dialog visible), 0-do not minimize

Return values: -1: No work area active

1: Dialog closed with Ok 2: Dialog closed with Cancel

Also see:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 122

Function DoExecute With this function another application can be started, internally the Windows API function ShellExecute is requested. Option 1: in the FileName parameter the name of a program (EXE file) is transferred. Option 2: in the FileName parameter the name of a file is transferred, the application associated with this file type is started. int DoExecute (AnsiString FileName) Parameters:

FileName File to be opened / executed

Return values:

<=32: Windows error code of the ShellExecute function >32: Success

Also see: RunEloScript DoExecuteEx

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 123

Function DoExecuteEx With this function another application can be started, internally the Windows API function ShellExecute is requested. Option 1: in the FileName parameter the name of a program (EXE file) is transferred. Option 2: in the FileName parameter the name of a file is transferred, the application associated with this file type is started. int DoExecuteEx (AnsiString File, AnsiString Param, AnsiString Directory, AnsiString Action, int Mode) Parameters:

File File to be opened / executed Param additional parameters (can remain empty) Directory Start directory (can remain empty) Action "open", "print" or "explore", (can remain empty, an "open" is then executed) Mode Window size upon start (-1: SW_SHOWNORMAL). The constants possible here can be looked up in the Windows Help under "ShellExecute".

Return values:

<=32: Windows error code of the ShellExecute function >32: Success

Also see: RunEloScript DoExecute

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 124

Function DoFullTextSearch The DoFullTextSearch function starts a rich text search. As result of the function the number of found references is returned, these are then available in the research list and can be displayed via SelectLine. int DoFullTextSearch (AnsiString sSearchString, int iSearchOption) Parameters:

sSearchString Text to be found iSearchOption 0=AND-OR-linked search terms 1=intuitive search

Return values:

-2: Error during rich text search -1: No work area active else: Number of found entries.

Also see: DoSearch SelectLine

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 125

Function DoInvisibleSearch The DoInvisibleSearch function starts an invisible search process from the ObjShort, ObjMemo, ObjAttrib entries. For this purpose, first of all a new object dataset is created with PrepareObject, this dataset is fed with the terms to be found via the access operations and the DoInvisibleSearch function is requested. As result of the function the number of found references is returned, these are then available in an invisible internal research list and can be requested via getEntryId(). However, for this purpose a special line number must be transferred to the getEntryId function, so that it can detect that it is not the normal list, but the invisible list to be searched. This number consists of the line number and a constant factor of 268435456 (that is 0x10000000). Example: set Elo = CreateObject("ELO.professional") ‘search all invoice entries MaskNo=Elo.LookupMaskName("Invoice") Elo.PrepareObjectEx 0,0,MaskNo Elo.DoInvisibleSearch for i=0 to 1000 id=Elo.GetEntryId(268435456+i) if id<2 then exit for Elo.PrepareObjectEx id,0,0 Result=Result & Elo.ObjShort & vbCrLf next MsgBox Result int DoInvisibleSearch () Parameters: None Return values:

-1: No work area active else: Number of found entries.

Available from:

3.00.188 Also see: PrepareObject SelectLine DoFulltextSearch

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 126

Function DoSearch

Function DoSearchSel (AnsiString)

Function DoSearchEx (AnsiString, int) The DoSearch function starts a search process from the ObjShort, ObjMemo, ObjAttrib entries. For this purpose, first of all a new object dataset is created with PrepareObject, this dataset is fed with the terms to be found via the access operations and the DoSearch function is requested. As result of the function the number of found references is returned, these are then available in the research list and can be displayed via SelectLine. Another special mode is available for displaying a list of Elo objects. In this case a mask content of the type "Free entry" is entered so that only the field with the short name is entered with a string of the type "¿Id1¿Id2¿Id3¿ ... ¿IdN¿". A list with these objects is then displayed in the research view. You can determine via the Mode parameter if an already existing search result is to be deleted before a search process. You can then compose multiple searches. For the first search a deletion is carried out, all subsequent searches then supplement the list created so far. int DoSearch () int DoSearchSel (AnsiString SelectObject) int DoSearchEx (AnsiString SelectObject, int Mode) Parameters: SelectObject If there is an entry in the research result with the pre-defined short name,

this line is selected. Mode Bit 0: 0 do not delete old list content 1: delete before research

Bit1..31: reserved. Return values:

-1: No work area active else: Number of found entries.

Available from:

DoSearchEx: 3.00.358 Example: ' carries out three searches for the terms, Test and Word ' and displays the result in a results list Set Elo=CreateObject("ELO.professional") call Elo.PrepareObjectEx(0,0,0) Elo.ObjShort="elo" call Elo.DoSearchEx("", 1) call Elo.PrepareObjectEx(0,0,0) Elo.ObjShort="test" call Elo.DoSearchEx("", 0) call Elo.PrepareObjectEx(0,0,0) Elo.ObjShort="Word" call Elo.DoSearchEx("", 0) Also see: PrepareObject SelectLine DoFulltextSearch

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 127

Function DoSelArcTree Opens a dialog for selecting an ELO entry. int DoSelArcTree (int hwndParent, AnsiString sDlgTitle, int nCtrl, int nMinimize)

Parameters:

HwndParent: Windows handle of the superordinated window or ZERO sDlgTitle: Dialog title nCtrl: 1 for tab only can be selected nMinimize: minimize <> 0 for ELO.

Return values:

-1: for error 0: for cancel >0: Object ID of selected entry

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 128

Function EditActivity (AnsiString) This function edits an activity. You can carry out a pre-allocation via the input string, especially if you create a new activity for a document you must initialize the EloGuid with the GUID of the document. If possible, you should also pre-allocate the project entry. The ActInfo string is composed of the following parts: ActGuid Unique ID of the activity, leave empty for a new entry! DocGuid GUID of the ELO document (determine via GetGuidFromObj). Destination Recipient RevVers Version ActTStamp Time stamp, leave empty, created automatically when saving Project Project name, pre-allocate if possible Owner Owner, ELO user number Creator Creator, ELO user number Prio 0,1 or 2 ShortDesc Short name SentAt Sent date ISO format SentMode Send type DueDate Expected return date, ISO format BackAt Return date, ISO format BackMode Return status Comment Additional text FileName Sent file name UD0 User defined field 1 UD1 … UD9 User defined field 10 AnsiString EditActivity (AnsiString ActInfo) Parameters: ActInfo: Current field allocation, the individual texts are linked by the

separator (¿) each. Return value: Empty An error has occurred or the user has cancelled the dialog with "Cancel". Example: Id=Elo.GetEntryId(-1) if (Id>1) then guid=Elo.GetGuidFromObj(Id) res="¿" & guid res=Elo.EditActivity(res) MsgBox res Elo.WriteActivity(res) end if Available from: 3.00.360 Also see: ShowActivities EditActivity ReadActivity WriteActivity NextActivity

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 129

Property EditDlgActive (int) This property indicates if a dialog has been opened from ELO. Return values: 0 – No 1 – Yes Also see:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 130

Function EditWv (int WvId, int ParentId) This function edits a reminder. int EditWv (int WvId, int ParentId)

WvId: Internal ELO ID for the date ParentId : ID of linked ELO object Return value: -1 No work area active

0 Dialog closed with Cancel 1 Dialog closed with Ok

Example: Also see: WVNew WvDueDate WvListInvalidate WvActionCode

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 131

Function EloWindow With this function, you can determine how the ELO work surfaces are displayed. As parameter ‚MINIMIZE‘ can be used, in this case no work surface becomes visible, ‚MAXIMIZE‘, the visible work surfaces are fully displayed on the screen or ‚NORMAL‘, i.e. the default settings for the size of the work surface are used. int EloWindow (AnsiString DisplayMode) Parameters:

DisplayMode ‚MINIMIZE‘, ‚NORMAL‘ or ‚MAXIMIZE‘ Return values:

0,1,2: Number of open work areas

Also see: BringToFront

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 132

Function Export With the Export function, you can export a (part) archive. The ID for the available export options can be found in the following list: // Do not copy documents from the file structure #define IEX_SUPPRESSDOCS (1 << 0) // Copy chaos docs #define IEX_CHAOSDOCS (1 << 1) // Delete copied documents after completion #define IEX_ERASEDOCS (1 << 2) // Create new file structure when importing #define IEX_NEWHIRARCHY (1 << 3) // Use filing date instead of document date #define IEX_USEIDATE (1 << 4) // Add complete path information #define IEX_PATHINFO (1 << 5) // Export archive entry #define IEX_ARCHIVEENTRY (1 << 7) #define IEX_TXT_ARCHIVEENTRY "Archive Entry" // Export clipboard #define IEX_CLIPBOARD (1 << 8) #define IEX_TXT_CLIPBOARD "Clipboard" // Export Search #define IEX_SEARCHLIST (1 << 9) #define IEX_TXT_SEARCHLIST "Search list" // Export encrypted documents #define IEX_EXPORT_CRYPTED (1 << 10) // Document/Attachment versions #define IEX_EXPORT_DOCVERS (1 << 11) #define IEX_EXPORT_ATTVERS (1 << 12) int Export (AnsiString sDestPath, int iExportType, int iParentId, int iOptions, AnsiString sDocTypes, AnsiString sStartDate, AnsiString sEndDate, AnsiString sObjList) Parameters: sDestPath Target path for the export data. This directory must be empty,

if available. iExportType reserved, to fill with 0. iParentId 1: Archive, otherwise the ELO ObjectId of the start node iOptions see list above sDocTypes Empty: all document types, otherwise a text string with 0 + 1 for each document type number ("10010111111111" – free entry (type 0) and type 3 and type 5..13) sStartDate Date limit – empty: no limit sEndDate s.a. sObjList ELO ObjectIDs of the entries to be exported (separated by : , i.e. "124:125:126") Return values:

-3 Target path could not be created -2 Error during export -1 No work area active 1 Ok

Please note that the export process writes a report file in the postbox of the active user, which you should use for evaluating possible errors.

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 133

Function FindFirstWv This function is used if reminder dates need to be determined for a certain ELO object. The function contains the object ID of the desired ELO object as parameter, it returns the number of the found reminder dates. With the FindNextWv function, the IDs of the reminder dates are checked out. int FindFirstWv (int ObjectId) Parameters:

ObjectId ID of the ELO object Return values:

-2: Error while reading the reminder dates -1: No work area active >=0: Number of found reminder dates

Also see: FindNextWv

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 134

Function FindFlowTemplate This function searches the internal ELO number (ID) for a process scheme name. The ID is required if a process is to be started via the Automation interface. int FindFlowTemplate (AnsiString FlowName) Parameters:

FlowName Name of flow scheme Return values:

-3: No scheme with this name found -2: Error while detecting the process schemes -1: No work area active >=0: ID of process scheme

Also see: ActivateFlow

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 135

Function FindNextWv With this function, the reminder dates associated with an ELO object are checked out, first of all FindFirstWv must be requested. int FindNextWv () Parameters: None Return values:

-1: No reminder date available >=0: ID of the reminder date

Also see: FindFirstWv

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 136

Function FindUser This function searches the internal ELO user number for a name. int FindUser (AnsiString UserName) Parameters:

UserName Name of user for which the user ID is to be found. Return values:

UserID or -1 if no user was found with this name

Also see: ActiveUserId LoadUserName SelectUser

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 137

Function FreezeDoc With the FreezeDoc function you can convert an ELO document to a Tiff file via the Tiff printer and attach it as new version to the logical document. For this purpose, a few conditions need to be observed:

• The ELO Tiff printer must be logged in the options • The print temp directory must be empty before executing the command, this can be safeguarded for

example via an UpdatePostbox. • During conversion, other interfering print commands must not be activated. • Conversion is carried out via a ShellExecute("print" ...) request. For this reason, the respective

application must be installed for the document on the client computer. In addition, some applications (depending on the document type/content) open their own print dialogs.

Common problems when printing:

• (Outlook): As long as Outlook is active, it does not respond to changes of the default printer, thus switching to the Tiff printer is ignored. For this reason, exit all open Outlook windows before converting MSG files. Alternatively, you can configure the Tiff printer as default printer in your system.

• (PowerPoint): When converting PPT files, a separate print dialog is displayed, that must be acknowledged manually by the user.

• Printing is only possible under Windows NT, Windows 2000 and Windows XP, as there are too many function limits under Windows 95/98/ME.

Int FreezeDoc (int ObjectId) Parameters:

ObjectId Logical number of document to be converted Return values:

-2: Error while printing -1: No work area active 1: Ok

Example: Set Elo=CreateObject("ELO.professional") if Elo.SelectView(0)<>1 then MsgBox "This script can only be executed in the archive view." else ' browse through all documents of the current tab for i=0 to 10000 id=Elo.GetEntryId(i) if id<1 then exit for ' check whether it is a document res=Elo.PrepareObjectEx(id,0,0) if res>0 then if Elo.ObjType=Elo.ArchiveDepth then call Elo.FreezeDoc(id) end if end if next end if Available from: 3.00.348

Also see:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 138

Function FromClipboard This function copies a text from the Windows clipboard. AnsiString FromClipboard () Parameters:

none Return values:

Text from the Windows clipboard Available from:

3.00.456 Also see: ToClipboard

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 139

Function GetArcName This function determines the current archive name. AnsiString GetArcName () Parameters:

none Return values:

Archive name or empty string in case of error

Also see:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 140

Function GetArchiveName With the GetArchiveName function you can determine the archive name for a given archive number. Via the archive number –1 you receive a list of all available archives, separated by the system separator (normal ¿). AnsiString GetArchiveName (int ArchiveNo) Parameters:

ArchiveNo: -1: A list of all available archives 0..n: Name for given archive number, empty if invalid

Return values: ArchivName or empty in case of error

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 141

Function GetAutoDlgValue (int Index) Available from: Ver 3.00.228 Supplies the entered or selected value of the dialog objects. AnsiString GetAutoDlgValue (int Index)

Index : Object positions, starting with 1 for the first object. Return value: For checkboxes and radio buttons 0 – Unchecked 1 – Checked For Edit fields the content of the input field. For labels an empty string is returned. Example:

Supplies the text of the input field and checked/unchecked of the checkbox. Elo.CreateAutoDlg ("Person info")

Elo.AddAutoDlgControl (4,1,"Name","") Elo.AddAutoDlgControl (2,3,"Married? Yes","0") Elo.ShowAutoDlg MsgBox GetAutoDlgValue (1) MsgBox GetAutoDlgValue (2)

Also see: CreateAutoDlg AddAutoDlgControl ShowAutoDlg

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 142

Function GetBarcode With this function barcodes that have previously been determined with the ReadBarcodes function are checked out. AnsiString GetBarcode (int Index) Parameters:

Index Barcode index Return values:

<>"": Barcode "": Error (e.g. wrong index, ReadBarcodes not previously requested)

Also see: ReadBarcodes

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 143

Function GetChildNode With this function the subsequent nodes of the current node are checked out within a process in a loop. int GetChildNode ()

Return values:

-2: No more subsequent nodes available -1: No node active 1: Ok

Also see: NodeActivateScript NodeAlertWait NodeAvailable NodeComment NodeFlowName NodeName NodeTerminateScript NodeType NodeUser NodeYesNoCondition NodeAllowActivate NodeObjectID OpenChildNodes SelectCurrentNode

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 144

Function GetCookie The GetCookie function reads the value of a cookie entry and returns it to the requesting program. This access is primarily intended so that ELO scripting macros can permanently store information in ELO. The cookie memory is deleted when ELO is closed. Access to a cookie is carried out via the name (Ident), the allocated value is returned. If the cookie is unknown, an empty string is returned. Please note that the number of cookies is limited, each macro or each other external program should only use a few and the same for each request instead of creating new ones. AnsiString GetCookie (AnsiString Ident) Parameters: Ident cookie name, was pre-defined for SetCookie Return values:

"": Unknown or empty cookie else: Content of requested cookie.

Also see: SetCookie

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 145

Function GetCounter The GetCounter function supplies the current status of the selected counter. If the Increment parameter contains a value other than 0, the counter automatically counts up. AnsiString GetCounterList (AnsiString CounterName, int Increment) Parameters: CounterName Name of counter to be triggered Increment 0: only determine current counter status, 1: Determine counter status and count up Return values:

-1: Error else: Counter status

Also see: GetCounterList CreateCounter

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 146

Function GetCounterList The GetCounterList function supplies a string with all AccessManager counters that are currently logged into the system. The individual entries are separated by a ¿. AnsiString GetCounterList () Parameters: none Return values:

"": Error while reading the counter list else: Counter list.

Also see: GetCounter CreateCounter

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 147

Function GetDocExt Returns the extension (Windows document type) for an object or document ID. AnsiString GetDocExt (int ObjDocId, int Status) Parameters:

ObjDocId Internal ELO object or document ID Status Bit 0: 0: DocumentId, 1: ObjectId

Return values:

Document extension. Available from:

3.00.392 Example: SET Elo=CreateObject("ELO.professional") ID=Elo.GetEntryId(-1) if ID>1 then call Elo.PrepareObjectEx(ID,0,0) if Elo.ObjTypeEx=254 then Ext=UCase(Elo.GetDocExt(ID, 1)) MsgBox "Document type for entry '" & Elo.ObjShort & "' : " & Ext end if end if Also see: UpdateDocument InsertDocAttachment

GetDocumentPathVersion

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 148

Function GetDocFromObj This function acquires the document manager Document-Id of a logical Object-Id. This Id can be used for document referred actions (e.g. GetDocumentPathName or GetDocumentSize). With the Flags parameter can be defined, if the current working version of the document or of the file attachment is returned:

0 Return current document version (working version) 1 Return current attachment

int GetDocFromObj (int ObjId, int Flags) Parameters:

ObjId: Logical Object-ID of the entry to be searched Flags: 0 or 1

Return values:

-3: Invalid object -2: ObjId not found -1: No work area active 0: No document file assigned >1: Ok, Document-Id

Available from:

5.00.018 Example: Set Elo = CreateObject( "ELO.professional" ) Id = Elo.GetEntryId(-1) if Id > 1 then DId = Elo.GetDocFromObj( Id, 0 ) if DId > 0 then MsgBox Elo.GetDocumentPathName( DId ) end if end if

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 149

Function GetDocRefComment With this function you can request the version entry and comment for a document version. The two fields are returned in a string, separated by the pipe icon "|". Please note that only two fields are returned at present, this may change in future. You must bear in mind in your scripts that any number of fields may be added. AnsiString GetDocRefComment (int ObjectId, int DocumentId) Parameters: ObjectId ELO ObjectId of the document DocumentId AccessManager DocumentId of the document version Return values: Comment type + version text, empty in case of error. Available from:

3.00.322 Example: set Elo=CreateObject("ELO.professional") ObjId=Elo.GetEntryId(-1) if ObjId>0 then DocId=Elo.GetDocumentPathVersion(ObjId, 10, 0) if DocId=0 then MsgBox "This is not a document or" & vbcrlf & "the document has no attachment" else DocInfos=Split(Elo.GetDocRefComment(ObjId + 1073741824, DocId),"|") MsgBox DocInfos(1) end if else MsgBox "No document is active" end if Also see: GetDocumentPathVersion

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 150

Function GetDocumentExt Returns the file identification (extension) for a document file number. As DocId the Document Manager-ID must be specified and not the logical Object-Id. You can get this number e.g. by the request GetDocFromObj. AnsiString GetDocumentExt (int DocId) Parameters:

DocId Document manager File-Id

Return values:

Extension or empty in case of an error Available from:

5.00.018 Example: Set Elo = CreateObject( "ELO.professional" ) Id = Elo.GetEntryId(-1) if Id > 1 then DId = Elo.GetDocFromObj( Id, 0 ) if DId > 0 then MsgBox Elo.GetDocumentExt( DId ) end if end if

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 151

Function GetDocumentOrientation With this function you can have an image file in the postbox analyzed in order to detect a possible rotation by 90, 180 or 270 degrees. The analysis is carried out by using the OCR system. Before using the function, the OCRInit function must be requested, after completion the OCRExit function. With the RotateFile function the file can be rotated after analysis so that texts can be read from the bottom (only single page TIFF files). As file name, an entry from the postbox can be transferred (without path, only the file name), or an index to the postlist (marked by a #, e.g. #0 is the first entry in the postlist). int GetDocumentOrientation (AnsiString FileName, int PageNumber) Parameters:

FileName: Name of file to be checked PageNumber: Page number (page 1 = "0")

Return values:

-3: Error when detecting rotation -2: Error when loading file -1: No work area active 1..4: Orientation (1=0°, 2=90°, 3=180°, 4=270°)

Also see: OrientFile

RotateFile UpdatePostbox

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 152

Function GetDocumentPath Reads the document or attachment file from a document and returns an access path to the file. Normal archive documents are write-protected, for this reason the reader can request a free copy via the status (AUTO_WRITEACCESS). However, the copy is only valid for a limited period and is deleted automatically when exiting ELO. AnsiString GetDocumentPath (int DocId, int Status) Parameters:

DocId Internal ELO ObjectId Status Bit 0: Write access to copy

Bit 1: Attachment instead of document file Bit 2: Fulltext representation instead of document file Bit 3: List of DocumentIds instead of file path Bit 4: Signature file instead of document file The bits 1,2,3 and 4 exclude each other, they must not be combined.

Return values:

Access path to document or file attachment respectively Also see: UpdateDocument InsertDocAttachment

GetDocumentPathVersion

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 153

Function GetDocumentPathName Returns the file path of a document file number. This file path is built from the view of the document manager and generally not accessable from the client. As DocId the Document Manager-ID must be specified and not the logical Object-Id. You can get this number e.g. by the request GetDocFromObj. AnsiString GetDocumentPathName (int DocId) Parameters:

DocId Document manager File-Id

Return values:

Access path to the document respectively the file attachment or empty in case of an error Available from:

5.00.018 Example: Set Elo = CreateObject( "ELO.professional" ) Id = Elo.GetEntryId(-1) if Id > 1 then DId = Elo.GetDocFromObj( Id, 0 ) if DId > 0 then MsgBox Elo.GetDocumentPathName( DId ) end if end if

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 154

Function GetDocumentPathVersion Reads the document or attachment file from a document and returns an access path to the file. For version-controlled documents previous versions can be accessed via the Version parameter. For this purpose, Version is increased starting with 0 (=current version) by 1 until an empty string is returned. Normal archive documents are write-protected, for this reason the reader can request a free copy via the status (AUTO_WRITEACCESS). However, the copy is only valid for a limited period and is deleted automatically when exiting ELO. AnsiString GetDocumentPathVersion (int DocId, int Status, int Version) Parameters:

DocId Internal ELO ObjectId Status Bit 0: Write access to copy

Bit 1: Attachment instead of document file Bit 2: Rich text representation instead of document

Bit 3: Document numbers instead of document Version 0 = current version 1... = version states If Bit3 is set from the status, 0 only returns the current number, 1 returns all numbers

Return values:

Access path to document or file attachment respectively If Bit3 is set from the status, the return value contains one or more numbers, separated by a pipe icon "|".

Available from: 3.00.322 for the list (Bit 3 of the Status field) Example: ObjId=Elo.GetEntryId(-1) if ObjId>0 then DocIds=Elo.GetDocumentPathVersion(ObjId, 10, 1) if DocIds="" then MsgBox "This is not a document or" & vbcrlf & "the document has no attachment" else MsgBox DocIds end if else MsgBox "No document is active" end if Also see: UpdateDocument InsertDocAttachment

GetDocumentPath

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 155

Function GetDocumentSize Returns the file size of a document file number. As DocId the Document Manager-ID must be specified and not the logical Object-Id. You can get this number e.g. by the request GetDocFromObj. Int GetDocumentSize (int DocId) Parameters:

DocId Document manager File-Id

Return values:

-2: Error while reading the document manager information -1: No work area active >=0: File size

Available from:

5.00.018 Example: Set Elo = CreateObject( "ELO.professional" ) Id = Elo.GetEntryId(-1) if Id > 1 then DId = Elo.GetDocFromObj( Id, 0 ) if DId > 0 then MsgBox Elo.GetDocumentSize( DId ) end if end if

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 156

Function GetEntryId This function returns the internal ELO ObjectId of a line from the archive, postbox or search view. This way you can receive a list of all visible objects on the left side by requesting the GetEntryId function, starting with line 0 and increasing until a 0 is returned to you. If you start the request in the reminder, you receive a ReminderId instead of an ObjectId. Calling this function from the task item view returns a reminder Id (if the line contains a reminder item) or the associated ELO object id (workflow item). Use IsWFLine to recognize the line type. When requesting the function there are a few "special" lines:

-1: The currently selected entry is read -2: The number of the internal EloObject is read -10: The selected line is read from the cabinet list -11: The selected line is read from the folder list -12: The selected line is read from the tab list -13: The selected line is read from the document list

int GetEntryId (int Line) Parameters

Line Line to be read (0…) or -1 ... -13 Return values:

Internal ELO ObjectId -1: No work area active 0: (error, no additional entry, no selection made)

Also see: GetEntryName

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 157

Function GetEntryName With this function you can quickly determine the short name of an ELO object via the internal ELO object number. If you use the value 0 as ObjectId, you receive the short name of the currently selected entry. AnsiString GetEntryName (int ObjId) Parameters:

ObjId Elo ObjectId or 0 for the currently selected entry Return values:

Short name or an empty string in case of an error Also see: GetEntryId

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 158

Function GetGuidFromObj This function determines the ELO Guid for a given ELO ObjectId. AnsiString GetGuidFromObj (long ObjId) Parameters: Guid Guid of the object to be found Return values Empty: no work area active or object not found

Else: Guid Available from:

3.00.176 Also see: ObjGuid GetObjFromGuid

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 159

Function GetHistDoc Returns the internal DocumentId for the n-th hit from LookupHistMD5. int GetHistDoc (int HitNumber) Parameters: HitNumber: 0..n (n is returned by LookupHistMD5) Return values: -1: Faulty HitNumber >0: DocumentId Available from:

3.00.170 Also see: LookupHistMD5 GetHistObj GetMD5Hash

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 160

Function GetHistObj Returns the internal ELO ObjectId for the n-th hit from LookupHistMD5. int GetHistObj (int HitNumber) Parameters: HitNumber: 0..n (n is returned by LookupHistMD5) Return values: -1: Faulty HitNumber >0: Object Id Available from:

3.00.170 Also see: LookupHistMD5 GetMD5Hash GetHistDoc

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 161

Function GetIndexGroups With the GetIndexGroups function, you can determine a list of values entered for an index line, duplicates are ignored. If you have an "Article name" index line for example, you can create a list of all available article names via GetIndexGroups. You can then use these for selection in a combo box. Please note that this function can only be used appropriately if the amount of hits does not exceed some dozen to some hundred entries. This function can be used in two different ways. For the direct list (article example) only one index line is considered. However, you can also create an "indirect" list, e.g. all article names that have been obtained by the customer with the customer number (CTNO) 4711. This concerns two index lines, first of all one that determines the selection and another that contains the items to be listed. However, it needs to be noted that a considerable database load is created for a large number of hits. AnsiString GetIndexGroups (AnsiString GroupCol, AnsiString SelCol, AnsiString SelVal) Parameters: GroupCol: Group name of index line from which the list is to be created SelCol: Group name of index line from which the selection is to be used SelVal: Index limit Return values: Hit list or empty in case of error Example: A list is created from index line ELOFAQBER with all the different entries that contain the string P3. in the ELOVER index line. set Elo=CreateObject("ELO.professional") List=Elo.GetIndexGroups("ELOFAQBER", "ELOVER", "%P3.%") List=Replace(List, "¿", vbcrlf) MsgBox List Available from:

3.00.324

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 162

Function GetLastDocId This function determines the last physical document number in the archive. Int GetLastDocId () Parameters:

none. Return values:

-2: Document number could not be determined. -1: No work area active >0: Last DocumentId

Available from:

3.00.170 Also see: Backup

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 163

Function GetLastVersionTimeStamp (int, int) Returns the filing date of the physical document file. int GetLastVersionTimeStamp (int DocId, int Status) Parameters: DocId: Elo object ID of the document Status: 0: current document, >1 version 0x1000 added as additional flag: attachment instead of document Return values:

-4: Document data could not be read from the database -3: Invalid status -2: No document found -1: No work area active

>0: date in ELO-internal format Available from:

3.00.170 Also see: IntToDate

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 164

Function GetListEntry With this function you can check out a line from the internal hit list of CollectWv and DoInvisibleSearch. The result consists of the following parts: Type¿ObjId¿Owner¿Id1¿Id2¿Text

• Type AC: activity, OB: object, WF: workflow task, WV: Reminder date • ObjId ELO ObjectId • Owner Owner of date (always 0 for OB) • Id1 OB: Attachment Id, WF: Workflow Id, else 0 • Id2 WF: Node Id, else 0

AnsiString GetListEntry (int Index) Parameters:

Index Line number 0..(number of hits –1) Return values:

Empty: No work area active or line not available Else: Line content

Available from: 3.00.394 Example: Set Elo=CreateObject("ELO.professional") UserId=Elo.ActiveUserId ' only own dates 'UserId=Elo.ActiveUserId + 1073741824 ' with group dates 'UserId=Elo.ActiveUserId + 536870912 ' with agents 'UserId=Elo.ActiveUserId + 1610612736 ' all dates cnt=Elo.CollectWv(UserId, "22.08.2002", "30.08.2002", 3) for i=0 to cnt-1 msg=msg & Elo.GetListEntry(i) & vbcrlf next MsgBox msg Also see: CollectWv DoInvisibleSearch

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 165

Function GetMD5Hash With this function you can determine the MD5 hash for a file or for a data block. If you indicate a file name as parameter, you receive the hash for the file. if you transfer a string starting with the characters "##", you receive the hash value for this string (the ## characters are not counted for this). AnsiString GetMD5Hash (AnsiString FileName) Parameters: FileName File name or input string for the MD5 hash value Return value: MD5 hash value as 32 character HEX string Available from:

3.00.170 Also see: LookupHistMD5 GetHistObj GetHistDoc

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 166

Function GetNodeList This function prepares a list of workflow nodes. The Mode parameter indicates which nodes are to be collected. This function may only be requested from an eventscript within a workflow, the actions refer to the current flow. Mode Action 0 Reset to standard, must always be carried out at the end. 1 Collect all nodes, equivalent to list view. AnsiString GetNodeList (int Mode) Parameters: Mode Action to be carried out Return values <0: Error

0..n: Number of available nodes Available from:

3.00.508 Also see: SelectNode NodeXXX Properties

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 167

Function GetObjAttrib This function checks out the value of an input line of the current document mask. Each input line contains 3 values:

The "visible" name, it is displayed to the user in the document masks as field name (e.g. invoice number). It serves as name of the line for persons. The supplementation, it is used in the database for identification of the line in the index (e.g. RENR). It serves as name of the line for the machine. The input value, here the user input is saved (e.g. 199807106)

AnsiString GetObjAttrib (int AttribNo) Parameters:

AttribNo The lines of the input masks are numbered from 0..49.

Return values:

Current content of the input value Also see: SetObjAttrib GetObjAttribName GetObjAttribKey

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 168

Function GetObjAttribFlags Returns the flags of a keywording line of the current document mask. Bit values: Bit 0 Insert only from keywording list Bit 1 append starting * before searching Bit 2 append final * before searching Bit 3 Tab break after this line Bit 4 Line is invisible Bit 5 Line is read only Bit 6 Show line with the short description int GetObjAttribFlags( int AttribNo ) Parameters: AttribNo: Line Number, from 0 to 49 and 51 (Filename of the document) Return values: Flags Available from: 5.00.164

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 169

Function GetObjAttribKey This function checks out the index name of an input line of the current document mask. Each input line contains 3 values:

The "visible" name, it is displayed to the user in the document masks as field name (e.g. invoice number). It serves as name of the line for persons. The supplementation, it is used in the database for identification of the line in the index (e.g. RENR). It serves as name of the line for the machine. The input value, here the user input is saved (e.g. 199807106)

AnsiString GetObjAttribKey (int AttribNo) Parameters:

AttribNo The lines of the input masks are numbered from 0..49.

Return values:

Current content of the index name field

Also see: SetObjAttribKey GetObjAttrib GetObjAttribName

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 170

Function GetObjAttribMax This function checks out the maximum input length of an input line of the current document mask. This field is analyzed in the default input mask within ELO. If you carry out the entries program-controlled via OLE Automation, you must make sure personally to keep to the minimum and maximum length of an entry. int GetObjAttribMax (int AttribNo) Parameters:

AttribNo The lines of the input masks are numbered from 0..49.

Return values:

Maximum length of the entry, 0: no control, any length Also see: SetObjAttribMax GetObjAttribMin GetObjAttribType

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 171

Function GetObjAttribMin This function checks out the minimum input length of an input line of the current document mask. This field is analyzed in the default input mask within ELO. If you carry out the entries program-controlled via OLE Automation, you must make sure personally to keep to the minimum and maximum length of an entry.

int GetObjAttribMin (int AttribNo) Parameters:

AttribNo The lines of the input masks are numbered from 0..49.

Return values:

Minimum length of the entry, 0: no control, any length Also see: SetObjAttribMin GetObjAttribMax GetObjAttribType

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 172

Function GetObjAttribName This function checks out the name of an input line of the current document mask. Each input line contains 3 values:

The "visible" name, it is displayed to the user in the document masks as field name (e.g. invoice number). It serves as name of the line for persons. The supplementation, it is used in the database for identification of the line in the index (e.g. RENR). It serves as name of the line for the machine. The input value, here the user input is saved (e.g. 199807106)

AnsiString GetObjAttribName (int AttribNo) Parameters:

AttribNo The lines of the input masks are numbered from 0..49.

Return values:

Current content of the name field Also see: SetObjAttribName GetObjAttrib GetObjAttribKey

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 173

Function GetObjAttribType This function checks out the input type of an input line of the current document mask. This field is analyzed in the default input mask within ELO. If you carry out the entries program-controlled via OLE Automation, you must make sure personally to keep to the type of an entry.

0: Any text field 1: Date field 2: Numerical field

int GetObjAttribType (int AttribNo) Parameters:

AttribNo The lines of the input masks are numbered from 0..49.

Return values:

Type of entry permitted Also see: SetObjAttribType GetObjAttribMax GetObjAttribMin

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 174

Function GetObjFromDoc This function determines the object associated with a certain DocumentId (the DocumentId belongs to the file, not the subject data – this Id is currently being determined here). int GetObjFromDoc (int DocId) Parameters: DocId File number of the source document Return values: -1 No work area active 0 DocId not found, no subject data allocated >0 ObjectId of subject data for the file

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 175

Function GetObjFromDocEx This function detects for an AccessManager Document-Id the appropriate Document-Id. In contrast to the function GetObjFromDoc here not only the current working document but also the attachment as well as the document and attachment versions is considered. The decision, which parts shall attract interest in the search, is controlled by the flags parameter:

2 Consider only the current document version (working version) 3 Consider only current attachment

4 Consider all document versions 5 Consider all attachment versions 6 Consider all document and attachment versions int GetObjFromDocEx (int DocId, int Flags) Parameters:

DocId: AccessManager document number of the entry to be searched Flags: 0..4

Return values:

-3: DocId not found -1: No work area active >1: Ok, Object-Id

Available from:

4.00.106 Example: function Check( DocId ) s="AM-DocId: " & DocId & vbcrlf s=s & "Doc: " & Elo.GetObjFromDocEx( DocId, 0 ) & vbcrlf s=s & "Att: " & Elo.GetObjFromDocEx( DocId, 1 ) & vbcrlf s=s & "DocV: " & Elo.GetObjFromDocEx( DocId, 2 ) & vbcrlf s=s & "AttV: " & Elo.GetObjFromDocEx( DocId, 3 ) & vbcrlf s=s & "DAV: " & Elo.GetObjFromDocEx( DocId, 4 ) & vbcrlf &vbcrlf Check=s end function set elo=CreateObject("ELO.professional") v1=Check(1) v2=Check(2) v3=Check(3) v4=Check(4) v5=Check(5) MsgBox v1 & v2 & v3 & v4 & v5

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 176

Function GetObjFromGuid This function determines the ELO ObjectId for a given ELO Guid. int GetObjFromGuid (AnsiString Guid) Parameters: Guid Guid of the object to be found Return values -1 No work area active

0 Guid not found >0 Object Id

Available from:

3.00.176 Also see: GetGuidFromObj ObjGuid

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 177

Function GetObjMaskNo Returns the number of the current mask (document type). An equivalent SetObjMaskNo does not exist for this; for new Elo documents, the document type is set once with the PrepareObject "for all times". int GetObjMaskNo () Parameters:

None Return values:

Number of the current document mask

Also see: ReadObjMask WriteObjMask

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 178

Function GetObjRef (int ObjId, int RefNo) Apart from the hierarchical tree structure (cabinet – folder – tab – document), ELO offers the possibility to create additional references. A document "Invoice Smith" can be filed in the "Invoices" tab and entered with an additional reference in the "Smith" tab. Although there will only be one copy of the document in the system, it is visible from both locations and can be edited. With this function, the path of the reference can be determined. AnsiString GetObjRef (int ObjId, int RefNo)

ObjId: Internal ELO ID RefNo : Number of the reference to be displayed (starting with 0) (0 is the own reference) Return value:

-2 - Reference not available -1 - No work area active

Otherwise path to reference separated by separator Example: Returns the path of the second reference from object with Id 245. Ref2 = Elo.GetObjRef (245,2) Also see: InsertRef RemoveRef

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 179

Function GetPopupObjectId () With this function you can determine the object currently selected for a context menu. This entry is only valid if it has been requested as a result of a context menu event. int GetPopupObjectId () Parameters: None Return values:

-1: No work area active >0: Current ObjectId

Available from:

3.00.196 Also see:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 180

Function GetPostDir With this function you can quickly determine the postbox path of the current user. AnsiString GetPostDir () Parameters: None Return values:

Postbox path or an empty string in case of an error Also see:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 181

Function GetRegInfo With this function the serial number information of the Access Manager can be requested. For this purpose, the following information is available via the Mode parameter: 0: Name of customer to which the version is registered 1: Number of users in the ELO client 2: Number of users in the Internet Gateway 3: Demo version (TRUE/FALSE) 4: Start version (TRUE/FALSE) 5: Rich text license (TRUE/FALSE) 6: Replication license (TRUE/FALSE) 7: Backup server license (TRUE/FALSE) 8: Validity limit (date or empty) 9: Entire research-IGW (TRUE/FALSE) 10: Dispatch/forward folder (TRUE/FALSE) 11: Entire email filing (TRUE/FALSE) 20: Tobit mail interface (TRUE/FALSE) 21: COLD (TRUE/FALSE) 22: XML import (TRUE/FALSE) 23: SAPALINK interface (TRUE/FALSE) 24: Http DocServer (TRUE/FALSE) 25: File reference generator (TRUE/FALSE) 26: Signature (TRUE/FALSE) 27: Batch scan (TRUE/FALSE) All requests return a text with the number of users, user name (multiple lines) or a "TRUE" or "FALSE" for binary requests.

AnsiString GetRegInfo (int Mode) Parameters:

Mode Selection of the serial number information 0..27 Return values:

Value of the serial number entry Example: ' GetRegInfo.VBS 28.01.2004 '------------------------------------------------------------------ ' © 2002 ELO Digital Office GmbH ' Author: M.Thiele ([email protected]) '------------------------------------------------------------------ ' This script reads the current registry information of the access manager. ' Thereby the GetRegInfo function expects following parameters: ' 0: Name of customer to which the version is registered ' 1: Number of users in the ELO client ' 2: Number of users in the Internet Gateway ' 3: Demo version (TRUE/FALSE) ' 4: Start version (TRUE/FALSE) ' 5: Rich text license (TRUE/FALSE) ' 6: Replication license (TRUE/FALSE) ' 7: Backup server license (TRUE/FALSE) ' 8: Validity limit (date or empty) ' 9: Entire research-IGW (TRUE/FALSE)

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 182

' 10: Dispatch folder (TRUE/FALSE) ' 11: Entire email filing (TRUE/FALSE) ' 20: Tobit mail interface (TRUE/FALSE) ' 21: COLD (TRUE/FALSE) ' 22: XML import (TRUE/FALSE) ' 23: SAPALINK interface (TRUE/FALSE) ' 24: Http DocServer (TRUE/FALSE) ' 25: File reference generator (TRUE/FALSE) ' 26: Signature (TRUE/FALSE) ' 27: Batch scan (TRUE/FALSE) ' ----------------------------------------------------------------- DIM Elo DIM Text DIM i DIM Msg Set Elo=CreateObject( "ELO.professional" ) Text=Array("Username","Number of users","Internetuser",_ "DemoVersion","StartVersion","Fulltextoption",_ "Replication","Backupserver","Limitation of date",_ "SearcheIGW","Dispatch folder","Only email storage",_ "Tobit interface",_ "COLD", "XML Importer", "SAPALINK", "Docserver",_ " File reference generator ", "Signature", "Batch scan") for i=1 to 11 Msg=Msg & Text(i) & " : " & Elo.GetRegInfo(i) & vbcrlf next for i=0 to 7 Msg=Msg & Text(i+12) & " : " & Elo.GetRegInfo(i+20) & vbcrlf next Msg=Msg+vbcrlf Msg=Msg & Text(0) & " : " & vbcrlf & vbcrlf & Elo.GetRegInfo(0) MsgBox Msg Available from:

3.00.282

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 183

Function GetScriptButton This function can be used to return the contents of a script button within the ELO main screen. The function is called from within installation scripts with which scripts are imported, at the same time setting the button and menu content.

AnsiString GetScriptButton (int iTabSheet, int iButton) Parameters:

iTabSheet Choice of view: 1: Archive view (up to 16 buttons)

2: Clipboard (up to 8 buttons) 3: Postbox (up to 8 buttons) 4: Research (up to 8 buttons) 5: Resubmission (up to 8 buttons)

iButton Number of button (1..16 or 1..8) Return values:

Name of script See also: SetScriptMenu SetScriptButton ImportScript

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 184

Function GetScriptEvent (AnsiString Event, int Mode) Available from: Ver 3.00.228 This function reads the script name or complete path of the script set in the script events. AnsiString GetScriptEvent (AnsiString Event, int Mode)

Event: String with event identifier (see event list under SetScriptEvent) Or position when prefixed with a # sign (these values may vary in future ELO versions) Mode: 0 – Script name with complete path and file name extension 1 – Script name only Return values:

-2 Unknown event -1 Mode not implemented 0 No script available

Example: Returns the complete path, with the filename of the script if available CompletePath = ELO.GetScriptEvent ("sEonTimer",0) Returns only the script name, access via event identifier NameOnly = ELO.GetScriptEvent ("sEonTimer",1) Returns the script name, access via event position (#0 = "sEonTimer") NameOnly = ELO. GetScriptEvent ("#0",1) See also: SetScriptEvent

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 185

Function GetTreePath(int Mode, AnsiString Delimiter, int MaxLength) Return the ELO archiving path of the actual tree selection. AnsiString GetTreePath (int Mode, AnsiString Delimiter, int MaxLength)

Mode : 0: Return Short description, 1: ObjectId Delimiter: Delimiter between the entries MaxLength: It the resulting path is longer than this value it will be shortend. Return values : -2 – unknown -1 – invalid mode 0 – not available other ok Available from: 5.00.180 Example: Set Elo = CreateObject( „ELO.professional“) MsgBox Elo.GetTreePath( 0, „ // „, 127 ) MsgBox Elo.GetTreePath( 1, „:“, 1000 )

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 186

Function GotoId Using this function, you can make ELO switch to a certain document (or cabinet, folder, tab). If you wish to link your own entries to ELO documents, it is enough to save the corresponding ELO ObjectId and call up the document via GotoId when you need to. You can use the GotoId(1) special case to return to the original archive view in one step. Usually, the archive view is set up in such a way that the desired object is in the list on the left and is selected. The subentries or the image, if the object is a document, is displayed. Sometimes, it is useful to see the content of the object, not just the object itself. In this case, a minus sign should be added to the ObjectId. int GotoId (int ObjektId) Parameters:

ObjectId ELO Object to be selected, or 0 (back to beginning of the archive) Return values:

-2: Object not found -1: No workspace active 1: Ok

See also: LookupIndex GetEntryId GetEntryName

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 187

Function GotoPath Show a distinct ELO document or structure element. GotoId always uses the main parent for this access, GotoPath contains the complete path, so references can be used. The list of object ids has to be build by ELO object ids with the standard delimiter symbol. int GotoPath(AnsiString ObjektIds ) Parameter:

ObjektIds ELO object id list Return values:

-3: Path not found -2: Invalid object in in path -1: no work area active 1: ok

Available from: 6.00.000 siehe auch: GotoId GetTreePath

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 188

Function GovAddInfo This function include a new request in the request list. Thereby you can define by the parameter Type, if an active request (Type=1) or a version entry (Type=3) shall be created. Please not, that changes in the version history can lead to unreproducable activities. If you create a new request, you have to check in the script, if already other arrangements are existent for the requested period (and in this case do without their own arrangement). This check is not accomplished by the function GovAddInfo. The new request must be created before by filling out all Gov… properties completely. int GovAddInfo (int Type) Parameters:

Type: 1: current request, 3: version history

Return values:

-3: Database error while saving the request -2: Wrong type entry -1: No work area active 1: Ok

Available from: 4.00.096 See also: GovRequestList GovMoveRequest GovDeleteRequest

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 189

Function GovDeleteRequest This function deletes a request of the request list and passes it on to the version history. int GovDeleteRequest (int Type, int RequestId) Parameters:

Type: 1: current request RequestId: Logical number of the request, detected by GovRequestList or GovGetRequestId

Return values:

-3: Database error while saving the request -2: Wrong type entry -1: No work area active 1: Ok

Available from: 4.00.096 Example: Set Elo=CreateObject("ELO.professional") ConfirmReturn sub ConfirmReturn ' firstly detecting the concerned object barcode=InputBox("Please enter the barcode") Id=Elo.LookupIndex("BARC="&barcode) if Id<2 then MsgBox "No record with the barcode found: " & barcode exit sub end if ' Detecting active return request of the selected entry ReqId=Elo.GovGetRequestId(Id, 14) MsgBox ReqId if ReqId<0 then MsgBox "The record is not registered for return" exit sub end if ' and now registering for return call Elo.GovDeleteRequest( 1, ReqId ) call Elo.ClickOn("mbCollect") end sub See also: GovRequestList GovAddRequest GovMoveRequest

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 190

Property GovDueDate (AnsiString) The GovDueDate property contains the request date of the current entry. siehe auch: GovReqStatus GovReqPrio GovObjId GovOwner GovSender GovReqDate GovRetDate GovReqId

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 191

Function GovGetRequestId This function read the appropriate active RequestId to an ELO ObjectId. If no entry is active (i.e. the record is in the archive and not delivered) or several are active (i.e. an error is occurred, since a paper record can only be delivered to one person), an error is reported. int GovGetRequestId (int ObjId, int State) Parameters:

ObjId: Logical ELO number State: 12: active delivered entry

Return values:

-2: Error while reading the database, entry not found or equivocal -1: No work area active 1: Ok

Available from: 4.00.096 Example: Set Elo=CreateObject("ELO.professional") ReturnToArchive sub ReturnToArchive ' Firstly detecting the active object Id=Elo.GetEntryId(-1) if Id<0 then exit sub end if ' detecting the active request of a selected entry ReqId=Elo.GovGetRequestId(Id, 12) MsgBox ReqId if ReqId<0 then exit sub end if ' and now registering for return call Elo.GovMoveRequest( ReqId, -2 ) end sub See also: GovRequestList GovDeleteRequest GovAddRequest

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 192

Function GovMoveRequest This function moves a record from one user to another user or back in the archive. If a record shall be passed on from one user to another user, then the parameter NewUser must be provided with the user number of the recipient (Caution: with that the record is not yet passed on, the recipient has to accept the receiving). A return request into the archive is caused by the NewUser value –2. int GovMoveRequest (int RequestId, int NewUser) Parameters:

RequestId: Logical number of the request, detected by GovRequestList or GovGetRequestId NewUser: User number of the recipient

Return values:

-3: Database error while saving the request -1: No work area active 1: Ok

Available from:

4.00.096 Example: Set Elo=CreateObject("ELO.professional") ReturnToArchive sub ReturnToArchive ' Firstly detecting the active object Id=Elo.GetEntryId(-1) if Id<0 then exit sub end if ' detecting the active request of a selected entry ReqId=Elo.GovGetRequestId(Id, 12) MsgBox ReqId if ReqId<0 then exit sub end if ' and now registering for return call Elo.GovMoveRequest( ReqId, -2 ) end sub See also: GovRequestList GovDeleteRequest GovAddRequest

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 193

Property GovObjId (int) The GocObjId property contains the logical ELO Object-Id of the document or structure element that is assigned to the current active entry. See also: GovReqStatus GovReqPrio GovReqId GovOwner GovSender GovReqDate GovRetDate GovDueDate

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 194

Property GovOwner (int) The GovOwner property contains the AccessManager user number of the owner of the current active entry. See also: GovReqStatus GovReqPrio GovObjId GovReqId GovSender GovReqDate GovRetDate GovDueDate

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 195

Property GovReqDate (AnsiString) The GovReqDate property contains the creation date of the current entry. See also: GovReqStatus GovReqPrio GovObjId GovOwner GovSender GovReqId GovRetDate GovDueDate

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 196

Property GovReqId (int) The GovReqId property contains the request number of the current active entry. For a new entry this number has to be set to 0, at existing entries it should not be changed. See also: GovReqStatus GovReqPrio GovObjId GovOwner GovSender GovReqDate GovRetDate GovDueDate

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 197

Property GovReqPrio (int) The GovReqPrio property contains the priority of the current active entry. See also: GovReqStatus GovReqId GovObjId GovOwner GovSender GovReqDate GovRetDate GovDueDate

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 198

Property GovReqStatus (int) The GovReqStatus property contains the delivery status of the current active entry. #define KOM_STAT_REQUEST 10 #define KOM_STAT_PREP_DELIVERY 11 #define KOM_STAT_DELIVERED 12 #define KOM_STAT_MOVE_PENDING 13 #define KOM_STAT_REQ_RETURN 14 #define KOM_STAT_RETURN_CONFIRMED 15 #define KOM_STAT_MOVE_CONFIRMED 16 See also: GovReqId GovReqPrio GovObjId GovOwner GovSender GovReqDate GovRetDate GovDueDate

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 199

Function GovRequestList This function reads a list of all requests for a paper record. After that the single entries can be activated by the function GovRequestNext and read out by the Gov…properties. Please note, that the list stands IN FRONT OF the first entry after the collecting with GovRequestList, the readout has to begin with a GovRequestNext. You can collect the list by the current requests (Type=1) or by the request history (Type=3). A request is assigned into the version table after occurred return of the record into the archive . int GovRequestList (int Type, int ObjektId) Parameters:

Type 1: Current requests, 3: Record history ObjektId ELO Object-Id

Return values: -2: Invalid type entry -1: No work area active >=0: Ok, amount of the found entries (can be 0 as well, then for this there are no entries).

Available from:

4.00.096 Example: Set Elo=CreateObject("ELO.professional") ShowRequestDates sub ShowRequestDates ' Firstly detecting the active object Id=Elo.GetEntryId(-1) if Id<0 then exit sub end if ' now fetching in the request list cnt=Elo.GovRequestList( 1, Id ) MsgBox cnt & " Entries" if cnt<1 then exit sub end if ' Preparing output tl="Terminliste:" & vbcrlf for i=1 to cnt Elo.GovRequestNext tl=tl & Elo.GovDueDate & " - " & Elo.GovRetDate if Elo.GovReqStatus=12 then tl=tl & " : active" end if tl = tl & vbcrlf next MsgBox tl end sub See also: GovRequestNext Gov... Properties

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 200

Function GovRequestNext This function switches to the next entry of the current read request list. int GovRequestNext () Parameters:

none Return values:

-1: No further entry found 1: Ok

Available from:

4.00.096 Example: Set Elo=CreateObject("ELO.professional") ShowRequestDates sub ShowRequestDates ' Firstly detecting the active object Id=Elo.GetEntryId(-1) if Id<0 then exit sub end if ' now fetching in the request list cnt=Elo.GovRequestList( 1, Id ) MsgBox cnt & " entries" if cnt<1 then exit sub end if ' Preparing output tl="Terminliste:" & vbcrlf for i=1 to cnt Elo.GovRequestNext tl=tl & Elo.GovDueDate & " - " & Elo.GovRetDate if Elo.GovReqStatus=12 then tl=tl & " : active" end if tl = tl & vbcrlf next MsgBox tl end sub

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 201

Property GovRetDate (AnsiString) The GovRetDate property contains the (planed or actual) return date of the current entry. See also: GovReqStatus GovReqPrio GovObjId GovOwner GovSender GovReqDate GovReqId GovDueDate

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 202

Property GovSender (int) The GovSender property contains the recipient of the current entry. See also: GovReqStatus GovReqPrio GovObjId GovOwner GovReqId GovReqDate GovRetDate GovDueDate

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 203

Function Import Using this function, you can reimport an export data record. int Import (AnsiString sSourcePath, int iParentId, int iSelId) Parameters: sSourcePath: Source path of the export record iParentId: Parent node of import object (1=archive) iSelId: ELO ObjectId of the import object Returns:

-2 Error on import -1 No workspace active 1 Ok

Please note, that the import process writes a report file in the postbox of the active user, which you should use for evaluating possible errors.

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 204

Function ImportScript With this function, you can import a script (*.vbs file) into the ELO script folder. The function is called from within installation scripts with which scripts are imported, at the same time setting the button and menu content. int ImportScript (AnsiString SourceFile, int ForceOverwrite) Parameters:

SourceFile Path + name of the script file (e.g. "A:\Script1.VBS")

ForceOverwrite Force a script to be overwritten, if present Return values:

-3: Source file does not exist -2: Copying error

-1: No active workspace available 1: ok

See also: SetScriptMenu SetScriptButton GetScriptButton

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 205

Function ImportWorkflow With this function you can import a workflow template. int ImportWorkflow (AnsiString sSourcePath) Parameters: sSourcePath: Source path of the workflow templates Return values:

-2 Error while importing -1 No work area active 1 Ok

Available from:

4.00.138

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 206

Function InsertDocAttachment Using this function, you can add a file attachment to an existing ELO document. Remember that depending on the document options set, any data link, which already exists will be moved into the history list or overwritten. If the document has "update-proof" status, this function call will be refused. int InsertDocAttachment (int ParentDoc, AnsiString DocumentFile) Parameters:

ParentDoc Internal ELO ObjectId of the document to which the file should be linked. DocumentFile Access path and name of the file that is to be linked.

Return values:

-2: Operation stopped with archive or database error -1: No active workspace available 1: ok

See also: UpdateDocument GetDocumentPath

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 207

Function InsertDocAttachmentEx Using this function, you can add a file attachment to an existing ELO document. Remember that depending on the document options set, any data link, which already exists will be moved into the history list or overwritten. If the document has "version-proof" status, this function call will be refused. int InsertDocAttachmentEx (int ParentDoc, String DocumentFile, String Comment, String Version) Parameters:

ParentDoc Internal ELO ObjectId of the document to which the file should be linked. DocumentFile Access path and name of the file that is to be linked.

Comment Comment (e.g. original file name) for the attachment Version Internal, freely definable version number or label Return values:

-2: Operation stopped with archive or database error -1: No active workspace available 1: Ok

Available from:

3.00.176 See also: UpdateDocument GetDocumentPath

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 208

Function InsertProjectOptions Using this function, you can add to the project options in the activities list. For registering a new project, first create an entry under the pseudo-project "ELO_SYSTEM" with major number 1 (you can set the minor number to 0, the next free number will then be allocated automatically) and the entry value <projectname>. Under this project name, you can then save the lists for the sending method field, return status, recipients and 10 user-defined fields. A list always consists of a heading with the minor number 1, and then an arbitrary number of options for the field value. If the heading starts with an exclamation mark, the user only can select an entry from the list. The user can also enter a freely definable value in all other cases. If no options list has been defined for one of the 10 user-defined fields, the field will not be shown in the editing form. Even if you cannot make any specifications as a list of key words, you must at least enter a heading (minor number 1). int InsertProjectOptions (AnsiString Project, int Major, int Minor, AnsiString Value) Parameters:

Project Project name for which the lists are created. Major 10 Recipients list 11 Sending method 12 Documentation status on return 30..39 User defined field 1..10

Minor Sequential number 1: heading, 2: option 1, 3: option 2… Value Display value Return values:

-2: No project name -1: No active workspace available 1: ok

Example: ' First, the entries already existing are removed, and the ' Script always enters a complete project data record call Elo.DeleteProjectOptions("ELO") ' Next, the new project "ELO" is registered call Elo.InsertProjectOptions("ELO_SYSTEM", 1, 0, "ELO") ' The recipients list (Major-No. 10) is defined. The user ' can only select one entry from this list, own entries are ' not permitted call Elo.InsertProjectOptions("ELO", 10, 1, "!Recipients") call Elo.InsertProjectOptions("ELO", 10, 7, "m.smith") call Elo.InsertProjectOptions("ELO", 10, 2, "g.johnson") call Elo.InsertProjectOptions("ELO", 10, 3, "m.miller") call Elo.InsertProjectOptions("ELO", 10, 4, "w.jones") call Elo.InsertProjectOptions("ELO", 10, 5, "m.peters") call Elo.InsertProjectOptions("ELO", 10, 6, "c.adams") ' The sending method list is also a predefined field without ' any possibility of entering personal data call Elo.InsertProjectOptions("ELO", 11, 1, "!Sending method") call Elo.InsertProjectOptions("ELO", 11, 2, "For viewing")

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 209

call Elo.InsertProjectOptions("ELO", 11, 3, "For approval") call Elo.InsertProjectOptions("ELO", 11, 4, "For processing") ' Receipt status call Elo.InsertProjectOptions("ELO", 12, 1, "!Status") call Elo.InsertProjectOptions("ELO", 12, 2, "Approved") call Elo.InsertProjectOptions("ELO", 12, 3, "Processed") call Elo.InsertProjectOptions("ELO", 12, 4, "Unaltered") ' First user-defined field, name "Product", selection from ' the list only call Elo.InsertProjectOptions("ELO", 30, 1, "!Product") call Elo.InsertProjectOptions("ELO", 30, 2, "ELOprofessional") call Elo.InsertProjectOptions("ELO", 30, 3, "ELOoffice") call Elo.InsertProjectOptions("ELO", 30, 4, "ELOviewer") ' A further user-defined field, the user can select from the ' list or enter any value of choice call Elo.InsertProjectOptions("ELO", 33, 1, "Submodule") call Elo.InsertProjectOptions("ELO", 33, 0, "Internet gateway") call Elo.InsertProjectOptions("ELO", 33, 0, "SAP link") call Elo.InsertProjectOptions("ELO", 33, 0, "Backup server") call Elo.InsertProjectOptions("ELO", 33, 0, "Mobile") ' Another field, not a list call Elo.InsertProjectOptions("ELO", 34, 1, "Additional request") Available from:

3.00.360 See also: DeleteProjectOptions EditActivity ReadActivity WriteActivity NextActivity

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 210

Function InsertRef Besides the hierarchical tree structure (cabinet – folder – tab – document), ELO offers the possibility to create further references. A document "invoice Miller" can be filed in the "invoices" tab and also be listed in the "Miller" tab with an additional reference. Although the document is only present in the system once, it is visible and can be worked on from both places. The parameter OldParent determines whether you want to lay out a new reference (OldParent=-1) or move an existing reference (OldParent > 1). If you are sure that your parameters are absolutely correct, you can switch type checking off using the CheckTypes parameter to increase efficiency. You are then responsible for the reference being executed correctly for the type, so a tab may not be referenced out of a cabinet or another tab, only out of a folder. If there is already a link from "NewParent" to "ObjId", this is not reported as an error. No double link is created either; the original situation remains. int InsertRef (int ObjId, int OldParent, int NewParent, int CheckTypes) Parameters:

ObjId Internal ELO object ID of the entry referenced OldParent -1=new reference, otherwise an existing reference is moved NewParent Object ID of the referencing entry CheckTypes 0: No check; 1: Checking on

Return values:

-10: Database errors when entering a reference -9: No valid parent available -8: Old parent node does not have correct type

(e.g. cabinet as parent node of a tab) -7: New parent node does not possess the correct type -6: A cabinet cannot be given a parent node -5: Error reading new parent node data -4: Error reading old parent data node data -3: Error reading object data -2: Error moving the reference in the database -1: No workspace active

See also: MoveToArchive LookupIndex

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 211

Function InsertVTRep(int, int, AnsiString) This function is used for creating your own text file for full-text key words. int InsertVTRep (int ObjId, int Flag, AnsiString FileName) Parameters:

ObjId: Document for which the full-text file is to be created Flag: Bit 0: Sets flag "enter into the full text".

Bit 1: If already present -> do not overwrite FileName: Name of the text file containing the full-text information (*.TXT).

Return values:

-6, -7: Destination path could not be found -5: Error transferring the file to the access manager -4: File copying error -3: Full-text file already exists -2: Error reading the database information -1: No workspace active >0: Ok, file ID

Available from:

3.00.170 See also:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 212

Function IntToDate This function converts an internal ELO date value into a date text. AnsiString IntToDate (int Datum) Parameters:

Datum The date value to be converted. Return values:

Date text Available from:

3.00.196 See also: DateToInt

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 213

Property IsWfLine(int) Returns 1 if the with GetEntryID selected line of the task items view is a workflow item, 0 if not. Available from: 5.00.140

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 214

Function LoadPostImg This function loads a file into the viewer in the current postbox view. The document need not be situated in the ELO postbox. int LoadPostImg (AnsiString FileName, int Flags) Parameters:

FileName File to be loaded including path Flags Reserved, should be set to 0

Return values:

-2 Loading error -1 No workspace active 1 ok

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 215

Function LoadUserName This function finds the user name for a user ID. If the user does not exist or a wrong ID has been entered, an empty string is returned. AnsiString LoadUserName (int UserId) Parameters:

UserId Internal ELO user ID Return values:

User name

See also: ActiveUserId FindUser SelectUser

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 216

Function LockObject If you would like to process an existing entry and want to make sure that it has not been changed by another user, you can lock it when starting your work using this function. Once you have finished, you can release the entry again. Anyone else who wants to work on this object in that time will receive the message that the entry is already locked. int LockObject (int ObjektId, int ActionCode) Parameters:

ObjectId Internal ELO object ID for the object to be locked or released ActionCode 0=release, 1=lock, 3=query lock status

Return values:

-4: The entry is not locked (action code 3) -3: Invalid action code -2: Entry could not be locked (e.g. because it has already been locked by another user) -1: No workspace active 1: (Action code 0 or 1) Ok 0..n: (Action code 3) User ID of the user who has locked the entry

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 217

Function Login If your program finds an ELO instance already running, it can work within the context of the user already logged in. If your program has to start an ELO instance of its own, however, (e.g. a server process), you will need to log in as the first action. In this login, submit the desired user ID, password and the archives to be worked on. After completion of the work, you must log out (log in with the user ID "LOGOUT"), otherwise the system will return a fault with a possible access conflict at the next start. You have two options for leaving the program, a normal exit (by exiting the program) through the "LOGOUT" ID and an incomplete exit returning to the login dialog using "LOGOUTNOQUIT" (e.g. to log in again under another name or work on another archive). If you have carried out a complete logout, you must not attempt to log in again immediately. Since the program is in the process of exiting, you will encounter an access violation. You must wait for a short time (1..5 seconds) while the program ends completely AND then create a new ELO object with the CreateOleObject function (the old instance is no longer valid, its attempted use will lead to an access violation). int Login (AnsiString UserName, AnsiString Password, AnsiString ArchiveName) Parameters:

UserName ELO user ID under which actions are to be executed Password ELO access password ArchiveName Archive required

Return values:

-1: Login unsuccessful 1: Logout ok 0..255: Login ok, return of connection ID

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 218

Property LookupDelimiter (AnsiString) This function reads or sets the separating symbol for the LookupIndex function (and for related actions, such as the COLD column index). This change affects the entire ELO operation, not only the activities of the OLE automation interface. Available from:

3.00.170 See also: LookupIndex

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 219

Function LookupDocType Detects with the extension the pre-defined ELO document type to a file name. The file name can be available with path, only as file name or also only as extension. int LookupDocType (AnsiString FileName, int DefaultType) Parameters:

FileName File name with extension DefaultType Return value for the case, that no assignment was found

Return values:

Document type or default type Example: Set Elo=CreateObject("ELO.professional") Dim Exts Exts=Array("x.msg", ".msg", "msg", "c:\d\x.doc", "y.xls") res="Ext: Type" & vbcrlf for i=LBound(Exts) to UBound(Exts) res=res & vbcrlf & Exts(i) & " : " & Elo.LookupDocType( Exts(i), -1 ) next MsgBox res Available from:

4.00.034 See also:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 220

Function LookupHistMD5Ext

Function LookupHistMD5 (deprecated) This function looks up the number of documents that have a predefined MD5 hash value. This value is only looked up for newly created documents if the CheckSumIn switch in AccessManager is set to true. Via the mode parameter, you can determine whether deleted documents should be shown by setting the 0 bit position. int LookupHistMD5Ext (AnsiString MD5, int Mode) int LookupHistMD5 (AnsiString MD5) Parameters: MD5 The MD5 value to be looked up (a 32-byte hex character string). Mode 0: Show deleted documents 1: Omit deleted documents Return values: -1 No workspace active 0..n Number of documents with this hash value Available from:

3.00.170 3.00.332 (Ext version)

See also: GetMD5Hash GetHistObj GetHistDoc

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 221

Function LookupIndex Finds the internal ELO Object ID from an access path. You submit an object index to this on the entry you are looking for, and the corresponding object ID will be returned. Using this function, you can look for the object ID for a certain index into which you wish to file a new document, for example. The ObjectIndex can have various forms:

Record into the chaos box (only permitted for documents): The Property ObjIndex contains an empty entry (ObjIndex=""). No filing location is given, so the document will not appear in the filing structure, and can only be displayed after a search.

Record via an internal ELO object ID:

ObjIndex contains the object ID of a parent node (ObjIndex="#12345") prefixed by a # symbol. It is your responsibility to make sure that the parent node exists and has the right type.

Record via an access path:

ObjIndex contains an access path onto the parent node that starts with a ¿ symbol (ObjIndex="¿Cabinet¿Folder¿Tab"). This path is composed of the short names separated by the "¿" symbol (Alt-0191). Remember that using this approach, the same term should not be used twice on this level; otherwise, there can be no unique assignment. For example, there should not be two tabs for the month of March in the Invoices folder. On the other hand, the "March" tab can be used in any other folder.

Record via a key word (documents only):

You can save up to three key terms in one tab (e.g. KDNR 123). If you save the text KDNR = 123 in ObjIndex, the tab mentioned above will be used as the parent node.

Record via *Keytext (???)

int LookupIndex(AnsiString ObjektIndex) Parameters:

ObjIndex Access path to object required Return values:

ObjectId searched for -2: Error -1: No workspace active

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 222

Function LookupKeyName Finds the internal ELO key ID via the key name. Remember that this information comes from a cache local to the client system and newly created keys on other workstations may only be available after a restart. int LookupKeyName (AnsiString KeyName) Parameters:

KeyName Name of the key whose ID is required. Return values:

-1: Key not found >=0: Key ID

See also: ObjKey LookupUserName

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 223

Function LookupMaskName Looks up the internal ELO MaskId via the mask name. Remember that this information comes from a local client cache, and newly created masks on other stations may only be available after a restart. int LookupMaskName (AnsiString MaskName) Parameters:

MaskName Name of the mask whose ID is to be looked up Return values:

-3: No workspace active -2: No mask name given -1: Mask not found >=0: Mask ID

See also: ReadObjMask WriteObjMask

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 224

Function LookupUserName Detects the internal ELO User or GroupId by the user or group name. Please note, that this information comes from a client-local cache and new created users of other stations are eventually first available after a time delay or a reboot. int LookupUserName (AnsiString KeyName) Parameters:

UserName Name of the user/group whose number shall be detected Return values:

-1: Name not found >=0: User/Group ID

Available from: 4.00.054 Example: Set Elo=CreateObject("ELO.professional") Name=InputBox("Please enter a user or group name") MsgBox Elo.LookupUserName(Name) See also: LookupKeyName ReadUser

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 225

Property MaskFlags (int) The MaskFlags property contains information about the type of the mask and the default settings for document flags for new documents of this type. Bit 0,1: 00 No version control. The document can be altered at will. 01 Filing with version control, old versions are retained. 10 True document filing, no further editing/processing possible. 11 Reserved Bit 3: 0 Not to be used as a search mask 1 Can be used as a search mask Bit 4: 0 Not to be used as a filing mask 1 Can be used as a filing mask Bit 6: 0 No full-text post-processing 1 Registered for full-text processing All other bits are reserved or are used for internal purposes; they are to contain the value 0. See also: ObjFlags

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 226

Property MaskKey (int) The MaskKey property determines the key of a mask definition. See also: DocKey DocKind DocPath

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 227

Property MaxResultSet(int) This property contains the maximum size of the search list result set. Please be aware: at some circumstances this value will be replaced by a larger or a fixed value. If this value has been changed for a script search it should be restored afterwards back to the normal value. Otherwise it will be used also for standard searching. Available from: 5.00.180 Example:

MsgBox "Max result set: " & Elo.MaxResultSet Elo.MaxResultSet = 5000

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 228

Function MergeImages

Function MergeImagesEx With this function, you can copy one TIFF file into another TIFF file (e.g. in order to black out certain areas in the image). Select the source file, the target file, the pages and the transparent colour as well as the position in the target document. Please note, that the transparent colour has to be declared as a 24-bit RGB value, for entire black and white documents as well. As base for the Merge-operation 1 bit (black and white) and 24 bit (coloured images) can be used, source and target have to own the same colour resolution. 4, 8 and 16 bit intermediate formats are not supported. int __fastcall EloServer::MergeImages (AnsiString sFileSrc, AnsiString sFileTgt, int iPageSrc, int iPageTgt, int lTransp, int X, int Y) int __fastcall EloServer::MergeImagesEx (AnsiString sFileSrc, AnsiString sFileTgt, int iPageSrc, int iPageTgt, int lTransp, int X, int Y, int Flags) Parameters: SFileSrc: Source file (e.g. a black rectangle) SFileTgt : Target file in which the source file is to be copied IPageSrc: Page in source file (important for multipage documents) IPageTgt: Page of target file LTransp : Transparent colour, which becomes transparent in the target document X,Y: Target coordinates Flags: Bit 0: 1= opaque drawing, 2=transparent drawing Return values:

-2: Error copying image areas 1: Ok

Available from:

4.00.094 Example: Set Elo=CreateObject("ELO.professional") Id=Elo.GetEntryId(-1) if Id>1 then Src=Elo.GetPostDir & "elo.tif" Dst=Elo.GetDocumentPath( Id, 1 ) MsgBox Id & " : " & Dst & " : " & Src MsgBox Elo.MergeImagesEx( Src, Dst, 1, 1, &Hffffff, 100, 200, 1 ) call Elo.UpdateDocument( Id, 0, Dst ) end if

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 229

Function MergePostPages This function serves to file pages in the postbox into a cabinet. It corresponds to the "file pages into cabinet" function in the context menu. This function affects the pages selected in each case. Return values:

-2: No entries selected in the postbox -1: No workspace active

See also: SelectPostBoxLine UnselectPostBoxLine PostBoxLineSelected SelectAllPostBoxLines UnselectAllPostBoxLines

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 230

Property MinDocLevel (int) Using this property, the filing level for documents can be set or read. In this way, you can file documents on any level depending on the setting. Writing access on this property is only available from version 3.00.420. Remember that a change in this value only affects the local client and is not saved. Values:

1 Cabinet 2 Folder 3 Tab ... 253 Tab 254 Document

See also:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 231

Function MovePostboxFile

Function MovePostboxFile2 Moves or copies a file from your own postbox into another user's postbox (iUser parameter). Mode=0 means move, mode=1 means copy. The bit with the value 2 determines whether a MessageBox is shown if an error occurs. The usual MovePostbox command is not included in the postbox protocol; only actions via MovePostbox2 are recorded in the protocol. int MovePostboxFile (AnsiString sDataFile, int iUser, int Mode) int MovePostboxFile2 (AnsiString sDataFile, int iUser, int Mode,AnsiString sReportParam) Parameters:

sDataFile Filename iUser UserId of the recipient iMode 0=move 1=copy sReportParam Additional parameter for the postbox report (short name).

Return values:

-1: Error moving/copying file 1: File successfully moved/copied

Available from: (MovePostbox2) 3.00.276, (MovePostbox) 3.00.216 See also: ActivePostFile FindUser

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 232

Function MoveToArchive

Function MoveToArchiveEx Using this function, you can transfer the active postbox entry (created via AddPostboxFile) into an archive. The object index can take various forms:

Record into the chaos box (only permitted for documents): The Property ObjIndex contains an empty entry (ObjIndex=""). No filing location is given, so the document will not appear in the filing structure, and can only be shown after a search.

Record via an internal ELO object ID:

ObjIndex contains the object ID of a parent node (ObjIndex="#12345") prefixed by a # symbol. It is your responsibility to make sure that the parent node exists and has the right type.

Record via an access path:

ObjIndex contains an access path onto the parent node that starts with a ¿ symbol (ObjIndex="¿Cabinet¿Folder¿Tab"). This path is composed of the short names separated by the "¿" symbol (Alt-0191). Remember that using this approach, the same term should not be used twice on this level; otherwise, there can be no unique assignment. For example, there should not be two tabs for the month of March in the Invoices folder. On the other hand, the "March" tab can be used in any other folder.

Record via a key word (documents only):

You can save up to three key terms in one tab (e.g. KDNR 123). If you save the text KDNR = 123 in ObjIndex, the tab mentioned above will be used as the parent node.

int MoveToArchive (AnsiString ObjektIndex) int MoveToArchiveEx (AnsiString ObjektIndex, AnsiString VersionNo, AnsiString VersionComment) Parameters:

ObjektIndex Filing destination in the filing system VersionNo Version number for the version history of the first document VersionComment Version Comment

Return values:

-3: Error transferring from the postbox into the archive -2: Unknown or non-existent filing destination -1: No workspace active 1: Ok

See also: LookupIndex AddPostboxFile

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 233

Function NextActivity (AnsiString) This function reads from a list of activity entries. In the first query, enter an SQL string with the WHERE clause for the list. The subsequent entries are returned through further queries with empty SQL strings. As soon as no further hits are available, an empty string is returned. When formulating the WHERE clause, remember that the date entries are saved in ISO format. The advantage of this format is the natural sorting so that range queries can be more sensibly executed. The column names available can be taken from the following list. Refer to the following list for the available column names. If you are using Oracle, remember that the server is case-sensitive. All ELO column names are in lower case. The resulting string is composed of the following parts: ActGuid Unique ID of the activity; this must be empty in a new entry. DocGuid GUID of the ELO document (look up via GetGuidFromObj). Destination Destination RevVers Version ActTStamp Time stamp. Leave empty; this field is filled when saving. Project Project name; use a default value if possible Owner Owner, ELO UserId Creator Creator, ELO UserId Prio 0,1 or 2 ShortDesc Short name SentAt Date sent in ISO format SentMode Sending mode DueDate Date return is due, ISO format BackAt Date returned, ISO format BackMode Return status Comment Additional text FileName Name of file sent UD0 User-defined field 1 UD1 … UD9 User-defined field 10 Ansi NextActivity (AnsiString SQLString) Parameters: SQLString: SQL query of records to be selected Return value: Empty No further data Text Result string with separator Example: set Elo=CreateObject("ELO.professional") sql="project like 'ELO'" msg="Activities:" & vbcrlf & vbcrlf for i=1 to 100 res=Elo.NextActivity(sql) sql="" ' Has to be empty for subsequent records in selection if res="" then exit for end if

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 234

msg=msg & res & vbcrlf next MsgBox msg Available from:

3.00.360 See also: ShowActivities EditActivity ReadActivity WriteActivity NextActivity

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 235

Property NodeAction (int) The NodeAction property contains information on whether a node in the script control has been activated or ended:

1 = Node has been activated 2 = Node has been ended

See also: NodeActivateScript NodeAlertWait NodeAvailable NodeComment NodeFlowName NodeName NodeTerminateScript NodeType NodeUser NodeYesNoCondition

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 236

Property NodeActivateDate (AnsiString) This property contains the activation date of the current node. Available from:

3.00.508 See also: NodeAction NodeActivateScript NodeAlertWait NodeAvailable NodeComment NodeFlowName NodeTerminateScript NodeType NodeUser NodeYesNoCondition

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 237

Property NodeActivateScript (AnsiString) The NodeActivateScript contains the name of the script that is automatically called when a node is activated. See also: NodeAction NodeAlertWait NodeAvailable NodeComment NodeFlowName NodeName NodeTerminateScript NodeType NodeUser NodeYesNoCondition

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 238

Property NodeAlertWait (int) The NodeAlertWait property returns the time (in minutes) after which the workflow is to be passed on. If the node is closed later, a timeout error is returned. See also: NodeAction NodeActivateScript NodeAvailable NodeComment NodeFlowName NodeName NodeTerminateScript NodeType NodeUser NodeYesNoCondition

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 239

Property NodeAllowActivate (int) With this property, you can control whether a node within the workflow is activated. This only affects child nodes from a distributing node that has been accessed via GetChildNode.

-1: No node active 0: Node is not activated 1: Node is activated

See also: NodeAction NodeActivateScript NodeAvailable NodeComment NodeFlowName NodeName NodeTerminateScript NodeType NodeUser NodeYesNoCondition

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 240

Property NodeAvailable (int) This property determines whether information on a node in a workflow is available. When testing a script within the script management, there is no useful information on the node in a workflow. 1 = Information on a node available 0 = No information on a node available See also: NodeAction NodeActivateScript NodeAlertWait NodeComment NodeFlowName NodeName NodeTerminateScript NodeType NodeUser NodeYesNoCondition

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 241

Property NodeComment (AnsiString) This property contains the text in the comment field of a node. See also: NodeAction NodeActivateScript NodeAlertWait NodeAvailable NodeFlowName NodeName NodeTerminateScript NodeType NodeUser NodeYesNoCondition

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 242

Property NodeDepartment (int) This property contains the internal ELO UserId of the owner of a node. Available from:

3.00.380 See also: NodeAction NodeActivateScript NodeAlertWait NodeComment NodeFlowName NodeName NodeTerminateScript NodeType NodeUser NodeYesNoCondition

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 243

Property NodeFlowId (int) This property contains the internal workflow number of the node. Available from:

3.00.380 See also: NodeAction NodeActivateScript NodeAlertWait NodeComment NodeFlowName NodeName NodeTerminateScript NodeType NodeUser NodeYesNoCondition

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 244

Property NodeFlowName (AnsiString) This property contains the name of the workflow to which the node belongs. See also: NodeAction NodeActivateScript NodeAlertWait NodeAvailable NodeComment NodeName NodeTerminateScript NodeType NodeUser NodeYesNoCondition

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 245

Property NodeId (int) This property contains the internal node number within the current workflow. Available from:

3.00.380 See also: NodeAction NodeActivateScript NodeAlertWait NodeComment NodeFlowName NodeName NodeTerminateScript NodeType NodeUser NodeYesNoCondition

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 246

Property NodeName (AnsiString) This property contains the text in the name field of a node. See also: NodeAction NodeActivateScript NodeAlertWait NodeAvailable NodeComment NodeFlowName NodeTerminateScript NodeType NodeUser NodeYesNoCondition

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 247

Property NodeObjectID (int) This property contains the object ID of the ELO object inside the workflow control. This can be used inside scripts that are called when activating or closing a node to access the information of the ELO object. Return values:

-1: No node active >0: Object ID

See also: NodeAction NodeActivateScript NodeAlertWait NodeAvailable NodeComment NodeFlowName NodeTerminateScript NodeType NodeUser NodeYesNoCondition

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 248

Property NodeTerminateDate (AnsiString) This property contains the termination date of the current node. Available from:

3.00.508 See also: NodeAction NodeActivateScript NodeAlertWait NodeAvailable NodeComment NodeFlowName NodeTerminateScript NodeType NodeUser NodeYesNoCondition

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 249

Property NodeTerminateScript (AnsiString) The NodeTerminateScript property contains the name of the script that is automatically called when a node is terminated. See also: NodeAction NodeActivateScript NodeAlertWait NodeAvailable NodeComment NodeFlowName NodeName NodeType NodeUser NodeYesNoCondition

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 250

Property NodeType (int) The NodeType property contains information on the node type: 1 = Start node 2 = Person node 3 = Split node 4 = Decision node 5 = Collection node See also: NodeAction NodeActivateScript NodeAlertWait NodeAvailable NodeComment NodeFlowName NodeName NodeTerminateScript NodeUser NodeYesNoCondition

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 251

Property NodeUser (int) The NodeUser property contains information on which user is entered in the node. See also: NodeAction NodeActivateScript NodeAlertWait NodeAvailable NodeComment NodeFlowName NodeName NodeTerminateScript NodeType NodeYesNoCondition

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 252

Property NodeYesNoCondition (AnsiString) This property contains a query that decides the further workflow in a decision node. See also: NodeAction NodeActivateScript NodeAlertWait NodeAvailable NodeComment NodeFlowName NodeName NodeTerminateScript NodeType NodeUser

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 253

Property NoteOwner(int) This property contains the owner of the active "sticky" note in the script event call for editing a sticky note. The script event is activated before the editing dialog and after the editing dialog. Before the dialog, the ScriptActionKey is set to 1, and after editing, it is set to 2 for Ok and 3 for Cancel. Available from:

3.00.330 5.00.224 See also: NoteText NoteType

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 254

Property NoteText (AnsiString) This property contains the text of the active "sticky" note in the script event call for editing a sticky note. The script event is activated before the editing dialog and after the editing dialog. Before the dialog, the ScriptActionKey is set to 1, and after editing, it is set to 2 for Ok and 3 for Cancel. Example: set Elo=CreateObject("ELO.professional") if Elo.ScriptActionKey=1 then note=Elo.NoteText if note<>"" then note=note & vbcrlf & vbcrlf & "====" & vbcrlf end if Elo.ReadUser(Elo.ActiveUserId) note=note & Date & Time & ": " & Elo.UserName & vbcrlf & "----" & vbcrlf Elo.NoteText=note end if Available from:

3.00.330 5.00.224 See also: NoteType NoteOwner

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 255

Property NoteType(int) This property contains the type of the active "sticky" note (sticky note, personal sticky note, stamp) in the script event call for editing a sticky note. The script event is activated before the editing dialog and after the editing dialog. Before the dialog, the ScriptActionKey is set to 1, and after editing, it is set to 2 for Ok and 3 for Cancel. Available from:

3.00.330 5.00.224 See also: NoteText NoteOwner

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 256

Property ObjAcl (AnsiString) With the ObjAcl property, you can either set or read the AccessControlList in the current entry. For a reading query, at least one read access is necessary for the object, and one write access for writing. When you read this property, you will be given a text in the form <entry>, <entry>,…<entry>. Under the entry, first of all you will find the code for the type of access, and then the ID of the key, user or group involved. The access type code is always two characters in length; the following values are available:

• KY This is a key entry • RD A user or group entry with read access rights • WT A user or group entry with write access rights • RW A group or user entry with read/write access rights

You are given the entry "KY2,RD3,WT4,RW5". Key 2 is set; user or group 3 has read access rights, 4 has write access rights, and 5 has read/write access rights. Available from:

4.00.000 Example: Set Elo=CreateObject("LeitzElo.Elo32") ObjectId=Elo.GetEntryId (-1) rv=Elo.PrepareObject(ObjectID,0,0) MsgBox Elo.ObjAcl if Elo.ObjAcl="" then Elo.ObjAcl="RW7" else Elo.ObjAcl=Elo.ObjAcl&",RW7" end if Elo.UpdateObject MsgBox Elo.ObjAcl See also: PromoteAcl

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 257

Property ObjBarcodeInfo(AnsiString) The ObjBarcodeInfo property can be used for querying the barcode configuration for the document type selected. The text is entered via the BarcodeInfo field in the filing mask manager and submitted for internal barcode analysis. However, you can also evaluate this text externally, for example if you wish to insert your own bar code components. Example: set Elo = CreateObject("ELO.professional") MaskNo=Elo.LookupMaskName("Barcode mask") x=Elo.PrepareObjectEx(0,254,MaskNo) MsgBox "BarcodeInfo: " & Elo.ObjBarcodeInfo Available from:

3.00.264

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 258

Property ObjFlags (int) The ObjFlags property has various meanings depending on the type of object. If the object type is a cabinet, folder or tab, ObjFlags contains the order in which subordinate objects are sorted. #define PLO_MANUAL 0 // Manual order #define PLO_ALPHA 1 // Alphabetic order #define PLO_XDATE 2 // Document date (only makes sense with tabs) #define PLO_IDATE 3 // Filing or creation date #define PLO_IXDATE 4 // Inverse – document date #define PLO_IIDATE 5 // Inverse – filing date #define PLO_IALPHA 6 // Inverse – alphabetic order If this object is a document, the flags will contain the version control level and full-text status. Bit 0,1: 00 No version control, the document can be changed at will. 01 Filing with version control, old versions are retained. 10 Genuine document filing, no subsequent editing/processing possible. 11 Reserved Bit 6: 0 No full-text processing. 1 Registered for full-text processing. All other bits are reserved and are only used for internal purposes. They are to be set to 0. See also: ObjShort ObjMemo ObjIDate ObjXDate MaskFlags

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 259

Property ObjGuid (AnsiString) The ObjGuid property contains an internal globally unique ELO object GUID for the current entry. This GUID is unique for every ELO object worldwide, and is also retained on replication. This property is read-only and is only available when replication is switched on. Maximum length: 32 characters Available from:

3.00.180 See also: GetGuidFromObj GetObjFromGuid

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 260

Property ObjIDate (AnsiString) The ObjIDate property contains the filing date of the document or the filing structure element. The date has to be entered in the date format currently set on the system, for example DD-MM-YYYY or MM/DD/YYYY. Remember that it makes no sense to set the property before filing into the archive (e.g. in the postbox or during filing), since this value will always be overwritten by the client software with the current date on filing. If you have to change the entry for whatever reason, you should do this after filing. Maximum length: 12 characters See also: ObjSDate ObjXDate

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 261

Property ObjIndex (AnsiString) The ObjIndex property contains the filing location for the current object. This filing location must be selected according to type, so you can only select a cabinet, but not a tab or another folder, as a filing location for a folder. The ObjectIndex can have various forms:

Record into the chaos box (only permitted for documents): The Property ObjIndex contains an empty entry (ObjIndex=""). No filing location is given, so the document will not appear in the filing structure, and can only be shown after a search.

Record via an internal ELO object ID:

ObjIndex contains the object ID of a parent node (ObjIndex="#12345") prefixed by a # symbol. It is your responsibility to make sure that the parent node exists and has the right type.

Record via an access path:

ObjIndex contains an access path onto the parent node that starts with a ¿ symbol (ObjIndex="¿Cabinet¿Folder¿Tab"). This path is composed of the short names separated by the "¿" symbol (Alt-0191). Remember that using this approach, the same term should not be used twice on this level; otherwise, there can be no unique assignment. For example, there should not be two tabs for the month of March in the Invoices folder. On the other hand, the "March" tab can be used in any other folder.

Record via a key word (documents only):

You can save up to three key terms in one tab (e.g. KDNR 123). If you save the text KDNR = 123 in ObjIndex, the tab mentioned above will be used as the parent node.

Record via *Keytext (???) Maximum length: 200 characters See also: LookupIndex ObjMName

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 262

Property ObjInfo (int) The ObjInfo property contains a freely definable value in interface programming. In an import process, the ObjId is stored from the old archive position, and in an automatic Office Professional archive comparison in the office version, the ObjId from the professional central archive will be stored here. See also: ObjShort ObjMemo ObjIDate ObjXDate ObjSReg

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 263

Property ObjKey (int) The key of the entry is set to or read from the ObjKey property. See also: ObjShort ObjMemo ObjIDate ObjXDate ObjSReg

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 264

Property ObjLock(int) read only The ObjLock property reads the lock on the current entry. The value -1 means that there is no lock on the entry; all other values return the UserId of the lock's owner. Example: set Elo = CreateObject("ELO.professional") id=Elo.GetEntryId(-1) if id>1 then Elo.PrepareObjectEx id,0,0 LockUser=Elo.ObjLock if LockUser<0 then MsgBox "No lock on entry" else MsgBox "Locked by " & Elo.LoadUserName(LockUser) end if end if Available from:

3.00.188 See also: ObjShort ObjMemo ObjIDate ObjXDate ObjSReg

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 265

Property ObjMainParent (int) The ObjMainParent determines the main parent of a folder, tab or document. Note: If this property is changed, you must make sure that the new main parent of a folder is always a cabinet, the main parent of a tab is a folder, and the main parent of a document is a tab. Errors can lead to undefined behaviour in ELO (for example, the GotoObject function can no longer be carried out). See also: DocKey DocKey DocKind DocPath

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 266

Property ObjMaskNo (int) The ObjMaskNo property sets or reads the document type currently set. See also: ObjFlags

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 267

Property ObjMemo (AnsiString) Using this property, you can set the memo text for the current object. This memo text may contain a general description of the entry and is available for all object and document types. Maximum length: 30,000 characters (incl. ObjMemoInfo) See also: ObjShort ObjFlags IDate Xdate ObjMemoInfo

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 268

Property ObjMemoInfo (AnsiString) Using this property, you can set invisible text in the memo field of the current object. This MemoInfo text can only be read or written via an automation interface and is available for all object and document types. Maximum length: 30000 characters (incl. ObjMemo) See also: ObjShort ObjFlags IDate Xdate ObjMemo

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 269

Property ObjMName (AnsiString) Reads/writes the short name of the currently active mask (document type). This field is set when reading or creating an object (PrepareObject) from the mask definition table. Remember that by changing this entry, the document type is not changed (this was set permanently by PrepareObject). Maximum length: 40 characters See also: ReadObjMask WriteObjMask

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 270

Property ObjOwner (int) With the ObjOwner property, you can look up or change the owner of an object. See also: ObjInfo

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 271

Property ObjSDate (AnsiString), ObjSIDate, ObjSVDate The ObjSDate property contains a second document date for a search using a date range. The date must be entered in the format set in the system, for example DD-MM-YYYY or MM/DD/YYYY. Use ObjXDate to determine the start date, ObjSDate to set the end date of the search range. ObjSDate deals with the second object date, ObjSIDate the second filing date and ObjSVDate the second validity end date. These entries are only filled using search masks and are undefined in archive objects. Maximum length: 12 characters See also: ObjIDate ObjXDate

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 272

Property ObjSReg (AnsiString) The ObjSReg property contains the short name of a tab on the index tab. In all other objects, this value is accepted and saved, but is not shown or editable from within ELO. Maximum length: 8 characters See also: ObjInfo

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 273

Property ObjShort (AnsiString) Using the ObjShort property, you can read or write into the current object's short name. This text should (must) be entered for every object since this is the only means of orientation for the user in the filing structure view. Maximum length: 50 characters See also: ObjMemo ObjFlags

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 274

Property ObjStatus (int) Using the ObjStatus property, you can find out whether an object has been deleted (status <> 0). Do not use this property to delete entries simply by overwriting it with the value 1. See also: ObjInfo

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 275

Property ObjType (int), ObjTypeEx (int) Using the ObjType property, you can find out the object type. Archives with a four-level hierarchy work with ObjType, and archives of more than 4 hierarchy levels work with ObjTypeEx. ObjType The following values are available:

1: Cabinet 2: Folder 3: Tab 4: Document

ObjTypeEx The following values are available:

1: Cabinet 2: Folder 3:... . 253: Tab 254: Document

Exercise extreme caution when changing the object type. Normally, there is no reason to change anything here. The object type is set when the entry is created according to the situation, and it therefore makes no sense to change it later. Do not attempt to store tabs in tabs by manipulating this property; this will inevitably lead to inconsistencies in the database. See also: ObjKey ObjFlags ObjKind

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 276

Property ObjVDate (AnsiString) Available from: Ver 3.00.228 The ObjVDate property contains the validity end date of a document. The date must be entered according to the format set in the system for dates, e.g. DD-MM-YYYY or MM/DD/YYYY. If you want to run a search on the validity end date, enter the range in ObjVDate (from) and ObjSVDate (to). Maximum length: 12 characters See also: ObjSDate ObjXDate ObjIDate ObjSVDate

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 277

Property ObjXDate (AnsiString) The ObjXDate property contains the document date (for invoices, for example, the invoice date). The date must be entered in the format set in the system, e.g. DD-MM-YYYY or MM/DD/YYYY. Maximum length: 12 characters See also: ObjIDate ObjSDate

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 278

Function OcrAddRect Adds another rectangle into the OCR identification rectangle list. For the construction of a rectangle list it should be established a defined status with OcrClearRect, after that follows a sequence with at most 32 OcrAddRect commands. The rectangle is assigned in form of a string with the left upper coordinates and the right lower coordinates. All values are express in per thousand (e.g. 0,0,999,999 is the whole page). int OcrAddRect (AnsiString Rectangle) Parameters:

Rectangle in form of xa, ya, xe, ye Return values:

-1: Faulty rectangle list 1: Ok

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 279

Function OcrAnalyze and OcrAnalyzeEx The function OcrAnalyze passes on the name of the file to be evaluated and import with the pre-defined rectangle list the text into the text list. int OcrAnalyze (AnsiString FileName, int PageNumber) int OcrAnalyzeEx (AnsiString FileName, int PageNumber, int Mode) Parameters:

FileName: Name of the file to be analyzed PageNumber: Page to be analyzed (first page is 0) Mode: 1: Detect only digits, 0: Detect all characters

Return values:

-2: OCR Engine could not be initialized -1: Error at the OCR detection 1: Ok

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 280

Function OcrClearRect Deletes the internal rectangle list of the OCR detection. This step should be accomplished as preparation before setting a new rectangle list, so that a defined status exists. int OcrClearRect () Parameters:

none Return values:

always 1, ok

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 281

Function OcrGetPattern Returns a detected partial text of a pattern. Note, that each part of a pattern contains a partial text, even if it is actually permanent or empty. The pattern “*’invoice’_N*” owns as first part of the pattern a * (any character string), after that follows as second part the permanent text ‘invoice’, the third part is a string of empty characters (which can also be empty), the fourth part is a number und at last as the fifth part follows any text again, the complete rest after the detected number can also be empty again. Please note, that you have to request the first part with OcrGetPattern(0) (starting with 0, not with 1). AnsiString OcrGetPattern (int PatternNo)

Parameters:

PatternNo: Number of the partial text out of the last pattern to be returned Return values:

Detected text (in case of an error an empty string)

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 282

Function OcrGetText After the OCR analysis the detected parts of the rectangle list are available in a text field. With the command OcrGetText you can readout these texts, OcrGetText(0) returns the text to the first rectangle, OcrGetText(1) to the second etc… AnsiString OcrGetText (int TextNo) Parameters:

TextNo: Text to the n. entry in the rectangle list (first entry = 0) Return values:

Detected text (in case of an error an empty string is assigned)

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 283

Function OcrPattern The function assumes a pattern and an entered text and splits them according to the default pattern in partial texts. The structure of the pattern string you can gather from the appendix. The parameter PrepareText decides on the pre-processing of the incoming text before the pattern detection (to delete unnecessary white spaces (empty characters etc.)). Thereby the following combinations are available:

• 0: No WS will be deleted in the text • 1: Several WS will be shortened to one • 2: All WS will be deleted

Additionally you can add following values to this start value:

• 8: All WS will be deleted at the beginning and at the end of the text (approximates the TRIM() command in BASIC)

• 16: After every change of lines the WS will be deleted at the beginning of the line. int OcrPattern (int PrepareText, AnsiString Muster, AnsiString Text) Parameters:

PrepareText Source text pre-processing Muster Pattern to be checked Text Text to be checked

Return values:

-3: The pattern could not be found in the text -2: Error arose while preparing the pattern -1: Error arose while preparing the text >0: Pattern was found, the return value contains the amount of partial texts

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 284

Property OfficeMaskNo (AnsiString) The OfficeMaskNo property contains the configuration settings of the ELO client under "System management" – "Options" – "General" – "Standard filing masks for new entries" – "Microsoft Office documents". This property is read-only.

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 285

Property OkEnabled (int) With the OkEnabled property can be checked, if the Ok-button in the ELO subject data dialog is activated and if the user is allowed to make changes at the index data. The property must be checked, when the ELO-subject data dialog is replaced by an own dialog (e.g. a Visual Basic mask). Only if the return value is 1, an Ok-click can be passed on to ELO by setting the property ScriptActionKey to 10. So it is advisable to make the Ok-button of the own mask clickable only then when OkEnabled has the value 1. This property can only be read. Values: 0: Ok-button not activated 1: Ok-button activated

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 286

Function OpenChildNodes This function must be called before the subsequent nodes of the current node of a workflow can be accessed using GetChildNode. The current node must be a distributor node. int OpenChildNodes ()

Return values:

-2: The current node is not a distributor node -1: No node active 1: Ok

See also: NodeActivateScript NodeAlertWait NodeAvailable NodeComment NodeFlowName NodeName NodeTerminateScript NodeType NodeUser NodeYesNoCondition NodeAllowActivate NodeObjectID GetChildNode SelectCurrentNode

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 287

Property (AnsiString) OpenSave (int value) Available from: Ver 3.00.228 The values for the "Open" and "Save" dialog boxes are set or read using this property. Value

Object Entry R/W

1 DefaultExt Text, 3 characters (Rest is truncated) R/W 2 FileEditStyle Value Meaning

Edit Edit Box ComboBox Combo Box

R/W

3 FileName Text: <filename and path> R/W 4 Files Number of files selected with multiselect R/- 5 Filter Text: Text files (*.txt)|*.TXT| C++ files (*.cpp)|*.CPP R/W 6 FilterIndex Number: 1 to number of filter entries R/W 7 InitialDir Text: <Path with drive letter> R/W 8 Options See below (in connection with |) R/W 9 Title Text: <Title> R/W 100… …200

FileName Selected filenames where the AllowMultiSelect option is also set and several files have been selected

R/-

Options:

Value Meaning AllowMultiSelect Allows users to select more than one file in the dialog. CreatePrompt Generates a warning message if the user tries to select a nonexistent file, asking whether to

create a new file with the specified name. ExtensionDifferent

This flag is turned on at runtime whenever the selected filename has an extension that differs from

DefaultExt. If you use this flag an application, remember to reset it. FileMustExist Generates an error message if the user tries to select a nonexistent file. HideReadOnly Removes the Open As Read Only check box from the dialog. NoChangeDir

After the user clicks OK, resets the current directory to whatever it was before the file-selection dialog opened

NoDereferenceLinks Disables dereferencing of Windows shortcuts. If the user selects a shortcut, assigns to FileName the path and file name of the shortcut itself (the .LNK file), rather than the file linked to the shortcut.

NoLongNames Displays 8.3-character file names only. NoNetworkButton Removes the Network button (which opens a Map Network Drive dialog) from the file-

selection dialog. Applies only if the ofOldStyleDialog flag is on. NoReadOnlyReturn Generates an error message if the user tries to select a read-only file. NoTestFileCreate Disables checking for network file protection and inaccessibility of disk drives. Applies

only when the user tries to save a file in a create-no-modify shared network directory. NoValidate Disables checking for invalid characters in file names. Allows selection of file names with

invalid characters OldStyleDialog Creates the older style of file-selection dialog. OverwritePrompt Generates a warning message if the user tries to select a file name that is already in use,

asking whether to overwrite the existing file. PathMustExist Generates an error message if the user tries to select a file name with a nonexistent directory

path. ReadOnly Selects the Open As Read Only check box by default when the dialog opens. ShareAware Ignores sharing errors and allows files to be selected even when sharing violations occur.

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 288

ShowHelp Displays a Help button in the dialog. Example:

Set the default extension to EXE ELO.OpenSave (1) = "EXE" Read the filename returned Filename = ELO.OpenSave (3)

See also: OpenSaveDialog

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 289

Function (AnsiString) OpenSaveDialog (int Type) Available from: Ver 3.00.228 This function creates an "Open" or "Save" dialog depending on type. The values for title, FileName etc are accessible via the OpenSave property. Value Function 1 Open Dialog 2 Save Dialog Return value:

-1 – Type not supported 0 – Dialog closed via "Cancel" button 1 – Dialog closed via "Ok" button (OpenSave property is updated)

Example:

Creates an "Open" dialog ELO.OpenSaveDialog (1)

Creates a "Save" dialog ELO.OpenSaveDialog (2)

Values must be set beforehand with the OpenSave property. Otherwise, the dialog will appear with the default values given by Windows. See also: OpenSave

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 290

Function OrientFile This function can be used for analysing an image file in the postbox, any possible rotation through 90°, 180° or 270° is corrected. The analysis takes place using the OCR system. Before using the function, the OCRInit function has to be called, and OCR Exit after the function is ended. The function also works with multipage TIFF files. As a filename, you can use the entry from the postbox (without the path, only the filename) or an index in the post list (marked by a # sign, e.g. #0 is the first entry in the post list.) int OrientFile (AnsiString FileName, int PageNumber) Parameters:

FileName: Name of the file PageNumber: Page number (Page 1 = "0")

Return values:

-6: Error saving the file -5: OCR error -4: Error loading the page (OCR) -3: Error loading the file -2: No filename -1: No workspace active 1: Ok

See also: GetDocumentOrientation

RotateFile UpdatePostbox

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 291

Property OutlookName (AnsiString) Available from: This property returns the current name of the person or group to which the resubmission is to be sent. See also: DelOutlookName

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 292

Function PostBoxLineSelected This function can be used for testing whether a line in the postbox has been selected. int PostBoxLineSelected (int LineNo) Parameters:

LineNo The line to be tested

Return values:

-2: Invalid line number -1: No workspace active 0: Line not selected 1: Line selected

See also: SelectPostBoxLine UnselectPostBoxLine SelectAllPostBoxLines UnselectAllPostBoxLines

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 293

Function PrepareObject, PrepareObjectEx This function reads an ELO object (cabinet, folder, tab or document) into an internal editing buffer. From here, various fields such as short name, colour, or memo text can be read, processed and edited. These changes can then be transferred to the database permanently using the UpdateObject function. If you wish to create a new object, you first have to initialise a new, empty entry with the ObjectId set to 0 using this function. If you wish to mark an existing entry as "new" (that means all data is retained, but a new entry is created when saved), enter -2 as the ObjectId. This function is available from Version 2.02.059 onwards. The third possibility might be setting a postbox entry as an "active postbox entry". In this case, set ObjectId to -1 and the postbox line number (starting with 0) as the ObjectType. Archives with a four-level hierarchy work with PrepareObject; archives with more than 4 hierarchy levels work with PrepareObjectEx. Remember that when reading postbox entries, the error conditions -5 and -7 are returned. These are only errors in the sense that "the key words could not be read since they have not been created". The postbox entry still exists without key words and can be processed. int PrepareObject (int ObjectId, int ObjType, int MaskNo)

Parameters:

ObjectId 0: for a new entry, -1: for a postbox entry, -2: current entry is marked "New"

otherwise: internal ELO object access ID. ObjectType 1=cabinet, 2=folder, 3=tab, 4=document, If postbox entry: line number (0..n) MaskNo Document type (see also ReadObjMask)

int PrepareObjectEx (int ObjectId, int ObjType, int MaskNo) Parameters:

ObjectId 0: for a new entry, -1: for a postbox entry,

otherwise: internal ELO object access ID. ObjectType 1=cabinet, 2=folder, 3=tab, 4=document, If postbox entry: line number (0..n) MaskNo Document type (see also ReadObjMask)

Return values:

-8: No read access rights -7: The postbox entry does not have any keywords and is selected -6: The postbox entry could not be found -5: The postbox entry does not yet have any key words and is not selected -4: No postbox path found -3: No workspace active -2: Error reading the entry -1: Unknown mask type

1: New empty entry available 2: Existing entry read from the database 3: Existing, selected postbox entry read 4: Existing, non-selected postbox entry read

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 294

5: Existing, deleted but not yet permanently removed postbox entry read Example: call the first postbox document, set the mask ID to 2 and automatically fill the short name and first index field. After that, the document at the given path is transferred to the archive: ' Destination tab for the document TabId = "¿Cabinet¿Folder¿Tab" MaskNo = 2 Set Elo=CreateObject("ELO.professional") ' Update the postbox for safety Elo.UpdatePostbox x=Elo.PrepareObjectEx(-1, 0, MaskNo) if x>0 or x=-5 or x=-7 then Elo.ObjShort="Test" & Time call Elo.SetObjAttrib(0,"Tab 1") call Elo.AddPostboxFile("") x=Elo.MoveToArchive(TabId) else MsgBox "No document found in the postbox" end if See also: UpdateObject LookupIndex

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 295

Function PrepareReplSet This function reads the replication information of a first ELO object. This can be queried via the QueryReplSet function and altered via the SetReplSet function. The changes are then written into the database using UpdateReplSet. Remember that the parent objects are automatically given the necessary replication set for this alteration. Whether the child entries are also changed can be set through the parameter flags. Remember that you cannot take up any logical references in a replication set. This will automatically be passed back to the main parent. int PrepareReplSet (int ObjectId) Parameters:

ObjectId Internal ELO object ID. Example: ' SetRepl.VBS 14.03.2002 '------------------------------------------------------------------ ' © 2002 ELO Digital Office GmbH ' Author: M.Thiele ([email protected]) '------------------------------------------------------------------ ' This script demonstrates how replication sets are written or ' read via the OLE automation interface. ' ' For preparation, create a folder with two tabs, 1, 2 and 3. ' Then enter the object IDs into the following variables: ' FolderID, Tab1 and Tab2. Then carry out the following ' functions: ' ' Tab1 is taken up into replication set 8. ' ' The folder is taken up into set 7. Here, the information ' from Tab1 is not overwritten, so that this tab must ' be included in sets 7 and 8 at the end. ' ' Tab 2 is deleted from replication set 7. The folder or ' other tabs are not affected by this. ' ' The success of these actions for Tab1 are then displayed. '------------------------------------------------------------------ FolderId=4859 Tab1=4867 Tab2=7890 ReplFolder=7 ReplTab1=8 Set Elo=CreateObject("ELO.professional") Result=Elo.PrepareReplSet(Tab1) if Result<0 then MsgBox "Subtab 1 could not be read, error: " & Result else if Result=2 then MsgBox "Subtab 1 already contains replication sets!" end if

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 296

call Elo.SetReplSet(ReplTab1, 1) Result=Elo.UpdateReplSet(5) if Result<0 then MsgBox "Error writing replication set information: " & Result end if end if Result=Elo.PrepareReplSet(FolderId) if Result<0 then MsgBox "The folder could not be read, error: " & Result else call Elo.SetReplSet(ReplFolder, 1) Result=Elo.UpdateReplSet(7) if Result<0 then MsgBox "Error writing replication information: " & Result end if end if Result=Elo.PrepareReplSet(Tab2) if Result<0 then MsgBox "Subtab 2 could not be read, error: " & Result else call Elo.SetReplSet(ReplFolder, 0) Result=Elo.UpdateReplSet(7) if Result<0 then MsgBox "Error writing replication information: " & Result end if end if Result=Elo.PrepareReplSet(Tab1) if Result<0 then MsgBox "Subtab 1 could not be read, error: " & Result else if Result=1 then MsgBox "Subtab 1 does not contain any replication sets!" else Msg="Active replication sets for tab 1: " & vbcrlf & vbcrlf for i=1 to 128 if Elo.QueryReplSet(i)=1 then Msg=Msg & "Replication set " & i & " active." & vbcrlf end if next MsgBox Msg end if end if Return values:

-2: Replication information could not be read -1: No workspace active 1: Ok, object is not yet allocated to a replication set 2: Ok, object is already allocated to at least one replication set

Available from:

3.00.290 See also: QueryReplSet SetReplSet

UpdateReplSet

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 297

Function PromoteAcl This function can be used to alter the subentries of an object to the current ACL. The organization of the ACL entries is described at the ObjAcl property. int PromoteAcl (int iObjId, int iShowResult, int iExact, int UpdateVal, AnsiString mAcl, AnsiString mAdd, AnsiString mDel) Parameters:

iObjId Start node of the entries to be adjusted iShowResult 0: do not show result dialog, 1: show a result dialog iExact 0: mAdd and mDel ACLs contain the changes in the old ACL 1: mAcl contains the new ACL UpdateVal Levels to be noticed: Bit 0=structure element, Bit 1=document mAcl New access control list (ACL), used for all subentries where iExcat=1 mAdd Additional entries for the ACL, used where iExcat=0 mDel Entries to be removed from the ACL, used where iExcat=0

Return values:

-1: No workspace active 1: Ended

Available from:

3.00.204 See also: ObjAcl

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 298

Function (int) PrintDocList (AnsiString DocTitle, AnsiString ObjIdList, AnsiString ObjList, int Type) Available from: Ver 3.00.228 This function prints an overview of the objects given. Where type 1 is given, the column widths can be set via the PrintDocListTabs property. By default, the values are set to A4 portrait. Columns with a column width of 0 are not printed. If the text is too long for the column width, it is automatically truncated and three dots are added to the end. DocTitle: Heading (if "" is returned, the title is the search result) ObjIdList: List with object IDs separated by a separator. Unavailable object IDs are ignored. ObjList: List separated by a separator. Wrong entries are ignored.

Short - Short name Date - Filing date Ddate - Document date Index - Index lines Memo - Memo text Type: 32 Bit integer mask

X x x x x x x x x x x x x x x x x x x x x x x x x x x x 0 3

0 2

0 1

0 0

00 0 – List view

1 – Column view 01 0 – Short headings

1 – Long headings 02 0 – No separator line

1 – Separator line after each entry 03 0 – Show no dialog

1 – Show a dialog (values returned are used) x Currently unused (reserved for extensions)

Return value: -3 Dialog ended via Cancel button -2 No objects available for printing -1 No workspace active 0 Document sent to printer (Ok button pressed in dialog) Example:

To print a list of the given object IDs with the short name, filing date and index lines fields. The heading is the search result.

ELO.PrintDocList ("","10¿11¿52","Short¿Date¿Tab",0)

To print a table of the given object IDs with the short name, filing date and index lines fields. The heading is "My search".

ELO.PrintDocList ("My search", "10¿11¿52", "Short¿Date¿Tab",1) See also: PrintDocListTabs

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 299

Property PrintDocListTabs (int Nr) Available from: Ver 3.00.228 The tabulators for the PrintDocList printout's column view can be set using this property. int PrintDocListTabs (int Nr)

No.: 0 - Default

1 - Short name column 2 - Document date column 3 - Filing date column 4 - Index column 5 - Memo column

The column widths are to be given in mm. The field with the number 0 is for setting the default values. The following entries are permitted:

1 - Sets portrait default values 2 - Sets landscape default values

Example: To set the default values for portrait printing. ELO.PrintDocListTabs (0) = 1 See also: PrintDocList

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 300

Function PrintDocument This function prints the document currently displayed. PrintDocument (int MitDialog, String DeviceName, String Port, int FromPage, int ToPage, int Copies)

Parameters:

MitDialog 1: Before printing, the printer selection dialog appears 0: The printer selection dialog is not shown

DeviceName Name of the printer, can also be a network printer If the device name is "", the default printer is used Port Name of the printer port (only relevant if one and the same printer driver operates

several printers through separate interfaces) If Port="", the default is used

FromPage, ToPage Document is printed from the from page to the to page; if both values are "0",

the whole document is printed Copies Number of copies

Return values: -3: Printing error -2: No document is shown -1: ELO is not in the main view 1: Ok

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 301

Function QueryOption The QueryOption function can be used to query individual settings in the options dialog. AnsiString QueryOption (int OptionNo) Parameters:

OptionNo: Function list; see SetOption Return values:

Current value of the option or "ERROR" Example: Set Elo=CreateObject("ELO.professional") msg="Options:" & vbcrlf & "----------------------" & vbcrlf for i=0 to 20 res=Elo.QueryOption(i) if res="ERROR" then exit for end if msg=msg & i & ": " & res & vbcrlf next MsgBox msg Available from:

3.00.286 See also: SetOption

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 302

Function QueryReplSet With this function, you can query the replication set. Refer to the example under PrepareReplSet. int QueryReplSet (int ReplSetNo) Parameters:

ReplSetNo: Number of the replication set Return values:

-2: No object active (PrepareReplSet is missing or unsuccessful) -1: No active workspace available 1: Replication set is active in the object 2: replication set is not active in the object

See also: SetReplSet QueryReplSet UpdateReplSet

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 303

Function ReadActivity (AnsiString) This function reads the activities entry defined via the ActGuid parameter. The result string is composed of the following parts: ActGuid Unique ID of the activity, leave empty in a new entry! DocGuid GUID of the ELO document (look up with GetGuidFromObj). Destination Recipient RevVers Version ActTStamp Timestamp. Leave empty, created automatically on saving. Project Project name, set default value where possible Owner Owner, ELO user ID Creator Creator, ELO user ID Prio 0,1 or 2 ShortDesc Short name SentAt Date sent, ISO format SentMode Sending method DueDate Expected return date, ISO format BackAt Return date, ISO format BackMode Return status Comment Additional text FileName File name sent UD0 User-defined field 1 UD1 … UD9 User-defined field 10 AnsiString ReadActivity (AnsiString ActGuid) Parameters: ActGuid: Unique ID of the entry to be read Return value: Empty An error has occurred Available from:

3.00.360 See also: ShowActivities EditActivity ReadActivity WriteActivity NextActivity

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 304

Function ReadBarcodes This function reads barcodes situated in a postbox TIFF document. The name of the postbox file can be returned via SourceFile. Alternatively, a line number (#0, #1, #2…) can be returned. The corresponding file in the post list used for the filename. The function returns the number of recognised barcodes; the barcodes can be called using the GetBarcode function. The BarcodeDescriptor parameter contains a list of the rectangles to be analysed. Refer to the barcode documentation for a detailed description of this list. int ReadBarcodes (AnsiString SourceFile, AnsiString BarcodeDescriptor, int MaskNo, int ReadMultiple) Parameters:

SourceFile The file to be analysed or the post list line number (with #Number). BarcodeDescriptor List of rectangles, in barcode format. MaskNo Document type of the key word file to be created ReadMultiple 1 = Read all barcodes in the rectangle defined 0 = Only read one barcode

Return values:

-6: Invalid TIFF format -5: Barcode component could not be initialised -4: Filename does not exist -3: Rectangle list error -2: No rectangle list available

-1: No workspace open >0: Number of recognised barcodes See also: GetBarcode

AnalyzeFile

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 305

Function ReadColorInfo With this function, you can read a colour definition of an ELO colour object. You can access the colour settings via the ColorInfo and ColorName properties. If you need a list of the colours available, you can call the function starting with 0 and the bit set at Ox8000. The next corresponding colour value is then loaded. int ReadColorInfo (int ColorNo) Parameters:

ColorNo: Number of the colour definition to be read

Return values:

-2: Invalid value for colour number -1: No workspace active 1: Ok

See also: WriteColorNo ColorInfo ColorName

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 306

Function ReadKey (int) This function reads the system key entry and returns a name. AnsiString ReadKey (int KeyNo)

KeyNo:

Key number beginning with 1 Return value:

Name of the key or empty string if the key number is invalid. Example: To return the name of the key with the number 1. MsgBox Elo.ReadKey(1) See also: WriteKey ChangeKey

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 307

Function ReadObjMask With this function, you can read a mask (document type) into the internal ELO object. The attribute name and index fields, but not the entry value fields with the defined values, are preset. int ReadObjMask (int MaskNo) Parameters:

MaskNo: Number of the document type mask to be read in

Return values:

-3: No workspace active -2: Invalid value for the mask number -1: Error reading the database 1: Ok

See also: WriteObjMask GetObjMaskNo

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 308

Function ReadSwl Reads one level of a keyword list. Each entry contains a unique two letter level information: AA, AB, AC .. ZZ per level. The root level starts with a dot. „.AAABAC“ starts at the base with the first entry, within this with the second subentry, within this selects the third subentry. The group parameter is connected to the group entry in the keywording form. AnsiString ReadSwl( AnsiString Group, AnsiString Parent, AnsiString Delimiter) Parameters:

Group Selects a keyword list Parent Path of the subtree Delimiter Line delimiter

Return values:

-1: no work area active -2: error when reading -3: invalid or unknown parent path others: Ok

Example ... Set Elo=CreateObject("ELO.professional") call Elo.DeleteSwl( "THM", "." ) MsgBox Elo.AddSw( "THM", ".", "1" ) MsgBox Elo.AddSw( "THM", ".AA", "1.1" ) MsgBox Elo.AddSw( "THM", ".AA", "1.2" ) MsgBox Elo.AddSw( "THM", ".AA", "1.3" ) MsgBox Elo.AddSw( "THM", ".", "2" ) MsgBox Elo.AddSw( "THM", ".", "3" ) MsgBox Elo.ReadSwl( "THM", ".", " - " ) MsgBox Elo.ReadSwl( "THM", ".AA", " - " ) call Elo.UpdateSw( "THM", ".AB", "2a" ) MsgBox Elo.ReadSwl( "THM", ".", " - " ) ... Available from 5.00.066

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 309

Function ReadUser The ReadUser function reads a user record from the system file. Admins can read any user; subadmins can only read their own users. Every user can read his own user data. An empty user record can be created with the UserNo –1. With the UserNo –2 the accumulated rights of the current user are read (i.e. the UserGroups property does not only contain the direct groups, but also all sub-groups, the same applies to UserKeys). (available from version 3.00.546 on) For the creation of a new user a free slot has to be searched (user entry with empty name field). Please be careful with new user numbers, you may destroy existing users. int ReadUser (int UserNo) Parameters: UserNo: Number of the user to be read Return values:

-3 A subadmin has attempted to read a foreign user -2 Only admins and subadmins can read user data -1 Error reading the user from AccessManager 1 An empty user record has been created via UserNo=-1 2 The user record has been read correctly

See also: ReadUser UserGroups

UserParent UserKeys UserFlags

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 310

Function ReadUserProperty The ReadUserProperty function reads a user extension from one of 8 user data fields. Remember that the first four fields are reserved by ELO (e.g. for NT name conversion). Fields 5..8 are freely available. AnsiString ReadUserProperty (int PropertyNo) Parameters: PropertyNo: Number of the property to be read Return values: Property read or empty string for error Example: ' AutoStart.VBS 20.03.2002 '------------------------------------------------------------------ ' © 2002 ELO Digital Office GmbH ' Author: M.Thiele ([email protected]) '------------------------------------------------------------------ ' This script reads a starting folder or a tab and branches to ' the given position. An individual path is entered for each archive. The ' definition is made in the first user-defined user management field as ' |<archive name>¿Cabinet¿Folder|<Archive name 2>¿<Another cabinet>. ' The individual archive definitions are also separated using a pipe ' (|) symbol. Every individual definition starts with the archive ' name, followed by an archive path. ' ----------------------------------------------------------------- Set Elo=CreateObject("ELO.professional") Elo.ReadUser(Elo.ActiveUserId) Param=Elo.ReadUserProperty(5) if Param<>"" then ArcList=Split(Param, "|") ArcName=Elo.GetArcName & "¿" for i=LBound(ArcList) to UBound(ArcList) ThisEntry=ArcList(i) if Left(ThisEntry, Len(ArcName))=ArcName then ThisEntry=Mid(ThisEntry, Len(ArcName), 255) ThisId=Elo.LookupIndex(ThisEntry) if ThisId>0 then Elo.GotoId(0-ThisId) end if end if next end if See also: WriteUserProperty UserGroups

UserParent UserKeys UserFlags

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 311

Function ReadWFNode(int, int, int, int) Reads a selected node of the active workflow. The properties of this node can be changed via NodeFlowName, NodeName, NodeType and more (but be careful to keep the flow in a valid state). After this call the function GetNodeList gives access to all nodes of the workflow int ReadWFNode(int FlowId, int NodeId, int ELOObjId, int Flags) Parameters: FlowId: Workflow Id, -2 selects the last accessed line of the task view NodeId: Node number ELOObjId: ELO Object Id of the connected document Flags: unused, always 0 Return values: -1: no work area active -2: the selected task item is not a workflow -3: error reading the workflow -4: invalid NodeId 1: ok Example: Set Elo=CreateObject("ELO.professional") Elo.SelectView(5) For i=0 To 10 iID=Elo.GetEntryID(i) If iID=0 Then Exit For If Elo.IsWFLine=1 Then Call Elo.ReadWFNode(-2,0,0,0) MsgBox "Aktiver Knoten: " & Elo.NodeName & " / " & Elo.NodeFlowName cnt=Elo.GetNodeList(1) For j=0 To cnt-1 Call Elo.SelectNode(j) If Elo.NodeType=2 then MsgBox "Knoten " & Elo.NodeID & ": " & Elo.NodeName & " [" &

Elo.LoadUserName(Elo.NodeUser) & "]" End If Next End If Next Available from: 5.00.140

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 312

Function ReadWv Reads a to-do date (determined by the WvIdent parameter) into the internal to-do memory. This date can then be read out with the various Property functions. If WvIdent has 0 value, the internal to-do memory is deleted; this operation is essential before creating a new date. int ReadWv (int WvId) Parameters: WvId: number of date to read, 0: create new, blank date Return values:

-2: error while reading -1: No active work area 1: Ok

See also: WriteWv DeleteWv WvIdent WvParent WvUserOwner WvUserFrom WvDate WvCreateDate WvPrio WvParentType WvShort WvDesc

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 313

Function ReloadWv This function updates the list of to-do dates in the main ELO window. int ReadWv() Parameters: None Return values:

-1: No active work area 1: Ok

See also: WriteWv DeleteWv WvIdent WvParent WvUserOwner WvUserFrom WvDate WvCreateDate WvPrio WvParentType WvShort WvDesc

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 314

Function RemoveDocs(int, AnsiString, int) The dialog for the removal of document files with backup can be automated by this function call. There are parameters for the filing path, delete date and the backup control. The delete date has to be in the ISO date format YYYYMMDD (Year – Month – Day). The backup control decides if the backup document will be checked before the deletion. Value 1 deletes without any further checks (only for test data recommended). Value 2 initiates a directory check for file sizes and value 3 forces a complete verify before deletion. With the values 1, 2 or 3 the function does only a check, without deletion. You get only a report with the expected deletion information. Add 21840 to this value for the final deletion (Values 21841, 21842 or 21843). The result report contains a list of comma separated values: 1. Last document id 2. Number of deleted files 3. Number of files without backup 4. Number of broken entries 5. Number of deleted bytes (only valid below 2 GB) AnsiString RemoveDocs( int PathId, AnsiString DelDate, int Mode ) Parameters PathId: Only delete documents from path … (0: all paths) DelDate: Only delete if written before … Mode: Backup check Return value -1 Cannot delete -2 Invalid DelDate -3 no work area active others report Available since: 5.00.094 Example: Elo.RemoveDocs(1, "20050727", 3)

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 315

Function RemoveRef (int, int) Available from: 3.00.??? As well as its hierarchical tree structure (Cabinet - Folder - Tab - Document) ELO also lets you create other references. A document called "Miller invoice" can be filed under the "Invoices" tab and entered in the "Miller" tab with an additional reference. Although there is only one instance of that document in the system, it can be viewed and processed in both places. The function also lets you remove a reference already created. int RemoveRef (int ObjId, int RefNo) ObjId : Internal ELO Id RefNo : Number of reference to be deleted (starting with 1) Return value:

-5 Additional references only deletable -4 No read-write access to object -3 Delete failed -2 Reference not available -1 No active work area

0 Reference deleted Example: Removes fifth reference from object with Id 34. Elo.RemoveRef (34,5) See also: InsertRef GetObjRef

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 316

Function RotateFile This function lets you rotate a graphics file in the postbox by 90, 180 or 270 degrees. In the current version only single page TIFFS can be rotated; multipage documents cannot be handled. The filename given may be an item from the postbox (no path, just the filename), an index number in the post list (marked with #, e.g. #0 is the first item in the mail list) or an empty string. In this case the current postbox file (ActivePostFile, e.g. from the previous scan) is used. int RotateFile (AnsiString FileName, int Degree) Parameters:

FileName: Name of file to be rotated Degree: Angle of rotation, 90, 180 or 270

Return values:

-4: File could not be rotated or saved. -3: Error reading file -2: No filename

-1: No active work area 1: Ok

See also: AnalyzePostfile UpdatePostbox

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 317

Function RunEloScript This function starts an ELO script. The system searches for the script file in the Postbox\EloScripts directory. int RunEloScript (AnsiString FileName) Parameters:

FileName Script to be run (without extension) Return values:

-1: Script file not available 0: Ok

See also: DoExecute

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 318

Function SaveDocumentPage This function lets you save one page of a multipage TIFF file. int SaveDocumentPage (AnsiString sFileName, int iPage, int iQuality) Parameters:

sFileName: Name of file to be saved iPage: Page number (indexed with "1") iQuality: Quality of JPEG graphics (0..100)

Return values:

-3: Error saving -2: No viewer visible -1: No active work area

1: Ok See also:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 319

Function SaveDocumentZoomed This function lets you save the document currently displayed with a zoom factor. int SaveDocumentZoomed (AnsiString sFileName, int iZoom, int iQuality) Parameters:

sFileName: Name of file to be saved iZoom: Zoom factor in [%] iQuality: Quality of JPEG graphics (0..100)

Return values:

-3: Error saving -2: No viewer visible -1: No active work area

1: Ok See also:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 320

Function SaveObject This function lets you save and restore the internal object wrapper text data. The function may not be used repeatedly, because there is only one Save memory. Every Save action overwrites the previous one. The Restore function may be used repeatedly, but in that case the same data is restored each time. int SaveObject (int Mode) Parameters:

Mode: 1: Save, 2: Backup

Return values:

-1: Invalid parameters 1: Ok

See also:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 321

Property ScriptActionKey (int) This property is used to return information to ELO from the script. ELO responds to it with very specific actions.

Program context Value Action by ELO

10 Wrapper mask is closed by choosing 'OK' Calling a script when entering a wrapper text mask -10 Wrapper mask is closed by choosing 'Cancel'

0 Don't import/export Scripts: before importing/exporting 1 Import/export

11 "Short description" field gets input focus 12 "Memo" field gets input focus 13 "Date" field gets input focus

Controlling input focus in the wrapper mask in scripts running when you enter or leave input fields 1000+n

(n=0..49) Input line n gets input focus

Available from: Ver 3.00.228 After OK click in the wrapper mask

-20 Cancel OK action

Available from: Ver 3.000.350

Post-it note 0 After editing a post-it note 1 Before editing a post-it note Add/ Move Entry -30 Suppress move See also:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 322

Property SearchListColumns ( AnsiString ) Reads the header columns of the search result list, concatenated with a pipe symbol "|". Available from: 5.00.174

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 323

Function SearchListLineId With this function the ELO ObjectId of a line out of the search view can be detected. int SearchListLineId (int LineNo) Parameters:

LineNo Line to be selected

Return values:

-2: Invalid line number -1: No work area active >0: ObjectId

Available from:

5.00.036 Example:

Set Elo = CreateObject( "ELO.professional" ) for i = 0 to 8 res = res & Elo.SearchListLineSelected( i ) & " - " & Elo.SearchListLineId( i ) & ", " next MsgBox res

See also: UnselectSearchListLine SelectSearchListLine

SearchListLineSelected

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 324

Function SearchListLineSelected This function lets you test whether a line in the search view is selected. int SearchListLineSelected (int LineNo) Parameters:

LineNo Line to be selected

Return values:

-2: Invalid line number -1: No active work area 0: Line not selected 1: Line selected

See also: UnselectSearchListLine SelectSearchListLine

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 325

Function SelectAllPostBoxLines This function selects all the lines of the postbox. int SelectAllPostBoxLines () Parameters:

None

Return values:

-1: No active work area 1: Ok

See also: SelectPostBoxLine UnselectPostBoxLine PostBoxLineSelected UnselectAllPostBoxLines

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 326

Function SelectArcListLine This function selects an entry in the search view. Thereby the line number runs from 0 till the amount of entries minus 1. int SelectArcListLine (int LineNo) Parameters:

LineNo Line to be selected

Return values:

-2: Invalid line number -1: No work area active 1: Ok

Available from:

5.00.036 Example:

Set Elo = CreateObject( "ELO.professional" ) for i = 0 to 8 res = res & Elo.ArcListLineSelected( i ) & " - " next for i = 0 to 3 Elo.SelectArcListLine( i ) next for i = 4 to 7 Elo.UnselectArcListLine( i ) next Elo.SelectArcListLine( 8 ) MsgBox res

See also: UnselectArcListLine ArcListLineSelected

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 327

Function SelectCurrentNode If the OpenChildNodes and GetChildNode functions were used to edit the successors of the active node in workflow control, then SelectCurrentNode must be recalled to give you access to the current node again. int SelectCurrentNode ()

Return values:

-1: No node activated 1: Ok

See also: NodeActivateScript NodeAlertWait NodeAvailable NodeComment NodeFlowName NodeName NodeTerminateScript NodeType NodeUser NodeYesNoCondition NodeAllowActivate NodeObjectID OpenChildNodes GetChildNode

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 328

Function SelectLine The SelectLine function lets you select an entry in the current selection list. To do this, the left-hand page of Archive view is used, or the Clipboard list, Post list, Search list or To-do list. int SelectLine (int LineNo) Parameters: LineNo: Line to be selected Return values: -4: Reaches end of list

-3: No active work area -2: No selection list available Otherwise: Line selected before operation

See also: SelectView

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 329

Function SelectNode This function selects an entry from the list of workflow nodes prepared with "GetNodeList". int SelectNode (int NodeNumber) Parameters: NodeNumber Node selected (0..n-1). Return values:

-2: Invalid node number 1: Ok

Available from:

3.00.508 See also: GetNodeList NodeXXX Properties

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 330

Function SelectPostBoxLine

Function SelectPostBoxLineEx This function selects an entry in the Postbox. By using SelectPostBoxLineEx you can load the document in the viewer again. int SelectPostBoxLine (int LineNo) int SelectPostBoxLineEx (int LineNo, int Mode) Parameters:

LineNo Line to be selected Mode 1=Document is reloaded in the viewer

Return values:

-2: Invalid line number -1: No active work area 1: Ok

See also: UnselectPostBoxLine PostBoxLineSelected SelectAllPostBoxLines UnselectAllPostBoxLines

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 331

Function SelectRootNode This selects the root node of the current workflow. This root node can be queried or edited with the node…properties. If you need the current node again afterwards, call it up with the SelectCurrentNode function. int SelectRootNode ()

Return values:

1: Ok Example: set Elo=CreateObject("ELO.professional") call Elo.SelectRootNode fields=split(Elo.NodeComment,",") call Elo.ConfirmWorkflowEx(fields(0), fields(1), fields(2), fields(3), "Back","", 1,0) Available from:

3.00.380 See also: NodeActivateScript NodeAlertWait NodeAvailable NodeComment NodeFlowName NodeName NodeTerminateScript NodeType NodeUser NodeYesNoCondition NodeAllowActivate NodeObjectID OpenChildNodes GetChildNode

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 332

Function SelectSearchListLine This function selects an entry in Search view. The line number here runs from 0 till the amount of entries minus 1. From version 3.00.544 on, you have the further possibility to enter a negative line number. In this case the line is not only selected but the document view on this line is additionally actualized. Since for the first line it can’t be distinguished between a “0” and a “minus 0”, this line begins at “-1” instead of a “-0” for the first entry. int SelectSearchListLine (int LineNo) Parameters:

LineNo Line to be selected

Return values:

-2: Invalid line number -1: No active work area 1: Ok

See also: UnselectSearchListLine SearchListLineSelected

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 333

Function SelectTreePath This command activates the tree view in the search view and seperates it according to the specified parameter strings. The various levels are each marked by a ¶-Seperator, the last level will be selected and not seperated further. Thereby you can declare for the last level the placeholders “*” for “select first entry” and “-“ for “select nothing”. int SelectTreePath (AnsiString TreePath) Parameters:

TreePath Path to be seperated in the tree view Return values:

-1: No work area active 1: Ok

Examples: The following example accomplishes a search over all emails (mask number 2), which contain anywhere in the sender “Thiele”. Afterwards the path stock – purchase – arrivals is seperated an there the first sub-entry is selected: Set Elo=CreateObject("ELO.professional") Elo.SelectView 4 Elo.PrepareObjectEx 0, 0, 2 Elo.SetObjAttrib 0, "%Thiele%" Elo.DoSearch Elo.SelectTreePath "stock¶purchase¶arrivals¶*" Available from:

4.00.152 See also: SelectView

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 334

Function SelectUser

Function SelectUserEx The SelectUser and SelectUserEx function lets you call a selection dialog to select a user. You get a list of all users (optionally suppressing your own entry) and get returned the user ID selected (or –1 if you cancel). int SelectUser (int SuppressOwnName) Parameters:

SuppressOwnName 0: All users, including your own name 1: Your own name is not included for selection.

Return values:

-1: No user selected >=0: UserId

AnsiString SelectUserEx (int SelectFlags) Parameters: SelectFlags Value: 1: Allow MultiSelect in user selection 16: User name – choose last name 32: Group name – choose last name 256: Do not include own name in list Return values:

Empty: No user selected Otherwise: user list, with multiple selection numbers separated by commas

Example: Set Elo=CreateObject("ELO.professional") Users = Elo.SelectUserEx(1) UserList = split(Users, ",") for each UserNo in UserList MsgBox Elo.LoadUserName(UserNo) Next Available from (Ex):

3.00.276 See also: FindUser LoadUserName ActiveUserId

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 335

Function SelectView The SelectView function lets you decide which working view you want to have on top. You can also use it to ask which view is currently active. int SelectView (int ViewId) Parameters:

ViewId 0: Query current View, response value 1..5 1: Archive View 2: Clipboard 3: Postbox 4: Search 5: To-dos 6: Messages 7: (Government Version only) Records 8: In preparation

Return values:

-2: Invalid value for ViewId -1: No active work area 1: When ViewId>0: new view activated

See also: SelectLine

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 336

Function SelectWorkArea Normally all Automation commands affecting the UserInterface (e.g. GotoId) apply to the currently active view. If you are working with a second view, you cannot control the two windows independently of each other. The SelectWorkArea function lets you define all subsequent commands for one of the two views. After completing the window-based operations, you should reset to the standard setting with SelectWorkArea(0). Watch out that, where operations extend over a period of time, a work area may have become invalid, e.g. if the user has closed the window in the meantime. For this reason the explicit selection should always only be made at short notice and should be reset immediately after completing the tasks. Example: set Elo = CreateObject("ELO.professional") if Elo.SelectWorkArea(1)>=0 then ‘ now come the commands for the first work area x=Elo.SelectView(3) ’ Switch to Postbox view end if if Elo.SelectWorkArea(2)>=0 then ‘ now come the commands for the second work area x=Elo.SelectView(5) ‘Switch to To-do view end if ’After the operation reset to standard setting x=Elo.SelectWorkArea(0) int SelectWorkArea (int ViewNr) Parameters: ViewNr. Number of work area 0: uses area currently active (standard setting) 1: uses area 1 2: uses area 2 Return values:

-2: Area selected not active -1: Invalid work area selected 0,1,2: Area last selected

Available from:

3.00.264

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 337

Function SelList The SelList function lets you make ELO show a hierarchical list. As input parameter you give the filename of the list. If you only give a name without a filepath, the file is expected in the Postbox directory. As return value you get an empty string (Cancel) or the option selected. AnsiString SelList (AnsiString)

Return values:

Empty: Cancel, no selection Text: Option selected

See also:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 338

Function SeparateTiffFile With the function SeperateTiffFile you can split multipage tiff-files into single tiff files. These files can automatically, controlled by separate pages, be combined to partial documents again. For the single files the original name is used as file name. This name is added by an underscore and the line number (starting with 0). From the file XYZ.TIF the single files XYZ_0.Tif, XYZ_1.TIF … becomes, they are filed in the same directory. Caution: ELO does not check, if a name conflict is existent for the new created files. If there exists already an entry among one of the automatically generated file names, it will be overwritten without demand or warning. If it is not guaranteed, that such conflicts cannot occur, the script must accomplish this check before the request.

AnsiString SeparateTiffFile (AnsiString FileName, int ScanProfil, int Trennseite, int Leerseite) Parameters:

FileName: Path and file name of the file to be split ScanProfil: -1: no default, 0..7: ELO scan profile (definition of the seperator page, empty page) Treenseite: Seperator page to be used for partial document detection: 1: No seperator page, all pages are put into one target document 2: Bar seperator page 3: Empty page as seperator page 4: Single pages, no partial document compendium Leerseite: 0: Maintain empty pages, 1: Abolish empty pages

Return values:

List of the created file names, connected with a seperator each example: set Elo = CreateObject("ELO.professional") file=Elo.ActivePostFile if file <> "" then MsgBox Elo.SeparateTiffFile( file, -1, 4, 0 ) end if Available from:

4.00.212

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 339

Function SetCookie The SetCookie function sets the value of a cookie entry. If the cookie does not yet exist, it is automatically generated. The Get/SetCookie functions are primarily intended so ELO scripting macros can store information permanently in ELO. The cookie memory is only deleted when you close ELO. To set a cookie, you give it a name and a value. You access a cookie with its name (Ident) and the value assigned to it is returned. If the cookie is not known, an empty string is returned. Please note the number of cookies is limited. Each macro and any other external program should only use a few of them and each time you launch it you should use the same ones again and not keep creating new ones. int SetCookie (AnsiString Ident, AnsiString Value) Parameters: Ident Cookie name, used with GetCookie Value Cookie content Return values:

-1: Error creating cookie (e.g. memory full) 1: Ok

See also: GetCookie

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 340

Function SetObjAttrib This function sets the value of an input line in the current document mask. There are 3 values for each input line:

The "visible" description, shown to the user in the document masks as a field name (e.g. invoice number). It provides a line name for the user. The extension, used in the database to identify the line in the index (e.g. RENR). It provides a line reference for the machine. The input value; this saves the user input (e.g. 199807106)

int SetObjAttrib (int AttribNo, AnsiString AttribValue) Parameters:

AttribNo The lines of the input masks are numbered consecutively from 0…49. AttribValue The new input value of this line, up to 30 characters at all

Return values:

-2: No write access -1: Invalid line number 1: Ok

See also: GetObjAttrib SetObjAttribKey SetObjAttribName

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 341

Function SetObjAttribFlags Changes the flags of a keywording line of the current document mask. Bit values: Bit 0 Insert only from keywording list Bit 1 append starting * before searching Bit 2 append final * before searching Bit 3 Tab break after this line Bit 4 Line is invisible Bit 5 Line is read only Bit 6 Show line with the short description int SetObjAttribFlags( int AttribNo, int Flags ) Parameters: AttribNo: Line Number, from 0 to 49 and 51 (Filename of the document) Flags: New Flags value Return values: -1: Invalid line number -2: No write access 1: ok Available from: 5.00.164

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 342

Function SetObjAttribKey This function changes the index key of a line of the current document mask. There are 3 values for each input line:

The "visible" description, shown to the user in the document masks as a field name (e.g. invoice number). It provides a line name for the user. The extension, used in the database to identify the line in the index (e.g. RENR). It provides a line reference for the machine. The input value; this saves the user input (e.g. 199807106)

int SetObjAttribKey (int AttribNo, AnsiString KeyValue) Parameters:

AttribNo The lines of the input masks are numbered consecutively from 0…49. KeyValue The new index of this line.

Return values:

-2: No write access -1: Invalid line number 1: Ok

See also: GetObjAttribKey SetObjAttrib SetObjAttribName

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 343

Function SetObjAttribMax This function sets the maximum length of an input line in the current document mask. The field is evaluated in the standard input mask within ELO. If you make your inputs using the OLE Automation program, you must make sure yourself that the minimum and maximum lengths of an input are observed.

int SetObjAttribMax (int AttribNo, int AttribMax) Parameters:

AttribNo The lines of the input masks are numbered consecutively from 0…49. AttribMax Maximum length of input, 0: No control

Return values:

-2: No write access -1: Invalid input line 1: Ok

See also: GetObjAttribMax SetObjAttribMin GetObjAttribType

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 344

Function SetObjAttribMin This function sets the minimum length of an input line in the current document mask. The field is evaluated in the standard input mask within ELO. If you make your inputs using the OLE Automation program, you must make sure yourself that the minimum and maximum lengths of an input are observed. int SetObjAttribMin (int AttribNo, int AttribMin) Parameters:

AttribNo The lines of the input masks are numbered consecutively from 0…49. AttribMin Minimum length of input, 0: No control

Return values:

-2: No write access -1: Invalid input line 1: Ok

See also: GetObjAttribMin SetObjAttribMax SetObjAttribType

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 345

Function SetObjAttribName This function changes the name of a line the user sees in the current document mask. There are 3 values for each input line:

The "visible" description, shown to the user in the document masks as a field name (e.g. invoice number). It provides a line name for the user. The extension, used in the database to identify the line in the index (e.g. RENR). It provides a line reference for the machine. The input value; this saves the user input (e.g. 199807106)

int SetObjAttribName (int AttribNo, AnsiString NameValue) Parameters:

AttribNo The lines of the input masks are numbered consecutively from 0…49. NameValue The new name of this line.

Return values:

-2: No write access -1: Invalid line number 1: Ok

See also: GetObjAttribName SetObjAttrib SetObjAttribKey

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 346

Function SetObjAttribType This function sets the type of input of an input line in the current document mask. The field is evaluated in the standard input mask within ELO. If you make your inputs using the OLE Automation program, you must make sure yourself that the input type is observed.

0: any text field 1: date field 2: numerical field

int SetObjAttribType (int AttribNo, int AttribType) Parameters:

AttribNo The lines of the input masks are numbered consecutively from 0…49. AttribMax Permitted input type

Return values:

-2: No write access -1: Invalid input line 1: Ok

See also: GetObjAttribType SetObjAttribMax SetObjAttribMin

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 347

Function SetOption The SetOption function lets you change individual settings temporarily in the Options dialog. The call gives as return value the value of the current setting. AnsiString SetOption (int OptionNo, AnsiString NewValue) Parameters:

OptionNo: 0: Postbox – automatically stored if index is complete 1: Name of fax printer (if configured) 2: Name of TIFF printer (if configured) 3: OM: name of Outlook mask 4: OM: number of "Sender" index line 5: OM: number of "Recipient" index line 6: OM: number of "Id" index line 7: OM: how it is filed (0=MSG format) 8: Client running in an NT environment 9: Length of index line 10: Length of short description 11: Length of memo text 12: Pre-defined postbox mask 13: Mask for new structure elements 14: Mask for new documents 15: Mask for new office documents 16: threshold value for “large document” warning 17: Last ObjectId number in archive (read only)

Return values:

Old value of option or "ERROR" Example Set Elo=CreateObject("ELO.professional") OldVal=Elo.SetOption(0, "FALSE") MsgBox "Old value of the option stood at :" & OldVal & ", it was changed to False." NewVal=Elo.QueryOption(0) MsgBox "New value of the option stands at : " &NewVal call Elo.SetOption(0, OldVal) MsgBox "Value was reset to original status again." Available from:

3.00.286 Option No 3 and following: from 3.00.350 See also: QueryOption

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 348

Function SetReplSet This function lets you add or erase a new replication set. You will find an example of this under PrepareReplSet. int SetReplSet (int ReplSetNo, int Status) Parameters:

ReplSetNo: Number of replication set to be set or deleted Status: 0: Delete set, 1: Set set

Return values:

-2: No active object (PrepareReplSet missing or failed) -1: No active work area 1: Ok

See also: PrepareReplSet QueryReplSet UpdateReplSet

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 349

Function SetScriptButton This function lets you assign a script to a script button on the main ELO screen. The assignment is saved under the respective user. The function is called within installation scripts, which allow scripts to be imported and buttons and menus to be assigned at the same time.

int SetScriptButton (int iTabSheet, int iButton, AnsiString sScriptName, int iVisible) Parameters:

iTabSheet Select view: 1: Archive view (up to 16 buttons)

2: Clipboard view (up to 8 buttons) 3: Postbox (up to 8 buttons) 4: Search (up to 8 buttons) 5: To-do (up to 8 buttons)

iButton Number of buttons (1..16 or 1..8) sScriptName Name of script (without extension) iVisible 1 = Switch button visibly 0 = Switch button invisibly

Return values:

-4: Script not available -3: Invalid value for iButton -2: Invalid value for Archive view -1: No active work area 1: Ok

See also: SetScriptMenu GetScriptButton ImportScript

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 350

Function SetScriptEvent This function sets a script event. SetScriptEvent (AnsiString Event, AnsiString Script, int Mode) Event : String with event descriptor (see Event List) Or position with preceding # (these values may vary in forthcoming ELO versions). Script : String with script name without ending (if in standard script path) or complete pathname with filename + ending (script is then automatically copied to script directory) If an empty string is sent, the event set is deleted. In this case the mode has no significance. Mode : 0 – Change script assignment only if there is free space (if the script contains a pathname, when it is changed an existing file is not overwritten and the script is not assigned) 1 – Always change script assignment (if script contains a pathname,

when it is changed an existing file is overwritten) Return values:

-5 Error copying script -4 File does not exist -3 Script position filled -2 Event not known -1 Mode not implemented >=0 Event number that was set

Example: Sets a script from the script directory in the OnTimer event if the space is not filled. ELO. SetScriptEvent ("sEonTimer", "My Timer Script",0) Sets a script from drive A: in the OnTimer event whether it is filled or not. ELO. SetScriptEvent ("sEonTimer", "a:\anyScript.VBS",1) Sets a script from the script directory in the event at Position 6 ELO. SetScriptEvent ("#6", "Do something script", 0) Deletes a script from Event 12 ELO. SetScriptEvent ("#12", "", 0) Event list Event Position Description sEonTimer 0 With Timer call sEbeforeCollectPBox 1 Before collecting Postbox entries sEafterCollectPBox 2 After collecting Postbox entries sEbeforeCollectWv 3 Before collecting to-dos sEafterCollectWv 4 After collecting to-dos sEafterScan 5 After scanning sEafterBarcode 6 After barcode detection

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 351

sEafterOCR 7 After OCR sEafterSearch 8 After Search sEafterChangeArcDepth 9 After changing Archive depth sEonReworkBarcode 10 Barcode reworking sEafterMovePBox 11 After moving from Postbox sEonClickEntry 12 When clicking on entry sEonWorkWv 13 When working wrapper text sEbeforeMovePBox 14 Before moving from Postbox sEonEnterArc 15 When entering Archive sEonLeaveArc 16 When leaving Archive sEonLoadSaveUser 17 When loading or saving a user sEafterInsertNewDoc 18 After inserting new document in the Archive sEafterSaveWv 19 After saving a to-do date sEbeforeDeleteWv 20 Before deleting a to-do date sEbeforeExImportEntry 21 Before exporting/importing an entry sEbeforeShowDoc 22 Before showing a document sEonCheckInOutDoc 23 When checking a document in/out SEoOnEditNote 24 When editing post-it note

Additionally available from version 4.00.190 on: sEeditNote 24 Editing a post-it note sEinsertRef 25 Inserting/Moving a reference sECollectList 26 Before collecting the successor list sEreadwriteActivity 27 Reading or writing an activity sEviewerExport 28 Exporting in the viewer sEbeforeSearch 29 Before the search sEbatchStore 30 Batch storage sEhtmlView 31 Before the display of the HTML subject data

See also: GetScriptEvent

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 352

Function SetScriptMenu This function lets you enter an ELO script in the context menu of the main ELO screen. Each view (Archive view, Clipboard, Postbox, Search and To-dos) has its own context menu. The assignment is saved under the respective user. The function is called within installation scripts, which allow scripts to be imported and buttons and menus to be assigned at the same time.

int SetScriptMenu (int iTabSheet, AnsiString sScriptName) Parameters:

iTabSheet Select view: 1: Archive view

2: Clipboard 3: Postbox 4: Search 5: To-dos

sScriptName Name of script (without extension)

Return values:

-2: Invalid value for Archive view -1: No active work area 1: Ok

See also: SetScriptButton GetScriptButton ImportScript

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 353

Function ShowActivities (int,AnsiString) The ShowActivities function shows a list of activities. You make the selection with the SQLString. int ShowActivities (int Mode, AnsiString SQLString) Parameters: Mode: 1: If list only has one entry, go immediately

to Edit. 16: When editing, set focus to return date 256: When editing, block Version, Project and Recipient fields. SQLString: SQL query of data records to be selected. Return value:

-1 No active work area 1 Ok

Available from:

3.00.360 See also: ShowActivities EditActivity ReadActivity WriteActivity NextActivity

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 354

Function ShowAutoDlg () Available from: Ver 3.00.228 Shows the dialog created. CreateAutoDlg must be called first. It is not possible to call ShowAutoDlg several times in succession, because pressing OK or Cancel upsets the information needed to show the dialog. So you then have to open CreateAutoDlg again. int ShowAutoDlg () Return value:

0 – Cancel was pressed 1 – OK was pressed

Example: Creates an empty dialog and shows it. Elo.CreateAutoDlg ("My dialog") Elo.ShowAutoDlg See also: CreateAutoDlg AddAutoDlgControl GetAutoDlgValue

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 355

Function ShowDocInverted This function shows the currently open TIFF document inverted.

int ShowDocInverted () Parameters:

None

Return values:

-2: No active viewer visible -1: No active work area 1: Ok

See also:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 356

Property SigId (int) The SigId property defines the document manager ID of the signature of a document. A wrong entry at this place leads to the destruction of the signature. Available from:

5.00.042 See also: MaskKey DocKey DocKind DocPath

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 357

Function Sleep This function accomplishes a break with an adjustable amount of milliseconds. Thereby you can additionally execute a ProcessMessages before and/or after the waiting time. This request leads to the fact, that the client stays active operated.

int Sleep (int Flags, int Delay) Parameters:

Flags Bit 0: ProcessMessages before the sleep Bit 1: ProcessMessages after the sleep Rest: reserved Delay Waiting time in milliseconds

Return values:

1: ok Available from:

4.00.054 See also:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 358

Function SortSearchList Sort the search result list. The option "multicolumn view" has to be activated.

int SortSearchList( int Column, int SortOption ) Parameter:

Column Number of the column to be sorted (starts with zero) SortOption 1: Toggle sort order (ascending/descending). Like header click. 2: as above, but column contains date entries 3: Sort ascending 4: Sort descending 5: Date sort ascending 6: Date sort descending

Return values: -1: No active work area

1: ok Available from: 5.00.174

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 359

Function SplitFileName The SplitFileName function looks at a filepath (drive – path – filename or server – path – filename) and finds the path element with the drive or server, the filename or the file Id. AnsiString SplitFileName (AnsiString FilePath, int iMode) Parameters: FilePath Full filename with drive and path

iMode 1: Returns drive+path element 2: Returns filename 3: Returns file Id

Available from: 3.00.220

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 360

Function StartFlow This function opens the user dialog for starting a workflow. Both standard workflows and ad hoc workflows can be started (determined by setting a parameter). int StartFlow (int Mode, int ObjectID) Parameters: Mode 0: start standard workflow, 1: start ad hoc workflow ObjectID Internal ELO number (ID) of ELO object assigned to workflow Return values:

-2: Invalid objectID -1: No active work area 1: Ok

See also: FindFlowTemplate ActivateFlow

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 361

Function StartFlowEx This function opens the user dialog for starting a workflow. Both standard workflows and ad hoc workflows can be started (determined by setting a parameter). Ad hoc workflows can also be generated and automatically started. If you want to create an ad hoc workflow without UserInterface, you have to write a text file describing it before calling it (for the structure, see example below). You then send this file as the WFInfo parameter (Warning: don't forget the prefix "Template:"). int StartFlowEx (int Mode, int ObjectID, AnsiString WFName, AnsiString WFInfo) Parameters: Mode 0: start standard workflow, 1: start ad hoc workflow ObjectID Internal ELO number (ID) of ELO object assigned to workflow WFName Name of workflow to be generated WFInfo File with information on ad hoc workflow structure Return values:

-2: Invalid objectID -1: No active work area

1: Ok Available from:

3.00.394 Example: Set Elo=CreateObject("ELO.professional") Set Fso = CreateObject("Scripting.FileSystemObject") IniFile="c:\temp\flow.ini" UserId=Elo.ActiveUserId NodeName="Test 1" Id=Elo.GetEntryId(-1) call Elo.PrepareObjectEx(Id,0,0) UserList=Elo.GetObjAttrib(0) Fso.CreateTextFile IniFile Set f2 = Fso.GetFile(IniFile) Set ts2 = f2.OpenAsTextStream(2, 0) msg="[Template]" & vbcrlf msg=msg & "Name= " & Elo.ObjShort & vbcrlf msg=msg & "TerminateUser=" & UserId & vbcrlf msg=msg & "Type=1" & vbcrlf msg=msg & "TerminateLabel=Finished" & vbcrlf msg=msg & "StartLabel=Distribution" & vbcrlf msg=msg & "UserList=" & UserList & vbcrlf msg=msg & "NodeName= " & NodeName & vbcrlf ts2.Write(msg) ts2.Close call Elo.StartFlowEx(1, id, "ISO", "Template:"&IniFile)

See also: FindFlowTemplate ActivateFlow

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 362

Function StartScan The StartScan function lets you start a scan sweep in Postbox. With the ActionCode parameter you can define whether it is to scan single pages or do a batch scan. The second parameter determines what scanner default settings are to be used (page size etc.). You can find the image scanned in ActivePostFile. If this entry is empty, a scanning error has occurred or the user cancelled the procedure. int StartScan (int ActionCode, int PageSize) Parameters:

ActionCode 0: No scan, just set page size 1: Batch scan 2: Single page scan

PageSize 0: Scan with Preview 1..4: With scanner parameter set 1..4 (options scanner)

Return values:

-1: No active work area 1: Ok

See also:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 363

Function Status This function sets a text in the status line in the current main ELO window. int Status (AnsiString Text) Parameters:

Text: text to be output Return values:

-1: No active work area 1: Ok

See also: UpdatePostbox

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 364

Function StoreDirect This function stores the Postbox entries selected in Archive, so it corresponds to the menu command 'Store direct in Archive' in the Postbox context menu. Before starting it, the tab you want must be opened in Archive view. int StoreDirect () Parameters:

None

Return values:

-3: No tab selected -2: No entries selected in Postbox -1: No active work area 1: Ok

See also: StoreKeyword StoreMulti

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 365

Function StoreKeyword This function stores the Postbox entries selected in Archive by keyword, so it corresponds to the menu command 'Store keyword in Archive' in the Postbox context menu. int StoreKeyword () Parameters:

None

Return values:

-2: No entries selected in Postbox -1: No active work area 1: Ok

See also: StoreDirect StoreMulti

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 366

Function StoreMulti This function stores the Postbox entries selected in Archive, and it corresponds to the menu command 'Store Tab Unnamed' in the Postbox context menu. int StoreMulti () Parameters:

None

Return values:

-3: No tab selected -2: No entries selected in Postbox -1: No active work area 1: Ok

See also: StoreDirect StoreKeyword

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 367

Function ToClipboard This function sends a text to the Windows Clipboard. Int ToClipboard (AnsiString Text) Parameters:

Text Text to be sent Return values:

Always o

Available from:

3.00.456 Example: Option Explicit Dim Elo,url,id,Guid,iObjID,iLine,Body set Elo=CreateObject("ELO.professional") url="http://hobbit3:8081/guid/" if Elo.SelectView(0)=1 then Id=Elo.GetEntryId(-1) ' Get selected entry if Id>1 then if Elo.PrepareObjectEx(Id,0,0)>0 then Guid=Mid(Elo.ObjGuid,2, Len(Elo.ObjGuid)-2) Elo.ToClipboard url & Guid end if end if elseif Elo.SelectView(0)=2 or Elo.SelectView(0)=4 then iLine=0 Body="" Do iObjID=Elo.GetEntryID(iZeile) If iObjID=0 Then Exit Do Elo.PrepareObjectEx iObjID,0,0 If Elo.ObjTypeEx=254 Then Guid=Mid(Elo.ObjGuid,2, Len(Elo.ObjGuid)-2) Body=Body & url & Guid & vbCrLf & vbCrLf End If iLine=iLine+1 Loop Until False Elo.ToClipboard Body end if See also: FromClipboard

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 368

Function TreeWalk This function runs from the Start node through all subnodes and requests a script for each entry. This way you can work through whole structures with one call. When working through subobjects, the Parameters mode lets you work on the current node before the subnode or after the subnode. If you want to apply an attribute of a cabinet to all documents, then you should stipulate "before" (the folder attribute must be set before the tabs are edited). If you want to gather information (e.g. how many documents meet a certain criterion), then "after" is more appropriate (all the tabs must first be counted to find the total number in the folder). If the "node succession" is not important (e.g. for "Print all documents"), then you should choose the "before" method, because it puts slightly less load on the system. The Parameters mode also lets you decide whether you want to include references or stick to the main lines of succession. With the MaxDepth parameter you can define the maximum depth you want to work on. For example, if you want to edit all folders, set the start node to 1 (archive object) and maximum depth to 2 (cabinet and folder level). Then in the callback script you only have to check whether the call refers to a cabinet object (in which case you do nothing) or a folder object. The search starts here but does not go any deeper, so this call is extremely efficient. If you want all the objects listed, you can simply set maximum depth to 15 or another sufficiently high number. This function offers a simple means of working with whole hierarchies. It is not designed for maximum performance, because a separate script call must take place for every entry. So if you are dealing with large volumes of data or you need the fastest possible access, you must create the TreeWalk in the script itself. However, most of the time this version should be fast enough. int TreeWalk (int Mode, int StartObj, int MaxDepth, AnsiString ScriptName) Parameters:

Mode Bit 0 Parent node is edited before child node Bit 1 Parent node is edited after child node Bit 2 No references are included

StartObj ELO object number of start node MaxDepth Maximum search depth ScriptName Name of callback script called for each object

Return values:

-2: Start node not found -1: No active work area >0: Number of objects found

Example: Script 1 with the name "Callback" set Elo = CreateObject("ELO.professional") Action=Elo.GetCookie("ELO_WALK") Action=Action & (15-Elo.ActionKey) & ": " & Elo.ObjShort & vbcrlf call Elo.SetCookie("ELO_WALK", Action) Script 2, containing the actual TreeWalk call and a list of all the short descriptions below the node currently selected.

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 369

set Elo = CreateObject("ELO.professional") call Elo.SetCookie("ELO_WALK", "") cnt=Elo.TreeWalk(1, Elo.GetEntryId(-1), 15, "callback") Action=Elo.GetCookie("ELO_WALK") Action="TreeWalk: "&cnt&" Entries."&vbcrlf&vbcrlf&Action MsgBox Action Available from:

3.00.324 (Professional) 5.00.222 (Office) See also:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 370

Function UnselectAllPostBoxLines This function unselects all the lines of the Postbox. int UnselectAllPostBoxLines () Parameters:

None

Return values:

-1: No active work area 1: Ok

See also: SelectPostBoxLine UnselectPostBoxLine PostBoxLineSelected UnselectAllPostBoxLines

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 371

Function UnselectArcListLine This function unselects an entry in the right list of the archive view. int UnselectArcListLine (int LineNo) Parameters:

LineNo Line to be unselected

Return values:

-2: Invalid line number -1: No work area active 1: Ok

Available from:

5.00.036 Example:

Set Elo = CreateObject( "ELO.professional" ) for i = 0 to 8 res = res & Elo.ArcListLineSelected( i ) & " - " next for i = 0 to 3 Elo.SelectArcListLine( i ) next for i = 4 to 7 Elo.UnselectArcListLine( i ) next Elo.SelectArcListLine( 8 ) MsgBox res

See also: SelectArcListLine ArcListLineSelected

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 372

Function UnselectLine This function unselects an entry in the current view. This function may only used in views, where multiple selection (e.g. clipboard) is allowed. In the other views (e.g. archive view), it can lead to coincidental results. int UnselectLine (int LineNo) Parameters:

LineNo Line to be unselected

Return values:

-4: Invalid line number -3: No work area active -2: Invalid line number 1: Ok, was selected 2: Ok, was not selected

See also: SelectPostBoxLine PostBoxLineSelected SelectAllPostBoxLines UnselectAllPostBoxLines

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 373

Function UnselectPostBoxLine This function unselects an entry in the Postbox. int UnselectPostBoxLine (int LineNo) Parameters:

LineNo Line to be unselected

Return values:

-2: Invalid line number -1: No active work area 1: Ok

See also: SelectPostBoxLine PostBoxLineSelected SelectAllPostBoxLines UnselectAllPostBoxLines

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 374

Function UnselectSearchListLine This function unselects one entry in the Postbox. int UnselectSearchListLine (int LineNo) Parameters:

LineNo Line to be unselected

Return values:

-2: Invalid line number -1: No active work area 1: Ok

See also: SelectSearchListLine SearchListLineSelected

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 375

Function UpdateDocument, UpdateDocumentEx This function adds a new image file to an ELO document. Depending on the status of the document the old image file is overwritten (freely edited), a new version is created (version controlled) or the function is rejected (no revision allowed). int UpdateDocument (int DocId, int Status, AnsiString DocFilePath) int UpdateDocumentEx (int Id, int Status, AnsiString FilePath, AnsiString Version, AnsiString Comment) Parameters:

DocId Internal ELO ObjectId to which new image file is to be added Status 1: Check access right to file path, 2: Check right to edit documents DocFilePath Path and name of new image file In addition for UpdateDocumentEx: Version Version details, free text up to 10 characters long Comment Comment on new version, free text

Return values:

-6: Error entering image in database -5: Error inserting image file in Archive -4: Error reading document data from database -3: DocId does not point to a document -2: Write access to document refused -1: No active work area 1: Ok

Available from: Ex-Version from 3.00.170 See also: InsertDocAttachment GetDocumentPath

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 376

Function UpdateObject With the UpdateObject function you add an entry to the database. The object must first be created with PrepareObject or have been read from the database. If it is a new object, before saving it the system checks with IndexText whether it can identify a permitted predecessor object. int UpdateObject () Parameters:

None Return values:

-4: Error with update in database -3: Store destination missing or unknown -2: Error with new entry in database -1: No active work area 1: New entry made 3: Update accomplished

See also: PrepareObject LookupIndex

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 377

Function UpdatePostbox The UpdatePostbox function triggers a repeat collection of the contents of Postbox. As well as the actual Postbox files, TIFF printer files, network scanner files and Outlook entries are collected too. int UpdatePostbox () Parameters:

None Return values:

-1: No active work area >=0: Number of entries in Postbox

See also: UpdateObject UpdateDocument UpdatePostboxEx

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 378

Function UpdatePostboxEx The UpdatePostboxEx function triggers either a repeat collection of the Postbox contents or you can select one specific entry from Postbox. As well as the actual Postbox files, TIFF printer files, network scanner files and Outlook entries are collected too. int UpdatePostboxEx (int iMode, int iLine) Parameters:

iMode: 0: Collect Postbox as for UpdatePostbox 1: Select current PB entry by clicking icon 2: Select current PB entry by clicking text line 3: Select associated line number by clicking icon 4: Select associated line number by clicking text 5: Clearance for current Postbox viewer

Return values:

-1: No active work area >=0: Number of entries in Postbox (if collecting) or 1

See also: UpdateObject UpdateDocument UpdatePostbox

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 379

Function UpdateReplSet This function lets you start or cancel a new replication set. You will find an example of this under PrepareReplSet. int UpdateReplSet (int Flags) Parameters:

Flags: A combination of the following values is possible: 1: Make changes to succeeding objects too 2: Write changes only 4: Show progress in status bar

Return values:

-3: Error writing replication information -2: No active object (PrepareReplSet missing or failed) -1: No active work area 1: Ok

See also: PrepareReplSet QueryReplSet SetReplSet

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 380

Property UserFlags (int) The UserFlags property contains the user's rights (as a bit mask). An administrator can assign any rights, while subadministrators can assign only their own rights. If a subadministrator assigns more rights than he or she actually has, there is no resulting error message; the setting is automatically adjusted. See also: ReadUser WriteUser

UserParent UserKeys UserGroups

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 381

Property UserGroup (int) With the UserGroup property you can check whether a user entry includes a group or one user. See also: ReadUser WriteUser

UserParent UserKeys UserFlags

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 382

Property UserGroups (AnsiString) The UserGroups property contains the user's groups (as a sequence of numbers separated by commas). An administrator can assign any groups, while subadministrators can assign only their own groups. It is the responsibility of the script programmer to make sure that in this case it is really only groups that are assigned, not users or unused Ids. See also: ReadUser WriteUser

UserParent UserKeys UserFlags

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 383

Property UserId (int) The UserId property lets you find the number of the user data record currently active. Although this property also allows write access, you should only change this number if you are quite certain what the result of the action will be (in general there is no reason for the script programmer to change this entry). See also: UserName

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 384

Property UserKeys (AnsiString) The UserKeys property contains the user's keys (as number sequence separated by commas, the key number paired with the access right). An administrator can assign any keys, while subadministrators can assign only their own keys. It is the responsibility of the script programmer to make sure that in this case only the available keys are assigned. See also: ReadUser WriteUser

UserParent UserKeys UserFlags

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 385

Property UserName (AnsiString) The UserName property lets you read the user name of the user data record currently loaded. This data record may have been filled, for example, by means of an event either reading or writing it. In this case the ActionKey property is set depending on the reason for the call (20000: immediately before restoring a user, 20001: after saving a user, 20002: after reading a user. See also: UserId

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 386

Property UserParent (int) The UserParent property can assign a (sub)administrator to a user. See also: ReadUser WriteUser

UserGroups UserKeys UserFlags

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 387

Property UserTerminate (AnsiString) The property contains the name of the user that has terminated this node. The name is saved in text form when the node is closed. So it is also retained if the original user is deleted or renamed in ELO AccessManager. Available from:

3.00.508 See also: NodeAction NodeActivateScript NodeAlertWait NodeAvailable NodeComment NodeFlowName NodeTerminateScript NodeType NodeUser NodeYesNoCondition

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 388

Function Version Returns the ELO version number in the form MSSBBB. (Example 123456):

M Main version number (1 in the example) SS Subversion (23 in the example) BBB Internal build number (456 in the example)

This query lets you ascertain that your current ELO version is new enough, in case you are using functions that were only added in later versions. int Version () Parameters:

None Return values:

Elo version number

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 389

Property ViewFileName (String) The ViewFileName property contains the name of the document shown in document viewer. It is usually interpreted in scripts linked to the event "Before showing document". In a script like this, by changing this property you can get a different document file shown. See also:

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 390

Property WFComment (AnsiString) This property gives you the workflow comment. See also: WFName WFFlowName WFOwner

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 391

Property WFFlowName (AnsiString) This property gives you the workflow name. See also: WFName WFComment WFOwner

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 392

Property WFName (AnsiString) This property gives you the workflow node name. See also: WFFlowName WFComment WFOwner

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 393

Property WFOwner (AnsiString) This property gives you the workflow user. See also: WFName WFFlowName WFComment

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 394

Property WindowState (int) This property lets you query the state of the ELO window. Values:

Normal: 1 Minimized: 2 Maximized: 3 Not known: -1

Available from: 3.00.218

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 395

Function WriteActivity (AnsiString) This function writes an activities entry. If the ActGuid field is empty, a new entry is created, and when a value is entered in it the data record selected is updated. The parameter string consists of the following elements: ActGuid Unique Id of activity; leave empty with a new entry! DocGuid GUID of ELO document (find with GetGuidFromObj). Destination Recipient RevVers Version ActTStamp Time stamp. Leave empty; automatically generated when saved Project Project name, preset if possible Owner Owner, ELO user number Creator Creator, ELO user number Prio 0,1 or 2 ShortDesc Short description SentAt Send date in ISO format SentMode Send mode DueDate Date return due, ISO format BackAt Date returned, ISO format BackMode Return status Comment Additional text FileName File name sent UD0 User defined field 1 UD1 … UD9 User defined field 10 int WriteActivity (AnsiString Activity) Parameters:

Activity: Data record to be written Return value:

-2 Error writing -1 No active work area

1 Ok Example: Id=Elo.GetEntryId(-1) if (Id>1) then guid=Elo.GetGuidFromObj(Id) res="¿" & guid res=Elo.EditActivity(res) MsgBox res Elo.WriteActivity(res) end if Available from: 3.00.360 See also: ShowActivities EditActivity ReadActivity WriteActivity NextActivity

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 396

Function WriteColorInfo This function lets you write a color definition from the current ELO color object. The color settings may be set in advance using the properties ColorInfo and ColorName. int WriteColorInfo (int ColorNo) Parameters:

ColorNo: Number of color definition to be written

Return values:

-2: Invalid value for color number -1: No active work area 1: Ok

See also: ReadColorNo ColorInfo ColorName

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 397

Function WriteKey (int KeyNo, AnsiString KeyName) This function creates a new key entry or renames it. int WriteKey (int KeyNo, AnsiString KeyName) KeyNo:

Key number starting with 1

KeyName:

Name of key Return values:

-1 Invalid key number 0 Error 1 Ok

Example: Creates a new system key number 10 called Accounts. Elo.WriteKey (10,"Accounts") See also: ReadKey ChangeKey

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 398

Function WriteObjMask This function lets you write a mask definition. The mask must first have been read with ReadObjMask. If you want to create a new one, it must be initialized with ReadObjMask(9999). int WriteObjMask () Parameters:

None

Return values:

-3: No active work area -2: Invalid value for mask number -1: Error reading database 1: Ok

Example: (valid from Version 3.00.290) ' Create new mask with an index line NEWMASK=9999 Set Elo=CreateObject("ELO.professional") if Elo.ReadObjMask(NEWMASK)<0 then MsgBox "Error preparing mask" else Elo.ObjMName="ELO Test maske Elo.MaskFlags=25 ' Version controlled, research+file ' An index line, input length 5..10 characters call Elo.SetObjAttribName(0, "Index 1") call Elo.SetObjAttribKey(0, "IDX1") call Elo.SetObjAttribMin(0, 5) call Elo.SetObjAttribMax(0, 10) x=Elo.WriteObjMask() if x<0 then MsgBox "Error No. " & x & " creating new mask." else MsgBox "New mask with number " & Elo.ObjMaskNo & " created." end if end if See also: ReadObjMask GetObjMaskNo MaskFlags

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 399

Function WriteUser The WriteUser function writes the prepared user data record back to the system file. Administrators can write any users, subadministrators can only write their own users or new users. int WriteUser () Parameters: None Return values:

-5: A subadministrator attempted to describe a user outside his responsibility. -4: Error reading from AccessManager -3: A normal user attempted to write -2: Error writing to AccessManager -1: No user number active

See also: ReadUser UserGroups

UserParent UserKeys UserFlags

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 400

Function WriteUserProperty The WriteUserProperty function writes a user property in one of the 8 user data fields. Please note that the first 4 fields are reserved by ELO (e.g. for NT naming functions). The fields 5..8 are freely disposable. This function gives you the option of saving a property value immediately. This is particularly important if the data is to be saved by a non administrator, in which case the WriteUser function is not accessible. This situation is achieved by adding the value 1000 to the property number. If you describe the property 5, it is stored temporarily in the client and only stored permanently with WriteUser. The same property with the value 1005 executes Save immediately. The option is only available for properties 5…8 so a user cannot change any system settings. int WriteUserProperty (int PropertyNo, AnsiString Property) Parameters: PropertyNo Property number 1..8 Property User data to be written Return values:

-4: Error reading user data -3: Writing direct is only permitted for properties 5..8 (1005..1008) -1: Invalid property number 1: Ok

Example: With two simple scripts you can set ELO so that, when you exit, the current archive position is saved in the user data. As soon as you go into Archive again, ELO jumps to the right place. Two scripts must be created to do this: 'ExitArchive.VBS Set Elo=CreateObject("ELO.professional") if Elo.SelectView(0)=1 then Id=Elo.GetEntryId(-1) if Id>1 then if Elo.Version>300356 then call Elo.WriteUserProperty(1005,Id) else if Elo.ReadUser(Elo.ActiveUserId)>0 then call Elo.WriteUserProperty(5, Id) call Elo.WriteUser end if end if end if end if 'EnterArchive.VBS Set Elo=CreateObject("ELO.professional") if Elo.ReadUser(Elo.ActiveUserId)>0 then StartObj=Elo.ReadUserProperty(5) if StartObj<>"" then Elo.GotoId(StartObj) end if

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 401

end if Available from:

additional option for saving direct 3.00.358 See also: ReadUserProperty UserGroups

UserParent UserKeys UserFlags

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 402

Function WriteWv Writes a to-do date (set with the WvIdent parameter) from the internal to-do memory to the database. This date can then be given default values with the various Property functions. A WvIdent with 0 value means a new to-do date is created. Before completing a new date, the internal to-do memory must be deleted by a ReadWv call with the parameter 0. int WriteWv (int WvId) Parameters: WvId: number of date to be written, 0: create new date Return values:

-4: No short description entered -3: WvParent not valid -2: Error writing -1: No active work area 1: Ok

See also: ReadWv DeleteWv WvIdent WvParent WvUserOwner WvUserFrom WvDate WvCreateDate WvPrio WvParentType WvShort WvDesc

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 403

Property WvCreateDate (AnsiString) The WvCreateDate property lets you read or write the create date of a to-do date that was created. It should say the current day's date. If you leave this entry blank, it is automatically inserted when you save. See also: ReadWv WriteWv WvIdent WvParent WvUserFrom WvUserOwner WvDate WvPrio WvParentType WvShort WvDesc

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 404

Property WvDate (AnsiString) The WvDate property lets you read or write the date of a to-do date. See also: ReadWv WriteWv WvIdent WvParent WvUserFrom WvUserOwner WvCreateDate WvPrio WvParentType WvShort WvDesc

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 405

Property WvDesc (AnsiString) The WvDesc property lets you read or write the memo text for a to-do date. See also: ReadWv WriteWv WvIdent WvParent WvUserFrom WvUserOwner WvCreateDate WvPrio WvParentType WvDate WvShort

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 406

Property WvDueDate (AnsiString) This property gives you or sets the date of the to-do, on which the document was seen. It must comply with the date format currently set in the system, i.e. normally in the form DD.MM.YYYY. Maximum length: 12 characters See also: WvNew EditWv WvListInvalidate WvActionCode

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 407

Property WvIdent (int) The WvIdent property lets you read or write the internal ELO number of the current to-do date. There is usually no good reason for changing this entry, which is set with ReadWv or WriteWv. See also: ReadWv WriteWv WvParent WvUserOwner WvUserFrom WvDate WvCreateDate WvPrio WvParentType WvShort WvDesc

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 408

Function WvListInvalidate () This function updates the to-do list. int WvListInvalidate () Return values:

-1 No active work area 1 Update successful

See also: WvNew EditWv WvDueDate WvActionCode

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 409

Property WvNew (int) This property tells you if a new to-do was created. Values:

0 – No 1 – Yes

See also: EditWV WvDueDate WvListInvalidate WvActionCode

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 410

Property WvParent (int) The WvParent property lets you read or write the internal ELO number of the archive entry for the current to-do date. The archive entry may be a cabinet, a folder, a tab or a document. See also: ReadWv WriteWv WvIdent WvUserOwner WvUserFrom WvDate WvCreateDate WvPrio WvParentType WvShort WvDesc

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 411

Property WvParentType (int), WvParentTypeEx (int) The WvParentType or WvParentTypeEx property lets you fix the type of ELO entry that is linked to the current to-do date. With all other values this entry is obtained from the database with WvParent. For archives with a four-level hierarchy you work with WvParentType; for those with more than 4 hierarchy levels you use WvParentTypeEx. WvParentType:

1=Cabinet, 2=Folder, 3=Tab, 4=Document WvParentTypeEx:

1=Cabinet, 2=Folder, 3=…., …, 253=Tab, 254=Document See also: ReadWv WriteWv WvIdent WvUserOwner WvUserFrom WvDate WvCreateDate WvParent WvPrio WvShort WvDesc

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 412

Property WvPrio (int) The WvPrio property lets you read or write the priority of the current to-date date. There is a choice of 3 values, 1 (important), 2 (normal) and 3 (less important). All other values are automatically set to 2 (normal priority). See also: ReadWv WriteWv WvIdent WvUserOwner WvUserFrom WvDate WvCreateDate WvParent WvParentType WvShort WvDesc

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 413

Property WvShort (AnsiString) The WvShort property lets you read or write the short description of a to-date date. This input is absolutely essential for a new date; if it is missing the Save operation is aborted with an error. See also: ReadWv WriteWv WvIdent WvParent WvUserFrom WvUserOwner WvCreateDate WvPrio WvParentType WvDate WvDesc

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 414

Property WvUserFrom (int) The WvUserFrom property lets you read or write the sender of a to-date date. This would normally be your own UserId. If you leave the entry blank, your own Id is automatically entered. See also: ReadWv WriteWv WvIdent WvParent WvUserOwner WvDate WvCreateDate WvPrio WvParentType WvShort WvDesc

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 415

Property WvUserOwner (int) The WvUserOwner property lets you read or write the owner of a to-date date. See also: ReadWv WriteWv WvIdent WvParent WvUserFrom WvDate WvCreateDate WvPrio WvParentType WvShort WvDesc

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 416

Appendix

Appendix A, Description of dialog elements in the main ELO view If you want to work with the "ClickOn" function or superimpose scripts on standard ELO functions, you need the names of the corresponding menu commands or toolbar buttons. In the list below we distinguish between buttons and menu commands with the codes "B:" and "M:". The abbreviations in the descriptors have the following meanings: "Arc...": Archive view, "Clip...": Clipboard, "Post...": Postbox, "Search...": Search view, "Wv...": To-do view, "mm..": menu command in main menu, "Kom...": function of ELOkommunal, "...Popup...": menu command on a context menu, "Plp...": menu command in the Postbox context menu, "...UserBtn...": script buttons

Menu text or hint Name of control B:Zoom 25% ArcZoom25 B:Zoom 50% ArcZoom50 B:Zoom 100% ArcZoom100 B:Fit zoom document ArcZoomFit B:Back to start of archive BtArcStart B:One step back BtArcBack B:Edit existing entry BtArcEdit B:Erase selected entry BtArcErase B:Suppress change of levels BtArcLock B:Fit zoom width ArcZoomWidth B:Print current document BtArcPrint B:Rotate 90° to left ArcRot270 B:Turn upside down ArcRot180 B:Rotate 90° to right ArcRot90 B:Scan multiple pages ArcScan B:Show Hint ArcShowHint B:User defined zoom ArcZoomUsr B:Maximize BtArcMaximize B:E-mail BtEMail B:Fax BtArFax B:Zoom cursor ArcZoom B:OCR range ArcZoomOcr B:Create Cabinet BtNew1 B:Create Folder BtNew2 B:Add page to active archive document

ArcScanAdd

B:Start ad hoc workflow BtAdhoc B:Check out document and edit btCheckOut B:Create document BtNewDoc B:Check document in btCheckIn B:Search current document BtArcSearch B:Fit document ClipZoomFit B:Zoom 100% ClipZoom100 B:Zoom 50% ClipZoom50 B:Zoom 25% ClipZoom25 B:Erase from Clipboard ClipErase B:Fit width ClipZoomWidth B:Print current document BtClipPrint B:User defined zoom ClipZoomUsr B:Rotate 90° to left ClipRot270 B:Turn upside down ClipRot180 B:Rotate 90° to right ClipRot90 B:Maximize BtClipMaximize B:Fax BtKbFax B:Zoom cursor ClipZoom

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 417

B:OCR range ClipZoomOcr B:E-mail BtClipMail B:Search current document BtClipSearch B:Zoom 25% PostZoom25 B:Zoom 50% PostZoom50 B:Zoom 100% PostZoom100 B:Fit document PostZoomAll B:Fit width PostZoomWidth B:Send pages PostSend B:Collect Postbox entries ReloadPL B:Delete selected entries PostErase B:Scan pages PostScan B:Collapse pages PostCollapse B:Separate pages PostExpand B:Select scanner PostSelScan B:Rotate 90° to left PostRot270 B:Turn upside down PostRot180 B:Rotate 90° to right PostRot90 B:Print current document BtPostPrint B:Scan multiple pages PostDirectAppend B:User defined zoom PostZoomUsr B:Maximize BtPostMaximize B:Fax BtPbFax B:Zoom cursor PostZoom B:OCR range PostZoomOcr B:E-mail BtPostMail B:Store in Archive with selection dialog

btTreePost

B:Zoom 25% SearchZoom25 B:Zoom 50% SearchZoom50 B:Zoom 100% SearchZoom100 B:Fit document SearchZoomFit B:Search entries BtStartSearch B:Fit width SearchZoomWidth B:Print current document BtSrcPrint B:Search post-it note BtSearchNote B:User defined zoom SearchZoomUsr B:Rotate 90° to left SrcRot270 B:Turn upside down SrcRot180 B:Rotate 90° to right SrcRot90 B:Search full text BtSearchVt B:Maximize BtSearchMaximize B:Fax BtSrFax B:Zoom cursor SearchZoom B:OCR range SearchZoomOcr B:E-mail BtSrcMail B:Check out document and edit btSrCheckOut B:Show Tree view SrcTree B:Delete from hit list SrcDelete B:Check document in btSrcCheckIn B:Search current document BtSearchCOLD B:Zoom 25% WvZoom25 B:Zoom 50% WvZoom50 B:Zoom 100% WvZoom100 B:Fit document WvZoomFit B:Show all priorities WvPrioC B:Show top priority only WvPrioA B:Show high and medium priorities WvPrioB B:Collect to-do entries WvCollect B:Delete date WvErase B:Fit width WvZoomWidth

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 418

B:Print current document BtWvPrint B:User defined zoom WvZoomUsr B:Rotate 90° to left WvRot270 B:Turn upside down WvRot180 B:Rotate 90° to right WvRot90 B:Maximize BtWvMaximize B:Fax BtWvFax B:Zoom cursor WvZoom B:Include group dates btWithGroup B:Include proxy dates btWithVert B:Check out document btWvCheckOut B:Done; go on with workflow btGoOn B:Search current document BtWvSearch B:Options BtOptions B:Acknowledge messages BtDelMsg B:Collect messages BtMsgReread B:Send messages BtSendMail B:Collect entries again mbCollect B:Office plans mbNewPlan B:Generate distribution plan mbGeneratePlan B:Check document in mbCheckIn B:Edit document mbEdit B:Discard document changes mbVerw B:Zoom cursor CIZoomSel B:Zoom 25% CIZoom25 B:Zoom 50% CIZoom50 B:Zoom 100% CIZoom100 B:Fit width CIZoomWidth B:Fit document CIZoomFit B:Rotate 90° to left CIRot270 B:Turn upside down CIRot180 B:Rotate 90° to right CIRot90 B:User defined zoom CIZoomUser B:Print current document CIPrint B:Fax CIFax B:Search current document BtCheckSearch B:Renew document block mbNewCheckOut M:Archive Archiv1 M:Prepare publication of CD-ROM... mmPrepCDR M:Export... mmExport1 M:Import... mmImport1 M:Print Archive overview... mmPrintInfo M:Reports Reports1 M:Show report... mmShowReport M:To-dos/Postbox report... WiedervorlagenReport1 M:System information center...… mmInfocenter M:System diagnosis... mmSysDiag M:Accessmanager diagnosis... mmEloAM M:Server status Serverstatus1 M:Next level down Ebenetiefer1 M:One level back Ebenezurck1 M:Delete/Restore entries GelschteEintrge1 M:Show mmShowDeleted M:Restore... mmUndelete M:Delete permanently... mmDropDel M:Delete old documents... mmDelDocs M:Delete expired documents... mmDropOld M:Set Archive keys... mmArcKey M:Select printer... SelPrinter M:Jukebox backup... mmJBBackup M:ELOprofessional MOBIL ELOprofMobilStart

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 419

operations... M:Close Beenden1 M:Edit Bearbeiten1 M:Document... mmDokumentBearbeiten M:Wrapper text... mmEntryEdit M:Mark all mmMarkAll M:Paste to Clipboard mmClipEntry M:Set authorizations... mmDokKey M:Delete mmDeleteEntry M:Create new... NeuerEintrag1 M:Set font color... mmMarkEntry M:For to-do mmWvEntry M:Insert MNInsert M:Copy Kopieren1 M:Add link mmAddLink M:Collect links mmCollectLink M:Send documents mmSendMap M:Receive documents mmReceiveMap M:System administration Systemverwaltung1 M:Options... mmOptionen M:Select scanner... SelScanner M:Select scan profile... SelPagesize M:As Preview PgSizePrescan M:User ... mmEditUser M:Storage masks ... mmEditMask M:Document paths .. mmEditPath M:Font color... mmEditMarker M:Report options ... mmEditReport M:Key ... mmEditKey M:Records plan ... mmAZDefinieren M:Password... mmEditPwd M:Script... Skriptverwaltung1 M:Keyword lists mmEditBuzz M:Index lines... mmSwlIndex M:Version numbers mmSwlVer M:Comment mmSwlComment M:Templates... mmTemplate M:Proxy rules ... mmVert M:Encryption parameters ... mmCryptParams M:Workflow mmWorkflow M:Show active workflows AktuelleAblufe1 M:Notice periods exceeded ... NotifyAlert1 M:Report mmWFRep M:Overview Report2 M:Define workflow Schemaerstellen1 M:Document Dokument1 M:Scan single pages mmScanPage M:Scan multiple pages mmMultiScan M:Attach page to Archive mmArcScanAdd M:Insert file mmImportPage M:Save file under GrafikExport1 M:Barcode detection mmBarcode M:Insert notes ?? Notizeneinfgen1 M:OCR Clipboard mmOcrClip M:Search Eintrag1 M:Search ... mmEntrySearch M:search full text mmSearchVT M:Search post-it note Haftnotizsuchen1 M:Pass to Postbox mmToPost M:Activate / show mmActivateDoc M:Check out/ edit mmEditActivateDoc

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 420

M:Print... Dokumentdrucken1 M:Check in CheckInMain M:Send mmSendMail M:View Ansicht1 M:Another view WeitereAnsicht1 M:Close view mmCloseView M:Free arrangement mmArrangeFree M:Arrange side by side mmArrangeSide M:Arrange one on top of the other mmArrangeTop M:Zoom Zoom1 M:Zoom 25% Zoom025 M:Zoom 50% Zoom050 M:Zoom 100% Zoom100 M:Maximum width ZoomWidth M:Fit ZoomUser M:User defined ZoomUsr M:Rotate Drehen1 M:90° mmDrehen090 M:180° mmDrehen180 M:270° mmDrehen270 M:Maximize VollBild1 M:View Ansicht2 M:Archive mmGotoArc M:Clipboard mmGotoClip M:Postbox mmGotoPost M:Search mmGotoSearch M:Tasks mmGotoWv M:Messages mmGotoMsg M:Paper records administration mmGotoAkten M:In preparation mmGotoCI M:Previous page PagePrev M:Next page PageNext M:First page PageFirst M:Last page PageLast M:Update mmRefresh M:Improve quality mmScaleToGray M:Sort list mmSortList M:Manual SortUser M:Alphabetical SortAlpha M:Inverse alphabetical SortAlphaI M:Store date SortADate M:Store date (inverse) SortADateI M:Document date SortDDate M:Doc. date (inverse) SortDDateI M:Adjust toolbar... Toolbarskonfigurieren1 M:Help Hilfe1 M:Use Help ... HelpOnHelp M:Contents... HelpContent M:About the program... HelpAbout M:Go to SlpGoto M:Remove from list SlpRemove M:Other references slpRefs M:Start ad hoc workflow ... srAdHocFlow M:Document data SlpDokumentendaten M:Edit ... SlpEditDoc M:Check out/ edit ... mmSlpCheckOutExec M:Activate/ view ... SlpViewDoc M:Print SlpPrintDoc M:Check out document mmSlpCheckOut M:Version history ... SlpDocHistory M:Save file under ... SlpExport

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 421

M:Load new version from file... SearchPopupNewVer M:Link SrcLink M:Add link SrcMakeLink M:Collect list SrcCollectLink M:Start standard workflow ... srStdFlow M:Edit wrapper text... SlpEdit M:Create to-do date... SlpMakeWv M:Copy to Clipboard SlpClip M:Copy records structure Aktenstrukturkopieren3 M:Insert records structure Aktenstruktureinfgen3 M:Show Archive entries... Archiveintrgezhlen3 M:Print document list... SlpPrintDocList M:Options... SlpOptions M:Report... Report3 M:Show multiple columns MehrspaltigeAnzeige M:Help... Hilfe2 M:Delete documents PlpEraDoc M:Delete wrapper texts... PlpEraText M:File mmFile M:Insert file... PlpImportFile M:Save file under ... PlpExportFile M:General document template mmGloTemplate M:Personal document template mmPrivTemplate M:Edit document... PlpEditOle M:Create new document from template PlpNewOle M:Edit wrapper text... PlpEditDoc M:Rotate scan pages PlpRotate M:Rotate 90° PlpRot90 M:Rotate 180° PlpRot180 M:Rotate 270° PlpRot270 M:Freeze document Dokumenteinfrieren1 M:Clip by separated pages CollapseSeparatedDocs M:Sort ... Sortieren1 M:Merge PlpMergePages M:Preset storage mask ... : PlpDocType M:Store in Archive with selection dialog

PlpTreePost

M:Store automatically by index structure...

PlpKeyArchive

M:Store direct to Archive... PlpDirectArchive M:Store tab unnamed... PlpMultiStore M:Attach to Archive document AnArchivFileanhngen1 M:Attach to Search document AppendSearch M:Tie new version to Archive document

plpNewVersion

M:Barcode detection PlpBarcode M:Copy to other Postbox... PlpCopyPost M:Send to other Postbox... PlpSendPost M:View proxy Postboxes mmShowVPost M:Help... Hilfe3 M:Set authorizations... ArcPopupSetArcKey M:Document data ArcPopupDocMenu M:Edit ... Bearbeiten2 M:Check out/ edit ... mmCheckOutExec M:Activate/ view ... Ansehen1 M:Print... Drucken1 M:Sort ... MNSort M:Check out document mmCheckOut M:Check in document mmCheckIn M:Version history ... History1 M:Save file under ... ArcPopupExport

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 422

M:Load new version from file... ArcPopupNewVer M:Link ArcLink M:Add link ArcMakeLink M:Collect list ArcCollectLink M:Set font color... ArcPopupSetArcColor M:Sort ArcPopupSetArcSort M:Manual AlpSortOrder M:Alphabetical AlpSortAlpha M:Inverse alphabetical AlpSortInvAlpha M:Store date AlpSortIDate M:Inverse store date AlpSortInvIDate M:Document date AlpSortXDate M:Inverse doc. date AlpSortInvXDate M:Edit wrapper text... ArcPopupEditText M:Other references ArcPopupRefs M:Paste to Clipboard ArcPopupToClip M:Properties... Archiveintrgezhlen1 M:Copy storage structure/ documents Aktenstrukturkopieren1 M:Insert records structure Aktenstruktureinfgen1 M:Start ad hoc workflow ... ArcPopupStartAblauf2 M:Request records ArcPopupKomReq M:General ArcPopupAllg M:Store current folder as standard tab

NewStdReg

M:Make checksum mmChecksum M:Move document files mmMoveDocs M:Convert Konvertieren M:Elo -> TIFF Elo2Tiff M:Outlook mmOutlook M:Synchronize tab contents with Outlook

DocSyncOutl

M:Transfer tab contents to Outlook DocPopupOutl M:Tab attachment to Outlook ArcPopupOutl M:Show replication set ShowRepl M:Replication sets ArcPopupRepl M:Report... Report1 M:Insert standard tab... ArcPopupInsertStdReg M:Full text ... mnVolltext1 M:Retrieve full text content (creates Postbox file ..

mnFultextInfo

M:To-do dates... ArcPopupWv M:Workflow Vorgangssteuerung1 M:Own active workflows... mmInfoActive M:All active workflows... AlleaktivenFlows1 M:All completed workflows... AbgeschlosseneFlows1 M:File attachment ArcPopupAttach M:New ... ArcPopupAddAttach M:Activate ArcPopupExecAttach M:Save under ... ArcPopupSaveAttach M:Version history ... ArcPopupAttHistory M:Delete ArcPopupDelAttach M:Freeze document... MNFreeze M:New post-it note ArcPopupNote M:General post-it note... ArcPopupHaftnotiz1 M:Personal post-it note... ArcPopupPersoenlich M:Stamp... ArcPopupStamp M:Start standard workflow ... ArcPopupStartAblauf M:Create to-do date... ArcPopupToWv M:Delete... ArcPopupRemove M:Help... Hilfe4 M:Go to WvGotoEntry

ELOprofessional - OLE Automation Interface 02.03.2007

© 1998..2002 ELO Digital Office GmbH Page: 423

M:Edit date... WvEditEntry M:Delete date WvDelEntry M:Done; go on with workflow WvErledigt M:Accept workflow WvAnnehmen M:Show workflow... WvAblaufAnzeigen M:Document data Dokumentendaten1 M:Edit ... WlpEditDoc M:Check out/ edit ... mmWlpCheckOutExec M:Activate/ view ... WlpViewDoc M:Print WlpPrintDoc M:Check out document mmWlpCheckOut M:Version history ... WlpDocHistory M:Save file under ... WvPopupSave M:Link WvLink M:Add link WvMakeLink M:Collect list WvCollectLink M:Edit wrapper text... WlpEditData M:Help... Hilfe5 M:Go to ClpGoto M:Delete from list ClpEra M:Copy records structure Aktenstrukturkopieren2 M:Insert records structure Aktenstruktureinfgen2 M:Count Archive entries... Archiveintrgezhlen2 M:Document data ClpDocData M:Edit ... ClpEditDoc M:Check out/ edit ... mmClpCheckOutExec M:Activate/ view ... ClpViewDoc M:Print... ClpPrintDoc M:Check out document mmClpCheckOut M:Version history ... ClpDocHistory M:Save file under ... ClpDocExport M:Load new version from file... ClipPopupNewVer M:Report... ClpDocReport M:Edit wrapper text... ClpEdit M:Help... ClpHelp M:Return to Archive KomPlpReturn M:Delete request KomPlpDelete M:Edit dates... KomPlpEditDates M:Forward to ... KomPlpMove M:Accept records KomPlpAccept M:Refuse acceptance KomPlpRefuse M:Go to cpGoto M:Check in cpCheckIn M:Edit cpEdit M:Print cpPrint M:Discard cbDel