Download as pdf or txt
Download as pdf or txt
You are on page 1of 423

ELOprofessional - OLE Automation Interface

02.03.2007

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).

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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.

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


ELOprofessional - OLE Automation Interface
02.03.2007

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");

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


ELOprofessional - OLE Automation Interface
02.03.2007

}
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;

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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,

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


ELOprofessional - OLE Automation Interface
02.03.2007

// 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.

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


ELOprofessional - OLE Automation Interface
02.03.2007

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++;
};

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


ELOprofessional - OLE Automation Interface
02.03.2007

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.

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


ELOprofessional - OLE Automation Interface
02.03.2007

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.

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


ELOprofessional - OLE Automation Interface
02.03.2007

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 (m.thiele@elo-digital.de)
'------------------------------------------------------------------
' 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 ] "

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


ELOprofessional - OLE Automation Interface
02.03.2007

' 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.")

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


ELOprofessional - OLE Automation Interface
02.03.2007

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")

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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."

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


ELOprofessional - OLE Automation Interface
02.03.2007

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.

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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.

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


ELOprofessional - OLE Automation Interface
02.03.2007

• 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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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.

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


ELOprofessional - OLE Automation Interface
02.03.2007

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 (m.thiele@elo-digital.de)
'--------------------------------------------
' 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

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


ELOprofessional - OLE Automation Interface
02.03.2007

' 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="-"

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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.

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


ELOprofessional - OLE Automation Interface
02.03.2007

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>

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


ELOprofessional - OLE Automation Interface
02.03.2007

</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>

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

' -------------------------

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


ELOprofessional - OLE Automation Interface
02.03.2007

' 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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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.

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


ELOprofessional - OLE Automation Interface
02.03.2007

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)

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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 (m.thiele@elo.info)
'------------------------------------------------------------------
' 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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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 As for N (Number) – the difference is, that this form accept also letters, which
(special OCR) 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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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.

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


ELOprofessional - OLE Automation Interface
02.03.2007

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.

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


ELOprofessional - OLE Automation Interface
02.03.2007

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 19
yet defined
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

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


ELOprofessional - OLE Automation Interface
02.03.2007

' 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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

Property ActiveUserId (int, read only)

The ActiveUserId property supplies the internal ELO user number of the active login.

Also see: LoadUserName


FindUser
SelectUser

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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.

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


ELOprofessional - OLE Automation Interface
02.03.2007

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.

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

0 0 0 0 0
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
4 3 2 1 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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

Property ColorNo (int)

The ColorNo property determines the color number of a color definition.

Also see: ReadColorInfo


WriteColorInfo
ColorName

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

Property DocTPath (int)

The DocTPath property determines the default storage path of an entry in a mask definition.

Also see: DocPath

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

Property EditDlgActive (int)

This property indicates if a dialog has been opened from ELO.

Return values:

0 – No
1 – Yes

Also see:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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.

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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 (m.thiele@elo-digital.de)
'------------------------------------------------------------------
' 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)

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


ELOprofessional - OLE Automation Interface
02.03.2007

' 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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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 )

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

Property GovDueDate (AnsiString)

The GovDueDate property contains the request date of the current entry.

siehe auch: GovReqStatus


GovReqPrio
GovObjId
GovOwner
GovSender
GovReqDate
GovRetDate
GovReqId

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

Property GovReqDate (AnsiString)

The GovReqDate property contains the creation date of the current entry.

See also: GovReqStatus


GovReqPrio
GovObjId
GovOwner
GovSender
GovReqId
GovRetDate
GovDueDate

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

Property GovReqPrio (int)

The GovReqPrio property contains the priority of the current active entry.

See also: GovReqStatus


GovReqId
GovObjId
GovOwner
GovSender
GovReqDate
GovRetDate
GovDueDate

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

Property GovSender (int)

The GovSender property contains the recipient of the current entry.

See also: GovReqStatus


GovReqPrio
GovObjId
GovOwner
GovReqId
GovReqDate
GovRetDate
GovDueDate

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


ELOprofessional - OLE Automation Interface
02.03.2007

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.

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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")

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

Property MaskKey (int)

The MaskKey property determines the key of a mask definition.

See also: DocKey


DocKind
DocPath

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

msg=msg & res & vbcrlf


next

MsgBox msg

Available from:

3.00.360

See also: ShowActivities


EditActivity
ReadActivity
WriteActivity
NextActivity

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

Property ObjKey (int)

The key of the entry is set to or read from the ObjKey property.

See also: ObjShort


ObjMemo
ObjIDate
ObjXDate
ObjSReg

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

Property ObjMaskNo (int)

The ObjMaskNo property sets or reads the document type currently set.

See also: ObjFlags

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

Property ObjOwner (int)

With the ObjOwner property, you can look up or change the owner of an object.

See also: ObjInfo

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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)

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


ELOprofessional - OLE Automation Interface
02.03.2007

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)

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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.

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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.

Valu Object Entry R/W


e
1 DefaultExt Text, 3 characters (Rest is truncated) R/W
2 FileEditStyle Value Meaning R/W
Edit Edit Box
ComboBox Combo Box
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 FileName Selected filenames where the AllowMultiSelect option is also set and several R/-
… files have been selected
…20
0

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.

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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 (m.thiele@elo-digital.de)
'------------------------------------------------------------------
' 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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

0 0 0 0
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
3 2 1 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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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 (m.thiele@elo-digital.de)
'------------------------------------------------------------------
' 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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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)

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

Property ScriptActionKey (int)

This property is used to return information to ELO from the script. ELO responds to it with very specific
actions.

Value Action by ELO


Program context
Calling a script when entering a 10 Wrapper mask is closed by choosing 'OK'
wrapper text mask -10 Wrapper mask is closed by choosing 'Cancel'

Scripts: before 0 Don't import/export


importing/exporting 1 Import/export
Controlling input focus in the 11 "Short description" field gets input focus
wrapper mask in scripts running 12 "Memo" field gets input focus
when you enter or leave input 13 "Date" field gets input focus
fields 1000+n Input line n gets input focus
(n=0..49)

Available from: Ver 3.00.228


After OK click in the wrapper -20 Cancel OK action
mask

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

Property SearchListColumns ( AnsiString )

Reads the header columns of the search result list, concatenated with a pipe symbol "|".

Available from:

5.00.174

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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.

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

Property UserParent (int)

The UserParent property can assign a (sub)administrator to a user.

See also: ReadUser


WriteUser
UserGroups
UserKeys
UserFlags

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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:

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


ELOprofessional - OLE Automation Interface
02.03.2007

Property WFComment (AnsiString)

This property gives you the workflow comment.

See also: WFName


WFFlowName
WFOwner

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


ELOprofessional - OLE Automation Interface
02.03.2007

Property WFFlowName (AnsiString)

This property gives you the workflow name.

See also: WFName


WFComment
WFOwner

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


ELOprofessional - OLE Automation Interface
02.03.2007

Property WFName (AnsiString)

This property gives you the workflow node name.

See also: WFFlowName


WFComment
WFOwner

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


ELOprofessional - OLE Automation Interface
02.03.2007

Property WFOwner (AnsiString)

This property gives you the workflow user.

See also: WFName


WFFlowName
WFComment

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

end if

Available from:

additional option for saving direct 3.00.358

See also: ReadUserProperty


UserGroups
UserParent
UserKeys
UserFlags

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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 ArcScanAdd
document
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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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 btTreePost
dialog
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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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 PlpTreePost
dialog
M:Store automatically by index PlpKeyArchive
structure...
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 plpNewVersion
document
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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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 NewStdReg
tab
M:Make checksum mmChecksum
M:Move document files mmMoveDocs
M:Convert Konvertieren
M:Elo -> TIFF Elo2Tiff
M:Outlook mmOutlook
M:Synchronize tab contents with DocSyncOutl
Outlook
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 mnFultextInfo
(creates Postbox file ..
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

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


ELOprofessional - OLE Automation Interface
02.03.2007

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

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

You might also like