0% found this document useful (0 votes)
2K views866 pages

WinAutomationHelp WAV8

Uploaded by

Gustavo Leite
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2K views866 pages

WinAutomationHelp WAV8

Uploaded by

Gustavo Leite
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 866

User manual for

Version 8

© 2018 Softomotive
Table of Contents

1 WinAutomation 12
1.1 About Softomotive ......................................................................... 13
1.2 Software Requirements ................................................................. 14
1.3 Editions ............................................................................................ 14
1.4 Release History ............................................................................... 16

2 Getting Started 62
2.1 Create a simple Process - Part 1 ................................................... 63
2.2 Create a simple Process - Part 2 ................................................... 69
2.3 Create a simple Process - Part 3 ................................................... 74

3 Using WinAutomation 80
3.1 The Console ..................................................................................... 81
3.1.1 Processs ............................................................................................................... 82
3.1.1.1 Processs Tab ..................................................................................................... 83
3.1.1.2 C reate a new Folder ........................................................................................... 84
3.1.1.3 C reate a new Process ......................................................................................... 85
3.1.1.4 Move Processs/Folders ....................................................................................... 87
3.1.1.5 Import/Export a Process ..................................................................................... 87
3.1.1.6 Run/Stop a Process ............................................................................................ 89
3.1.1.7 The Notification Popup Window ............................................................................ 90
3.1.1.8 Enable/Disable a Process .................................................................................... 91
3.1.1.9 Find Process ...................................................................................................... 92
3.1.2 Triggers ................................................................................................................ 93
3.1.2.1 What Triggers Are .............................................................................................. 93
3.1.2.2 Trigger Variables ............................................................................................... 94
3.1.2.3 Triggers Tab ...................................................................................................... 95
3.1.2.4 How to set a Trigger for a Process ....................................................................... 96
3.1.2.5 Trigger Types .................................................................................................... 98
Email Monitor Trigger ..................................................................................... 98
Event Log Monitor Trigger ............................................................................. 101
File Monitor Trigger ...................................................................................... 103
Hotkey Trigger ............................................................................................ 104
Idle Monitor Trigger ..................................................................................... 105
Ping Trigger ................................................................................................ 106
Service Monitor Trigger ................................................................................ 107
Process Monitor Trigger ................................................................................ 108
3.1.3 Scheduler ........................................................................................................... 109
3.1.3.1 Scheduler Tab .................................................................................................. 110
3.1.3.2 Schedule ......................................................................................................... 111
3.1.3.3 Recurring Schedule .......................................................................................... 114
3.1.4 Logs .................................................................................................................... 114
3.1.4.1 Logging in WinAutomation ................................................................................. 114
3.1.4.2 Logs Tab ......................................................................................................... 115
3

3.1.4.3 Filtering Log Messages ...................................................................................... 117


3.1.4.4 Viewing Log Messages for Process ..................................................................... 118
3.1.4.5 C lear Logs ....................................................................................................... 120
3.1.5 Options ............................................................................................................... 120
3.1.5.1 Settings Tab .................................................................................................... 121
General Settings .......................................................................................... 121
Processes File Settings ................................................................................. 122
Exe Settings ................................................................................................ 123
FTP Settings ................................................................................................ 124
Authentication Settings ................................................................................. 126
3.1.5.2 License Tab ..................................................................................................... 129
3.1.5.3 Error Handling Tab ........................................................................................... 132
Behaviour ................................................................................................... 132
Email/SMTP Tab ........................................................................................... 133
3.1.5.4 Addons Tab ..................................................................................................... 134
3.1.6 Processes Status Monitor .................................................................................. 135
3.1.6.1 Status Monitor Window ...................................................................................... 135
3.2 Process Properties ....................................................................... 138
3.2.1 General ............................................................................................................... 140
3.2.2 Run Policy ........................................................................................................... 144
3.2.3 Concurrency Policy ............................................................................................ 146
3.2.4 Error Handling .................................................................................................... 147
3.3 Generate EXE ................................................................................ 148
3.3.1 What is a compiled Process ............................................................................... 148
3.3.2 Compiler Window ............................................................................................... 149
3.3.3 Compiled Processs and Triggers/Schedules ..................................................... 153
3.3.4 Tokens ................................................................................................................ 153
3.3.4.1 Get Tokens ...................................................................................................... 155
3.3.4.2 What is the C ompilation ID? .............................................................................. 156
3.3.4.3 What is the activation code and how can I set it? ................................................. 157
3.3.4.4 Why should I use the activation code? ................................................................ 158
3.3.4.5 How Tokens are being consumed? ..................................................................... 159
3.3.4.6 Available Tokens .............................................................................................. 159
3.4 The Process Designer ................................................................... 160
3.4.1 The Actions' Pane .............................................................................................. 162
3.4.2 The Workspace .................................................................................................. 162
3.4.3 The Variables Pane ............................................................................................ 164
3.4.4 The Variables Visualizer Window ....................................................................... 167
3.4.5 The Errors Pane ................................................................................................. 172
3.4.6 The Controls Repository pane ........................................................................... 175
3.4.7 The Search for Tex window ............................................................................... 177
3.4.8 Go to Line ........................................................................................................... 179
3.4.9 The Image Repository pane .............................................................................. 180
3.4.10 Functions ............................................................................................................ 183
3.4.11 Managing Functions ........................................................................................... 184
3.4.12 Adding an Action ................................................................................................ 186
3.4.13 Configuring an Action ........................................................................................ 188
3.4.14 Enable/Disable Actions ..................................................................................... 191
3.4.15 Organize your Actions with Regions .................................................................. 192
3.4.16 Adding Comments .............................................................................................. 193
3.4.17 The Variables Manager Window ......................................................................... 195
3.4.18 Process Designer Options .................................................................................. 196
3.4.19 Process Designer Custom Layout ...................................................................... 198

© 2018 Softomotive
3.5 The Debugger ............................................................................... 199
3.5.1 Run/Stop/Pause a Process from Process Designer .......................................... 199
3.5.2 Adding Breakpoints ............................................................................................ 200
3.5.3 Execute step by step ......................................................................................... 201
3.5.4 Full Error View ................................................................................................... 202
3.5.5 Rename a Variable ............................................................................................. 203
3.6 The Macro Recorder ...................................................................... 204
3.6.1 Simulating the activity of a user ....................................................................... 204
3.6.2 Recording vs Building a Process ........................................................................ 204
3.6.3 Starting the Macro Recoder ............................................................................... 205
3.6.4 Macro Recorder .................................................................................................. 206
3.7 The Custom Dialog Designer ........................................................ 212
3.7.1 Designing a Custom Dialog ................................................................................ 212
3.8 UI Automation .............................................................................. 221
3.8.1 UI Automation Overview .................................................................................... 221
3.8.2 UI Elements - Select Controls ............................................................................ 223
3.8.3 Manage Controls Repository .............................................................................. 227
3.8.4 Manage Images Repository ............................................................................... 228
3.8.5 Manage UI Selectors .......................................................................................... 230
3.8.6 Building UI Selectors ......................................................................................... 233
3.8.7 UI Data Extraction ............................................................................................. 236
3.9 Web Automation ........................................................................... 237
3.9.1 Web Automation Overview ................................................................................ 237
3.9.2 Building a WebAutomation Process ................................................................... 239
3.9.3 The Web Recorder .............................................................................................. 246
3.9.4 Web Data Extraction Part I ................................................................................ 255
3.9.5 Web Data Extraction Part II .............................................................................. 262
3.9.6 Web Data Extraction Part III ............................................................................. 265
3.9.7 Configure Internet Explorer for Web Automation ............................................. 267
3.9.8 Configure Internet Explorer for Servers ........................................................... 271
3.9.9 Configure Chrome and Firefox for Web Automation ......................................... 273
3.9.10 Actual Internet Explorer VS Automated Broswer .............................................. 280
3.9.11 Web Helpers Offset ............................................................................................ 281

4 Advanced Topics 283


4.1 Add-ons ......................................................................................... 284
4.1.1 What is an Add-on? ............................................................................................ 284
4.1.2 Install and Remove Add-ons ............................................................................. 284
4.2 Variables ....................................................................................... 285
4.2.1 Data Types ......................................................................................................... 286
4.2.2 List Variables ..................................................................................................... 289
4.2.3 Data Tables ........................................................................................................ 289
4.2.4 Data type Properties .......................................................................................... 290
4.2.5 Persistent Variables ........................................................................................... 293
4.2.6 External Variables ............................................................................................. 296
4.2.7 Custom Date Formats ........................................................................................ 296
4.2.8 Custom Objects .................................................................................................. 299
4.3 Loops ............................................................................................ 305
4.3.1 Simple Loops ...................................................................................................... 305
4.3.2 Loop Condition ................................................................................................... 306
4.3.3 For Each ............................................................................................................. 307
5

4.4 Connecting to a Database ............................................................ 308


4.4.1 Connect to Excel or Access Database ............................................................... 308
4.4.2 Connection Strings and Drivers ......................................................................... 309
4.5 Conditionals .................................................................................. 310
4.5.1 If/Else/EndIf ..................................................................................................... 310
4.5.2 If Variations ....................................................................................................... 312
4.6 Installing MODI for OCR ............................................................... 312
4.7 Get Web Browser Element Coordinates ....................................... 316
4.8 CSS Selectors ............................................................................... 317
4.9 % and \% Notation ...................................................................... 321
4.10 Exception Handling ....................................................................... 322
4.11 Exception Block ............................................................................. 325
4.12 WinAutomation on the System Tray ............................................ 327
4.13 Image Recognition ....................................................................... 327
4.14 Interactive/Non Interactive Processs ......................................... 328
4.15 Manage Processs Database ......................................................... 329
4.16 Controlling WinAutomation from the command line .................... 329
4.17 Valid Key Codes for the Send Keys Action .................................. 333
4.18 Copy/Paste Controls .................................................................... 335

5 Actions Reference 337


5.1 System .......................................................................................... 338
5.1.1 Run Application Action ....................................................................................... 338
5.1.2 Run DOS Command Action .................................................................................. 340
5.1.3 Run VBScript Action ............................................................................................ 342
5.1.4 Run Javascript Action ........................................................................................ 345
5.1.5 Run PowerShell Script ........................................................................................ 346
5.1.6 Terminate Process Action .................................................................................. 348
5.1.7 Print Document Action ....................................................................................... 349
5.1.8 Get Default Printer Action .................................................................................. 350
5.1.9 Set Default Printer Action .................................................................................. 350
5.1.10 Log Off User Action ............................................................................................ 351
5.1.11 Shutdown Computer Action ................................................................................ 352
5.1.12 Show Desktop Action ......................................................................................... 353
5.1.13 Lock Workstation Action .................................................................................... 354
5.1.14 Play Sound Action .............................................................................................. 355
5.1.15 Empty Recycle Bin Action .................................................................................. 356
5.1.16 Take ScreenShot Action ..................................................................................... 357
5.1.17 Control Screen Saver Action .............................................................................. 359
5.1.18 Ping Action ......................................................................................................... 359
5.1.19 Set Environmental Variable Action .................................................................... 361
5.1.20 Get Environmental Variable Action ................................................................... 362
5.1.21 Delete Environmental Variable Action .............................................................. 363
5.1.22 Get Screen Resolution Action ............................................................................ 364
5.1.23 Set Screen Resolution Action ............................................................................. 365
5.2 Conditionals .................................................................................. 368
5.2.1 If Action ............................................................................................................. 368
5.2.2 If File Exists Action ............................................................................................ 369

© 2018 Softomotive
5.2.3 If Folder Exists Action ....................................................................................... 370
5.2.4 If Service Action ................................................................................................ 372
5.2.5 If Process Action ................................................................................................ 373
5.2.6 If Window Action ................................................................................................ 374
5.2.7 If Image Action .................................................................................................. 377
5.2.8 If Text on Screen (OCR) ..................................................................................... 379
5.2.9 If Window Contains Action ................................................................................. 383
5.2.10 If Web Page Contains Action ............................................................................. 387
5.2.11 Else Action ......................................................................................................... 389
5.2.12 Else If Action ...................................................................................................... 389
5.2.13 End If Action ...................................................................................................... 391
5.2.14 Switch ................................................................................................................. 392
5.2.15 End Switch .......................................................................................................... 393
5.2.16 Case .................................................................................................................... 394
5.2.17 End Case ............................................................................................................. 398
5.2.18 Default Case ....................................................................................................... 398
5.2.19 End Default Case ................................................................................................ 399
5.3 Loops ............................................................................................ 399
5.3.1 Loop Action ........................................................................................................ 399
5.3.2 Loop Condition Action ........................................................................................ 401
5.3.3 For Each Action .................................................................................................. 402
5.3.4 Exit Loop Action ................................................................................................. 403
5.3.5 End Loop Action ................................................................................................. 403
5.4 Wait ............................................................................................... 404
5.4.1 Wait Action ......................................................................................................... 404
5.4.2 Wait for File Action ............................................................................................ 405
5.4.3 Wait for HotKey Action ....................................................................................... 407
5.4.4 Wait for Process Action ..................................................................................... 409
5.4.5 Wait for Service Action ...................................................................................... 411
5.4.6 Wait for Window Action ...................................................................................... 412
5.4.7 Wait for Image Action ........................................................................................ 415
5.4.8 Wait for Text on Screen (OCR) ........................................................................... 418
5.4.9 Wait for Mouse Action ........................................................................................ 423
5.4.10 Wait for Window Content Action ........................................................................ 424
5.4.11 Wait for Web Page Content Action ..................................................................... 426
5.5 Flow Control .................................................................................. 429
5.5.1 Label Action ....................................................................................................... 429
5.5.2 Go To Action ....................................................................................................... 430
5.5.3 Run Function Action ........................................................................................... 431
5.5.4 Exit Function Action ........................................................................................... 431
5.5.5 Stop Process Action ........................................................................................... 432
5.5.6 Begin Exception Block Action ............................................................................ 434
5.5.7 End Exception Block Action ............................................................................... 435
5.6 Mouse and Keyboard .................................................................... 436
5.6.1 Block Input Action .............................................................................................. 436
5.6.2 Get Mouse Position Action ................................................................................. 437
5.6.3 Move Mouse Action ............................................................................................ 438
5.6.4 Move Mouse to Image Action ............................................................................. 439
5.6.5 Move Mouse to Text on Screen (OCR) ................................................................ 443
5.6.6 Send Mouse Click Action .................................................................................... 447
5.6.7 Send Keys Action ............................................................................................... 449
5.6.8 Press/Release Key Action ................................................................................. 451
5.6.9 Set Key State Action .......................................................................................... 452
7

5.7 Message Boxes ............................................................................. 453


5.7.1 Display Message Action ..................................................................................... 453
5.7.2 Display Custom Dialog Action ............................................................................ 456
5.7.3 Display Notification Action ................................................................................ 459
5.7.4 Display Input Dialog Action ............................................................................... 460
5.7.5 Display Select Date Dialog ................................................................................. 461
5.7.6 Display Select From List Dialog Action .............................................................. 464
5.7.7 Display Select File Dialog Action ....................................................................... 468
5.7.8 Display Select Folder Dialog Action .................................................................. 470
5.8 Files ............................................................................................... 472
5.8.1 Get Files in Folder Action .................................................................................. 472
5.8.2 Copy File(s) Action ............................................................................................ 474
5.8.3 Move File(s) Action ............................................................................................ 475
5.8.4 Delete File(s) Action .......................................................................................... 477
5.8.5 Rename File(s) Action ....................................................................................... 477
5.8.6 Read Text from File Action ................................................................................ 482
5.8.7 Write Text to File Action .................................................................................... 483
5.8.8 Read From CSV File Action ................................................................................. 485
5.8.9 Write to CSV File Action ..................................................................................... 486
5.8.10 Get FilePath Part Action ..................................................................................... 488
5.8.11 Get Temporary File Action ................................................................................. 490
5.9 Folders .......................................................................................... 491
5.9.1 Get Subfolders in Folder Action ......................................................................... 491
5.9.2 Create Folder Action .......................................................................................... 493
5.9.3 Delete Folder Action .......................................................................................... 494
5.9.4 Empty Folder Action .......................................................................................... 495
5.9.5 Copy Folder Action ............................................................................................. 495
5.9.6 Move Folder Action ............................................................................................ 497
5.9.7 Rename Folder Action ........................................................................................ 498
5.9.8 Get Special Folder Action .................................................................................. 499
5.10 Compression ................................................................................. 501
5.10.1 Zip Files Action .................................................................................................. 501
5.10.2 Unzip Files Action .............................................................................................. 502
5.11 Clipboard ....................................................................................... 504
5.11.1 Get Clipboard Text Action .................................................................................. 504
5.11.2 Set Clipboard Text Action .................................................................................. 505
5.11.3 Clear Clipboard Contents Action ........................................................................ 506
5.12 UI and Windows ............................................................................ 507
5.12.1 Use Desktop Action ............................................................................................ 507
5.12.2 Select Tab in Window Action .............................................................................. 509
5.12.3 Click Element in Window Action ......................................................................... 510
5.12.4 Select Menu Option in Window Action ................................................................ 511
5.12.5 Drag and Drop Element in Window Action ......................................................... 513
5.12.6 Expand / Collapse Tree Node in Window Action ............................................... 515
5.12.7 Windows ............................................................................................................. 517
5.12.7.1 Get Window Action ........................................................................................... 517
5.12.7.2 Focus Window Action ........................................................................................ 520
5.12.7.3 Set Window State Action ................................................................................... 524
5.12.7.4 Set Window Visibility Action ............................................................................... 528
5.12.7.5 Move Window Action ......................................................................................... 532
5.12.7.6 Resize Window Action ....................................................................................... 536
5.12.7.7 C lose Window Action ........................................................................................ 540

© 2018 Softomotive
5.12.8 Form Filling ........................................................................................................ 544
5.12.8.1 Focus Text Field in Window Action ...................................................................... 544
5.12.8.2 Populate Text Field in Window Action .................................................................. 545
5.12.8.3 Press Button in Window Action ........................................................................... 547
5.12.8.4 Select Radio Button in Window Action ................................................................. 548
5.12.8.5 Set C heckbox State in Window Action ................................................................ 548
5.12.8.6 Set Dropdown List Value in Window Action .......................................................... 549
5.12.9 Data Extraction .................................................................................................. 552
5.12.9.1 Get Details of Window Action ............................................................................. 552
5.12.9.2 Get Details of Element in Window Action ............................................................. 554
5.12.9.3 Get Selected C heckboxes in Window Action ........................................................ 556
5.12.9.4 Get Selected Radiobutton in Window Action ......................................................... 557
5.12.9.5 Extract Data from Window Action ....................................................................... 559
5.13 Web Automation ........................................................................... 562
5.13.1 Launch New Internet Explorer Action ............................................................... 562
5.13.2 Launch New Firefox ........................................................................................... 567
5.13.3 Launch New Chrome ........................................................................................... 572
5.13.4 Create New Tab .................................................................................................. 578
5.13.5 Go to Web Page Action ....................................................................................... 581
5.13.6 Click Link on Web Page Action ........................................................................... 583
5.13.7 Click Download Link on Web Page Action .......................................................... 585
5.13.8 Hover Mouse over element on Web Page Action .............................................. 586
5.13.9 Close Web Browser ............................................................................................ 587
5.13.10 Execute Javascript Function On Web ................................................................ 589
5.13.11 Web Forms ......................................................................................................... 592
5.13.11.1 Focus Text Field on Web Page Action .................................................................. 592
5.13.11.2 Populate Text Field on Web Page Action .............................................................. 594
5.13.11.3 Set C heckbox State on Web Page Action ............................................................ 596
5.13.11.4 Select Radio Button on Web Page Action ............................................................. 599
5.13.11.5 Set DropDown List Value on Web Page Action ..................................................... 601
5.13.11.6 Press Button on Web Page Action ....................................................................... 603
5.13.12 Web Data Extraction .......................................................................................... 606
5.13.12.1 Extract Data from Web Page Action .................................................................... 606
5.13.12.2 Get Details of Web Page Action .......................................................................... 608
5.13.12.3 Get Details of Element on Web Page Action ......................................................... 609
5.13.12.4 Take Screenshot of Web Page Action ................................................................. 611
5.13.13 Direct Web Access ............................................................................................. 613
5.13.13.1 Download from Web Action ............................................................................... 613
5.13.13.2 Invoke Web Service Action ............................................................................... 617
5.14 FTP ................................................................................................ 622
5.14.1 Open FTP Connection Action .............................................................................. 622
5.14.2 Open Secure FTP Connection Action .................................................................. 624
5.14.3 Close FTP Connection Action ............................................................................. 627
5.14.4 List FTP Directory Action ................................................................................... 627
5.14.5 Change Working Directory Action ..................................................................... 629
5.14.6 Download File(s) from FTP Action ..................................................................... 630
5.14.7 Download Folder(s) from FTP Action ................................................................ 631
5.14.8 Upload File(s) to FTP Action .............................................................................. 633
5.14.9 Upload Folder(s) to FTP Action ......................................................................... 634
5.14.10 Delete FTP File Action ........................................................................................ 635
5.14.11 Rename FTP File Action ..................................................................................... 636
5.14.12 Create FTP Directory Action .............................................................................. 637
5.14.13 Delete FTP Directory Action .............................................................................. 638
5.14.14 Synchronize FTP Directory Action ..................................................................... 639
9

5.14.15 Invoke FTP Command Action ............................................................................. 643


5.15 Email ............................................................................................. 645
5.15.1 Retrieve Emails Action ....................................................................................... 645
5.15.2 Process Emails Action ........................................................................................ 654
5.15.3 Send Email Action .............................................................................................. 657
5.16 Exchange ....................................................................................... 661
5.16.1 Connect to Exchange Server ............................................................................. 661
5.16.2 Retrieve Exchange Email Messages .................................................................. 665
5.16.3 Send Exchange Email Messages ........................................................................ 669
5.16.4 Process Exchange Email Messages ................................................................... 672
5.17 Cmd Session ................................................................................. 675
5.17.1 Open Cmd Session .............................................................................................. 675
5.17.2 Close Cmd Session ............................................................................................. 677
5.17.3 Write to Cmd Session ......................................................................................... 677
5.17.4 Read from Cmd Session ..................................................................................... 679
5.17.5 Wait for Text on Cmd Session ............................................................................ 681
5.18 Database ....................................................................................... 682
5.18.1 Open SQL Connection ......................................................................................... 682
5.18.2 Execute SQL Statement Action .......................................................................... 682
5.18.3 Close SQL Connection ........................................................................................ 684
5.19 Excel .............................................................................................. 685
5.19.1 Launch Excel Action ........................................................................................... 685
5.19.2 Attach to Running Excel Action .......................................................................... 686
5.19.3 Read from Excel Action ...................................................................................... 687
5.19.4 Save Excel .......................................................................................................... 691
5.19.5 Write to Excel Action ......................................................................................... 692
5.19.6 Close Excel Action .............................................................................................. 693
5.19.7 Add New Worksheet Action ................................................................................ 695
5.19.8 Set Active Worksheet Action ............................................................................. 696
5.19.9 Get First Free Column/Row Action .................................................................... 697
5.19.10 Advanced Excel .................................................................................................. 699
5.19.10.1 Run Excel Macro ............................................................................................... 699
5.19.10.2 Get Active Excel Worksheet Action ..................................................................... 700
5.19.10.3 Get All Excel Worksheets Action ......................................................................... 701
5.19.10.4 Delete Excel Worksheet Action .......................................................................... 703
5.19.10.5 Rename Excel Worksheet Action ........................................................................ 704
5.19.10.6 Activate C ell in Excel Worksheet Action .............................................................. 706
5.19.10.7 Select C ells in Excel Worksheet Action ............................................................... 708
5.19.10.8 Get Selected C ell Range From Excel Worksheet Action ......................................... 710
5.19.10.9 C opy C ells in Exel Worksheet Action .................................................................. 712
5.19.10.10 Paste C ells to Excel Worksheet Action ................................................................ 715
5.19.10.11 Insert Row in Excel Worksheet Action ................................................................. 716
5.19.10.12 Delete Row from Excel Worksheet Action ............................................................ 717
5.19.10.13 Insert C olumn to Excel Worksheet Action ........................................................... 718
5.19.10.14 Delete C olumn from Excel Worksheet Action ....................................................... 719
5.19.10.15 Get First Free Row on C olumn from Excel Worksheet Action ................................. 720
5.20 Outlook ......................................................................................... 722
5.20.1 Launch Outlook Action ....................................................................................... 722
5.20.2 Retrieve Email Messages From Outlook Action ................................................. 723
5.20.3 Send Email Through Outlook Action .................................................................. 726
5.20.4 Process Email Messages in Outlook Action ....................................................... 728
5.20.5 Save Outlook Email Messages Action ................................................................ 731

© 2018 Softomotive
5.20.6 Respond To Outlook Email Message Action ....................................................... 733
5.20.7 Close Outlook Action .......................................................................................... 736
5.21 OCR Actions .................................................................................. 737
5.21.1 Create Tesseract OCR Engine ............................................................................ 738
5.21.2 Create MODI OCR Engine .................................................................................... 740
5.21.3 Extract Text With OCR ........................................................................................ 742
5.22 Services ........................................................................................ 745
5.22.1 Start Service Action ........................................................................................... 745
5.22.2 Stop Service Action ............................................................................................ 746
5.22.3 Pause Service Action ......................................................................................... 747
5.22.4 Resume Service Action ...................................................................................... 748
5.23 WinAutomation Actions ................................................................ 749
5.23.1 Start Process Action .......................................................................................... 749
5.23.2 Get Command Line Arguments Action ............................................................... 751
5.23.3 Get Process' Path Action .................................................................................... 752
5.23.4 Log Message Action ........................................................................................... 753
5.23.5 Get Last Exception Action .................................................................................. 754
5.24 Text Actions .................................................................................. 755
5.24.1 Get Text Length Action ...................................................................................... 755
5.24.2 Append Line to Text Action ................................................................................ 756
5.24.3 Get Subtext Action ............................................................................................. 757
5.24.4 Pad Text Action .................................................................................................. 758
5.24.5 Trim Text Action ................................................................................................ 760
5.24.6 Change Text Case Action ................................................................................... 761
5.24.7 Convert Text to Number Action ......................................................................... 762
5.24.8 Convert Number to Text Action ......................................................................... 763
5.24.9 Convert Text to DateTime Action ...................................................................... 765
5.24.10 Convert DateTime to Text Action ...................................................................... 766
5.24.11 Create Random Text Action ............................................................................... 768
5.24.12 Join Text Action ................................................................................................. 770
5.24.13 Split Text Action ................................................................................................. 771
5.24.14 Parse Text Action ............................................................................................... 773
5.24.15 Replace Text Action ........................................................................................... 775
5.24.16 Escape Text for Regular Expression Action ...................................................... 777
5.25 DateTime Actions ......................................................................... 778
5.25.1 Get Current Date and Time Action ..................................................................... 778
5.25.2 Add to DateTime Action ..................................................................................... 779
5.25.3 Subtract Dates Action ........................................................................................ 781
5.26 XML Actions .................................................................................. 782
5.26.1 Read XML from File Action ................................................................................. 782
5.26.2 Write XML to File Action ..................................................................................... 783
5.26.3 Execute XPath Expression Action ...................................................................... 785
5.26.4 Get XML Element Attribute Action ...................................................................... 786
5.26.5 Set XML Element Attribute Action ...................................................................... 788
5.26.6 Remove XML Element Attribute Action .............................................................. 790
5.26.7 Get XML Element Value Action ........................................................................... 791
5.26.8 Set XML Element Value Action ........................................................................... 793
5.26.9 Insert XML Element Action ................................................................................. 794
5.26.10 Remove XML Element Action .............................................................................. 796
5.27 Variables Actions .......................................................................... 797
5.27.1 Set Variable Action ............................................................................................ 797
5.27.2 Increase Variable Action ................................................................................... 798
11

5.27.3 Decrease Variable Action .................................................................................. 799


5.27.4 Truncate Number Action .................................................................................... 800
5.27.5 Generate Random Number Action ..................................................................... 801
5.27.6 Get Items Count Action ...................................................................................... 803
5.27.7 Create New List Action ....................................................................................... 804
5.27.8 Clear List Action ................................................................................................. 805
5.27.9 Add Item to List Action ...................................................................................... 806
5.27.10 Remove Item from List Action ........................................................................... 807
5.27.11 Sort List Action ................................................................................................... 808
5.27.12 Shuffle List Action .............................................................................................. 810
5.27.13 Merge Lists ......................................................................................................... 811
5.27.14 Reverse List Action ............................................................................................ 812
5.27.15 Remove Duplicate Items from List Action ......................................................... 813
5.27.16 Find Common List Items Action ......................................................................... 814
5.27.17 Subtract Lists Action .......................................................................................... 815
5.27.18 Retrieve DataTable Column into List Action ...................................................... 816
5.27.19 Create New Custom Object ................................................................................ 817
5.27.20 Add Property To Custom Object ........................................................................ 818
5.27.21 Convert Json to Custom Object .......................................................................... 820
5.27.22 Convert Custom Object to Json .......................................................................... 822
5.28 PDF Actions ................................................................................... 825
5.28.1 Extract Text From PDF ....................................................................................... 825
5.28.2 Extract Images From PDF Action ...................................................................... 829
5.28.3 Extract text From PDF With OCR ........................................................................ 833
5.28.4 Extract PDF Pages to New PDF .......................................................................... 837
5.28.5 Merge PDF Files ................................................................................................. 838
5.29 Synchronization Actions ............................................................... 839
5.29.1 Lock Handle Action ............................................................................................ 839
5.29.2 Release Handle Action ....................................................................................... 840

© 2018 Softomotive
1. WinAutomation
WinAutomation 13

1 WinAutomation
1.1 About Softomotive

Softomotive offers sharp Robotic Process Automation solutions, as one of the leading
worldwide providers of RPA products , trusted by more than 6.000 companies worldwide.

With 10+ years in the software automation market, Softomotive offers the most reliable and
scalable RPA solutions, bridging the gap between state-of-the-art technology and unparalleled
ease of use.

Our automation solutions are proven to deliver operational efficiency, reduce costs and
empower brands.

· Feel free to contact us at: [email protected]

More specifically:

· For Sales matters: [email protected]

· For Support, if you are an active SAP User: [email protected]

· For Professional Services: [email protected]

© 2018 Softomotive
1.2 Software Requirements
Client Operating System: s Vista, Windows 7, Windows 8 or 8.1, Windows 10 (both
32 bit and 64 bit versions)

Server Operating System: Windows 2008 or Windows 2012 or Windows 2016

Internet Explorer version: 8.0 or higher

1.3 Editions
WinAutomation is available in three different editions:

Basic Edition:
Includes only the basic set of features, such as Triggers, Basic Actions, Daily Logging
etc, expect from the further features provided in the Professional and Professional Plus
editions only, which are listed below.

Professional Edition:
Includes all the features of the Basic Edition plus:

· The Process Compiler 148 which allows the user to compile any Process into a stand-

alone .net exe file that can be distributed and run on other computers.

· The Autologin 126 feature that will unlock or login to the workstation before running a
Process.

· The Secure Screen feature, which enhances Security for Processes that are
scheduled to run unattended, in order to run without the user being able to see the
screen. This option will turn the screen blue while the Process is running. The only
visible window will be the Notification Window.

· Password Protected Processes, which allows the user to set a password for a
Process and protect sensitive data. Once setting a password, the user will be able to
run the Process normally, however for editing it they will be prompted to enter the
password.
WinAutomation 15

· Maximum Running Time for Process(s), which allows the user to set a maximum
running time for a Process, to avoid situations where it is not executed as intended.

· Concurrency Policy and Queuing Processes, according to which the user can limit the
number of Process instances running concurrently and he is given the option for
queueing or discarding Processes once the set limit of instances is reached.

· Macro and Web Recorder for automatic task development.

· Custom Dialog box designer, for generating any kind of input interface the user
needs.

· Error-Exception Handling in action, block of actions, process and global level.

· Find Process feature to search for Processes within the database.

· Advanced Excel actions for efficient Excel automation.

· A wide variety or Triggers that can fire a Process upon a specific event's
occurrence.

· Schedules which fire Processes to run on a specific time intervals or periodically


based on the user's specifications

· Step by step process logging.

· Include monitor Screenshots to the logs.

· Text-Functions-Variables Search and Go to line functionalities

· Vast variety of some more advanced actions.

Professional Plus Edition:


Includes all the features of the Professional Edition plus:

· Mozilla Firefox Support.

· Google Chrome Suport.

· Exchange Mail Server Support.

· OCR actions (supporting Microsoft MODI and Google Tesseract).

· PDF actions, along with new ones for Merging and Splitting PDF files.

© 2018 Softomotive
· Outlook actions, for automating your Outlook account emails.

· Command Line sessions support for maintaining a cmd session to which the user can
send command lines.

· Synchronization actions in order to orchestrate the Processes execution, in cases


where more than one processes need to access a resource that can server one
client at a time.

The differences between the three Editions can be found at:

http://www.winautomation.com/edition-comparison/

NOTE: Any process exported by an upper edition WinAutomation, cannot be imported to a lower edi

1.4 Release History

Version 8.0

General New Features

o "Set expiry date" in Schedule, now includes the time also.

o The option to provide the Autologin password via a Command Line

o “Automatic Logging” to log ALL actions and their execution timing in the Logs

o The ability to get a Screenshot of the monitor(s) and add it in the logs, upon an
exception (Set from the Process Properties of from the Exception handling)

o Additional details of an error, available in the Process Designer and not only
through the Console Logs

o Add a WinAutomation shortcut while installing for easy and quick access

o Web Automation enhancement with supporting IE, Mozilla Firefox and Google
Chrome

Note: The term "Robot" which was used for the automated tasks/processes has
been replaced by "Process"
WinAutomation 17

Process Designer

o “Find Usages” for Functions, displaying a list of where each Function is being used
for ease of troubleshooting

o “Sort Images” in the Images Repository by Name or Date for ease of access

o “Go to Line” Functionality in the Process Designer to enable better troubleshooting


in large processes

o “Text Search” within the Process Designer to search for any text present in the
actions, comments or regions

o Image magnifier tool is now showing in all Image related actions, for more
accuracy in Image capturing

o Mass Function delete. The option to select more than one Functions and delete
them all

New Actions:

o Mozilla Firefox and Google Chrome support for better Web-Automation

o “Run Excel Macro” New Action in order ton Run an Excel Macro by its name

o “Execute JavaScript on Web Browser” New Action in order to run JavaScripts on a


webpage

o “Save Excel” New Action, that will help in saving an Excel file without having to
close it

o “Extract PDF Pages to New PDF” New Action, for splitting a PDF file into smaller
parts

o Time Zone added to “Get Current Date and Time” Action

o Support for OCR with two engines: MODI and Tesseract

o New conditional actions for decision making “Switch-Case”

o Supporting Microsoft Exchange with new Email actions

© 2018 Softomotive
Improvements & Fixes:

o “Wait for Hotkey” action was not throwing an exception if it failed to bind the key
in runtime

o Problem with renaming a Process while using special characters

o “Event Log Trigger” issue for event id “4625” which was not triggering correctly

o “Get Files in Folder” action when including Sub-Folders throwing an error

o Console to remember the size/position/column width and save it correctly when


the relevant option is checked in the “Options > General”

o "Invoke Web Service” action does not return Response and Headers in case of
Error code.

o Action “Read Text from File” was stuck due to special character

o Action “Paste Cells to Excel Worksheet” was throwing an error message

o In the Controls’ repository, the Desktop Icons items were not shown correctly

o Folders Control was not appearing when restoring the layout.

o Logs not showing the folders upon installing a new version

o “Get Files in Folder” and “Get Subfolders in Folder” were not erroneous in cases
where the root directory itself was denied

o “Stop Process” action is now stopping the Process even in an exception handle
block

o The ability to delete a folder that contains more than 2000 Process

o “If Process is late” in a schedule’s option was not working in some cases

o “Close Excel” action. There were cases where the excel process was still present
even after the file was closed

o The Hotkey for Stopping All Processes was failing to register correctly

o “Read From Excel” action was throwing an error when reading only one cell’s value
using a restricted cell range targeting only that one cell
WinAutomation 19

o Values of variables defined in the Variables Manager, were not show correctly
before running the Process

o Variables that were set in exception handling were not having their types
recognized correctly

o When using the option “Default Layout” the “Main” Function was not being
docked.

o Exception that was happening when adding control in action Expand/Collapse Tree
Node other than a Tree node control

o When copying action “Drag and Drop Element in Window”, controls were not being
copied along

o Reopening a Process with a variables search filter was only showing the filter's
variables

o If a process name contained any of Windows Invalid file name characters the
Process was not starting

o Improve the way temp files are used from WA when it needed

o Obfuscation in generated executables for data encryption

o “Run Process” action, to indicate and find the child Process by its path, then by
its guid and then by the same folder

o Adding a scroll bar in the “Find Usages” results for better navigation.

o Renaming a Processes Folder, the arrow keys to navigate to a certain letter in the
title had no effect.

o Improved the Options Tab in the WinAutomation Console for better User
Experience.

Version 7.0

General New Features

o Find Process: A new option in the console, with which you are now able to search
for your Processes.

© 2018 Softomotive
o WinAutomation Controller: New option using the controller to export information
about a specific process or the full database in XML.

Process Designer

o Images Repository: Introducing the images repository. Similar to the control


repository, now all the images are being stored in the images repository.

o Remove Unused Controls: New option, to remove unused controls from the control
repository. This option, is offered in the images repository as well.

o Reorder Selectors: Now, you have the ability to reorder the selectors in the
control repository.

o Find Usages: New feature with which actions are using a particular control.

o Exception Handling: New exception handling rules such as "Set Variable" and
option to set rules for "All Exceptions"

o Copying actions with their associated controls: Copying an action from one
process to another, copies the associated controls as well.

New Actions:

o Exception Block Actions: Introducing the Exception Block actions, with which you
can set an exception handling rule for all the actions located within the block.

o Set & Get Screen Resolution Actions: New actions, with which you have the
ability to get the resolution of your screen or set another resolution to your
screen.

o Open - Close SQL Connection Actions: New actions, with which you can open and
close an SQL connection

o CMD Session Actions: Introducing the CMD session group of actions to execute
commands and get responses.

o Additional Excel actions: Introducing a group of new Excel actions such as options
to Insert or Delete columns on a spreadsheet.

o Outlook Actions: Introducing Outlook actions with which you can interact with MS
Outlook.
WinAutomation 21

o Synchronization Actions: Introducing Synchronization actions and Lock Handles


with which you can avoid one process affecting another while execution.

o PDF Actions: Introducing this new group of actions with which you can extract
text and images from PDF files.

Version 7.0.2
Improvements and Corrections:

o WinAutomation Console is now remembering the layout changes.

o Handling temp files in a much more efficient way, creating a WinAutomation


subfolder in the Temp.

o Autologin improvement, as now the password is being checked for being valid or
not before proceeding to the autologin.

o Issue with gear icon window visibility, in the properties of an action, when panes
are undocked is now resolved.

o Invoke Web Service action works now as expected in case of Error Code.

o Action "If Image" while checking the option to "Find All Images in List", was taking
under consideration only the second image.

o Correction in the "Retrieve Email Messages From Outlook" action when the sender
is a user of the same domain.

o Images captured from WinAutomation version 6 or earlier can now be opened.

o The error message thrown in action "Process Emails", while trying to move mails to
a folder that does not exist, is now refined.

o Run Dos Command" action is not hanging anymore on specific commands.

o Action "Read Text from File" correctly handling special characters without breaking
the process.

o Invalid Windows file name characters, are no longer acceptable in process names.

o When copying "Drag and Drop Element in Window" action, controls were not
copied along

© 2018 Softomotive
Version7.0.1
Improvements:

o Default value in "Wait for Image" action, "Wait for Image to" action's input is now
"Appear".

o Special characters in a process's title are not allowed,when creating one.

o Outlook accounts are now being read by name, case insensitive.

Corrections

o Certain Processes' properties in General, Run&Concurrency Policy were not being


saved correctly.

o "Find Usages" option in variables, was generating an error when double clicked, after
deleting a variable or its associated actions.

o Error in Logs, appearing when terminating a process from the Task Manager is now
fixed

o "Display Notification popup Window" option now preserves the users setting
(checked-unchecked) after restarting the machine.

o Closing all functions in a Process Designer, was not allowing the opening of other
functions.

o Action "Stop Process" with error message was not working correctly.

o Action "Get First Free Row on Column from Excel Worksheet" was not working
correctly.

o In action "Set DropDown List Value on Web Page", in Advanced tab, field "If a Pop-
Up Dialog Appears", when choosing option "Press a Button" the value set in the menu
that was not being saved.

o The Tab button was not working correctly in some actions' properties window.

o When selecting the "Default Layout" option in the Process Designer, functions should
revert to their tab based view (or close).

o "Get Details of Window" action, when getting a Window's title was not returning any
value
WinAutomation 23

Version 6.0

General New Features

New modern interface: New design Interface for the Console and the Process
Designer with new icons. The Process Designer has now configurable panes for
Variables, Errors, Control Repository, Functions and Actions. You can customize the
layout as you wish by hiding or making visible different panes. Also the Console is
changed and equipped with a ribbon bar containing tabs for Processes, Triggers,
Scheduler, Logs and Options.

Autologin (Pro Edition Only): A Process can unlock/login to a workstation upon its
running time when initiated by a trigger of a scheduler. This is a very helpful feature
especially when interactive Processes should have a user logged in, while running
unattended.

Status Monitor: A new Status Monitor Window is introduced which lists all the
running Processes and the Processes that are put in the queue, waiting to start.
Even more information, than just the running Processes' name is provided, like the
Instance id, the Start time and the Cause of execution (manual or triggered). An
option to stop all running Processes is also available.

Improved Performance-UIAutomation v3.0:Using the new UIAutomation v3.0 makes


the UI/Windows more efficient and improves the overall performance making the
actions more powerful, while more elements in desktop applications are now visible
and accessible with WinAutomation.

Secure Screen (Pro Edition Only): Enhanced Security for Processes that are
scheduled to run unattended in order to run without the user being able to see the
screen. This option will turn the screen blue while the Process is running. The only
visible window will be the Notification Window.

Password Protected Processes (Pro Edition Only): Option to set a password for a
Process and protect your sensitive data. Once setting a password, the user will be
able to run the Process normally, however for editing it they will be prompted to
enter the password.

Maximum Running Time (Pro Edition Only): Setting a maximum running time for a
Process to avoid situations where it is not executed as intended.

Concurrency Policy and Queueing (Pro Edition Only): You now have the ability to
limit the number of Process instances than can run concurrently. Also, there is a
new option for queueing or discarding Processes once the set limit of instances is
reached.

© 2018 Softomotive
Triggers can be enabled/disabled independently: For Processes with more than one
triggers attached, there is now the option to enable/disable a specific trigger,
instead of removing it.

View logs for specific Processes: Improved Logs viewer that can display logs for
more than one Processes.

Machine does not enter in idle state when a Process is running: A running Process is
considered a user activity postponing the screen saver timeout or AutoLogout.

Improved command-line control: WinAutomationController for ListRunning returns


more information; when running multiple instances or a Process ALL the instances
will be listed.

Process Designer
Search for actions: Enhanced "Search for Actions" in the Actions pane of the
Process Designer where the user can search by keyword, action name or action
initials.

Variables pane: A dedicated pane for the Processes Variables where you can view
the variables’ values, search, pin, sort or rearrange the variables.

Pause Process: A new option in the Process Designer to pause the execution of the
Process while running. Very useful especially when one wants to review some
variables' values at the pause point.
Variables Viewer: By double clicking on a variable in the Variables pane while the
Process is being executed step by step, or stopped at a breakpoint or paused, the
user has the option to view the details of a variable in the variable window and also
edit its value. The variable viewer window will depend on the variable's data type.

Rename Variables: An helpful new option to massively rename variables, either within
a specific function or in the whole Process. For very big Processes with many
functions renaming a variable used to be a difficult and time consuming task. Not
anymore.

Variables Live Editor: New option to change a variable's value dynamically while the
Processes is being executed from the Process Designer, after pausing it or executing
it step by step.

Control Repository: A repository that will hold all the controls (Windows, Browsers,
Buttons, Elements, etc...) that the Process will access through its different actions.
The user also has the ability to modify any control, its selectors by using variables,
its name, remove existing, add new and keep them all neat.

UI Spy: Ability to preview the UI or Web Control’s tree and attributes in the
WinAutomation UISpy window while accessing it and before adding it to your Control
WinAutomation 25

Repository. This gives an overview of the control’s information, as well its location
within the application (web or desktop).

Resizable action properties: "Write text to file", "Execute SQL statement", "Run
JavaScript", "Run VBScript", "Run PowerShell Script", "Send Email", "Write XML to
File" Actions Properties window are now resizable for readability purposes.

Actions advanced editor: "Execute SQL statement", "Run JavaScript", "Run


VBScript", "Run PowerShell Script" Actions now include advanced Text editor which
enables syntax highlighting.

Actions:
XML Actions: Introducing the XML group of actions to manipulate XML files, apply
XPath queries on them, retrieve or set attributes or elements values.

Environment Variables Actions: Introducing OS Environment variables actions that


can set, get or delete an Environment variable. They can be used to store or
retrieve global data, reachable from multiple Processes simultaneously.

"Read from CSV File" and "Export to CSV File" Actions: The new "Read CSV File" and
"Export to CSV File" action allow direct read from a csv file storing data into a data
table type variable and direct export a table variable to a CSV file.

"Attach to running Excel" Action: New action for automating an already opened
Excel spreadsheet, without having to launch it through the Process. A Process
attach to an open Excel document by its name or full path, store its instance into a
variable and apply further Excel actions on to it.

"Escape Text for Regular Expression" Action: This action will escape a minimal set of
characters by replacing them with their escape codes of an existing test.

"Merge Lists" Action: A new action that will merge two lists into one, appending the
items of the second list after the first one. The two the initial will remain unmodified.

"Hover Mouse over Element on Web Page" Action: There are cases in web pages
where elements/menus appear, or buttons get enabled, only after the mouse is over
them. This new action will cope with situations as such.

"Run PowerShell Script" Action: This action allows for PowerShell scripts to run
directly through the Process and store their output to a variable for further use.

Move mouse to image: When sending the mouse to an image, there is an option for
the Process to wait before sending the mouse click.

© 2018 Softomotive
Version 6.0.5

Improved: Reduced the time of execution of the "Zip Files" action.

Improved: Improved the "Email" group of actions.

Corrected: After upgrading to the latest Windows 10 Creators Update, not being able
to capture UI Controls is now fixed.

Corrected: "Get Processes Path" action returned a different text value when running
from the console from when running through the Process's Designer is now fixed.

Corrected: "Unzip action" is able to unzip empty folders.

Corrected: "Invoke Web Service" action does not fail when the Expect: 100-continue is
set as a header.

Version 6.0.4
Improved: Adding a control with the same name in a control repository add the suffix
(2), (3) and so on

Improved: Better screenshots are now taken for the controls in the control repository

Improved: Autologin for Professional Edition supports usernames and passwords


containing spaces.

Corrected: Processes not being able to run due to error message with multiple
conditionals not being ended correctly (if-else-end if) is now fixed.

Corrected: If more than one label had the same name case sensitive e.g 'Foo' and 'foo'
an internal exception was occurring.

Corrected: While on the Schedule Properties window, after clicking on the "Add Date"
option, clicking OK while leaving the date field empty was generating an “Oops”
exception.

Corrected: “Run PowerShell” action was hanging after its completion on certain
machines, not moving forward to the next action.

Version 6.0.3
Improved: "If Window" action when the window is set to "is open". If Window is not
found the correct value is returned.
WinAutomation 27

Corrected: Fixed password encryption Process issue

Corrected: "Connecting to Server..." state upon installation fixed. The connection to


the Server is totally restored upon installation.

Corrected: "Schedule Type: Monthly" option "Last day of Month" or "Last Working Day
of Month" selected, was showing nothing in the "Next Scheduled Run" field.

Corrected: In the time stored in the scheduler, the 12hour format was always used
regardless of the user's date pre-set format.

Version 6.0.2
Improved: Process Error Messages: The name of the action is now mentioned in the
error message displayed in the notifier and also in the log-entry

Improved: WinAutomation Processes when they run through the MachineAgent, are
now getting launched using the credentials of the user that owns the Process

Improved: UserAgent, MachineAgent, Console: Fixed a long-standing issue which was


causing memory consumption of these processes to increase considerably every time a
Process with Web or UI Automation Actions would run

Improved: Processes crashing, are no longer crashing the whole WinAutomation


Console

Improved: The Properties Dialogs of the UI Automation Actions, is no longer becoming


too large when the title of the targeted Window is too lengthy

Corrected: UI Selectors: contains word "~=" match method was not working if the
word is at the beginning or the end of value

Corrected: Process Error Handling Settings: If a Process gets auto-terminated due to


having reached the MaxRunningTime threshold (specified in its Process-Properties), the
error-handling settings (either global or process-specific) were not activated

Corrected: UI Elements in the QuickLaunchBar of the Windows Taskbar should now


appear as such

Corrected: Boolean expressions such as %NewVar > 10% are now evaluating to
BooleanVariants as intended again

Version 6.0.1
Improved: XML Variant Visualizer: Make the visualizer resizable

© 2018 Softomotive
Improved: Data Table Variant Visualizer is now resizable

Improved: TextVariant Visualizer is now Resizable

Improved: Data Table/Row Visualizers: Columns are now resizable and also appear with
best-fit pre-applied right when the visualizer is first-shown each time

Improved: Console Options Page: Check for the authentication password supplied by
the user and if it is not valid then display a warning icon

Improved: When using the "Error Handling" option to send an email in case the
Processes fails the body now also contains the error info

Improved: Invoke Web Service: Use advanced editor for the multiline-textboxes

Improved: When adding a control to Control Repository make UISpy an optional step

Improved: Improve Autogenerated Selectors while using "Add Control" to the repository

Corrected: Add "contains" operator in Visual Selector Builder

Improved: SecureScreen: added support for multiple screens

Improved: WinAutomation Server Module: Startup time optimized.

Improved: Eliminate unnecessary attributes being retrieved in UISpy

Corrected: Options-Page v6 Autostart Setting: Even if the corresponding checkbox


was unchecked the User-Agent still auto-started on user-login

Corrected: UISpy: when trying to select a menu item the menu closed when ctrl was
pressed.

Corrected: In "Wait for Window Content" action when the value in the "Fail on timeout"
field is too large an unhandled exception was risen

Corrected: Data Row/Table Variants Visualizers: Unhandled Exception error fixed.

Corrected: WinAutomationController: Command Line Arguments were not getting


passed on to Processes as they ought to

Corrected: In "Start Process" Action if "Wait Process to Complete" is set the caller
Process would not wait more than 3 minutes

Corrected: Read From Excel Action: When the action is set to use the first row for
setting column names, then the resulting column names were not named as intended if
3 or more column-names have the same name
WinAutomation 29

Corrected: "Get Environment Variable": failed to retrieve some of the environment


variables

Corrected: "Input Dialog Message" field in "Display Input Dialog" action was not stored
correctly

Version 5.0

Major New Features

Functions: a Process can be now broken down into smaller parts (or functions) that
can be called by any other part of the Process. This leads to a more modular design
where different segments of a Process can be used over and over from different
points. It is also possible to jump to a function for handling an exception.

UI Automation: WinAutomation is now capable of distinguishing among the different


controls within a window. A large set of actions has been added under the
“UI/Windows” category for directly manipulating Windows Applications and their
controls, as well as extracting data from them.

Macro Recorder: The Macro Recorder leverages the “UI Automation” technology
described above and now has a “Smart Recording” mode enabled by default. In this
mode the recorder records the interactions of the user with the various controls of
an application instead of just recording mouse coordinates. Of course, the simpler
mode of recording coordinates is still available for use when appropriate.

Live Helpers: In all Web Automation actions the user can now select a web page
element by clicking on any open Internet Explorer window. Respectively, for UI
Automation actions the user can specify a Windows control by clicking on the target
application.

Custom GUI: The new “Display Custom Dialog” action includes a Form Designer tool
that allows the user to design and present custom dialogs with all kinds of controls
in them.

New Actions:

“Use Desktop” action to perform taskbar related operations

“Get Window” action to retrieve a specific window or the foreground window (also
replaces the “Get Foreground Window” action)

© 2018 Softomotive
“Select Tab in Window” action to activate a tab in a tab group

“Click Element in Window” action to click on a specific control in a window

“Select Menu Option in Window” action to select a menu item in a window’s menu
bar

“Drag and Drop Element in Window” action to perform a drag and drop operation
within a window or from one window to another

“Expand/Collapse Tree Node in Window” action to expand/collapse nodes in a tree


control.

“Focus Text Field in Window” action to move the input focus to a specific textbox

“Populate Text Field in Window” action to set the text of a specific textbox in a
window

“Press Button in Window” action to click on a button control in a window

“Select Radio Button in Window” action to select a radio button in a button group

“Set Checkbox State in Window” action to check or uncheck a checkbox in a


window

“Set DropDown List Value in Window” action to select a value in a dropdown list
(aka combobox)

“Get Details of Window” action to get the value of properties of a specific window
(or its text)

“Get Details of Element in Window” action to get the properties of a specific control
in a window

“Get Selected Checkboxes in Window” action to retrieve the state of a checkbox or


the names of the selected checkboxes in a group

“Get Selected Radiobutton in Window” action to retrieve the state of a radiobutton


or the name of the selected radiobutton in a group

“Extract Data from Window” action to retrieve the text of a window or a specific
control in the form of a single value, a list or a table

“Run Javascript” action to execute some custom Javascript code and retrieve its
output into a variable.
WinAutomation 31

“Get Default Printer Name” action to get the name of the printer that is currently
set as default

“Show Desktop” action to minimize all windows

“Display Custom Dialog” action to design a custom dialog for requesting or


presenting data to the end user

Improved Actions:

In “Wait for Hotkey” action a new option allows for setting a maximum time to wait
for

In “Read Text from File” action it is now possible to specify the encoding of the file
to be read

In “Write Text to File” action two new encodings (Unicode without BOM and UTF-8
without BOM) have been added

In “Send Keys” action the Period and the Comma have been added in the Special
Keys menu

In “Send Email” action variables are now accepted for SMTP Server properties

In “Replace Text” action an option is added to enable the interpretation of escape


sequences like '\t', '\xA0', '\u' as actual characters

In “Add to DateTime” action it is now possible to add/subtract months or years


to/from a date time value

Plus numerous performance improvements, various bug fixes (mostly obscure ones)
and minor improvements.

Version 5.0.4
Improved: "Use Desktop" action: A new option has been added in the advanced
settings of the action so that users can specify if left-clicking on an app's icon on the
taskbar should cause a new instance of the application to be launched.

Improved: "Extract Data From Web Page" action & "Get Details of Element on Web
Page" action: The text-extraction mechanism has been fortified to handle certain

© 2018 Softomotive
corner-case scenarios more elegantly, which should result in more accurate text being
produced.

Improved: Web Automation actions: Users now have the ability to suppress a broader
range of errors that might occur while these actions are being executed. More
specifically javascript errors should no longer cause the actions to terminate the
Process if/when the user has put exception-suppression in place, say, in actions like
Extract Data From Web Page.

Improved: Custom Dialog: The help-entry for the action has been enriched to mention
which flags are supported by the datepicker control.

Corrected: "Retrieve Emails" action: The internal email-handling mechanism has been
improved to detect the main-content of an email. This should address an issue in
certain kinds of emails where the .BodyText property of the EmailInstanceVariant was
not reporting the text of the main-content of the underlying emails correctly.

Corrected: "Retrieve Emails", "Download From Web", "Take Screenshot of Web Page":
These actions should now be able to handle saving to files using filenames more than
230 characters long. Such filenames get automatically clipped to 230 characters so as
to work along the limitations imposed by the underlying filesystem.

Corrected: Console: Exporting a Process with a name longer than 230 characters
should now be working as intended. The name of the resulting .waj file is set to the
first 230 characters of the Process being exported.

Corrected: Console: Moving a folder into another folder which contains a sub-folder
with the same name as the one being moved should now be working as intended.

Corrected: "Wait for Window" action: Fixed an issue which was causing the action to
fail with an error message when set to wait for an excel application to reach a certain
window-state.

Corrected: "Press Button in Window" action: The exception-handling for this action
should now be working as intended when the button is not found when the action gets
executed.

Corrected: All Window-Manipulation actions: Fixed an issue which was causing these
actions to hang indefinitely -especially under Windows10- regardless of which window
they were instructed to target.

Corrected: "Get Window" action: Fixed a bug which was causing the wrong window to
be picked in certain corner cases.

Corrected: "Get Window" action: Fixed a bug which was causing the action to fail in
finding the window of the 'Edge' browser under Windows10.
WinAutomation 33

Corrected: "Use Desktop" action: The helper of the action should now be able to select
the start button in the taskbar of Windows10.

Corrected: Web Automation Helpers & Web Recorder: Fixed an issue affecting certain
websites, which was preventing the options-menu to pop-up when the 'appskey' would
be pressed on the keyboard.

Corrected: Web Automation Helpers & Web Recorder: Fixed a bug which was causing
these components to get clogged when attempting to select specific elements in the
product-results of Ebay.

Corrected: Web Automation Helpers & Web Recorder: Fixed an issue which was causing
highlighters to disappear permanently unless the webpage was scrolled up or down.

Corrected: "Extract Data From Web Page" action: Fixed a bug which was preventing
the action from successfully navigating from one page of results to the next when the
next-page element would be based on <img>.

Corrected: "Extract Data From Web Page" action & "Get Details of Element on Web
Page" action: The text-extraction mechanism has been fortified to handle certain
corner-case scenarios more elegantly, which should result in more accurate text being
produced.

Corrected: Web Automation actions: Manually setting the selector of any web
automation action to a custom selector which contains nested selectors ala div:has(>
a:contains('foo'), > a:contains('bar')) should no longer be causing the action to error
out when executed.

Corrected: "Rename File" action: Fixed a bug by which, when the action was set to
overwrite-mode, the original file was getting deleted if/when the eventual filename
specified was the same as the original file name, only different casing-wise. (The
action used to simply throw a cryptic error.)

Version 5.0.3
Improved: “Web Automation” actions: RunScript exceptions can now be handled
through the exception handling mechanism.

Improved: Numeric Variants: Numbers are now always getting parsed using US
formatting conventions, that is comma ',' for separating thousands and the dot '.' for
separating the decimal component (old behaviour was to use the regional settings of
the host machine).

Improved: “Populate Text Field on Web Page” action: Optimized to be faster when the
'emulate typing' option is checked.

© 2018 Softomotive
Improved: “Open Secure FTP Connection” action: Upon setting 'SFTP' as the type of
the connection, the 'Active Mode' checkbox should now be getting hidden as intended,
since it's not applicable to 'SFTP'.

Corrected: “Read from Excel” action: The action should no longer throw an exception
when attempting to read the value of a cell containing a number written in scientific
notation like 602E23.

Corrected: “Open FTP Connection” action: Now has 'Passive' as its default mode (used
to be 'Active').

Corrected: “Custom Dialog” action: Fixed an issue which was causing the delete key to
not be handled properly by 'Multiline Textbox' controls.

Corrected: “Run VBScript” action: Printing non-ASCII characters -such as the pound
sign (£)- to standard output/error streams should no longer cause the output variants
of the action to contain garbled text.

Corrected: “Invoke FTP Command” action: Should no longer be failing when/if the
“acceptable return codes” list is left empty.

Corrected: “Move Mouse” action: Should now be working as intended when set to
move the mouse instantly in relation to the active window.

Corrected: Compiled .exe Processes: Custom dialog was falsely not present on the
taskbar after getting minimized for the first time. It should now be visible as intended.

Corrected: Fixed an issue affecting certain websites, which was causing the Web
Automation actions and the Web Helpers to not work as intended.

Version 5.0.2
Improved: Macro Recorder. Filling forms by typing into textboxes and pressing tab in
between is now resulting in alternating distinct Populate Text Field / Send Key {Tab}
activities

Improved: The “Populate Text Field in Web Page” action now can optionally de-focus
the populated element as in some web pages this is required for the new element value
to be accepted

Improved: UI selectors, introduce the :disabled, :visible and :enabled Selectors and
also the :password selector which will target elements with the password attribute set

Improved: The CSS Theming textbox in Display Custom Dialog Action Properties UI,
now accepts Tab and Enter keystrokes
WinAutomation 35

Improved: Macro Recorder’s better handling of Arrow Up/Down keystrokes when sent
to spinner controls

Improved: “Extract Data from Window” action. When getting the file names from a File
Explorer window, file titles are now extracted correctly

Improved: Caching mechanism implemented in Macro Recorder and UI Automation


Helpers so that subsequent clicks to the same elements are sped up

Improved: In UI Automation the :is pseudo-selector is introduced ad works like it's


counterpart :not selector

Improved: Macro Recorder. The “Get Window” activities that get deleted by hand do
also take down with them those “Send Keys” actions that target the affected window

Improved: Better logging support for File Monitor Trigger

Improved: The “Create New Folder” action allows the creation of a folder given its full
path/name instead of entering the parent folder and the new folder name

Improved: “Get Details of Element on Web Page”, “Extract Data from Web Page” the
text extraction mechanism now removes invisible zero width characters (e.g. control
characters) from the extracted text

Improved: Better generated description for “Press button in Window” action

Improved: “Click Element in Window Action”, “Get details of element in Window”


actions. When the element of a File Explorer window is out view, the action scrolls the
view to scan the data-grid and find the element.

Improved: Macro Recorder is now creating more efficient UI selectors for element of
the File Explorer window

Improved: Macro Recorder now records the entire trajectory of the mouse when in
coordinates mode and one of the mouse buttons is pressed.

Corrected: Installation errors on Windows Servers & XP fixed

Corrected: “Invoke FTP” action, correction in the second-line description

Corrected: Visibility and positioning issues resolved for web content when displayed in
Web Helpers

Corrected: Mathematic calculations within expression that provided false results, due
to regional settings, have now been corrected

Corrected: “Wait for hotkey” action timeout would sometime result in a runtime error

© 2018 Softomotive
Corrected: Custom dialog, now takes into account the enter/escape buttons

Corrected: Better second-line description for the “Create Folder” action

Corrected: The “:eq()” Operator now selects the correct window, when two or more
windows are of the same class/title

Corrected: Consistency of “Close Internet Explorer” action. There were incidents


where the targeted browser stayed open despite this action

Corrected: UI Automation. Better detection of scroll up/down buttons of the Windows


7 File Explorer window

Corrected: “Go To Web Page” and “Click Link on Web Page” actions, now have better
mechanism for detecting whether a web page has fully loaded or not.

Corrected: Move mouse animation relative to the foreground window, honors the
actual delays of the animation.

Corrected: Macro Recorder now resumes recording activities, after the user attempts
to close the dialog, but presses Cancel in the confirmation dialog that pops up

Corrected: UI/Automation. Better handling of spinner controls

Corrected: Web Automation, unhandled exceptions have been addressed on certain


web pages and web page elements.

Corrected: Macro Recorder, switch keyboard layout activity is now captured correctly

Corrected: Custom Dialog. When set to be initially maximized the Custom Dialog
scrollbar is more accurate to the window limits.

Corrected: Web Automation, better waiting mechanism to wait for all frames of a web
page to be loaded completely

Corrected: Macro Recorder now captures accurately CTRL+Letter key combinations

Corrected: Better generated error messages in Custom dialog

Corrected: WinAutomation can now convert text representing numbers written in


exotic formats (such as Scientific Notation) to the proper Numeric Variants

Corrected: Output of “Subtract Lists” action. The result list is of the same type, as
the original ones

Corrected: Custom Dialog Designer. Pasting text into a control now works correctly for
every type of control.
WinAutomation 37

Corrected: Custom Dialog size from compiled exe is shown as specified

Corrected: Macro Recorder is now generating the correct action when accessing
windows preview in the task bar.

Corrected: Select Menu option is now generated when clicking on the menu options of
the System Tray Icons

Version 5.0.1
Improved: in "Display Custom Dialog" action an option has been added for a password
text control to be required, i.e. to be mandatory for the user to enter e value.

Improved: The Macro Recorder now generated better and more reliable selectors for UI
Elements.

Improved: The exit codes of the WinAutomationController have been rearranged to


report all possible exceptions.

Improved: A hotkey for resuming the execution of a Process stopped by a breakpoint


has been introduced.

Improved: The Macro Recorder now operates as an independent process resulting in a


more stable application execution.

Corrected: The File Monitor Trigger permanently stopped watching a remote folder if
the connection to the folder was temporary unavailable.

Corrected: In Web Automation, some web pages failed to be automated in v5 although


they worked fine in previous versions.

Corrected: The "Click Link on Web Page" action failed for some links that contained
Javascript

Version 4.0

New Actions:

o "Log Message" action to log a custom message into the WinAutomation Event Log.

© 2018 Softomotive
o "Wait for HotKey" action to pause the Process execution until the user presses a
specified hotkey.

o "Run VBScript" action to execute some custom VBScript code and retrieve its
output into a variable.

o "Retrieve Emails" action that retrieves emails and attachments from an IMAP
server based on specified criteria

o "Process Emails" action that moves emails into a mailbox folder, deletes them from
the server or marks them as unread.

o "Clear List" action removes all the items of a list.

o "Reverse List" action that reverses the order of the items of a list.

o "Truncate Number" action that truncates a number or rounds it up to the closest


integer value.

o "Invoke Web Service" action that sends an HTTP request and retrieves its
response allowing the user to specify all the low-level details, such as custom
headers of the request body.

o "Else If" action to allow more complex conditional structures

o "Launch New Internet Explorer" action to open a browser for Web Automation or
attach to an already running browser window.

o "Go to Web Page" action, to navigate the browser to a web page, refresh it and
move back or forward.

o "Click Link on Web Page" action to send a mouse click on a link or to any other
web page element.

o "Click Download Link on Web Page" action to click on a link that results in a file
download.

o "Close Internet Explorer" action to close an IE window opened by the "Launch New
Internet Explorer" action for Web Automation.

o "Focus Text Field on Web Page" action to move the input focus to a text box of a
Web Page.

o "Populate Text Field on Web Page" action to type a value into a web form field.
WinAutomation 39

o "Set Checkbox State on Web Page" action to check or uncheck a checkbox in a


web form.

o "Select Radio Button on Web Page" action to select a radio button in a web form.

o "Set Dropdown List Value on Web Page" action to select one or more options for a
dropdown list in a web form.

o "Press Button on Web Page" action to press a button and submit a web form.

o "Extract Data from Web Page" action to retrieve different chunks of data from a
web page in the form of single values, lists or tables.

o "Get Details of Web Page" action to retrieve info related to the web page such as
its title, its metadata, etc.

o "Get Details of Element on Web Page" action to retrieve an attribute value for a
specific HTML element of the page.

o "Take Screenshot of Web Page" action to capture the image of an entire web
page or of a specific web page element.

o "If Web Page Contains" action to check whether some text or element exist in a
web page or not.

o "Wait for Web Page Content" action to pause the execution of a Process until a
specific text or element appears or disappears on the Web Page.

Updated Actions:

o In "Write Text to File" action the user now has the choice whether a newline will
be appended or not after the text.

o In "Run Application" the action can be set to wait up to one hour for the
application to load or complete.

o In "Download from Web" action a timeout property has been added.

o The "Open Secure FTP Connection" action now supports authentication using a
private key, or a private key plus a passphrase.

o In "Display Select from List" dialog, when multiple selection is allowed, the user
can set some options of the list to appear preselected.

© 2018 Softomotive
o In "Move Mouse" and "Move Mouse to Image" actions there is an additional option
to specify whether the mouse should jump or move smoothly to the new position.

o In the "If" action the "Is Not Empty" operator has been added.

o In the "If" action the "Is Empty" and "Is Not Empty" operators have now a
different meaning if the operand is a list (contains/does not contain any items), a
datatable (contains/does not contain any rows), a folder (contains/does not
contain any files) or a file (whether it is an empty file or not).

o Window-related actions now handle correctly window titles than contain non-
English characters.

o The "Comment" action now supports different background colors and cannot be
disabled.

o In "If Image", "Wait for Image" and "Move mouse to image" actions property
dialogs the captured images are displayed over a colored background for their
boundaries to become visible.

o The "Download From Web" action is moved under the category "Web
Automation/Direct Access".

o In the "Run Process" action if no action to run is specified, an error is displayed in


the editor, instead of when the Process runs.

Process Designer:

o Web Recorder, to record the user's activity on the web and convert it into actions
for replaying them later.

o Collapsible Regions added for visually separating groups of actions.

o Keyboard interface added in Process Designer. The user can now move though the
actions and select them using the keyboard.

o Disabled actions display their icon grayed out.

o While the Process is running from within the Process Designer the actions are
scrolled so that the action after the currently executing is always visible.

WinAutomation Console:

o New, redesigned dialog for the "Create New Process" option that includes the Web
Recorder.
WinAutomation 41

o When a Process execution is canceled by the user, the number of the last
executing action is displayed.

Triggers:

o New "Email Trigger" monitors an email account and runs a Process when an email
that matches some specified criteria arrives.

o Correction for Schedule Trigger; when it was set to fire only on the last day of
month it didn't work as expected.

Process Compiler:

o New, redesigned "Compile Process" dialog.

o Compiled Processes can now have a custom icon and custom info such as
company, version number and copyright statement.

o Each Process remembers the information entered by the user in the last
compilation.

o When a Process contains a "Run Process" action it cannot be compiled and instead
a warning is displayed to the user to replace the "Run Process" with a "Run
Application" action.

o A compiled Process has the option to display a Notification Window (like the
Processes that run from within WinAutomation) to inform the user of the currently
executing action.

o A Process has the option to be compiled as "Single Instance" meaning that only
one instance of the Process can run at the same machine at any time.

Version 4.0.6
Improved: Performance improvement when selecting an option from a SELECT element
in a web page, through the "Set Drop Down List Value on a Web Page" action

Improved: When WinAutomation fails to open a Process because it has been created
with a newer version of the application, a descriptive message is displayed.

Corrected: The "emulate typing" checkbox in the "Populate Text Field on Web Page"
action properties dialog defaulted to true every time a new textbox was selected using
the Web Helper.

© 2018 Softomotive
Corrected: CSS Selectors in Web Automation actions that included a comma within the
:contains selector where not interpreted correctly.

Corrected: The WinAutomation installation process now makes sure that the service is
up before any other process is launched. Additionally it refuses to proceed if the
WinAutomation Console of the previously installed version is still running.

Version 4.0.5
Improved: The error message produced by the "Wait for Web Page" action when a
timeout occurred has been changed to a more descriptive one.

Corrected: The "Invoke Web Service" action failed to transmit the cookies correctly
when specified in the Custom Headers property.

Corrected: The highlighter of the Web Helper window of every Web Automation action
failed to locate the correct element when the user manually inserted the * selector in
the "CSS Selector" property of the action.

Corrected: The "Take Screenshot of Element on Web Page" action failed to capture
the correct picture when the element is at the bottom of a web page and the vertical
scrollbar is part of a nested frame instead of a the top most document.

Corrected: "Focus Text Field" action does not work properly for non focusable-
elements such CAPTCHA images that lie at the bottom of a web page and the one of
the scrollbars is part of a nested frame/div while the other scrollbar is part of the top
most document.

Improved: When using a WebBrowser Instance or Excel Instance type variable without
having been initialized a null reference exception occurred. This is now replaced by a
descriptive error message.

Improved: Any Web Automation action not set to wait for the web page to load, does
not impose a 3 seconds delay any more before moving the the next action, resulting to
a faster Process execution.

Corrected: By manually selecting a collapsed region in the Process Designer using the
keyboard, only the "Start Region" action was selected, instead of the whole region.

Corrected: In the "Search Action" textbox of the Process Designer the Select, Copy,
Cut and Paste hotkeys (Ctrl-A, Ctrl-C, Ctrl-X, Ctrl-V) affected the Process's actions
and not the search textbox.

Improved: A Process created by a newer edition of WinAutomation that the one


installed is now prohibited from running and being edited by the older edition.
WinAutomation 43

Corrected: Memory leak occurred in some rare cases when an exception occurred while
opening a Process.

Corrected: When opening a Process that contained external actions from an addon
that was not installed, the mouse pointer remained hourglass instead or reverting to
default style.

Modified: The Cut/Copy/Paste menu items are now removed from the File Menu of the
Console.

Improved: Error message for opening a Process containing unknown/missing actions


changed to a more descriptive one.

Corrected: While uploading files to some SFTP servers through the "Upload Files to to
FTP" action, the action attempted to change the permissions of the uploaded files,
sometimes resulting to the abortion of the operation.

Corrected: Text file attachments downloaded by the "Retrieve Emails" action became
corrupted if the file used a non-ASCII encoding.

Improved: Memory footprint of the "Retrieve Emails" action has been significantly
reduced for large emails download.

Corrected: Actions related to windows manipulation matched a random window if only


the window class was provided to the action and the title was empty (instead of
matching a window with an empty title).

Corrected: When the user selected the "Exit WinAutomation" menu item in the
WinAutomation agent context menu and then clicked cancel in the confirmation dialog
the service stopped nonetheless.

Improved: A more descriptive error message is now displayed by the "FTP Upload
Folder" action when attempting to upload a folder that already exists on the server.

Corrected: In Image Recognition based actions, specifying a zero-size subregion to


search in for the desired image resulted in an error.

Corrected: when the foreground window is momentarily unavailable, the error is


suppressed and the operation is repeated.

Corrected: the "Invoke FTP Command" action failed in some cases when sending a
command to an SFTP server.

Corrected: forcing the Process Designer to close while a Process was running in debug
mode sometimes caused the WinAutomation Console to crash.

Corrected: FtpFile/FolderVariants that start with Double Forward Slashes, cause errors
when attempting to retrieve the base directory of the path via the .Directory property.

© 2018 Softomotive
Corrected: the "Move Mouse" action, if the "Relative To Current Mouse Position"
property and an animation scheme is selected, moved the mouse to double the amount
of the offset needed.

Improved: communication mechanism between the WinAutomation agent and the


Notification window has been improved for the latter not to introduce a performance
bottleneck in tight loops.

Corrected: In some websites using yahoo libraries certain div elements get mistaken for
rich text editors resulting in erroneous extraction of their content by the "Extract data
from Web Page" action.

Improved: The save button and the insert new region button in the Process Designer
are now disabled while a Process is being run from within the Process Designer.

Improved: In some cases the macro recorder failed to record a modifier key due to a
delay in the process of intercepting its state.

Modified: The text "Choose your weapon" in the Create New Process dialog has been
changed to "Choose a tool".

Corrected: Web Recorder and Web Helper for Data Extraction: When a header of an
html table that's has been selected for extraction contains a % sign it is now
automatically escaped so as to avoid phantom errors about missing variables

Corrected: when multiple users were accessing the same WinAutomation service
instance through terminal services sometimes the notifications were routed to the
wrong user.

Version 4.0.4
Improved: Support added for new IE10.

Improved: The variable generated by the "Launch New Internet Explorer" action which
holds the web browser instance, now has a .Handle property that returns the handle of
the browser's window. The value can be passed to Window-related actions (move,
resize, focus window etc) which accept a window handle as input.

Corrected: The "Open Secure FTP Connection" action failed to establish connection
with certain FTP servers.

Corrected: The web element selection engine can now handle the rare cases where
the browser returns an empty value instead of the tag of an element.

Improved: The "Extract Data From Web" action now identifies the pager element ("Next
Page") even in more complex configurations.
WinAutomation 45

Corrected: "Take Screenshot" action did not perform as intended in some cases.

Modified: Windows related actions do not display the window picker icon in their
property dialogs when they are set to matching a window by its handle.

Corrected: All WinAutomation windows when restored from a minimized state, now
make sure that they are displayed in a visible portion of the screen.

Improved: The "Set Drop Down List Value on Web Page" action can now select options
even when their values is an empty text.

Corrected: The "Download Folder from FTP" action, now does not modify the working
directory.

Corrected: The utility that retrieves the email folders in the "Retrieve Emails" and
Process Emails" actions as well as in the Email Trigger would freeze the UI for a while if
wrong settings have been entered in the IMAP account section.

Modified: The "Parse Text" action now throws an exception if the regex provided is
invalid.

Corrected: The "Display Notification" action now always outputs its message to the
command prompt console when the Process is compiled as a console application (even
when the "Display Notifications" option in the Compiler dialog is unchecked).

Corrected: Exception thrown by FTP actions when used through a secure FTP
connection, now have more descriptive messages.

Corrected: When a Process with triggers attached was copied, the triggers of the
newly copied Process were not functioning until the WinAutomation service was
restarted.

Corrected: The highlighter of the Web Helper sometimes was displayed off-position
when highlighting an element within a frame.

Corrected: Rich Text Editors, in some cases were difficult to select using the Web
Helper.

Corrected: The "Extract Data from Web Page" action now extracts the data from the
first page only, when a negative value is provided to be the number of pages to
extract data from.

Improved: The "Set Drop Down List Value on Web Page" action now accepts a list
variable when more than one values need to be selected.

Improved: The extraction of the inner text of a Web Page element now removes any
additional info injected into the page by the Skype plugin.

© 2018 Softomotive
Improved: The "Focus Web Element" action now scrolls the web page to bring the
focused element into view.

Corrected: The "Extract Data from Web Page" action when instructed to extract all the
options of a drop down web element, it returned only the selected options.

Improved: The "Click download Link on Web Page" action is now able to handle
download dialogs that are already open, when the CSS selector property is empty.

Improved: There is now a way to execute arbitrary javascript code on the automation
browser.

Modified: Windows Related action now throw an exception if both window name and
window class are not set.

Corrected: In some extreme cases the "Retrieve Emails" action failed to parse the
email's body.

Corrected: "Download from Web" and "Invoke Web Service" actions fail for urls which
contain double quotes, or specify a port and are not explicitly preceded by http or
https

Corrected: When the "Send Keys" action was instructed to type a number preceded by
zeros the zeros were trimmed upon closing the properties dialog of the action.

Corrected: The "Synchronize FTP Directory" action sometimes fails if the working
directory was not explicitly set by a "Change Working Directory" action.

Corrected: In the "Invoke Web Service" action the "Connection Timeout" property
ignored the value set by the user and always defaulted to 30 seconds.

Version 4.0.3
Modified: The properties dialog of the Schedule Trigger cannot be dismissed any more
if no dates are specified.

Corrected: in some cases a Schedule Trigger fired a couple of minutes before the
scheduled time resulting to a double execution of the Process.

Corrected: A Schedule Trigger with the "Skip Process" option checked did not skip the
Process in question when the machine is resuming from hybernation/suspension state.

Corrected: Execution of a WMIC command through the "Run DOS Command" action
failed when ran in Windows XP.
WinAutomation 47

Corrected: The "Take Screenshot of Web Page" action produced images with black
areas when invoked through the Web Automation Browser and the scrollbars did not
appear properly.

Corrected: The "Take Screenshot of Web Page" action produced inaccurate


screenshots for elements residing within iframes or when zooming is applied.

Corrected: The exception handling portion of the "Take Screenshot of Web Page"
action, when executed fired the wrong exception.

Corrected: The extraction of the inner text of a page or an element returned


inaccurate result when encountered HTML tags with attributes that had non-ascii
characters and/or digits or when an element contained exotic characters that were
rendered as whitespace.

Corrected: The extraction of the inner text of a page now takes into account the
value property for buttons and text boxes.

Improved: Actions that extract data from a web page or a web element can now
retrieve the inner HTML, the outer HTML and the new HTML5 data-related attributes of
an element.

Modified: The "Extract Data from Web Page" action now treats a a hidden element as
non-existent, Meaning that the "exists" attribute will return "FALSE" for an element
that exists in the page, but is hidden.

Improved: The "Extract Data from Web Page" action in order to identify which element
of the page acts as a pager, now is able to utilize information from parent elements of
the pager for more accurate results.

Improved: The Web Helper window for the "Extract Data from Web Page" action now
performs much faster when a large number of table cells need to be highlighted.

Corrected: The Web Helper window for the "Extract Data from Web Page" action failed
to highlight the selected pager element if this element was placed within an iframe.

Corrected: The Web Helper window for the "Extract Data from Web Page" action
highlighted all elements matching the specified CSS selector, even when in "Single
Value" mode.

Corrected: The Data Extraction Preview in the Web Helper window for the "Extract
Data from Web Page" action did not take into account any regular expressions
specified in the settings for generating the preview.

Corrected: The "Extract Data from Web Page" action did not apply any regular
expressions specified when extracting element values in "Single Value" or in "List"
mode.

© 2018 Softomotive
Corrected: The "Extract Data from Web Page" action and the "Get Detail of Element on
Web Page" action failed to retrieve the STYLE attribute of an HTML element.

Improved: The "Single Instance" option is now available as an option in the Compiler
Properties Dialog when the application type is "Command Line Application". Moreover, it
is unchecked by default.

Improved: Processes compiled with the "Single Instance" option set, now return an exit
code of -1 when the user attempts to run them while another instance of the same
executable is already running.

Corrected: In Windows XP the "Generate Exe" dialog produces an irrelevant warning


message when the Compile button is pressed.

Corrected: Compiled Processes did not report their version number when inquired
through WMI in Windows XP.

Corrected: Compiling Processes to executables failed if the Company Name or the


Copyright Notices contained double quotes or trailing backspaces.

Improved: Processes compiled as "Windows Application" now display the EXE file name
as the title of the form displayed when running the compiled Process.

Corrected: The notifications popup windows displayed by compiled Processes were not
positioned correctly when the message to be displayed was too long.

Corrected: The "Populate Text Field on Web Page" action didn't respect the MaxLength
and Enabled attributes of the target INPUT element when "Emulate Typing" setting was
unchecked.

Corrected: The "Populate Text Field on Web Page" action, when handling File Upload
Inputs, always waited for the web page to complete loading even when the respective
option was unchecked.

Corrected: The "Populate Text Field on Web Page" action failed when instructed to set
the text in a Rich Text editor and the value to be written contained one or more
double quotes.

Improved: The "Populate Text Field on Web Page" action can now set the value of
hidden fields.

Improved: The "Populate Text Field on Web Page" action now supports INPUT elements
with TYPE=COLOR

Corrected: "Wait for Web Page Content" action threw an error when set to wait for an
element located within a frame.
WinAutomation 49

Corrected: Attaching to the foreground Internet Explorer window through the "Launch
new Internet Explorer" action did not wait for the browser to complete loading the
current web page.

Corrected: All web automation actions that makes sense only in the context of HTML
pages now throw an exception when they are used on an Internet Explorer instance
that holds a non-HTML document (such as an image or a PDF document).

Corrected: The "Go to Web Page" action threw an exception when instructed to
navigate to a non-HTML document and the "Wait for Page to Load" option was
checked.

Corrected: The "Get Details of Web Page" action failed to return the correct when the
assigned browser instance displayed a non-HTML document

Corrected: The "Retrieve Emails" action failed to save any attachment if the
ContentType was set to text/plain.

Improved: The "Retrieve Emails" and "Process Emails" action properties dialogs do not
attempt to retrieve the list of email folders when the mail account username or
password is given as a variable.

Modified: In the "Comment" action properties dialog the comments text box now has
the default focus.

Improved: The "Variables Manager" dialog closes when the Esc key is pressed.

Corrected: The "Open FTP Connection" and "Open Secure FTP Connection" actions
failed to execute when no password was provided.

Version 4.0.2
Corrected: When a web page produced a Javascript error the error message was not
suppressed preventing the normal execution of the Process.

Corrected: "Set Checkbox State on Web Page" action changed the checkbox state
twice effectively resulting in no change.

Corrected: When retrieving the text of a web page the values of web form fields are
included in the resulting text.

Version 4.0.1
Web Automation actions now work in web pages that contain frames/iframes

© 2018 Softomotive
Corrected: "Run VBScript" action failed in Windows XP and in later Windows versions
when the name of the logged in user contained spaces

Corrected: "Wait for Web Page Content" and "If Web Page Contains" actions in some
cases failed to return the correct value if the text to wait for was hidden.

A link to the generated file has been added in the message box displayed upon
successful compilation of a Process.

Improved: Performance for "Extract Data from Web Page" action.

Corrected: "Invoke Web Service" action did not handle correctly some custom headers.

After importing a .waj file the newly imported Process becomes selected in the
WinAutomation Console.

After creating a new folder in the WinAutomation console, this folder becomes
selected.

Corrected: In the "Wait for Image" action if set to wait indefinitely and search within a
subregion the action failed to find the image on the screen.

In the Error Handling tab of both the Options and Process Properties dialogs the
"Process to Run" was not visible if the path to the Process was to long.

Corrected: When a Process is compiled as "Command-Line Application" the "Display


Popup on Error" setting now has no effect.

If a Process compiled as "Command Line Application" fails to run, the executable's name
is now included in the error message.

Corrected: The "Open Secure FTP Connection" action failed to connect properly for
some SSH versions.

The dropdown list displayed by the "Select From List Dialog" action has become taller in
order to display more list items

Breakpoints on disabled actions are now rendered in gray.

Actions' properties dialogs now open centered to the Process designer window and
within the screen boundaries.
WinAutomation 51

Version 3.0

Service
· WinAutomation's service is now more lightweight and more stable.

· All errors with 64bit versions of windows have been fixed.

· You can now stop WinAutomation's service by right clicking on the tray icon of
the Agent and selecting: "Exit WinAutomation"

· WinAutomation's service has been redesigned, to require less system resources.

· There is no longer an option to start and stop the service through the console.
Opening the console will automatically start the service and you cannot stop the
service through the tray icon if the console is open.

Console
· The general options have been enriched; check "Tools - Options" in the console
window to test the new options. Specifically:

· There is now an option to stop all Processes that are currently running with a
HotKey (General tab)

· There is an option that allows you to control if WinAutomation's service will


start when the machine boots (Service tab)

· You can now disable the system tray icon (Notifications tab)

· The "balloon" that used to notify the user whenever a process started or
ended has been replaced by a special Notification Popup Window that you can
show or hide (Notifications tab)

· You can globally decide which file types will be treated as ASCII files by the
FTP actions (FTP tab)

· There are some "Global Error Handling" options that you can set in the case
that your Processes fail to complete such as Write the Event to a log file or
Send Email (Error Handling tab). In the case that you decide to send an email,
you will have to set the SMTP options (SMTP Server tab)

· There is a new logging system; check "Tools - View Logs" to see the changes.
You can filter the log events based on date, type of event or source of event.
There is also a new pane in the console that shows the most recent Log Records.

© 2018 Softomotive
· You can now open multiple Processes and still be able to interact with the console

· You can view the logs for a specific process (Right click on the process and select
"View Logs for the specific process" option)

· The Processes are now saved in a database that you can backup, restore and
compact ("Tools - Manage Processes Database")

· The Processes are now exported to a new file type (*.waj), however, there is
backward compatibility (you can import old xml files but you can't open waj files
with WinAutomation 2)

· You can import multiple Processes at once

· There is a special executable in WinAutomation's installation directory


(WinAutomationController.exe) that allows you to run and stop your Processes
through the command line.

Process Designer
· All actions have been redesigned and in their property dialogs the main tab is now
divided in 2 sections: "Action Input" and "Action Output".

· A new special "gear" icon has been introduced, that allows you to select from
variables that have been created/used earlier in the process. This icon can be
used only in fields that reside in the "Action Input" section of the action's
properties window.

· There are a lot of internal features like automatic variable handling (automatically
create a new variable when it's declared and delete when it's not used) and the
addition of new types of variables (files, folders etc) that intend to make
interaction with variables much easier. For example, you do not need to use the
"Define New Variable" option now: you just place a variable name in the field and if
it does not exist, it is automatically created.

· There are no longer yellow and white background colors in forms: whenever you
want to use a variable, you will have to enclose it in percentages (e.g %MyVar%).

· The image recognition system has been significantly changed: it is now more
accurate and stable, and the tolerance option is now more versatile (in version 3,
it does not only understand differences in color tones but it also indicates the
amount of different pixels that is allowed).

New Actions
· Download From Web (Web category): This action acts like a browser and can
handle http requests, supporting both, get and post method for posting data.
WinAutomation 53

· Get Command Line Arguments (WinAutomation actions category): This action


retrieves the command line arguments that can be provided through the command
line or if the process is compiled.

· Get Process's Path (WinAutomation actions category): This action retrieves the
path to the executable (obviously works only if the process is compiled)

· Wait For Mouse (Wait category): You can now use this action for specific type of
applications where the only indicator that you have for a complete task is the
mouse icon

· Press/Release Key (Mouse and Keyboard category): Presses (and holds) or


releases a moifier key. This new action allows you to combine any of the known
modifiers (Control, Alt, Shift) with a mouse move/click.

· Set Key State (Mouse and Keyboard category): You can use this key to ensure
that Caps Lock, Scroll Lock and Num Lock are on the state that you want them to
be during the execution of a specific process.

· Display Notification (Message Boxes category): This action can be used to print
useful information about the process execution in the Notification window that
pops up whenever you run the process through the console (unless you have
specified that this window does not appear). Also, it will print the information that
you specify in the console window that will appear if you compile your process as
a "Console Application".

· Display Select Date dialog (Message Boxes category): Allows you to prompt the
user to select a date or a date range.

· Get Special Folder (Folders category): This action will return the path of special
Windows folders (e.g Desktop). It can prove really useful if you want to create a
process that does not depend on the user's Windows version (XP/Vista).

· Open Secure FTP Connection (FTP category): Allows you to open a secure FTP
connection (sFTP or FTPs, implicit or explicit)

· Download Folder(s) (FTP category): Allows the download of a folder and its
contents through FTP

· Upload Folder(s) (FTP category): Allows the upload of a folder and its contents
through FTP

· Invoke FTP Command (FTP category): Allows you to send a custom FTP command
to an FTP server

· Change Text Case (Text Actions category): Allows you to change the case of a
specific text (possible options to convert to: lowercase, UPPERCASE, Sentence
case, Title Case)

© 2018 Softomotive
Changed Actions
· Start Process Action (WinAutomation actions category): There is now an option
to "Wait for process to complete". The process that is called through this action,
can now use the variables that are declared in the main process.

· Display Input Dialog (Message Boxes category): This action can now prompt the
user for a password, and accept multiple lines as input.

· Display Select from List Dialog (Message Boxes category): You can now allow the
user to select multiple items and disallow the empty selection.

· Get Files in Folder (Files category): Allows you to sort the files that you retrieve
based on specific attributes (e.g Size, Last Modified etc)

· Get SubFolders in Folder (Folders category): Allows you to sort the folders that
you retrieve based on specific attributes (e.g Creation Time, Last Modified etc)

· Download File(s) from FTP (FTP category): Allows you to select "Auto" as a
transfer type.

· Upload File(s) to FTP (FTP category): Allows you to select "Auto" as a transfer
type.

· Open FTP Connection (FTP category): You can now use use a variable as
password

Compile Process to Exe


· There are new options to choose from when you are generating an executable:
you can specify how the exe will deal with a possible exception (e.g Return error
code = 1) or if you want to compile the process as a windows or a console
application.

Version 3.1.6
Corrected: Numbers with trailing sign (e.g. 12-) were incorrectly parsed as legal
negative numbers.

Modified: All numbers are now parsed using en-US regional settings (i.e. the decimal
separator is always the dot).

Corrected: "If Window" action did not function correctly when "Is focused" was
selected and a window class was specified.
WinAutomation 55

Corrected: When a Process was exported and the folder containing that Process was
deleted, the Process failed to import correctly into the same database.

Modified: The upper limit for the number or retries in the Exception Handling portion of
an Action has been increased (from 5 to 25), along with the seconds to wait for,
between retries (from 120 secs to 3600 secs).

Modified: The limit for the OffsetX and OffsetY properties in the "Move Mouse to
Image" Action has been increased from 300px to 1000px.

Version 3.1.5
Corrected: Numbers with a decimal point were not accepted in expressions. The
Process failed to compile.

Corrected: The "Run Process" action failed with an error message when the Process
contained a variable of type DataRow that didn't contain any value at the moment
when the "Run Process" action was executed.

Modified: In the "Exception Handling" tab of the action properties' dialog, the selected
action is now displayed in white text for better readability.

Corrected: The "Wait for Window" action in some cases failed to wait for a window if
configured to wait for the "Lose Focus" event.

Corrected: The WinAutomation icon in the system tray remained visible after a restart
and until the WinAutomation Console window opened, even when set to not visible.

Version 3.1.4
Corrected: In some cases, while a Process had completed its execution, the
notification window remained open and in the WinAutomation Console the Process
continued to appear as running.

Version 3.1.3
Corrected: Under certain circumstance an error occurred when opening the properties
dialog of the "Delete Files" action.

© 2018 Softomotive
Version 3.1.2
Corrected: A syntax error with the message "Division by zero" occurred in expressions
that included a division, regardless of the value of the operands.

Version 3.1.1
Corrected: When a copy/paste operation was followed by an undo/redo sequence in
some cases an extra action would be added in the Process.

Corrected: The text value returned by the "Download from Web" action is now stripped
from all non-printable characters.

Corrected: In certain cases a "Cannot Unload Domain" exception would occur when
stopping a running Process.

Modified: The Numeric data type now holds larger values with more precision.

Version 3.1.0
Added: Support for add-ons - external action packs.

Added: The "Write Text to File" action has an additional property for specifying the
encoding used for the text to be written into the file.

Added: The "Download from Web" action has a new "Encoding" property for specifying
the encoding used for the web page. If the value is set to "Auto-detect" the action
uses the encoding specified by the web server.

Added: The "Download from Web" action has a default value for the "User Agent"
property.

Added: In Process Designer, a "Start from Here" menu item has been added in the
Context Menu (right click menu) allowing the user to start the execution of a Process
from a specific action.

Added: Toolbar buttons and menu items in Process Designer are now disabled when a
process is executing through the Debugger.

Added: While debugging the "Execute Next Action" button can be pressed with a
hotkey. The designated hotkey can be specified in the Process Designer Options
dialog.

Added: While debugging the Process scrolls automatically so that the currently
executing action is always visible.
WinAutomation 57

Modified: The File Monitor Trigger variable %FileTriggerFilePath% now contains a file
object instead of text making easier to retrieve info regarding the file that triggered
the Process.

Modified: The Dialog box displayed by the "Display Select From List Dialog" action is
now resizable to facilitate the selection of long list items.

Corrected: The "Send Mouse Click" action presses the correct mouse button when the
functions of the left and right mouse buttons have been swapped.

Modified: The "Get Special Folder" action now contains a label that displays the path
for the selected special folder.

Added: In the "Action Properties" dialog the F1 key is now used for opening the help
topic for the specific action.

Added: The "Wait for Window" action can now wait for a window to get the focus (to
become the foreground window) or lose the focus.

Added: The "If Window" action can now determine whether a specific window is
focused (is the foreground window) or not.

Added: The "If Service" action can now determine whether a specific service is
installed on the computer or not.

Added: New Action: "Get Foreground Window" action retrieves the title and handle of
the Window that has the focus.

Added: New Action: "Generate Random Number" action, to get a random number or a
list of random numbers.

Added: New Action: "Shuffle List" action, to randomly permute the items of a list.

Added: In the "Parse Text" action there is now an option to perform case-insensitive
matching

Corrected: In certain cases, some actions issued a "Reference not set to an instance
of an object" error when run through the debugger.

Modified: If a Process runs for more than 24 hours, now the Notification dialog also
displays the total days in the running time field.

Added: New Action: "Get Mouse Position" action, to retrieve the position of the mouse
cursor on the screen.

Added: The actions "Move Mouse" and "Send Mouse Click" now accept variables for
mouse coordinates and the new mouse position can be relative to the current mouse
position.

© 2018 Softomotive
Added: New Action: "Terminate Process" action, to immediately stop a running
process.

Added: New Action: "Ping" action, for sending a ping message to a remote computer.

Added: The "Sort List" action can now sort a list of objects, through specific properties

Corrected: When an IP address was entered in an action's property, depending on the


regional settings of the computer, sometimes it was mistakenly interpreted as a
number.

Added: New Action: "Synchronize FTP Directory" action, to synchronize the contents
of a local and remote directory.

Added: The "Move Mouse to Image" action has now an option to wait if the image is
not initially found as well as an option to send a click after the cursor is moved over
the image.

Added: New Action: "If Image" action, to check whether an image exists or not on the
screen.

Added: The "If" action now includes the following operators: "Starts with", "Does not
start with", "Contains", "Does not contain", "Ends with", "Does not end with" and "Is
Empty". All these new operators (except the last one) work both in case-sensitive and
case-insensitive mode.

Added: The Process Designer can now save the Process automatically upon running
the Process through the debugger. This option can be specified through the Process
Designer Options Dialog.

Corrected: In some cases the Console didn't close successfully, leaving a ghost
process running.

Added: New Action: "Remove Duplicate Items from List" action, to remove multiple
occurrences of the same item in a list.

Added: New Action: "Empty Folder" action, to delete the contents of a folder without
deleting the folder itself.

Modified: The "Get Process's Path" action now retrieves the path (folder plus process
name) of non-compiled Processes too.

Modified: The "Download from Web" action can download a file and keep its original
name as specified by the web server. When this option is selected, only the
destination folder needs to be provided, instead of the full local path.

Added: In the "Replace Text" action there is now an option to perform case-insensitive
matching
WinAutomation 59

Modified: The "Replace With" property of the "Replace Text" action now accepts multi-
line values.

Added: The "Convert Text to DateTime" action has now an option for converting dates
that are represented in a non-standard format.

Corrected: The "Write Text to File" action crashed the designer when an extremely
long text was entered as the value to be written into the file.

Added: The "Clear Logs" dialog allows you to archive the events into a different file
before deleting them.

Corrected: In Windows Vista/7 for the event log to be cleared the Console should run
with elevated privileged (as administrator).

Added: In the "Run DOS Command" action a new output property has been added for
retrieving any error messages issued by the command or the console application.

Added: In the "End Process" action a new property has been added for specifying the
Exit Code for Processes that are compiled.

Modified: In the "Exception Handling" tab of an action's properties dialog, exceptions


that are handled (have some behavior assigned) are displayed in bold.

Corrected: When two or more Process designers were open simultaneously the same
Undo history was shared between the different designers.

Added: Support for persistent variables that keep their value between subsequent
executions of the same Process. For compiled Processes, persistent variables are
stored into a satellite file and can be encrypted.

Added: A Welcome window is displayed when launching the WinAutomation console,


that contains video tutorials and educational material.

Added: In the Options window there is an additional option that sets the application to
remember the size and layout of the Console and Process Designer windows.

Corrected: In the "Rename Files" action, when renaming a file and specifying as a new
name the name it already had, and the "Overwrite" selection was chosen, the file was
deleted.

Modified: In the "Run Process" action the list of Processes to choose from, now
appears sorted.

© 2018 Softomotive
Version 3.0.3
Corrected: When deleting an action sometimes the window didn't refresh properly.

Corrected: An error occurred in the "Run Process" action if the Process had already
launched an Excel instance

Corrected: The "Unzip files" action would not unzip files that their names started or
ended with a dot (.)

Corrected: In rare cases the Notification Window was displayed below other windows.
In other cases it could steal the keyboard focus from the foreground window.

Corrected: The "Find Common List Items" action returned the first list instead of the
intersection of the two provided lists

Corrected: The "Capture" function in the "Move Mouse to Image" and "Wait for Image"
actions produced an error if an empty region was selected

Added: A message box is displayed to inform the user after an attempt to export a
Process that contains illegal characters in its name.

Corrected: The "Rename File(s)" action in the Designer did not display correctly the
"Add DateTime before/after" property value in the designer.

Version 3.0.2
Corrected: Processes performance deteriorated when variables contained large amount
of data.

Corrected: SendKeys action failed to send correctly the characters ~, %, ^, (, ), +,


[ and ].

Corrected: Exception occurred in very large Processes (more than 3000 actions).

Corrected: In some cases, a process would stop when the user pressed Enter because
the "Stop Process" in the notification window had the focus by default.

Version 3.0.1
Corrected: Schedule Trigger's "Monthly" option is now working as intended.

Corrected: Subtract Lists action bug corrected.

Added: Minimum Delay Between Keystrokes (Send Keys action) is now 0


WinAutomation 61

Corrected: A known issue with "Send Keys" action where in rare cases duplicate
keystrokes were sent.

Added: Send Keys now works in remote desktop

Added: Send Keys now works in Console Window

Added: Multiple repetitive keystrokes can be sent in the format {X:n}

Corrected: "Delete FTP Directory" action now deletes directories even when they are
not empty (recursively)

Corrected: A normal exception thrown by the "Unzip Files" action could result in an
unhandled exception

Corrected: When "Display Big Icons" setting was selected in Process Designer the icons
failed to display properly.

Corrected: "Open FTP Connection" could fail if the agent was launched before the
service. It has now been fixed.

© 2018 Softomotive
2. Getting Started
Getting Started 63

2 Getting Started
2.1 Create a simple Process - Part 1
We'll start with an overly simple example. In fact, it will be useless as it is not
automatic, nor is it faster than just doing the process manually - you'll write a two-
step Process that will create a Folder named TestFolder on drive C: and then tell you
that it did that. You want it easy to start, so you'll also set up a Trigger so that it will
run when you enter a Hotkey. This Process is an introductory statement; it is easier to
do without WinAutomation, but it will demonstrate how to get started and use some
key features.

Now you know what you want to do and you know that the Actions can do this easily.
A flowchart would look like: Create Folder and name it TestFolder; put up a message to
show it's done. So step one is to create the Process. Click on New Process:

and type in "Create New Folder" for the name of the new process. Click on the
"Process Designer" icon to open the new Process in the Designer Window and start
building it.

© 2018 Softomotive
Now to write the actual Process in two steps. First, open the Action category of
Folders and drag the Action Create Folder and drop it to the Action Sequence. You
could also double-click on the Action Create Folder.
Getting Started 65

This opens the Create Folder property Window, and we enter a location ( C:\ ) and a
name ( "TestFolder" ) in the fields.

You won't need to store the Folder for later, so ignore the Action output for now. Hit
OK and the properties Window closes.

For the second step, open the Action category of Message Boxes and Drag and Drop
the Action Display Message.

© 2018 Softomotive
In that property Window, enter a Title ( "My First Process" ) and a Message ( "Folder
"TestFolder" has been created!" ) and then close the box.
Getting Started 67

Your Process Designer Window should look like this:

© 2018 Softomotive
And done! Run the Process from the Process Designer Window to make sure everything
works as expected. The windows change as the Process runs, and then a Message Box
appears with, "Folder "TestFolder" has been created!". There is also a new folder at C:
\TestFolder, so the Process is now complete.
Getting Started 69

Close the Process Designer Window and save the Process. Congratulations - you have
created your first Process!

2.2 Create a simple Process - Part 2


One of the most powerful features of WinAutomation is its use of Variables to carry
information from one Action to another. This allows you to get information and then
use it in later steps, copying data and using it, moving it, or incorporating it into other
Actions. Now you will create a Folder as in the first example. This time, the name of
the folder will be the time and date that it was created. This Process has practical
applications: as you can create unique folders, differentiated by time - perhaps to
organize pictures. To do this, you will need four steps: get the current time; change it
from a time value to text, so it can be used as a name; create the folder with this
name; and then put up a message that the Process is finished.

First, of course, create, name, and open the new Process. The first Action is to Get
Current DateTime under the category DateTime Actions.

Once we've Dragged and Dropped this Action, we want to retrieve the information to a
Variable called "%CurrentDateTime%". This allows us to access the information later in
the Process.

© 2018 Softomotive
As you'll learn in Data Types, a DateTime value is not text, although it be used as
such. But since a DateTime can be represented in many ways, to get it in the format
that you prefer you'll have to convert the DateTime value to text with Convert
DateTime to Text, under the category Text Actions.
Getting Started 71

In the Convert DateTime to Text property box, you will select the Variable you created
in the last Action, "%CurrentDateTime%". For the Format to Use, choose Custom and
look at how DateTimes are expressed: yyyy-MM-dd gives four digits for the year, two
for the month, and two for the day - experiment here to see how different formats
look - time is often hh:mm:ss). In this case enter yyyyMMdd-hhmmss to create a
sortable representation of the current date and time

© 2018 Softomotive
The output will be "%FormattedDateTime%" - now as text.

The final two Actions are the same as Example 1. You will Create a Folder with name
"%FormattedDateTime%", and store the output to "%NewFolder%" and then Display a
Message with a title, "New Folder Created" and the message,

"Folder:

%NewFolder%

has been created!"


Getting Started 73

Now, your Process Designer Window should look like this:

© 2018 Softomotive
Again, run the Process to test it, and see that things work the way they should. If
everything works well, exit and save the Process.

2.3 Create a simple Process - Part 3


Next, it is easy to add a Trigger or a Schedule. WinAutomation supports many different
kinds of Triggers and Schedules and this will allow the Process to be run automatically,
for example when you enter a Hotkey, or, with Ping Trigger, whenever you are offline,
or at specific times. Today you'll set up the two most common ones - at a certain time
(Schedule) and at the touch of a Hotkey (Trigger). Make sure you have the
WinAutomation Console open, and have a finished Process - the "Create New Folder
with DateTime" you created in Part 2 is good.

Click on the Triggers Tab and select "New". Form the Available Triggers select "Hotkey
Monitor Trigger" and select the hotkey you want, on the window that will popup:
Getting Started 75

The next dialog that open "Assign Process to Trigger" lists all the Processes that you
have created. You can choose the Process that you want to attach the trigger to.

© 2018 Softomotive
The newly created Trigger is now listed in the Triggers main pane.
Getting Started 77

Now try it out. When you press Ctrl+B, the Process will run, you will get a folder with
the current date and time as the name and a Message that it was created. Press
Ctrl+B again and you will get another folder with a different time, if only by a few
seconds.

Apart from the Triggers you also have the option to attache a Schedule to a your
Process. For this, you would have to click on the "Scheduler" tab, click on "New" select
the "Schedule".

© 2018 Softomotive
Enter a Custom Description and then choose a frequency and time to run the Process,
for example Daily at 3 p.m.
Getting Started 79

Decide whether you want the Process to run immediately or be skipped for the day if
the Process is delayed (for example the computer wasn't on) and choose an expiration
date if you want one. We'll accept the default on both of these. Again the "Assign
Process to Schedule" dialog will appear to select the Process to which the Schedule
will be attached.

Now you have a Trigger and a Schedule attached to your Process. This way the
Process will run automatically every day at 3:00pm OR when you press Control+B.

© 2018 Softomotive
3. Using WinAutomation
Using WinAutomation 81

3 Using WinAutomation
3.1 The Console
The Console is the first Window you see when you start up WinAutomation. From here,
you will access all other parts of the software. This is where you perform most of your
tasks other than building or editing a Process.

The 7 parts of the window are:

© 2018 Softomotive
1 - Processes Tab 83

2 - Triggers Tab 95

3 - Scheduler Tab 110

4 - Logs Tab 115

5 - Options Tab 120

6 - Folders Pane: In this pane you are able to view your Processes folders structure.

7 - Processes Pane: In this pane you can see all the Processes that are saved in a
specific folder. You can click on a folder in the Processes' Folder pane and all its Processes
will be listed in the Process's pane.

3.1.1 Processs
In the Processes Tab in the WinAutomation console you will find all the options to
manage your Processes, explained in detail in the topics below.
Using WinAutomation 83

3.1.1.1 Processs Tab


The Processes Tab has four menu groups and two panes as follows:

1. Create:
In the Create group you can create a New Process 85 , create a new folder 84 to save your
Processes in, Import/Export a Process 87 a Process in/out the console.

2. Edit:
In the Edit group you can Edit a Process in the Process Designer by clicking on the "Process
Designer" option, view its Properties 138 , delete a Process, Select all Processes in the folder
that you are currently in, Rename/Cut/Copy/Paste a Process and Enable or Disable 91 it.

3. Execution:
In the Execution group you can Execute-Run-Start 89 a Process from the Console and Stop
it at any time before its completion.

4. Find (Available with the Professional and Professional Plus Editions. N/A to
the Basic Edition):
In the Find 92 group you can search for your Processes in your Processes folder structure
simply by entering some text which is contained in a Process name.

© 2018 Softomotive
5. Compiler (Available with the Professional and Professional Plus Editions. N/A
to the Basic Edition):
With the Professional edition you are able to create stand alone executable files 148 that
can run on any machine. We will talk more about executable files in a bit.

6. The Processes Folders List pane:


In this pane you are able to view your saved Processes folders structure.

7. The Processes List pane:


In this pane you can see all the Processes that are saved in a specific folder. You can click
on a folder in the Processes' Folder pane and all its Processes will be listed in the Process's
pane.
The Columns in the Processes List pane can be rearranged should you click and drag them
according to your desirable display.

3.1.1.2 Create a new Folder


You can create a new folder in the Console by the "Create" menu group in the
Processes tab, after clicking "New Folder", or by right clicking on the folders pane and
selecting "New Folder". This creates a new folder that is waiting for you to rename it, if
you wish to do so.
Using WinAutomation 85

The new folder will be created as a subfolder, under the folder which is selected in the
Folders List. It will always be a subfolder of whatever folder you have selected on the
left screen. Therefore you cannot create another folder at the same level as 'My
Processes', as you cannot select a higher folder to place the new one in.

You can also drag and drop a folders into another folder in the Folders' list pane.

Of course, you cannot have two folders with the same name under the same folder.

3.1.1.3 Create a new Process


You can create a new Process by pressing Ctrl+N or by clicking on the New Process
button on the Processes tab. This will open the "Create New Process" Dialog,
prompting for a name for the new Process.

© 2018 Softomotive
After setting the Process's name you have three options.

You can either open:

1. the Process Designer and start building your Process by dragging and dropping
actions in the workspace,

2. you can jump to the Macro Recorder to record your mouse clicks and
keystrokes or smart record any Desktop activity and then go back to the Process
Designer, or

3. finally, you can open the Web Recorder and start navigating in a browser
window where all your web activities will be recorded and converted into actions when
you finish the recording and return to the Process Designer.
Using WinAutomation 87

Note that you can always enter the Process Designer and access the Recording tools
(Macro Recorder and Web Recorder) from within the Process Designer's window. The
tools are available in the Process Designer's toolbar and under the "Tools" menu.

To re-edit a Process later, double-click on it, or select it and click on the "Process
Designer" button on the Processes tab or right click on the Process and select Edit
Process.

3.1.1.4 Move Processs/Folders


The Folders List and Processes List panes both use 'drag and drop', so moving folders
and Processes is easy.

Simply select the folder you want to move and drop it in the destination folder, in the
Folders' List pane. If you want to move a Process, click on it in the Processes List
pane and drag it to the proper folder.

You can always cut (or copy) the process and paste it in the folder you wish.

3.1.1.5 Import/Export a Process


WinAutomation stores all Processes in a database. Therefore, there are no obvious
Process files to copy or move. To copy a Process onto another computer that has
WinAutomation installed, export the Process - this will create a file with the extension
.waj.

© 2018 Softomotive
This file may be moved to another computer with WinAutomation and then imported
into its database. Now the new computer will also have a copy of the Process. This is
done through Import Process and Export Process on the Processes tab.

Import a Process:
To import a Process within your WinAutomation Console, please do launch the
WinAutomation Console, and from the Processes tab in the Create menu, please do
select the "Import Rob" option. Having done so, a dialog will appear and prompt you to
select the Process's file you wish to import (*.waj)

Once the file has been selected and you have press the "Open" button the dialog
window will close and within the WinAutomation Console, in the Processes panel you
shall see the Process you selected to import.

Export Process:
To export a Process, locate the Process you wish to export and from the Processes
List pane and select the "Export Process" option in the Create menu group. Having
done so, a dialog will appear and prompt you to select the folder where the Process
should be exported to.
Using WinAutomation 89

Once the folder has been selected and you press the "OK" button in the dialog, the
dialog window will close and within the folder you selected a new file will be created
named after the Process's name and with a *.waj extension.

3.1.1.6 Run/Stop a Process


You can start a Process manually by clicking on the Start Process Icon, clicking Start,
by right-clicking on the Process and choosing Run Process, or through the use of
Triggers. The Process you want to start must be highlighted. If no Process is

highlighted, the Start " " and Stop " " options are not available.

If you start a Process that is already running, by default you will start another
Instance of that Process. If you do not wish a Process to be able to run multiple
instances concurrently, you can specify that through the Concurrency Policy 146 tab
(available in the Professional and Professional Plus editions only) of the Process
Properties Dialog for that Process.

You can stop a running Process by clicking on the Stop Icon in the Processes tab, or
by right-clicking on the Process and choosing Stop Process.

You can also stop one instance of a running Process by clicking on the Stop Processes
link found on the Notification Popup Window 90 , though this will close only that
instance of the Process.

© 2018 Softomotive
Finally, you can close all running Processes simultaneously by entering Ctrl+Alt+T. This
HotKey is a predefined Trigger that is especially useful if WinAutomation is controlling
your mouse so you can't click on anything, a "panic button," so to speak. You can
change this combination in the "Options > Settings > General" tab.

3.1.1.7 The Notification Popup Window


The Notification Popup Window is the small window that opens in the bottom right
corner of the screen while a Process is running (and for a short time thereafter) from
the WinAutomation Console, a Schedule or with a Trigger. It will not be displayed when
you run a Process from within the Process Designer, as this is considered debugging,
not running.

The Notification Window displays the status of the Process (Running or Completed),
which Action is currently being executed, the total running time and a small link which
says "Stop Process" (and stops that instance of this Process only).

You can also display custom messages through the Notification Window, using the
Display Notification Action 459 under Message Boxes. This is a great way to write
messages to the user without pausing the Process for a standard Message Box. Enter
the text (and/or Variable value) you want to display. As you go through the Process,
you can change the message with further use of the Display Notification Action and
using an empty message will remove the message you had previously displayed.

Additional Notification Windows will pop-up above the previous one, so if you run
several Processes simultaneously, the Windows will form a column.

Although the Notification Popup Windows provides you with information about the
Processes currently running, if they are distracting, you can disable this feature
through the Options tab > Settngs > General 140 as shown in the picture below:
Using WinAutomation 91

You can close any open Window at any time by clicking on the red ( ) button on the
top right corner of the Window. This will hide only the Notification Window, while the
Process instance continues to run. To stop the Process itself, click on the "Stop
Process" link in the Notification Window.

3.1.1.8 Enable/Disable a Process


Enabled, the default setting, means a Process can run. If you Disable a Process, it
cannot be run, neither manually nor by a Trigger. This is useful for making sure that a
Process that is not supposed to run, for any reason, will not start accidentally. You
can however edit a disabled Process and run it through the debugger.

You can enable or disable a Process by selecting it and choosing Enable Process or
Disable Process on the Processes Tab.

If you disable a Process, the text will appear in a lighter, grayed-out color:

© 2018 Softomotive
Enabled & Disabled Processes

3.1.1.9 Find Process


(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

Using the Find option, you can search for a process by its name and select it within all
the folders of your database.

You can double click on a process or a folder to find it in the Console.


Using WinAutomation 93

Find Process Window

3.1.2 Triggers
3.1.2.1 What Triggers Are
Triggers, help you to run a WinAutomation Process automatically without your
interference. For example, if you want something to happen when a system is down,
when a file is created, when a service is starting/stopping or when you press a key
combination, this is the way to set it up. Triggers work whenever they are set to,
even if there is no user logged onto the computer at that time.

For Triggers (and Schedules) 109 to work, the WinAutomation Services must be running
in the background, constantly checking and starting Processes if a Trigger is set off.
As long as they are running, WinAutomation Triggers will function normally. If you

© 2018 Softomotive
right-click on the Agent in the System Tray 327 and choose Exit WinAutomation, you
will disable all Triggers and close all functionality of WinAutomation until you run the
program again. This is different from the Console, so Triggers will still function normally
if the Console has been closed.

Triggers can be disabled universally from the Triggers tab 95 after selecting "Select All"
and "Disable Triggers". This means that no Triggers will fire, until you change this
setting.

If you want to disable the Triggers for one Process without deleting them, right-click
on the Process and choose Disable Process. Now this Process will not run, manually or
through Triggers, until you Enable the Process again

3.1.2.2 Trigger Variables


All Processes have several built-in Variables that are filled in based on what Triggered
them. All Triggers will populate %TriggerName% with the name of the Trigger that fired
it. If a Process runs manually (whether or not it has Triggers attached), the contents
of this Variable will be an empty text.

For example a Process Trigger will populate %TriggerName%,


%ProcessTriggerProcessName%, and %ProcessTriggerEventType% with the name of
the Trigger that fired the Process (a Process Trigger), the name of the Process and
the Event that fired it (Launched or Terminated). These Variables will be filled in the
beginning of the Process, so you can access them throughout the Process to notify
the user.

You can find all Trigger Variables and their descriptions through Tools -> Variables
Manager in the Process Designer Window.
Using WinAutomation 95

Trigger Variables

3.1.2.3 Triggers Tab


In the Triggers tab in the WinAutomation console you are able to assign Triggers to
Processes.

You can assign a Trigger to a Process 96 by clicking on the "New" option in the Create
menu group.

In the Edit menu group you can:

© 2018 Softomotive
Edit the trigger of a Process: Select the trigger that you want to edit from the
Triggers list in the pane below, click on edit and modify the Trigger.

Reassign a Trigger to a Process: Select a trigger from the Trigger list pane and then
click on the "Reassign" option. This will pop-up a dialog, so that you will choose the
Process on which you want to reassign the Trigger.

Copy/Paste/Delete Trigger: Select a trigger from the Trigger list pane and
copy/paste it. Once you select the paste option the "Assign Trigger to Process
Window" will pop-up, prompting you to select the Process to which you want to Paste
the Trigger to. To Delete a Trigger simply select it from the Triggers list pane and click
on the delete option.

Select All: This options allows you to select all the triggers in the Trigger list pane.

Go to Process: Clicking on this option, after selecting a Trigger from the Trigger list
pane, you get you directly to the Processes tab highlighting the Process.

Collapse All Groups: It will collapse the details of all the Trigger groups in the Trigger
list pane.

Enable/Disable Trigger: Click on a Trigger in the Trigger list pane and choose
whether you want to Enable or Disable it. By Disabling a Trigger it will no longer fire the
Process until you Enable it again. You can also disable a Trigger for a Process if you
right click on it and select "Disable Process".

In the Trigger list pane you can see the type of the Triggers, the Description, The
Process name that they are assigned to and they are Enabled or not.

3.1.2.4 How to set a Trigger for a Process


Triggers are attached to a Process outside of the Action steps. This means that
Triggers are not a part of the the Process Designer, but they can only be set through
the WinAutomation Console.

To create a Trigger and attach it to an existing Process, click on the "Triggers" tab
and in the Create menu group select "New". In the menu that pops up will have to
choose the type of the Trigger that you want to attach to a Process.
Using WinAutomation 97

All the Trigger Types are described in detail in the "Trigger Types" topic:

· Email Monitor Trigger 98

· Event Log Monitor Trigger 101

· File Monitor Trigger 103

· Idle Monitor Trigger 105

· Hotkey Trigger 104

· Ping Trigger 106

· Service Monitor Trigger 107

· Process Monitor Trigger 108

After selecting and configuring the Trigger you wish, a Dialog pops up where you are
prompted to select the Process to which you will attach the trigger.

© 2018 Softomotive
3.1.2.5 Trigger Types
3.1.2.5,1 Email Monitor Trigger
(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

The Email Monitor Trigger periodically checks an email account and executes a Process
when an email that satisfies the specified criteria arrives.
Using WinAutomation 99

Custom Description
Add a custom description to the trigger which will be shown in the Triggers tab under
"Description"

Check Email Every


In the trigger's configuration dialog you specify how often the trigger should check for
new emails. The default value is every 5 minutes.

© 2018 Softomotive
Email Account Settings
For WinAutomation, to monitor the email messages on an email server (as also to
retrieve and process them), it must be able to access the server through the IMAP
protocol. For more information you may check the corresponding session at the
Retrieve Emails 645 action.

Therefore, in order set a Email Monitor Trigger, it is necessary that you enter the IMAP
Server Connection properties, consisting of:

· the IMAP Server property, where you enter the IMAP Server address (e.g.
imap.gmail.com).
· the Port, where you specify the communication port, with the most commonly
used Server Port for IMAP being 993. However some IMAP Servers may require to
specify different Port in order to perform properly.
· whether SSL should be enabled, so that communication with the client could be
performed over a secure connection (as required by some email servers),
· User Name, where you enter the username of the e-mail account you want to
access
· Password, where you enter your email account’s password

Check for Emails Where...


In the next group of fields, you need to specify the values of the email properties that
will fire the trigger. Leaving all the fields of this group empty will cause the trigger to
fire and the Process will be executed for every email that arrives into the mailbox.

In order to restrict the type emails that will fire the trigger you should enter specific
values in the appropriate fields defining that you want to check:

· all emails or only for unread (Retrieve property field)


· for emails that end up into a specific folder (Mailbox Folder is: property field)
· for emails coming from a specific sender (“From” Field Contains: property field)
· for emails being addressed to a specific recipient (“To” Field Contains: property field)
· for emails that contains specific keywords in the subject (Subject Contains: property
field)
· for emails that contains specific keywords in the body (Body Contains: property field)

Of course you may enter your preferences for more than one of the above properties
and combine trigger firing criteria.

Note that the Email Monitor Trigger will only check for the specified email types and
not retrieve them from the email server (where they will consequently remain marked
as “unread”).

So, if in the Process that is executed by the trigger you need to process the email(s)
that caused the Process to run, you should use the Retrieve Emails 645 and the Process
Emails 654 actions.
Using WinAutomation 101

3.1.2.5,2 Event Log Monitor Trigger


(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

The Windows Event Log is a Log that many programs write to when they start, stop,
and/or fail. If you wish to monitor your Windows Event Log for some action, this is how
you do it.

Custom Description:
A custom description that you want to set for this Trigger.

Event Log Name - Event Type - Event ID - Event Source:

You will be able to choose which Log you want to watch, and what type of Event to
watch for (Information, Error, Warning, Audit Success, Audit Failure, or all of them).

You can also choose the Event ID (an ID associated to a specific event) or the Event
Source (a name chosen by the application, not necessarily its executable name - you
will have to look through the Logs to find this possibly).

Event Message must (Not) contain:


Finally you can set the Trigger to fire only for events that contain a specific text
within their message or alternatively to ignore events that contain a specific text.

© 2018 Softomotive
The Event Log Monitor Trigger, when fired, assigns values to five Trigger Variables that
are made available to the Process:

%EventTriggerEventLogName% which will contain the name of the Log where the
event was created,

%EventTriggerEventID% which will contain the Event ID of the event that was
created,

%EventTriggerEventType% which will contain the type of the event that was
created,

%EventTriggerEventSource% which will contain the source of the event that was
created, and

%EventTriggerEventMessage% which will contain the message of the event that


was created.

As you can have as many Triggers as you want attached to the same Process, this
would allow you to know which Event fired the Process. You can access this
information through Actions using those Variables.
Using WinAutomation 103

3.1.2.5,3 File Monitor Trigger


This Trigger monitors files in a Folder (and subfolders, if chosen), and fires if a file is
created, modified, changed, or deleted within the folder(s). Specify the event(s) to
look for, and file types you wish to include or exclude. With wildcards, this allows
monitoring of a folder to see if any folder of the type .doc is created, for example, or
any file other than an executable file is changed.

The File Monitor Trigger, when fired, assigns values to four Trigger Variables that are
made available to the Process:

%FileTriggerFileName% which will contain the name of the file that fired the
Trigger,

%FileTriggerOldFileName% which will contain the original name of the file if it has
been renamed,

%FileTriggerFilePath% which will contain the complete path (along with the
filename) of the file. Note that this value is a File object meaning that has the

© 2018 Softomotive
properties 290 of every file object. For example you can retrieve the size of the file that
triggered the Process by specifying: %FileTriggerFilePath.Size%

and

%FileTriggerEventType% which will contain 'Created' or 'Changed', 'Deleted' or


'Renamed'.

You can create Actions in the Process to show this information, for example you can
create a Process Trigger that fires when an executable file in the Windows directory
(with subfolders) is changed, and the Process then puts up a Message Box informing
you of what happened.

NOTE:File Monitor Trigger doesn't support monitoring shared folders by mapped


directories. You need to use paths such as "\\someserver.com\some\path"

The proper method for monitoring such shares, is not to mount them locally on your
computer and monitor them using the folder-paths you've assigned to them, but
monitoring them directly with paths such as the one shown above.

Also you have to make sure that the WinAutomation.MachineAgent is running with the
user's credentials who has access to the monitored folders.

3.1.2.5,4 Hotkey Trigger


With a Hotkey Trigger, you can cause your Process to fire when you type, for example,
Ctrl-Shift-Y, or any other combination you want. As with any other Trigger, this only
works when you have the WinAutomation Service running.

One HotKey can fire multiple Processes. This means that you could set up three
different Processes, all with the HotKey Alt-F7, and at a press of the HotKey, all three
would fire together and run at the same time.
Using WinAutomation 105

On a related note, if you use a HotKey from another program there could be some
interaction. WinAutomation usually notes HotKeys first, and marks them as satisfied.
So, for example, if you set Ctrl-C to be a HotKey, then you can no longer use
Window's Copy HotKey function - Ctrl-C will fire the Process and be satisfied, so
Windows won't see it. Other programs could have varying interaction, depending on
how they were written, so be ready to change a HotKey if you find your computer
responding different than you anticipated.

3.1.2.5,5 Idle Monitor Trigger


This Trigger fires once the computer has had no input for a set amount of time that
you choose in minutes, hours, or seconds. This can be useful for resource-intensive
Processes that you only want to run when you are not using the computer, for
example.

© 2018 Softomotive
This Trigger will not fire if no user is logged in.

3.1.2.5,6 Ping Trigger


(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

This Trigger will 'Ping' a host (usually an IP address or a URL) at the interval you set. If
the host does not respond within the timeout you set, this registers as a failed Ping
attempt, and Triggers the Process.

Once the host fails to respond and Triggers the Process, subsequent failures will not
fire the Process again until a Ping attempt is successful. Thus, for example, if the host
responds 5 times, then fails 3 times, then responds once and fails again, this Trigger
will fire after the 6th attempt (first failure) and after the 10th attempt (first failure
after a new success).
Using WinAutomation 107

The Ping Trigger, when fired, assigns values to a Trigger Variable that is made available
to the Process:

%PingTriggerHostName%, which will be filled with the name of the host that failed
to respond.

As you can have as many Triggers as you want attached to the same Process, this
would allow you to know which Ping Trigger fired the Process, and thus which host
went down. You can access this information through Actions using this Variable.

3.1.2.5,7 Service Monitor Trigger


(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

The Service Monitor Trigger fires when the state of a specific Windows Service
changes. Enter or choose a Service that exists on your computer, and select for it to
Trigger when that Service starts, pauses, or terminates.

© 2018 Softomotive
The Service Trigger, when fired, assigns values to two Trigger Variables that are made
available to the Process:

%ServiceTriggerServiceName%, which will be filled with the name of the Service


that Triggered the Process, and

%ServiceTriggerServiceState%, which will contain 'Running', 'Paused', or 'Stopped'.

As you can have as many Triggers as you want attached to the same Process, this
would allow you to know which Service Trigger fired the Process, and why.

3.1.2.5,8 Process Monitor Trigger


(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

This Trigger monitors a certain process and fires when this process starts or
terminates. Enter or choose a Process that exists on your computer, and select for it
to Trigger when that Process starts or terminates.
Using WinAutomation 109

The Process Trigger, when fired, assigns values to two Trigger Variables that are made
available to the Process:

%ProcessTriggerProcessName%, which will be filled with the name of the Process


that Triggered the Process, and

%ProcessTriggerEventType%, which will contain either 'Launched' or 'Terminated'.

As you can have as many Triggers as you want attached to the same Process, this
would allow you to know which Process Trigger fired the Process, and why. You can
access this information through Actions using those Variables.

3.1.3 Scheduler
(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

A Schedule can be set for a Process, in order to run it at specific days/times or keep it
running in time intervals using a recurring Schedule.

For Schedules to work, the WinAutomation Services must be running in the


background, constantly checking and starting Processes if a Schedule is set.

If you right-click on the Agent in the System Tray 327 and choose Exit WinAutomation,
you will disable all Triggers and Schedules and close all functionality of WinAutomation

© 2018 Softomotive
until you run the program again. This is different from the Console, so Schedules will
still run normally if the Console alone has been closed.

Schedules, like Triggers, can be disabled universally from the Schedulers tab after
selecting "Select All" and "Disable Schedule(s)". This means that no Process will run on
its Schedule, until you change this setting. If you want to disable the Schedule for one
Process without deleting it, right-click on the Process and choose Disable Process.
Now this Process will not run, manually or on its Schedule, until you Enable it again.

3.1.3.1 Scheduler Tab


(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

In the Scheduler tab you can run Processes on a Schedule using the "Schedule" and
the "Recurring Schedule".

If you click on "New" in the Create group, you can choose which Schedule to assign to
a Process.

Once you have assigned a Schedule to a Process, then you are able from the "Edit"
menu group to:
Using WinAutomation 111

The Edit menu group is the same as in the Triggers tab 95

1. "Edit" the schedule, should you wish to change its properties.

2. "Reassign" the schedule to a different Process.

3. Copy, Paste, Delete the selected schedule.

4. "Select All" schedules.

5. "Go to Process" will get you to the Processes tab highlighting the selected Process.

6. "Collapse All Groups". It will collapse the "Recurring Schedule" and "Schedule" groups.

7. Select the Schedule (or Schedules if you hold down the ctrl button while clicking on
the them) that you wish to Disable or Enable.

The main pane will show the Schedule type the description of the Schedule which is
your the Custom Description that you have typed once you have set the Schedule,
the Process Name, and whether the Schedule is Enabled or not.

3.1.3.2 Schedule
(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

Attaching a Schedule allows you to set times for the Process to run.

© 2018 Softomotive
Custom Description:

A custom description that you want to set for this schedule.

Schedule Type:

Once you are on the Schedule Properties, you can choose to have the Process fire
Daily, Weekly, Monthly, or on Specific Dates. Each choice brings up several other
choices, and those must be fully filled in to work. The last Working Day of Month is the
last weekday, as a computer doesn't know the local holidays.

If Process is late:

The next choice is what to do if Process is Late. You can choose to have the Process
run immediately (usually on start-up, and this is a good way to have a Process fire
once at the beginning of each day or whenever your computer is turned on), or to skip
that firing of the Process.

Schedule Expires on:

Finally, if you choose to have the Schedule Expire, after the date and time you enter
the Schedule will still be there, but will not fire a Process when the Schedule comes
up.
Using WinAutomation 113

If a Schedule is attached to a Process then the date/time for the next run of the
Process is displayed in the Next Scheduled Run column in the WinAutomation console
on the Processes Tab.

© 2018 Softomotive
3.1.3.3 Recurring Schedule
(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

A Recurring Schedule repeats at the given frequency. Once you have set this
schedule, the Process will fire after that interval, so if you set a Recurring Schedule for
10 minutes, for example, it will fire for the first time 10 minutes after this schedule is
set, and every 10 minutes after that until you change it.

If a Recurring Schedule is attached to a Process then the date/time for the next run of
the Process is displayed in the Next Scheduled Run column in the WinAutomation
Console in the Processes Tab.

3.1.4 Logs
3.1.4.1 Logging in WinAutomation
In WinAutomation, all the Processes that run through the Console are logged into a
central log file for review ("C:\ProgramData\Softomotive\WinAutomation\Logs.dat" ). This
way, you can look at the history of any or all Processes.

If a Process is run through the Process Designer, WinAutomation considers it


debugging, not a run, so the event is not recorded into the Log database. When you
run the Process through the Console or due to a Trigger or Schedule, the Process will
be logged!

To view the Logs for a Process you can either right click on it and select "Show Logs
for Process(s)" or hit Ctrl+L, or you can select it in the Select Processes pane in the
Using WinAutomation 115

Logs tab. When you want to see older Logs, or more details, simply set the options as
per the Logs Tab 115 description.

If WinAutomation itself encounters an error or bug, it is also logged into the log
database as an "Internal Exception". Open the Logs Window and review the error Log.
If you don't know what to do, WinAutomation tech support can use this information to
aid you quickly and efficiently.

The Archive Option in the Logs Tab opens another Window that allows you to archive
the log older than a specific date and save them in a .dat file in a location that you will
choose. Choose the date prior to which you wish to archive the logs and press OK.

A Process can record a custom log entry through the "Log Message 753 " action. These
events are recorded both when the process runs through the Console and the Process
Designer

3.1.4.2 Logs Tab


The Logs Tab has three main group of options:

1. Event Types (Available with the Professional and Professional Plus Editions.
N/A to the Basic Edition):

From Event types group you can choose if you want to display the "Info" and/or the
"Warning" and/or the "Error" messages for the selected Processes.

Error: Happen mostly when a Process fails to run successfully and produces an error.
Warnings: Are expected problems like trying to run a Process that has known errors.

© 2018 Softomotive
Info: Lets you know when a Process run and completed or when a Trigger or Schedule
is fired.

2. Date Range (Available with the Professional and Professional Plus Editions.
N/A to the Basic Edition):

The Date Range option allows you to select the dates whose logs interests you, for
the selected Process(s).

3. Maintenance.
The Archive option, opens another Window that allows you to archive logs older than a
specific date and save them in a .dat file, in a location that you will choose. Having
done so, those logs will be deleted from the "Logs.dat" file. Choose the date prior
to which you wish to archive the logs and press OK.
Using WinAutomation 117

In the Details pane you can see:

4. The error message that was thrown

5. The Additional details of the error

Once you have specified all Types and the Date Range, the Processes that match your
filter will be listed. This information will include the Type, the Source, a Message and a
Date-Time.
Selecting a Message will display the Details of that Log event. Most Info or Warning
events will only repeat the Message here, as there is no more useful information. In
the event of an Error, the Additional Details box will contain all appropriate information
to help solve the problem. As this area is highly technical, use this information if you
need to contact Technical Support.

3.1.4.3 Filtering Log Messages


(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

If you want to limit the log messages for preview, you can use the Event Type group
menu to select the type of the event you wish to display (Info, Warning or Error).

You can also select the Date or Date Range from which you want to retrieve the Event
Types, as also described in the Logs Tab 115 .

You can select the Process(s) for which you want to see the logs in the select
Processes pane by checking the corresponding checkbox(es).

© 2018 Softomotive
3.1.4.4 Viewing Log Messages for Process
(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

You can view the Logs of a specific Process by right-clicking on the Process, and
selecting Show Logs For Process(s). This will take you to the Logs menu Tab, with the
Filters for today and the selected Process are already chosen for you. Thus, this is a
short-cut to a filtered Log search for the Process you chose.
Using WinAutomation 119

Show Logs for Process

© 2018 Softomotive
3.1.4.5 Clear Logs
(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

If you want to delete older events and keep in the Logs only the recent and relevant
events you may do so through the "Archive" option in the "Maintenance" group of the
Logs tab.

The Archive option opens another Window that allows you to archive logs older than a
specific date and save them in a .dat file, in a location that you will choose. Having
done so, those Logs will be deleted from the "Logs.dat" file. Choose the date prior
to which you wish to archive the logs and press OK.

This dialog allows you to delete all events that have been logged within a specific date
range.

It also gives you the option to archive the events before deleting them. To do so, you
need to check the "Archive Events before delete" checkbox and specify a file path in
the following textbox. This way a file will be created that will contain all the events
that have been deleted from the main WinAutomation log.

3.1.5 Options
WinAutomation Options are accessed by clicking on the Option Tab in the console
Menu.

The Options tab includes four tabs.

1. Settings 121

2. License 129

3. Error Handling 147

4. Addons 134
Using WinAutomation 121

3.1.5.1 Settings Tab


In the Options > Settings tab you may configure all the settings that have to do with
your WinAutomation installation.., and more. More specifically you may find 5 sub-tabs:

1. General 121

2. Processes File 122

3. Exe 123

4. FTP 124

5. Authentication 126

3.1.5.1,1 General Settings


The first Tab on the Settings, is the General tab from which you can set, about
Notifications:

(1) If you want to display the WinAutomation Icon in your System Tray 327 or not and

(2) if you want to display the Notification Popup Window 90 .

(3) Also, you can set your own Hotkey to stop all running Processes from the keyboard
with a combination of Keys.

Lastly on the Miscellaneous options you can decide:

(4) If the Triggers and Schedules are be enabled or not, for ALL your Processes,

(5) if you want the console to remember the Windows Size and Layout every time you
re-open a window and

(6) if you want to start the WinAutomation Service automatically on system Startup.

You should bear in mind that if you uncheck option (6), WinAutomation Service will not
start on system startup, which means that your Triggers and Schedules will not work,
unless you launch the WinAutomation Console, or start the WinAutomation service
manually from the Windows "Services".

© 2018 Softomotive
Options>Settings>General

3.1.5.1,2 Processes File Settings


Processes are stored collectively in one database file (Processes.dat), which by
default is stored in a specific location. This location is:
"C:\Users\...your username goes here...\Documents\WinAutomation\Processes.dat"

In the "Processes File" tab in the Settings, you have the option to target the database
that your WinAutomation console will retrieve the Processes from. You are free to
change it at anytime if you want to work between more than one databases at
different times.

Right below you will find three three operations that concern your Processes Database:

1. Compact Database: By clicking on this option you are able to compact the
Processes Database and reduce its size. It is a good practice to do so every now and
then in order to clear the database from unnecessary data and keep its size relatively
small.

2. Backup Database: By clicking on this option you are able to create a copy of your
Processes Database to another location. WinAutomation does not 'protect' its
Using WinAutomation 123

database folder, so this can also be accomplished by going to the WinAutomation


database directory and copying the file to another location in Windows Explorer.

**** It is strongly suggested that you Backup your Processes.dat frequently to


avoid any unfortunate situations likes loosing all the processes that you have
developed. ****

3. Restore Database: By clicking on this option you overwrite the WinAutomation


Processes database with a database that you select. This should always be a
WinAutomation Processes database (Processes.dat), preferably one you have created
as a backup recently. You can also do this by copying and pasting files in Windows
Explorer as the folder is not protected.

Options>Settings>Processes File

3.1.5.1,3 Exe Settings


(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

The next tab is the "Exe" tab. This is where you can enter the compilation ID from your
acquired Tokens that will be used upon EXE compilation.

For more information about compilation Ids and for Exe creation, please, refer to the
topic about Tokens 153 and Compiled Processes 148

© 2018 Softomotive
Options > Settings > Exe

3.1.5.1,4 FTP Settings


In this tab you can select the files types that will be treated as ASCII, when using the
FTP related actions that include the "Transfer Type" input Option.

When working with FTP, downloaded and uploaded files always come as ASCII or
binary. Here, you can select which files will be transferred as ASCII - the rest will
default to binary. Just enter the file extension you wish to add and click Add File Type,
or Remove any File Type you don't wish to have on the list.

When downloading or uploading files (using the Download File(s) from FTP 630 and
Upload File(s) to FTP 633 actions) you can specify the transfer type to be ASCII,
BINARY or AUTO. If you select AUTO, WinAutomation will use this list to determine
whether the file will be transferred in ASCII or binary mode.

This list is also used by the Download Folder(s) from FTP 631 and Upload Folder(s) to
FTP 634 actions for deciding how to transfer the files contained into the folders.
Using WinAutomation 125

Options > Settings > FTP

© 2018 Softomotive
3.1.5.1,5 Authentication Settings
(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

In the Login Password field you may enter your password which unlocks your account.
In order to do so you have two options.

1. The first one is to enter the password directly by typing it. Note that the password
should be the password that the current user is using to login to his Windows
account. The user is retrieve by default and cannot be changed, as it is the user
that has opened the WinAutomation Console.

Options>Settings>Authentication
Passing the password manually

2. The second option is for WinAutomation to retrieve the password, upon Autologin,
through a command line output whose output will be the password to be used.
Using WinAutomation 127

Options>Settings>Authentication
Passing the password through a command line

Note: In order to run Processes in non-interactive mode and they include


WebAutomation or Excel related actions, then in order for them to run with no issue,
you would have to follow the screenshots below:

Open the "Local Group Policy Editor" by typing "gpedit.msc" in the Run window. In that
window select "Log on as a batch job" from the tree as shown in the screenshot
below, and add the user who is running WinAutomation:

© 2018 Softomotive
Using WinAutomation 129

3.1.5.2 License Tab


In the License Tab you can view your License info. It shows all the details of your
registered license.

Options > License

Entering your WinAutomation License:


Depending on whether the machine is equipped with an active internet connection or
not, entering your License key has as follows:

(i) Machine is connected to the internet

You can enter a License key in your WinAutomation console by clicking on the "Enter
License Key" button (in case you are trialing WinAutomation) or the "Change License
Key" (if you want to enter a different License Key).

Enter your license key to the relative field and press the "OK" button as shown below.

© 2018 Softomotive
Entering your License Key

(ii) Machine is NOT connected to the internet:

Click on the Enter License Key option and the window "WinAutomation Licensing Server
Unreachable-Install License Manually" will popup.

Click on the "Copy link" button and paste it on an internet browser on a machine that
is connected to the Internet. Having done so, copy the License string that the page
will provide to you; paste it in the relative field of the WinAutomation licensing window
and hit "OK".
Using WinAutomation 131

Offline License key

Congratulations, WinAutomation is now successfully licensed!

Unassigning a License key from your WinAutomation console, in order to use it


on another machine:
There are two ways to Unassign a License key.

- You can either deregister a machine from its license key from the WinAutomation
console by navigating to Options > License > Deregister Machine, as shown in the
screenshot above,

-Or login to the User Area using the email under which your purchase was made and
click on the "Unassign license" option.

© 2018 Softomotive
3.1.5.3 Error Handling Tab
(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

In the Error Handling Tab you will see two sub-tabs. The Behavior and the the
Email/SMTP:

3.1.5.3,1 Behaviour
If a Process fails to execute successfully, you can specify what will happen in the
"Options > Error Handling > Behaviour" tab. You can choose one of the following:

1. Send an email, possibly with multiple recipients (separated by semi-colons), with


details set in the SMTP Server tab. This email will have the Process Name the date
and the time that it failed, the error message and the machine name that it was
running on

Email structure upon Error

2. Run another Process from your Processes Database.

3. Write (append) to a text file that you specify. The Event will be written at the end,
so you can keep a running log of Process failures.

4. Record to the Windows Applications Event Log. You can view the Windows Event
Logs through Control Panel -> Administrative Tools -> Event Viewer.

5. Add a Screenshot of the monitor(s) at the exact time that the exception occurred.
The screenshot will be visible in the Logs Tab and you will be able to open it with a
simple click.
Using WinAutomation 133

Options > Error Handling > Behaviour

In any case, the execution of any Process along with the result of the execution will
always be recorder into the WinAutomation Log 115 .

3.1.5.3,2 Email/SMTP Tab


The second sub-tab is the Email/SMTP one. This can be useful depending on your
settings for Error Handling tab 132 . If you check the option "Send Email" on the
Behaviour Tab upon an unsuccessful execution of a Process, you will need to enter the
details here.

Username, password might be needed and you must specify the Server and the Port.

© 2018 Softomotive
Options > Error Handling > Email/SMTP

3.1.5.4 Addons Tab


(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

You can open the WinAutomation Add-on Manager through "Options > Ad-dons" tab in the
console.
Using WinAutomation 135

Options > Addons

In the central pane you will see the Ad-dons that are installed.

1. "Browse All Available Add-ons" .If you select to “Browse All Available Add-ons”, a new
browser window will open and you will be redirected to the “Add-ons” section of the
WinAutomation.com website. There you can search the collection of Add-ons that are
available and download the ones that you need

2. "Uninstall Add-ons". You can uninstall any Add-on that you no longer need, just by
selecting it in the list of installed add-ons and clicking on the “Uninstall Selected Add-on”
button. Note here that when you uninstall an add-on, any Processes that contain actions from
that add-on will not work anymore. This does not apply to compiled Processes that are
independent but only to Processes that run within WinAutomation.

3. "Install New Add-ons". After you have downloaded an Add-on, you can install it by pressing
the “Install new Add-on” button and selecting the .wao file that you downloaded.

3.1.6 Processes Status Monitor


3.1.6.1 Status Monitor Window
The Status Monitor Window can be accessed by right clicking on the WinAutomation
icon in the system tray, as per the previous topic OR by clicking on "(details)" at the
bottom of the Console.

© 2018 Softomotive
WinAutomation in the System Tray

or...

Clicking on the "Show Status Monitor" the Status Monitor Window will appear.
Using WinAutomation 137

In this window you will find the following information:

· All the running Processes will be listed. You can expand each running Process to
display more information for it like Instance id, Start Time, Cause of running (manual
or trigger invocation).

© 2018 Softomotive
· Next to the Processes name you will see how many instances are currently running
and how many are Queued.

· At the left bottom of the window the overall number of Running Processes and
Queued Processes will be shown.

Form the Status Monitor Window you will be able to Stop all Running Processes or click
on a Process (or on more than one Processes, holding the Ctrl key down) and force
them to Stop running.

3.2 Process Properties


You can open the Process Properties Dialog for a certain Process:
Using WinAutomation 139

· by clicking on the Properties button on the Processes tab in the Edit group menu
or
· by right-clicking on the Process and choosing Edit Process Properties.

This brings up the Process Properties Dialog, on the first tab - General 140 .

© 2018 Softomotive
3.2.1 General

The first tab in the Processes Properties is the "General" tab.

Process Properties > General

1. Description: Enter a description and notes, which is mostly used for


documentation purposes. If you need to remember something about the Process, or
tell someone else about it, write it here.

2. Automatic Logging: Check this option if you wish to log the execution of every
single action that the process is executing. In this case you will have all the actions
history from a single

3. Use a Secure Screen (Available with the Professional and Professional Plus
Editions. N/A to the Basic Edition): If you check this option, the screen will turn
Using WinAutomation 141

blue upon running the Process and no one will be able to see what the Process
does. The only visible window will be the Notification Window.

Using the secure screen when running a Process

4. Encrypted & Password protected (Available with the Professional and


Professional Plus Editions. N/A to the Basic Edition): You have the option to set
a password for a Process. If you do so, you will be able to Run the Process
normally, however for editing the Process you will need to enter the password.

To remove the password from a Process, you should again navigate to its properties
and uncheck the "Encrypted & Password Protected" option, at which point you will be
prompted to enter the password again to complete the procedure.

ATTENTION: The password will not be stored and it cannot be retrieved, therefore, DO
remember it, otherwise you will not be able to edit the Process in the future.

© 2018 Softomotive
Processes Properties [Encrypt process with password]

5. Max allowed running time (Available with the Professional and Professional
Plus Editions. N/A to the Basic Edition): A maximum running time (in minutes) can
be set in this option, in order to stop the Process after that time has passed. This
helps you stop Processes that you are certain they should not run after a
predefined period of time.
Using WinAutomation 143

© 2018 Softomotive
3.2.2 Run Policy

The second tab in the Processes Properties is the "Run Policy" tab (Available with the
Professional and Professional Plus Editions. N/A to the Basic Edition).

Process Properties > Run Policy

1. What should the Process do if you are logged in on the machine but the
workstation is locked.

· "Unlock&Start Process": WinAutomation will unlock the workstation using the


Password that you have entered in the "Options > Settings > Authentication" 126 tab.

· "Start Process Without Unlocking": The Robt will start without unlocking the
workstation, however, note that no interactive action can run in this case.
Using WinAutomation 145

Interactive means that the Process interacts with input/output system (the desktop).
So if a Process has keystrokes, mouse movement, or shows up on the screen, it is
interactive and needs to run as the logged-in user and not in a locked workstation.
Copying/creating/renaming/deleting files, ftp, sending email, etc. is not interactive and
can run even if the workstation is locked.

· "Don't Start Process" : The Process will not start at all if the workstation is locked.

1. If you are not logged in:

· "Login and start Process": WinAutomation will log you in using the Password that you
have entered in the "Options > Settings > Authentication" 126 tab and start the
Process.

· "Start Process in Non-Interactive Mode": The Process will start but in Non-
Interactive Mode. Interactive actions will not be able to run in this case and the
Process will fail, if it contains any.

· "Don't Start Process": The Process will not start at all.

3. If the physical screen of the workstation is not available:

· "Start Process in Non-Interactive Mode": The Process will start, but in Non-
Interactive Mode. Interactive actions will not be able to run in this case and the
Process will fail if it contains any.

· "Don't Start Process": The Process will not start at all.

After the completion of the Process you can check the option to restore workstation
to the Logged out/Locked state it was initially.

© 2018 Softomotive
3.2.3 Concurrency Policy

The third tab in the Processes Properties is the "Concurrency Policy" tab (Available
with the Professional and Professional Plus Editions. N/A to the Basic Edition),
where you can:

1. Limit the number or Process instances that can run at the same time and set the
maximum instances number.

2. Choose what should happen if the limit is reached.

3. Set the minutes for an Process instance to wait before being rejected.

Process Properties > Concurrency Policy


Using WinAutomation 147

3.2.4 Error Handling


(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

You can choose to use the same default policies you set in Options Tab -> Error
Handling in the Process Designer, or select new ones for this specific Process here. If
you wish to choose a new specific policy for this Process, choose from the following
which will replace the Error Handling Tab 132 general settings:

1. Send an email, possibly with multiple recipients (separated by semi-colons), with


details set in the Email/SMTP tab of the Option tab 133 .

2. Run another Process from the list.

3. Write (append) to a text file that you specify. The Event will be written at the end,
so you can keep a running log of Process failures.

4. Record the event to the Windows Applications Event Log. You can view the
Windows Event Logs through Control Panel -> Administration -> View Event Log.

5. Add Screenshots to Logs: At the moment when the error will occur, select if you
wish to take a screenshot of your monitor(s) and add it in the logs

© 2018 Softomotive
Process Properties > Error Handling

3.3 Generate EXE


3.3.1 What is a compiled Process
A WinAutomation Process is a representation of a task that instructs WinAutomation
what actions need to be performed for the task to complete. It is not an independent
entity and in order to execute a Process you need to have WinAutomation installed on
your computer.

However the Professional Edition of WinAutomation features a Process Compiler that


allows you to convert a Process into a stand alone executable application. This way
you can build your own applications, distribute them and run them on other Windows
machines.
Using WinAutomation 149

To compile a Process, highlight it, and click the Generate EXE button on the
Processes tab in the Compiler menu.

3.3.2 Compiler Window


(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

Once you click on the "Generate Exe" option in the Processes Tab 83 the Compile
Process dialog will appear:

This dialog contains a tab control on the left that allows you to navigate through its
four sections.

Section 1: Name & Type

In the first section (Name & Type) you may specify the name of the resulting
executable file as well as the folder under which it will be stored. By default the name
will be the name of the Process and will be generated on the user's desktop.

Next you may specify whether you want to generate a Windows application or a
command line application. The latter is mostly used for converting a Process into a

© 2018 Softomotive
command line tool and the most important difference is that in command line
applications the "Display Notification 459 " action will write its text in the command line
output window.

Section 2: Process Info

In this section you can specify the name of your company, the version and a copyright
notice. This info will be embedded into the generated application for documentation
purposes only, meaning that they will not affect in any way the actual behavior of the
Process.

You can also specify a custom icon for your application, which must be in the format
of an ICO file. If you leave this field empty, the default WinAutomation icon will be
used.
Using WinAutomation 151

Section 3: Error Handling

In this section you can specify the behavior of the application if an error (unhandled
exception) occurs. The available option depends on whether you have chosen to
create a Windows Application or a Command Line Application (see section 1). In the
former case you may choose whether you want a pop-up dialog to appear containing
the error, while in the latter case (command line application) you may choose whether
you want the error message to be written in the command line output window.

Note that a compiled Process that ends with an error will always return an Exit Code =
1. This is useful if you intend to run the generated application from another application
or a batch file, in which case the caller application (or batch file) will be able to tell
whether the compiled Process completed its execution successfully or not.

© 2018 Softomotive
Section 4: Misc Options

In this section you may specify some additional settings for the application you are
about to generate.

The first option is whether you want your Process to run as a single instance. By
selecting this option, while a Process is running it will not start again on the same
computer even if you double click on it. This way you can make sure that only one
instance of the Process is running on your computer at any time.

The second option is whether you want your application to display the Notification
window 90 on the bottom right corner of the screen, just like a Process running from
within WinAutomation would do.

The third option "Display In Task Bar" option allow you to select whether you want the
Process to display its own icon in the Windows taskbar while running, or not.

Note that the three options described above are available only to Processes that are
compiled as Windows Applications (see section 1).

The fourth option (available to any kind of compiled Process) is whether you want to
encrypt the persistent variables or not. For more info on this one please check the
page on Persistent Variables 293 .
Using WinAutomation 153

The last option, is whether you want the user to fill in an activation code in order to
run the executable.

3.3.3 Compiled Processs and Triggers/Schedules


If a Process has Triggers or a Schedule attached to it and is compiled, they will not be
included in the generated executable file.

The reason for this is that, for a Trigger/Schedule to function properly, there must be
an application constantly running to check when the condition specified by the
Trigger/Schedule is met. In WinAutomation this application is the WinAutomation
UserAgent.

However, a compiled Process is independent and totally detached from the


WinAutomation Service.

This means that while the compiled Process is not running there is no possible way to
check whether a condition is met and whether a Trigger/Schedule should fire or not.

In order to schedule a compiled executable from WinAutomation you can always make
use of the Windows Task Scheduler.

3.3.4 Tokens
Compiling your Processes so that to be executed on other machines is a very important
feature of WinAutomation.

Commencing from WinAutomation version 7, you are able to control the way you
distribute your executables by adding licenses.

There are two ways with which you may license your compiled Processes. For these
four ways, you can purchase run-time tokens through our User Area.

In the screen-shot below you can see the purchased tokens and their status. Clicking
the "Add Tokens" button, you can purchase new tokens.

© 2018 Softomotive
After each purchase of tokens, you are being provided with a Compilation ID which
should be filled in the respective field of WinAutomation Console > Options > Setting >
Exe tab.

In case the target machine has already WinAutomation 8 installed running under a valid
license, there will be no tokens consumed for that particular execution.

· Per Machine

Using the Per Machine method to generate your compiled Processes, you have the
ability to run as many compiled Processes as you wish on one machine consuming only
one token as long as it has been exported through the same developer's
WinAutomation.

· Per Machine with an activation code

Using the Per Machine method to generate your compiled Processes, you have the
ability to run as many compiled Processes as you wish on one machine consuming only
one token as long as it has been exported through the same developer's
WinAutomation. However, the process requires an activation code provided from the
developer in order to be executed. In case the activation code is erroneous, no tokens
are being consumed and the process execution does not start. This activation code is
requested only the first time a process from this developer is being executed.

NOTES:

· In case WinAutomation 8 is installed on a machine running a compiled executable, it


is very important to make sure that the “WinAutomation Service” is running so that
no token is being consumed.

· In case a user re-installs Windows on his machine, it is being identified as a new


machine. As a result, a new executable would have been consumed.

· An executable compiled without a Compilation ID, will only run on a machine with
WinAutomation 8 installed and the service running.
Using WinAutomation 155

· In case a process re-compiles after a change or edit, there will be no second token
consumed. Please note, that copying a process or saving a process as, creates a
new process in which case a second run, would consume one more token. The same
applies when one exports and imports a process in a database.

3.3.4.1 Get Tokens


From WinAutomation version 7 and on, with the Professional and the Professional Plus
editions, you are able to license your compiled executables. You can do so, using
Tokens.

Tokens can be purchased through WinAutomation’s website User Area


[http://www.winautomation.com/userarea/], by selecting the “Purchase Runtime
Tokens” option.

Once you do so, you will see that the available Tokens for purchasing are:

• Per machine

© 2018 Softomotive
• Per machine with activation code

When you purchase a Token -of any kind of the above-, then in your User Area in
“Your Runtime Tokens” section, you will be provided with a Compilation Id. You will also
be able to view the type of the Token and information about the Total Tokens
purchased, the Used and the Remaining ones.

3.3.4.2 What is the Compilation ID?


In WinAutomation console in the "Options > Settings > Exe" tab, you can find the
“Compilation Id” field. Here you can paste the Compilation Id, in order to generate
executables with the Token that corresponds to this Id.
Using WinAutomation 157

Once you have filled the Compilation Id field, then you can go to the Process you wish
to compile and hit the “Generate exe” option from the console’s menu in the
“Processes” tab.

Note that no Token will be consumed from the compilation at this point; the Token will
be consumed only when attempted to run on the target machine for the first time, as
described below.

3.3.4.3 What is the activation code and how can I set it?
There are two kind of Tokens on which the developer can attach an activation code. If
you have purchased “Per machine with Activation code” Tokens, then in the User Area
you will see an option “Manage Activation codes”. If you click on this option, you will
be able to create new activation codes.

© 2018 Softomotive
Here, you can set the Quantity and an optional desired prefix. The quantity can be
less or equal to the total Tokens quantity that you have available for the time being.
You can generate codes for all the Tokens that you currently have, or for any number
of them. After setting the quantity you are able to set an optional case sensitive
prefix. Click on “Generate Codes” and a list of codes will automatically be generated for
you.

Every time you are compiling a process using a Token with an activation code, then
the first time that the executable will run on a machine, it will prompt the user to enter
the activation code before starting the execution. Once the code is correctly passed
in the popup window, then you will see in the User Area that this code’s status will be
“Used”, the code will be striked out and one Token will be consumed.

3.3.4.4 Why should I use the activation code?


In case that your end-user decides to move an executable on another machine, then
another Token from the developer’s basket will be consumed. This may lead to
situations, where a user can inadvertently or on purpose “charge” the developer with
Tokens while distributing the executable without the developer’s permission.

The activation code is only known to the developer. Therefore, he will be the one
passing it on the first execution of the .exe. If the same exe is moved on another
machine, it will not run unless the activation code is correct.

The above being the case, the developer’s work is protected from accidental or
malicious usage.
Using WinAutomation 159

3.3.4.5 How Tokens are being consumed?


A Token WILL NOT BE CONSUMED when:

1. The machine on which the executable is about to run has WinAutomation installed
AND the WinAutomation Server service is up and running.

2. In the “C:\Users\...yourusername…
\AppData\Local\Softomotive\WinAutomation\Licenses” folder there is already a file
created that has already licensed the executable.

A Token WILL BE CONSUMED if:

1. WinAutomation is not installed on the machine

2. WinAutomation is installed on the machine but the WinAutomation Server service is


down (not running)

3. There is no file in the “C:\Users\...yourusername…


\AppData\Local\Softomotive\WinAutomation\Licenses” folder that can license this
executable.

3.3.4.6 Available Tokens


Per Machine – Description

Using the Per Machine method to generate compiled Processes provides the ability to
run unlimited number of compiled Processes on one machine by consuming only one
Token, as long as it has been exported through the same Compilation ID. The "Per
Machine" Token is only assigned to a machine ID. Hence, if the machine ID changes,
another Token needs to be consumed.

1. Enter the “Per Machine” Compilation Id, found in the User Area, in the “Options >
Settings > Exe” Tab of your WinAutomation console.

2. Generate the executable, by selecting the Process and clicking on the “Generate
Exe” option in the Processes Tab.

3. Move them to the desired machine.

4. Run it.

Any executable compiled with the same Compilation Id and executed on the same
machine, will not consume any other Tokens.

Per Machine with Activation code – Description

© 2018 Softomotive
Using the Per Machine method to generate compiled Processes provides the ability to
run unlimited number of compiled Processes on one machine by consuming only one
Token, as long as it has been exported through the same Compilation ID. The "Per
Machine" Token is only assigned to a machine ID. Hence, if the machine ID changes,
another Token needs to be consumed. However, the process requires an activation
code provided by the developer in order to be executed. In case the activation code is
erroneous, no Tokens are being consumed and the process execution does not start.
This activation code is requested only the first time a process from this developer is
being executed.

1. Enter the “Per Machine” Compilation Id, found in the User Area, in the “Options >
Settings > Exe” Tab of your WinAutomation console.

2. Generate the executable, by selecting the Process and clicking on the “Generate
Exe” option in the Processes Tab.

3. Move them to the desired machine.

4. Run it.

5. Enter one of the activation codes that are shown as “Available” in the User Area as
described above.

Any executable compiled with the same Compilation Id and executed on above
machine, will not consume another Token, nor ask for the activation code again upon
running.

3.4 The Process Designer


Once you have named a Process in the WinAutomation Console, this is where you
actually create it. Processes are created by linking together Actions and setting
Variables so the Actions can interact. By setting the order of actions and writing
Variables to carry information from one step to the next, you can create a very
complex path of Actions to automate most tasks you regularly do on your computer.

There are four areas of the Process Designer:

1. the Actions Pane 162 ,

2. the Workspace 162 ,

3. the Functions 183 pane,

4. the Variables 164 pane,

5. the Control Repository Pane 172 ,

6 172 . the Images Repository Pane


Using WinAutomation 161

7. the Errors 172 and

8. the Find Usages pane

The Process Designer

© 2018 Softomotive
3.4.1 The Actions' Pane
In the Actions pane you will find all the Actions that can be chosen to build your
Process, organized in Actions groups in a folder structure.

The Actions Pane of the Process Designer

You can either expand the group of actions in order to select the one you want, or
you can search an action with its name or even part of it in the Search field at the top
of the Actions pane.

You can drag an action to the Workspace or double-click on the Action to move it
automatically there. Either way, this will open the Properties dialog box if the Action
has properties.

3.4.2 The Workspace


This pane shows the flow of the Process, displaying Actions in the order that they will
be executed. Numbers are displayed in the gray column before each Action, as well as
Icons to show errors, and breakpoints. If you are running (debugging) the Process, the
current Action you are on will also be highlighted here.

Breakpoints : You can add a breakpoint by clicking to the left of an Action. A red
dot will show up and the Process will pause on that step until you click to continue.
This can also be used while running a Process from the Process designer to pause while
you look at some part of the Process.

Disabled Actions: Actions can be disabled, so that they are ignored by the Process
but still exist. This is useful for trying different versions of a Process without deleting
Using WinAutomation 163

and re-writing Actions constantly. Disabled Actions become gray to differentiate them
from enabled Actions.

Disabled Action

In the Workspace, Actions, their Icons and their properties are displayed. A Process is
described in text in the Workspace and you can understand a Process just by reading
through the Actions' properties in the Workspace. To change the display of the icons
and text for this Process, click on Tools -> Process Designer Options 196 .

To manipulate the Actions within a Process, treat them like any other icon setup in
Windows. Click on an action to select it, click on Actions with the Ctrl or Shift keys to
select multiples, right-click for the Action menu, and use any of the regular HotKeys to
Copy, Cut, and Paste. To change the order of Actions, Drag and Drop or right-click and
choose to Move Action Up or Move Action Down.

© 2018 Softomotive
The Workspace Pane of the Process Designer Window

3.4.3 The Variables Pane


This pane is located by default next to the Workspace under the Functions pane.
Variables are defined through Actions or the Variables Manager

There are four columns: Pin Option, Name, Type, Value.

The Variables Pane in the Process Designer Window


Using WinAutomation 165

· A Pin option is there to select one or more variables and pin them on top of the
Variables pane.

· Name is the name that was assigned to the Variable in an Action or in the Variables
Manager - Trigger Variables are never displayed here.

· In column three, the Type of Variable is displayed. Variable types can be: Text,
Numerical, DateTime, File, Folder, Data Row, Data Table, Excel Instance, FTP File, or
FTP Folder, as well as a list of the above, among others.
If you use the same Variable name as an output for two or more Actions that create
different Types of Variables, the Variable type will change during the running of the
Process, so WinAutomation cannot determine a constant value, and will show
'<Unknown>' here. If both Actions determine an output Variable with the same type
of value, it will show that type, as there is no ambiguity. For this and other reasons,
we recommend that you use different Variable names for each Action output -
unless, of course, you want to overwrite the previous information.

· Value is the value set when a Variable is created through the Variables Manager
Window and only appear if you created the Variable there with an initial value.
Otherwise the Value will be filled for each variable during the execution of the
Process.

In the variables pane you are able to:

Search for variables by name. In the search field, type the name of the variable you
are searching for.

Pin Variables. You can pin a variable at the top of the display by clicking in the pin
column at the left side of the variables name. Once you pin the variable it will
automatically move to the top of the variables list.

Reorder Variables. Click on a variable to move it up or down and reorder the variables
list. (Of course, pinned variables cannot be moved)

Clear Values: After running the process from the Process Designer the variables
values remain in the Values column for you to see them. Youcan hit the "Clear Values"
button in order to clear them

The actions above can be performed while a Process is being executed or not apart
from the "Clear Values" Option.

© 2018 Softomotive
Search, Pin Variables
Clear Vlaues
Using WinAutomation 167

3.4.4 The Variables Visualizer Window


The Variables visualizer window can be displayed for each of the variables in a Process
upon running it step by step, or pausing it, or if it has paused by a breakpoint.

Double click on a variable in the variables pane and the Variable Window will appear,
with information about the variable's value at this point. You can edit the variable and
change its value on the flow before resuming the execution.

The variable window fields and information will depend on the type of the variable that
you are accessing. Below you will find the different windows that will be displayed for
different variable data types.

Internet browser Instance

© 2018 Softomotive
Text Variable
Using WinAutomation 169

File Variable

© 2018 Softomotive
List Variable

Data table Variable


Using WinAutomation 171

Window Instance Variable

Email Variable

© 2018 Softomotive
Custom Object Variable

3.4.5 The Errors Pane


The Errors pane is combined with the Control Repository, in tabs. In the Process
Designer mode, errors are shown here.

The Errors information is split to three columns: Function, Action, Error

Function: The Function Name that contains the action which threw the error.

Action: The Action number in the Function which threw the error.

Error: The error message.


Using WinAutomation 173

Inner Exception: The Inner Exception of the error

Each Error is also displayed before the corresponding action.

The Errors Pane of the Process Designer Window

© 2018 Softomotive
The Properties Dialog of an action that has a Design-Time error

There are two kinds of errors: Design Time and Run Time errors:

Design Time Errors which are also called configuration errors, are visible in the
configuration of the Action or Process and hold the Process from running.

Run Time Errors, or Exceptions are not obvious errors in the design but come up
when you run the Process. Run Time Errors will cause the Process to fail unless you
plan for it in the Exception Handling Tab of most Actions.

For example, you create a Copy File Action. If you leave the File to Copy field blank,
that is a problem with the configuration and immediately shows up as a Design Time
Error. If you put in a path and the file does not exist when you run the Process, that is
a Run Time Error.
Using WinAutomation 175

3.4.6 The Controls Repository pane


The Control Repository is by default placed in the bottom center part of the Process
Designer.

It will hold all the controls from UI/Windows and Web Automation actions. All the
elements that your Process will access (buttons, elements, items, text fields,
checkboxes, radio buttons, windows etc... ) will be stored in the Control Repository.
Upon creating a new Process the Repository will, of course, be empty.

The Control Repository

To add controls, you should use UI/Windows or Web Automation actions or click on the
"Add Control" button.

The Control Repository pane, has the "Remove Unused Controls" button as well, with
which the process identifies if there is an unused control and deletes it.

In the topics Building a WebAutomation Process 239 and UI Automation > UI Elements -
Select Controls 223 , you will find a detailed explanation about how to add/manage
controls and edit their UI or CSS Selectors.

In some cases, there is need for more than one selectors to capture one element. The
element, is firstly being identified through the top selector. In case it fails, the second
selector tries to capture it. You can use the up and down arrows, in order to reorder
the selectors within the control.

© 2018 Softomotive
Reordering the controls

In some web applications, despite the fact that simple html and css is being used, some
particular actions cannot be captured using the web helpers. In such cases where you can
develop your own CSS selectors, you can add an empty root control by clicking on the arrow
next to "Add Control" or using the combination of "Ctrl + Shift + R".

Adding an empty root control

Likewise, you can right click on a parent selector, and select to "Add Empty Child Control" or
use the combination of "Ctrl + Shift + C" in order to use your custom made CSS selectors.

Adding an empty child control


Using WinAutomation 177

3.4.7 The Search for Tex window


"Search for text" is a very handy interface you can easily invoke through the Process
Designer's Toolbar (or by clicking on "Edit > Search" or by hitting Ctrl+F ) in order to
search within the workspace for specific text:

Search Window in the Process Designer

The Search Window allows you to find anything that contain the specified text
potentially across your functions.

1. Text to search: Enter here the text that you are looking for

2. Case Sensitive. Check this box if you want your search to be case sensitive. Un-
check this box if you are looking capitals or small letter do not matter to you

3. Search on: This option allow you to search for the text only in a specific action or
in all your Process

4. The results will be listed in the Search Results Pane. For each Funtion that the text
was found within, you will have an expandable arrow that will list all the
occurances.

© 2018 Softomotive
Search Results pane

You should have in mind that you can easily transition from Search Results to Errors
pane, Images or Control Repository at any time by clicking the appropriate option in
the Tab Menu [d] at the bottom. The pane even informs you on where the hits were
recorded [c] exactly in order to save you time from examining results that might be of
little interest to you.

Another thing that should not go unnoticed is that even if you search for some text
that is part of some longer sentence, the Search Window still will return a hit:
Using WinAutomation 179

3.4.8 Go to Line
The "Go To Line" functionality is very helpful on large Processes. It will help you
navigate to a specific line within your process in a Function. It can be accessed either
by the "Edit > Go To Line" option in the menu bar, or by simply hitting Ctrl + G on your
keyboard.

Go To Line

The Go To Line window will prompt you to enter the Line number that you wish to go
to the Function on which you wish to be transferred. Just hit go and you will be landed
in the action whose number you have entered in the Function of your selection, with
the action being highlighted.

© 2018 Softomotive
Go To Line Window

3.4.9 The Image Repository pane


The Image Repository is by default placed in the bottom center part of the Process
Designer.
It will hold all the images from Image actions. All the images used by your process will
be stored in the Images Repository.
Upon creating a new Process the Repository will, of course, be empty.
Using WinAutomation 181

The Control Repository

There are two ways of adding images in the Image Repository.

1. From within an Image related action should you select the "Capture Image" button.

2. From the "Capture Image" button from the Images Repository directly.

© 2018 Softomotive
Add an Image in the Images Repository

Additionally, the Images Repository pane, has the "Remove Unused Images" button,
with which the process identifies if there is an image not associated with an actions
and deletes it.

It is also equipped with a Sorting capability either by the Name of the Image or by the
Date that it was added (Ascending or Desceding). This sorting capability proves to be
very helpful in large processes where many images have been captured and makes it
much easier to find them.
Using WinAutomation 183

3.4.10 Functions
A function in WinAutomation consists of actions grouped together so they can be
invoked by a function name.

To create a new function, click on the New Function button ( ). Alternatively, you
may also press Ctrl+N. Functions can be created, removed, renamed and have their
tabs re-ordered freely, with the sole exception of Main, from the Functions pane.

To invoke a function, place a Run Function 431 action anywhere in the Process. When
this action is reached, the execution flow will jump to the first action of the invoked
function and continue from there. Sooner or later, the actions of the invoked function
will all be executed or an Exit Function will be reached. At that point, the execution
flow will return at its former position, namely the next action after the invoking Run
Function 431 action.

Functions usually perform a specific task and it is considered a good practice to name
them in a manner indicative of their purpose. A function name is unique, i.e. two
functions cannot share a common name while residing in the same Process.

New Processes, by default, contain only one function, the Main. The Main function is
always called when the Process first executes. Other functions may be called by
means of the Run Function 431 action, by the Exception Handling 322 mechanism of any
action, or as a result of a button press inside a Custom Dialog 456 .

Scope: Variables in a WinAutomation Process are global in the notion that every action
can access any variable of the Process from any function.

Go To 430 statements on the other hand, can jump to labels inside their own function
only.

© 2018 Softomotive
Recursion: A function cannot call itself; It can Exit 431 , Run 431 another function or
exhaust its actions and return automatically.

Some of the benefits of using functions are:

§ Enhanced readability

§ Code re-use without duplication

§ Modular testing capabilities

Note: Processes created with versions of WinAutomation prior to version 5 will have all
their actions moved inside Main when you first edit them.

3.4.11 Managing Functions


Functions work exactly like most Windows applications. You can select an Action by
clicking on it, or multiple Actions using Ctrl or Shift in conjunction with the mouse.
Once you have selected the Action(s), you may delete them using the Delete option;
or cut or copy them using the Edit menu, the Cut and Copy Icons. You may also Drag
them to another part of the Process.

You can click on a function in the Functions pane and move it up or down for
reordering. You can also close them, if you do not want them to be visible in your
workspace. Keep in mind that if you run the Process from the designer then each
Function will be visible the moment that it is executed.
Using WinAutomation 185

When you right click on a Function in the Function's pane, you have 4 options:

1. "New Function", to create a new Function

2. "Delete Function", to Delete the selected function(s)

3. "Rename Function", to give another name to an existing Function

4. "Find Usages" This will give you an extra tab in the bottom pane of the Designer
that will list the Functions and the actions that are using this Function:

© 2018 Softomotive
Funtion's Usages

3.4.12 Adding an Action


You add an Action from the Actions pane to the Workspace pane by double-clicking on
it or dragging it and dropping it where you want. Double-clicking will always place the
Action at the end of the current Process, but can be dragged or moved by highlighting
the Action and clicking on the Up or Down Arrows in the Toolbar.
Using WinAutomation 187

Inserting a new Action into a Process by Drag & Drop

Once you have added the Action, the Action Properties Dialog Box will open
automatically if the Action has any configurable properties. As a counter-example, the
Empty Recycle Bin action has no properties to set, so will just appear in the Workspace
without opening a Properties Dialog Box.

© 2018 Softomotive
3.4.13 Configuring an Action
Adding an Action to the Workspace will automatically open the Action Properties Dialog
box if there are any properties to be determined. If you want to open a previously
created Action, double-click on it or right-click on it and click on Action Properties.

Once you have an open Properties Box, you will see Action Inputs and Action
Outputs:

Action Inputs require information from you, to determine what happens - text to be
displayed, a Variable to be used by the Action, a file path or URL and so on.

Action Outputs will only be Variable names so that information generated or collected
by the present Action can be passed on to a later Action.

Please note that the "Action Output" refers to data and is not considered to be a
program run or a Message Box shown - those are effects of the Action, not Output.

To the right of a property field, you will see an " " Icon. This is a ToolTip Help that
you can access by pointing the cursor over it. You may also see a gear icon " ", a file
icon " ", or a folder icon " ". These show where you can browse for a file, a folder,
or a Variable (gear).

If there is an Error generated by one of the properties (a missing file name, improperly
written Variable, etc), there will also be a blinking red Error icon " " the next time this
Using WinAutomation 189

Action Property Dialog Box is opened.

If the Action could cause an Error, you might want to look over the Exception Handling
options (click on the tab at the top) to make sure you like that result.

As an example, we will look at the Display Input Dialog 460 properties. There are four
different Input properties:

1. Input Dialog Title - what you want to show at the top of the Box, for example
"Enter Name"

2. Input Dialog Message - the text or question you want to show in the box, for
example "Hello user, what is your name?"

3. Default Value - do you want to have a default setting, or an example like "<Enter
Name Here>"

4. Input Type - how do you want their input formatted? This is a drop-down menu, so
choose whichever seems most appropriate to the information.

Notice that all of these fields require some information that you currently have - what
you want to write, how you will format, etc. This is Input - from you, now. Notice that
the Action will require input from the user when the Process is running, but that is not
Action Input here - only your choices now are Action Input.

© 2018 Softomotive
Also notice that the Action Output is information stored as Variables. The Output is
determined by the Action as the Process is running and is used as Input in later
Actions - this is the definition in WinAutomation of a Variable: a 'container' used to
carry values from one Action to another.

Choose Variable names that mean something to you, so you can easily remember them
later. Also, read about Variable Types 286 so you are clear with your use later. Once
you have defined Variables through Output, you can browse them using the gear Icon
to use them as input in a later Action. In this case, we stored the text entered by the
user (which is supposed to be its name) in "%UserName%" and the Button pressed
into "%ButtonPressed%".
Using WinAutomation 191

3.4.14 Enable/Disable Actions


You can Disable or Enable Actions by right-clicking on the Action and select "Disable
Action" or "Enable Action".

This allows you to remove an Action from a Process without erasing it and having to
re-type everything if you want to use it again later. During execution, the disabled
actions will simply be ignored as if there were not part of the logic at all.

Often, this will be used to test different versions of a Process to see what works best
and has the desired results. You could also suspend usage of a part of a Process while
something has changed.

© 2018 Softomotive
3.4.15 Organize your Actions with Regions
In order to organize the actions in your Process and make long Processes or Functions
more manageable you can use the Regions feature of the Process Designer.

The Regions feature consists of two actions the "Start Region" and "End Region"
action.

These actions two actions have absolutely NO IMPACT in the behavior of the Process
and their only task is to mark the beginning and the end of a logically separate block of
actions.

An expanded Region within a Process

Each Region (as defined by the two aforementioned actions) may have a name to
describe the block of actions contained within. You can also collapse a region by
clicking on the [-] icon on the left of the "Start Region" action. This way the actions of
Using WinAutomation 193

the region will not be visible, allowing you to review your Process at a higher level of
abstraction.

The same Region in collapsed state

To create a new Region you can click on the "Region" button on the toolbar. If no
action is selected this will insert the "Start Region" and "End Region" actions at the end
of the Process. If one or more actions are selected the "Start Region" action will be
inserted right before the first selected action and the "End Region" will be inserted right
after the last selected action enclosing the selected actions into the newly created
region.

Regions have a different background color than the rest of the Process. The
background color of the regions is customizable and can be changed through the
Process Designer Options 196 dialog.

Regions can also be nested within other regions to represent submodules of your
Process within other modules. In this case the background color of each nested region
becomes automatically a bit darker than the background color of the parent region.

3.4.16 Adding Comments

The yellow sticky-pad button in the Toolbar is used for adding comments. A
comment is a special kind of Action in the Process that is used for documentation and
for adding explanatory notes between the actions.

© 2018 Softomotive
The background color of each comment can be set in different color as a visual clue
for differentiating sections of the Process and giving more emphasis to some comments
that others.

Neither adding nor deleting Comments has any effect on the behavior of the Process.
Using WinAutomation 195

3.4.17 The Variables Manager Window


You may access the Variables Manager through Tools -> Variables Manager while in
the Process Designer. This is where you can find a list of all Variables used in the
Process. If you want to define a new Variable and assign an initial value to it, you can
do it here, by pressing the Add New Variable button.

Keep in mind that an alternative way to declare a new variable is to simply enter a
variable name into an Output property of any Action of the Process. If this variable
name does not refer to an existing variable, a new variable with that name will be
created automatically. A variable created this way can not be edited or deleted
through the Variables Manager Window

Once you open the Variables Manager Window, you will see two tabs - User Defined
Variables (ones you set) and Trigger Variables (predetermined to manage Triggers,
these will be empty unless you use that Trigger to start the Process). The Trigger
Variable tab contains only the names of the Variable and a description. The User
Defined Variables have five columns:

1. Name - the name assigned to the Variable, such as "%UserName%"

2. Defined in Function - The function name where the Action that defined this variable
resides.

3. Action #. The number of the Action (in the Process Designer Window) that defined
this Variable. If it was created in the Variables Manager, this field will be blank.

4. Type - the type of the Variable: text, numerical, DateTime, file, etc. See more
under Data Types 286 .

5. Initial Value - this will be empty unless you assign a value to the Variable by Adding
or Editing it in the Variables Manager.

6. Stored (persistent) value. The value stored if the variable is persistent.

7. Description - this will be empty unless you assign a value to the Variable by Adding
or Editing it in the Variables Manager.

8. Persistent 293 - Yes/No depending on whether the variable is persistent or not.

© 2018 Softomotive
The Variables Manager Window

3.4.18 Process Designer Options


Open the Options by clicking on Tools menu -> Process Designer Options. There are
two tabs here: one for the Designer Options and one for the Debugger Options.

In the first tab you can specify how the actions will be displayed in the Process
Designer. You can choose whether the action icon will be displayed as well as the size
of the icon. You can also specify whether you want to the action name to be
displayed for each action of your Process on top of the action's description.

Additionally, in this tab you can also set a color for the background of the actions that
are contained within a region 192 . Nested regions will get an increasingly darker version
of this color to distinguish themselves from the parent regions they are contained
within.

You have the option to rename a Variable using a Hotkey of your choice.
Using WinAutomation 197

Process Designer Options > Designer tab

The Debugger Option allows you to set a delay time between the execution of each
Action. This is an artificial delay, that is useful if you want to follow the actions
visually as they execute. This delay is taken into account only when you run the
Process through the Designer, when you run a Process through the Console then
the Process runs at full speed.

Process Designer Options > Debugger tab

The second setting is the designated hotkey for performing Step by step execution 201
and Resuming the execution while debugging your Process. The hotkeys specified here
will execute the next action when the Process is paused in the Debugger or Resuming
the execution. This is useful especially for Processes that control the mouse where it is
inconvenient to use the mouse in order to click the "Execute next action" button on
the toolbar.

The last option lets you specify whether you want any modifications of the Process to
be saved automatically every time you run it through the debugger.

© 2018 Softomotive
3.4.19 Process Designer Custom Layout
You have the ability to customize the panes' location in the Process Designer. You can
click and hold on a pane and you can drop it in a location on the cross in order to pin it
in a specific position.

You can also select to View all or less of the panes in the Process Designer, by clicking
on the 'View' menu option and tick/untick the panes that you want to have visible on
your designer.
Using WinAutomation 199

3.5 The Debugger


3.5.1 Run/Stop/Pause a Process from Process Designer
Running a Process in the Process Designer is considered Debugging.

1. You can run a Process by clicking on the Run button .

2. You can execute a Process action by action by clicking on the button next to
"Start" .

3. You can pause a Process while it is running by clicking on the Pause button .

4. You can stop a Process while it is running by clicking on the Stop button .

Start-Pause-Stop a Process

Since Debugging is expected to involve running the program, making a change, running
it again, etc, no Logs are recorded when you run the Process from the Process
Designer. In the Process Designer Window, you can also see error icons to the left of
any Action that has errors " " and therefore cannot be run, and to the right of any
property field in the Action Property Dialog Box " " to help you pinpoint errors to
Debug the Process.

© 2018 Softomotive
If you want to start running the Process from a specific action: You can right-click on
this action and select "Start from Here" on the context menu that will appear. This will
start the debugging from the selected action as if it was the first action of the
Process, ignoring all actions above it. Please note that this may lead to unexpected
results, as the ignored actions will not populate the variables that may be needed by
the executed actions. Keep in mind that you will not be able to start running a Process
from an action within a Loop, as it makes sense that this would not be applicable to
the logic of the script in terms of what we are looping through.

"Start from here" option

3.5.2 Adding Breakpoints


You can add breakpoints to stop the Process at any Action. Simply click in the gray
column to the left of the Action you wish to pause at.

A red dot " " will appear to mark the breakpoint, and the Process will pause at the
beginning of that Action. Pressing the Run button will continue the Process, though if
the breakpoint is in a Loop, it will pause again when the process gets to that Action.
Since there is an Icon to Execute Next Action 201 , you can add a breakpoint at the first
Action of a Process and then use the Execute Next Action button to move through the
Process manually, one Action at a time.
Using WinAutomation 201

Breakpoints are considered, only when you are running the Process through the
Process Designer (debugging). When you run a Process through the Console all
breakpoints set in the Process are totally ignored.

3.5.3 Execute step by step


You can move through a Process one step at a time by clicking Debug -> Execute Next
Action, or by clicking on the Execute Next Action button on the toolbar. This will
start the Process, but pause before the first Action. You can then click Execute Next
Action to move through the Process. By using the Variables Pane 164 , you can watch
the variable values as they change.

Additionally, you can use this button after a Process being stopped by a breakpoint to
execute only the subsequent action instead of pressing the Start button that will
resume the execution of the Process.

Variable inspection during execution:

You can examine a Process at a particular Action step by adding a breakpoint at that
step as mentioned above, or by moving through the Process manually with the Execute
Next Action Icon. Once you have stopped at the Action you want, you can view the
Variables through the Variables Pane 164 of the Process Designer Window.

© 2018 Softomotive
You are able to see what is the last value stored in each variable once the execution
is completed. Also, once the execution pauses on a breakpoint you have the option to
change a variable's value dynamically through the Variables Visualizer Window 167 , set a
different one and resume the execution to see how the script will react to that value.

As a last note, instead of clicking on the button you may as well press the designated
Hotkey. This is especially useful when debugging Processes that control the mouse and
you don't want to use the mouse at the same time to click on the button. The default
key for executing the next action is F9, but you can change this through the Process
Designer Options 196 dialog.

3.5.4 Full Error View


From WinAutomation version and on, when running a Process from the Process
Designer, then the only thing that the user was able to see was the error message.
The Additional details of the error was only available in the Logs, only when running
the Process from the WinAutomation Console.

Now, when a Process throws an exception, then you can go to the Errors pane at the
bottom of the Designer, and double click on the error. Once you do so, the Error
message window will popup. This window will have information about:

1. The Funtion that the error took place

2. The action number in the Function that the Error took place

3. The Error message per se

4. The Inner Exception of the Error


Using WinAutomation 203

5. The additional details of the Error. These details are very helpful when debugging as
they are giving a clear message to the user about why the error happened and
what is it's real cause.

Full Error View through the Designer

3.5.5 Rename a Variable


You have the option to massively Rename a variable in your Process while in the
Process Designer by clicking on Edit > Rename a Variable or by clicking on the Rename
Variables icon " " in the toolbar.

In the window that pops up you can select to rename the variable on in the 'Main'
function and also include disabled actions.

© 2018 Softomotive
3.6 The Macro Recorder
3.6.1 Simulating the activity of a user
A user (like YOU) inputs his/her commands and data through the Mouse and Keyboard.
Through Mouse, Keyboard and UI Automation Actions, WinAutomation can simulate you
(a user). You can create this simulation by choosing Mouse, Keyboard and UI
Automation Actions or by using the Macro Recorder - which will automatically generate
an appropriate set of Actions that mimic your own, recorded activity.

Remember - since you are creating an Interactive Process 328 , WinAutomation cannot
simulate a user (and run the Process) when no users are logged on. Here is where the
AutoLogin feature of the Professional edition comes handy.

3.6.2 Recording vs Building a Process


In addition to building a Process by combining and configuring Actions, you can also
use WinAutomation to simulate a user's activities by controlling the mouse and the
keyboard. When you open the Macro Recorder, it records your activities and creates a
set of Actions out of it, as a Process.

Launch the Macro Recorder and it will record everything you do. When you finish
recording, WinAutomation then converts this to a set of Actions for your Process.
These can be edited and added to later. If you use the Recorder with a Process that
Using WinAutomation 205

already has Actions, it will add the steps above the highlighted Action or at the bottom
if you don't have any highlighted. The Macro Recorder is really just a way to input
Actions in an easier interface than writing them all out would be.

Keep in mind that you can use the Macro Recorder to record the backbone of your
script. Of course there are tasks that will have no issue running, only by recording
them once and not modify any of the actions generated. Still there are cases when
the generated script has to be modified to work as intended. For example you might
need to add a Loop in the script, or there are redundant actions generated that you
should remove. In cases as such we add/remove the appropriate actions from the ones
generated from the Recorder and if any error occurs while executing we identify the
problem or the error and we try to use alternative actions to cope with the situation
and have it run flawlessly.

3.6.3 Starting the Macro Recoder


(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

To start the Macro Recorder when you create a Process, after you name the Process,
choose option 2: Open Macro Recorder and click OK.

© 2018 Softomotive
If you have already created the Process, you can open the Macro Recorder in the
Process Designer Window (that is, inside the Process you wish to edit) by clicking
Tools -> Record Macro or by clicking on the Record Macro button on the toolbar.

3.6.4 Macro Recorder


(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

While you can build a Process in WinAutomation by combining and configuring actions
from the list of ready made actions in Process Designer, you may find it more efficient
to use Macro Recorder to simulate your activities by just controlling the mouse and the
keyboard.

Launch the Macro Recorder and perform the activities you want your Process to
reproduce. Macro Recorder will record everything you do and when you finish recording
it, it will convert this to a set of Actions for your Process. Of course, these can be
edited or added to other actions within the Process Designer.
Using WinAutomation 207

Using the Macro Recorder is a quicker and easier way to define Actions that compose a
Process than manually selecting them and inputting them in the Process Designer.

While in previous versions of WinAutomation, Macro Recorder was using relative


coordinates on the screen (or the active window) to record mouse moves with
WinAutomation 5.0 on, the Macro Recorder by default recognizes the different
elements on the screen (such as buttons, text boxes and other standard
Windows controls) and injects the appropriate UI/Windows actions to build your
Process with.

Starting the Macro Recorder

In order to create your Process using the Macro Recorder, choose option “Macro
Recorder” from the tools of the “Create a Process” window, or (if you are already
within the Process Designer) choose the Macro Recorder button on the toolbar of
Process Designer window (inside the Process you wish to edit) or choose Tools >
Macro Recorder.
Launching the Macro Recorder opens the sidebar where you can preview the recording
while performing your activities.

© 2018 Softomotive
The Macro Recorder can record in two modes: Smart and Coordinate-based.

Smart Recording (Default): The actions produced by this type of recording will click
on elements such as windows, buttons and menu items based on UI selectors rather
than absolute locations. UI selectors are very similar to the CSS Selectors 317 utilized
by Web Automation actions. This type of recording is the recommended one, since it
produces flexible and portable Processes.
Using WinAutomation 209

Coordinate Based: Coordinate based actions will move the mouse to the specific,
absolute recorded locations inside the active window. Consequently, any change in the
absolute positions of the target elements could potentially render the actions
inoperable. Absolute positions depend on screen resolution, operating system and
application settings as well as various other factors. This type of recording is only
recommended for users that face compatibility issues with the default recording
setting.

Each activity you perform will be recorded in the sidebar and once you have completed
the desired sequence of activities and click the “Finish” button, you will be transferred
back to the Process Designer where it will have automatically been translated into a
set of UI Automation actions.

While recording, if you perform an activity unintentionally and you do not want it to be
included in the final sequence of actions, you can move the mouse over the action
that you want to delete in the sidebar and a red " " button will appear in the action's
top right corner, as shown below. By clicking on the button the action will be
removed from the list of recorded actions.

If you want to change parameters of the actions recorded (the actions’ parts you can
edit are displayed in blue) you can do so by clicking them and editing their text.
Note: Changing the description of an Element will not change the actual selector

© 2018 Softomotive
You can also take notes that will make the design of your Process more meaningful for
you and that may be useful if you chose to edit the actions later in the Process
Designer. To do so, you click on the "Insert Comment" button and a comment
action will be appended in the sidebar. Your comments will also be displayed (along
with the corresponding action) in the Process Designer.
Using WinAutomation 211

To discard all the actions you have recorded and restart your recording from scratch,
press the "Reset Recorded Actions" button (which is located next to the “Insert
Comment” button). A message box will appear for you to confirm the delete.

To complete the recording session and return to the Process Designer, click the Finish
button on the sidebar. The recorded Actions will be inserted into the Process Designer
Window within a region named “Region of Autogenerated, UI Automation Actions”

© 2018 Softomotive
Of course you can further edit each of the actions (e.g. use variables as input where
applicable) within the Process Designer.

You may also insert additional Actions to your Process to be performed before or after
the Macro Recorded section Actions, either by manually selecting and configuring them
from the “Actions” pane, or by using once again the Macro Recorder.

3.7 The Custom Dialog Designer


3.7.1 Designing a Custom Dialog

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Dialog vs. Custom Dialog


WinAutomation offers a wide variety of dialog-producing actions, categorized under
"Message Boxes" in the Actions' Pane 162 . Selection dialogs allow you to assign a value
to a variable (be it Text 460 , Date 461 , List Selection 464 , File 468 or Folder 470 ) while the
Process is running. Once the value is entered, the user can either press the "OK" or
the "Cancel" button. This button choice can also be assigned to a variable
(%ButtonPressed%). Simple, default dialogs come in handy when there is only one
Using WinAutomation 213

configurable parameter that needs to be set. For example, it is very common to


include a "Display Select File Dialog 468 " action at the beginning of a Process and use
the value assigned to the %SelectedFile% throughout the remaining actions.

With a Custom Dialog on the other hand, you may configure multiple parameters in a
single action. Custom Dialogs buttons are not limited to "OK"/"Cancel" and can also
invoke Functions 183 , with the Dialog itself optionally persisting throughout the Function
execution. Nearly every aspect of the Custom Dialog and its controls is configurable
including, but not limited to, their general appearance, positioning and displayed text.

Given such flexibility, the "Display Custom Dialog 456 " action will allow you create a fully
featured Graphical User Interface (GUI) for your Process, with the ease of drag and
drop.

The Custom Dialog Designer


When you initially place a "Display Custom Dialog 456 " action into your Process, the
Custom Dialog Designer automatically opens up:

To bring it up again for any consequent modifications, double click on the action and
press on the "Open Designer" button.

The Designer Window consists of two panes: Your Form on the left and the Drag &
Drop controls on the right. You may select any of the tabs of the Drag & Drop
controls pane, to reveal the controls of the corresponding category or edit the
Dialog's properties. Controls can be added or rearranged by drag and drop.

© 2018 Softomotive
For example, to add a "Title" control, select "Misc" and drag the Title from the pane on
the right, to your form on the left:

When a control is added to the form, the control's property editor comes up:
Using WinAutomation 215

With the help of the editor, you may modify the control's properties. As always, you
can insert preexisting variables in any of the fields by clicking on the gear ( ) icon.
When you are done editing, press the "Save" button. Saving also updates the live
preview of the dialog presented on Your Form.

If you need to modify any of the control's properties at a later point, left click on the
placed control so that the property editor reappears.

Control Types
Input

© 2018 Softomotive
Simple Holds a single-line text value, the most common form of input.
Input

Multiline Holds a multi line text value, suitable for short messages or lists. The value
Input returned is still a single Text variable containing line breaks, which can be
split 771 if necessary.
Password Similar to the Simple Input, but masks typed characters so that passwords
do not appear on the screen as plaintext.
Combobox The Combobox allows the user to either make a selection from a pre-
defined list or type their own, custom, value. The value returned is a list
variable containing the text of the selected item(s).
File Lets you select one or multiple Files or a Folder. The value returned is a
File/Folder variable for single items, or a File List Variable when you allow
multiple item selection.
Date Holds and returns a Date Time variable. If no value is entered by the user,
the current date and time is returned.

Radios / Checkboxes

Inline Select among a group of radio-buttons that are distributed horizontally.


Radios Only single item can be selected inside a group. The text/label of the
selected item is the value returned.
Multiline Select among a group of radio-buttons that are distributed vertically. Only
Radios single item can be selected inside a group. The text/label of the selected
item is the value returned.
Checkbox A single checkbox that the user can leave checked, or unchecked. Returns
a Boolean variable with the value %True% when the box is checked,
%False% otherwise.

Select

Select Similar to the Combobox, but does not allow the insertion of custom values:
the user can select only among the existing options.
Multiple Allows the selection of multiple items from the provided list. The value
Select returned is a single Text variable containing the text/labels of the selected
items, separated by linebreaks.

Button Groups

Button groups can contain one or more buttons, each one with its own name, style
and assigned operation. You may modify the buttons belonging to a group by bringing
up the property editor:
Using WinAutomation 217

You will find more information regarding the configurable button properties, in the Button
Properties subsection, below.

Miscellaneous

Title A Title control is a large text label, suitable for titling the entire form or
sections of it. Does not return any value.
Placeholder Simple text control. You can use it for displaying any desired text at any
Text part of the form. Does not return any value.

Link Adds a text control that when clicked, opens up the system's default
browser and navigates to the specified linked URL. Does not return any
value.
Horizontal Adds a horizontal dividing ruler, suitable for dividing controls into logical
Ruler groups. Does not return any value.

Control Properties
General Properties

ID / Name Used for retrieving the value entered/selection made for this specific
control. Must be unique and cannot contain spaces.

© 2018 Softomotive
Label / Text The text displayed as label to the control or on the control itself.

Link Specific to Link controls - The URL of the target page for this Link control.

Enter Specific to Password Inputs - Allows the entry of unescaped '%'


Password characters inside the default password property.

Default The value that the control will be prepopulated with, when the dialog is
Value first shown.

Default Specific to Password Inputs - Similarly to the default value, enter here the
Password value that the Password control will hold when the Custom Dialog opens.

File Selector Specific to File Inputs - The text to be used as title of the "Select File
Title Dialog" that emerges when the "..." button of the control is pressed.

Pick Specific to File Inputs - Specifies whether the file selection dialog will
allow File(s) or Folder selection.
Multiple Specific to File Inputs - When selecting files, specify whether the user is
Selection allowed to select only one or multiple.

Short A small, optional description that gets displayed the legend of the control.
Description

Popup Help The popup text to be displayed when the user hovers over the info icon
Text on the right of the control.

Size The size that the control should have. (Overrides CSS style)
Extra CSS You can assign an extra CSS class on the control, which is useful for
Class custom styling.

Button Properties

Button Defines name of the button and also the text displayed on it.
Name

Function to Select a Function from the drop down list to assign it to the button. Once
Run the User presses the button, the selected function will be invoked. You
may have only one function executing per custom dialog at a time.
Theme Select among various appearance styles for the button.

Close Choose whether the custom dialog should close when the button gets
pressed.

Whenever a button that has not be set as the "Cancel Button" gets pressed, all input
gets validated against the following rules, where they may apply:
Using WinAutomation 219

Validation

Required Specify whether populating this input field is mandatory.

Allowed Specify the accepted format of the user-supplied input value. You may
Value choose one of the pre-defined formats, or define your own, custom one.

File Filter Specific to File Inputs - The file filter applied to the "Select File Dialog"
that emerges when the "..." button of the control is pressed.

Check if File Specific to File Inputs - Specify whether the selected file(s) are required
Exists to exist.

Min/Max Specific to Date Inputs - Restricts the range of the date supplied.
Date

Validation fails will prevent function execution and Custom Dialog termination.
Moreover, a validation fail always produces an appropriate error message on the form.

© 2018 Softomotive
Dialog Properties

Title Specify the title to be used for the Custom Dialog.

Initial StateChoose among Minimized, Maximized and Normal states for the Custom
Dialog's Window.
Initial Specify an initial position for the Custom Dialog's Window. When "custom" is
Position selected, you have to also specify the coordinates (X,Y)

Height Specify the height of the Custom Dialog's Window.

Width Specify the width of the Custom Dialog's Window.

Accept Specify a button to be automatically pressed when the user presses Enter
Button with the dialog open.

Cancel Specify a button to be automatically pressed when the user presses


Button Escape with the dialog open. Validation of input is skipped.

Dialog Icon Specify a custom icon for the dialog. The icon is visible both on the task
bar and the upper left corner of the Custom Dialog's Window.
Keep on Specify whether the Custom Dialog's Window should remain on top of all
Top other windows.

Allow Allow/Disallow resizing of the Custom Dialog's Window.


Resizing

Retrieving Entered Values from a Custom Dialog


The input controls of a Custom Dialog hold useful values, entered by the user in
runtime. All of the populated values get stored inside a Data Row variable as defined in
the "Display Custom Dialog 456 " action's properties (default variable name:
%CustomDialogResults%). Values are available to functions invoked by a button press
on the Dialog and actions following the "Display Custom Dialog 456 " action.

Input controls store their value on a "column" with the ID/Name of the corresponding
control. For instance, the value populated into the "Combobox1" control can be
accessed as such:

%CustomDialogResults["Combobox1"]% (Assuming that the default names were


kept)

Some controls may hold a variable with additional properties 290 or even a list. You may
access the properties and the list items as well:
Using WinAutomation 221

%CustomDialogResults["File"].Size% is the size of the selected file and


%CustomDialogResults["MultipleSelect"][0]% is the first selected item.

Advanced Customization of the Dialog's appearance


You may add your own CSS rules applying to the Custom Dialog and its controls, in the
Advanced Tab of the "Display Custom Dialog" action. Styling rules entered inside the
"CSS Theming Overrides" box are effective immediately; you can preview them on the
Custom Dialog Designer, or view them directly at the resulting Dialog that is produced
during runtime.

Each control can be assigned an "Extra CSS Class" through the corresponding property.
A CSS class allows you to set a particular style for one or many HTML elements with
that particular class in your custom CSS rules.

3.8 UI Automation
3.8.1 UI Automation Overview
WinAutomation actions under the “UI/Windows” category are capable of directly
manipulating Windows applications, or any window for that matter (apart from web
application that can be automated with "Web Automation"), their controls, as well as
extracting data from them.

Processes can click on buttons, menu items, populate edit boxes directly, etc. and all
that without the use of absolute coordinates or image recognition!

© 2018 Softomotive
The UI Windows Actions
Using WinAutomation 223

UI Automation based Processes can be conveniently authored with the help of the
Macro Recorder 206 (with the Smart Recording option enabled). Alternatively, you can
build your Process manually by combining and configuring the appropriate actions in the
Process Designer.

Window handling actions, such as "Focus Window 520 ", "Move Window 532 " etc. can both
act on a specific window from your Control Repository.

Control handling actions, on the other hand (e.g. "Click Element in Window 510 "), act on
a target control of your repository.

Using the "Select Control from Repository" in the UI/Windows actions' properties and
adding Controls using the "Add Control" option is the most convenient method for
specifying the target control(s) for your actions.

3.8.2 UI Elements - Select Controls


The "Select Control from Repository" or "Add Control" in the Control Repository pane,
allows you to easily select a desired target control, on any currently open application
window. To select a control simply click on the "Select Control from Repository" option
in the action's properties. Having done so you have two options:

© 2018 Softomotive
1. "Add Control":

OR...
Using WinAutomation 225

After selecting to Add a control with either ways mentioned above, you are able to
select the element you wish. The Live Helpers (orange boxes circulating the accessible
elements) will appear and you can navigate to the window of interest in order to
access the element. Once this element is highlighted by the helpers, then simply press
"LCtrl+LShift+Left Click" to select the control.

Having done so the WinAutomation UISpy window will appear with three panes.

1. the tree of the all open applications and their controls, on your machine,

© 2018 Softomotive
2. the attributes for the element that you are trying to access and

3. a screenshot of the element that you selected to add.

Click on the "Add" button to add the Control to your Repository. The Control Repository
pane in your Process Designer will now have the Window and the element.

Should you wish the WinAutomation UISpy not to be displayed and have the control
directly passed into your repository, then instead of "LCtrl+LShift+Left Click" simply use
"LCtrl+Left Click" (without the LShift).
Using WinAutomation 227

You can go on adding more Controls in your Repository, building your Processes with
different actions until you have completed your Process.

3.8.3 Manage Controls Repository


You can right click on an item in the Control Repository to:

1. Manage the Selectors that were generated from WinAutomation to change them or
make your own if you believe that they can be more efficient. In case you want you
can also add variables in the selectors.

2. Find Usages of the control. You may want to identify which action is currently
using this control.

3. Rename the control. You may want to give a different name to the control.

4. Delete the control, in case you no longer wish to have it in your Repository.

© 2018 Softomotive
To manage the selectors of a control, you can either double click on it, or right click
and select "Manage Selectors". On the window that pops-up the selectors for the
element will be listed.They are usually more than one and they work in the notion that
if the first one fails to access the element, the Process will fall back to the second
one. If the second one still fails to access the element the Process will fall back to the
third one...an so forth. The action will error out only if all the selector fail.

You can click on the "Remove Unused Controls", in order to clear the "Control
Repository" from any controls that in the end where not used by your script.

3.8.4 Manage Images Repository


You can right click on an item in the Control Repository to:

1. Recapture the Images that you captured earlier.

2. Find Usages of the Images. You may want to identify which action is currently
using this image.

3. Rename the Image. You may want to give a different name to the Image.

4. Delete the Image, in case you no longer wish to have it in your Repository.
Using WinAutomation 229

Images Repository

You can click on the "Remove Unused Images", in order to clear the "Image Repository"
from any images that in the end where not used by your script.

Another option that you have is to sort the Images in your Repository, based on the
Name or the Date Added. In large processes where a lot of images are saved, this
option will be very beneficial for quick and east debugging.

Sort Images

© 2018 Softomotive
3.8.5 Manage UI Selectors
To manage the selectors of a control, you can either double click on it, or right click
and select "Manage Selectors".

*The same goes for CSS selectors for Web Automation actions, also.*

In the window that pops up you are able to:

a) Add Selector. This button will give you two options.

i) Add a selector based on the existing one, in the Selector Builder Window
where you can check or uncheck the attributes to use for this element or

ii) Add a selector by recapturing it, in which case the helpers will again appear
so that you can LCtrl+Left click on the element.

b) Edit. Click on the selector you want to edit, to pop up the Selector Builder window.

c) Delete. Click on the selector that you want to delete.

d) Close. Close the Window.

When you choose to Edit a Selector the the "Selector Builder" window pops-up. In here
you can see the UI or CSS selector and you can choose the attributes that you want
to be included in the selector for the item.

You can also choose whether you want the Visual Selector Builder or the Custom
builder.
Using WinAutomation 231

Selector Builder

Notice that in the "Operation" column, you have the option to select what how the
value will relate to the checked attribute. While the "Value" column of the Selector
Builder is editable, you can click on the Operation arrow and choose the relation
between the attribute and the value to be:

-Equals
-Not Equals
-Contains
-Starts with
-Ends with
-Regex match

© 2018 Softomotive
If you choose the Custom builder, form the drop down list menu option on the top left
part of the window the the following window appears where you are free to build your
own selector and even use Variables from the gear icon.
Using WinAutomation 233

3.8.6 Building UI Selectors


The UI selectors are very useful when using UI/Windows actions, as they help you
access any windows/elements you want.

UI selectors are generated for each control you add in your Control Repository and can
be shown should you double click on a Control.

WinAutomation automatically generates one or more selectors. This means that, if the
first selector fails to access the element, then we fall back to the second selector;
and in case of a new failure we fall back to the third and so on. The action will error
out, if none of the selectors are able to get the element and there is no Exception
handling in the relative tab of the action.

You do have the option to modify the existing generated selectors (delete one or two
of them, enhance them, or build them yourself from scratch) so that you can get the
desired window or element.

Let’s say that you have an “Untitled – Notepad” window open on your desktop which
you wish to get.

Selectors are read from left to right using “>” to show that the element that follows in
contained within the previous one in a parent > child notion. Let’s say that you want
to access a Notepad Window and then click on the File Menu option.

You would have to use a "Click Element in Window" action and add the Control to the
Repository. You will end up with the control as follows:

The Window 'Untitled-Notepad' will have its selectors and once accessed the
Process will move on to the Menu Item:File for this window.

What if you want to get a text document with another specific name??

© 2018 Softomotive
Double click on the Window 'Untitled-Notepad' and in the window that pops up hit the
Edit button for each selector.

In the selector builder Window that will appear you can check other attributes that
you want to include in the existing Selector for the window. Thus, the selector will
become more complex.
Using WinAutomation 235

OR, you can choose to build a Custom Selector form the drop down list menu option on
the top left part of the Selector Builder window.

In general the selector for a specific window with "n" attributes is:

window[Attribute1=”Attribute1Name”][Attribute2=”Attribute2Name”]...
[Attributen=”AttributenName”]

So, for the notepad with title "Untitled" the selector can be:

window[process="Notepad"][name="Untited - Notepad"][class="Notepad"]

...you can delete one or more attributes and you can just keep the ones that you
think will make your selector more efficient, in the Selector Builder Window.

· Using Variables in Selectors:

If you have a variable that holds the name of the text file then in the Custom Selector
you can insert that variable. Let's say that you are certain that the file you want to
access is named "Example.txt".
The selector to access that window can simply be:

window[process="Notepad"][name="Example"][class="Notepad"]
or
window[name="Example"][process="Notepad"]
Further on, if you have the name of the file in a variable like %FileName%=Example then the
selector can be:
window[process="Notepad"][name="%FileName%"][class="Notepad"]

© 2018 Softomotive
· Useful Tips for more efficient Selectors:

window[name^=”Untitled”][process=”notepad”]

would get any Notepad window that its title starts with “Untitled”.

window[name$=”Notepad”][process=”notepad”]

would get any Notepad window that its title ends with Notepad.

window[name~=”Untitled”][process=”notepad”]

would get any Notepad window that contains the word Untitled in its title.

NOTE:

:eq(n) is a very frequently used selector attribute. It selects the element at index "n"
within the matched set (keep in mind that it is always zero based). If the index is
negative then the (|n| – 1) element is picked counting from the last element to the
first.

For example if you have several buttons in a window and you write something like:

… > button:eq(0) >… this means that you are looking for the first button, while
button:eq(1) would be the second button and button:eq(2) would be the third one
and so on.

3.8.7 UI Data Extraction


WinAutomation's UI Automation technology allows the extraction of textual data from
any open application window. You will find all the relevant actions under the "Data
Extraction" subcategory of the "UI and Windows" group, inside the Action's Pane 162 .

"Get Details of Window 552 " and "Get Details of Element in Window 554 ", are suitable for
extracting certain useful attributes from the target Window or Element, such as the
Window's Title or the Element's location. Both of the actions are also capable of
getting the text displayed by the element, including any text belonging to visible child
elements.

The following two actions, "Get Selected Checkboxes in Window 556 " and "Get Selected
Radiobutton in Window 557 " are specialized actions, dedicated in extracting the current
selection state of Checkboxes and Radiobuttons.
Using WinAutomation 237

Last but not least, "Extract Data from Window 559 " extracts only the text displayed on
elements (and their visible children). For simple control elements, "Extract Data from
Window 559 " will get the exact same results as the equivalent "Get Details of Element
in Window 554 " action. Certain controls, on the other hand, will yield data in the form of
List or Table variables. More specifically, Tree and Tree Item controls (e.g. the tree
view pane of Windows Explorer) as well as List controls produce the text data in a List
variable. Data Grid controls always get their data extracted in the form of a table. In
other words, "Extract Data from Window 559 " allows the retention of the original
organization of the data extracted, making any further processing significantly easier.

3.9 Web Automation


3.9.1 Web Automation Overview
With WinAutomation you are able to automate your web related tasks in an intuitive
manner with unprecedented speed and reliability. The Process Designer includes a
number of actions under the "Web Automation" category, each of them corresponding
to an action that a user would manually perform within a web browser.

For Web Automation Process WinAutomation support four Browsers:

1. Google Chrome

2. Mozilla Firefox

3. Internet Explorer

4. The WinAutomation Automation Browser

In the current Web Automation Topic we will focus on the Internet Explorer
browser to demonstrate the Web functionality, but, do keep in mind that
everything explained here, is 100% applicable to the other browsers also!

The usual sequence for creating a Web Automation Process is the following:

1. You launch a browser window (or attach to an existing one) using one of the
following three actions: "Launch New Internet Explorer 562 ", "Launch New Chrome 572 "
or "Launch New Firefox 567 ". These actions generate a variable containing the
instance of the web browser that needs to be passed to subsequent actions (this is
useful when you need to automate more that one browsers concurrently).

By default a Web Browser instance is stored in %Browser%, but you can change
the name of the variable to the most convenient name for you. Do keep in mind
that any web actions on this specific browser that you opened with these actions,
should respond to this instance.

For example if you wish to use the "Click Link on Web Page" action, in the Web

© 2018 Softomotive
Browser Instance you should indicate the variable %Browser% (or the variable's
name that you gave to the instance in any of the Launch new Browser actions).

2. You add the appropriate actions based on the steps that you want to automate.
There are actions available for clicking on links, filling and submitting web forms,
extracting data from web pages, etc. In each action you will need to pass the
variable containing the web browser instance (for example %Browser%) to specify
the browser on which the action will be performed, as previously mentioned in [1].

3. Optionally, you may close the browser used for the automation using the "Close
Web Browser 587 " action.

In order to build your Process you have plenty of tools at your disposal. The easiest
way to start is to use the Web Recorder 246 that gives you the ability to record your
web activities as you perform them and convert them into a Process.

Alternatively, you can build your Process manually by combining (and configuring) the
appropriate actions in Process Designer. The rest of the overview will focus on the
Process Designer approach, for Web Recorder usage please refer to the corresponding
topic 246 .
Using WinAutomation 239

3.9.2 Building a WebAutomation Process

Building a Web Automation Process in the Process Designer:


As mentioned before, you will start with the "Launch New Internet Explorer 562 " action
and specify the initial web address to visit:

In addition to the initial URL, you may also specify:

· The type of Internet browser you wish to work with, by choosing among launching
the Automation Browser, a new Internet Explorer, or attaching to an already running
IE .

The Automation Browser may be preferred as it offers a minimal and fully-functional


browser interface, while allowing you avoid inconsistencies and delays that Internet
Explorer add-ons, toolbars and widgets may cause. (More information you can find
in the Actual Internet Explorer VS Automated Browser 280 topic)

· Whether the web browser window will be launched in normal, maximized or minimized
(in case you want the Process to run in the background) state.

The main outcome of Launch New Internet Explorer action is to generate a


variable containing the instance of the web browser that will be passed as input
to the rest web-related actions of your script. Since it is possible that within the
same Process you may need to automate more than one browsers concurrently
(if for example you may want to extract data from one web site and populate
some fields of another), you can include multiple “Launch New Internet
Explorer” actions and store the generated Internet Explorer Instances
appropriately, so that you can pass them to the respective subsequent web-
automation actions.

The most commonly selected option is to Launch a new Internet Explorer. However, by
default, IE comes with security settings disallowing any external applications
(WinAutomation in our case) from controlling it. Therefore, it is essential to configure
its security settings 267 first.

Alternatively, you can use the WinAutomation’s browser that does not require any
configuration changes.

When selecting to launch a new browser, you can specify some further options, found
in the Advanced tab of Properties of Launch New Internet Explorer action window:

· Whether to clear the browser's cache and/or any stored cookies right after launching
it (depending on the size of cache or stored cookies this procedure may take a
while).

© 2018 Softomotive
· Whether you need the Process to wait for the new web page to load completely
before proceeding to the next the action.
· How should the action respond if a pop-up dialog appears while loading the initial
web page (i.e. close, ignore or interact with it).
· Specify the user-agent string that you want the runtime web helper to advertise to
the website's that it is instructed to navigate to.

If you set the action to attach to a running Internet Explorer (instead of launching a
new one) you are prompted to choose whether it will attach to an Internet Explorer
Tab based on its Title, URL, or just pick the Active Tab of the Internet Explorer running
as the Foreground Window.
Using WinAutomation 241

Next, you will append other actions to interact with elements in the web page.

There are actions available for clicking on links, filling and submitting web forms,
extracting data from web pages, etc.

© 2018 Softomotive
Using WinAutomation 243

Although each action has its specific features there is an overall mode in setting the
web-related actions’ properties.

Say, for example that you need to click on a link. For that you will need to use the
"Click Link on Web Page 583 " action:

As you can see in the screenshot above, you will first need to select the Browser
Instance on which the action will be performed. The next step is to specify the link
you want to click on and add it in your Control Repository. You can do this in two
ways:

1. Select the Control form your Repository, if it is already there from a previous
selections, or

2. Click "Select Control Repository" and then click "Add Control". This will open the Live
Helpers. Hover your mouse over the element that you want to access in the Internet
Explorer and hit LeftCtrl+LeftClick to select it.

Once you do the WinAutomation UISpy window will pop up, that it will show you the
HTML tree of the element as well as its attributes in the right pane of the window.

© 2018 Softomotive
Click on "Add" to add this control to your Repository.

Under the hood:

What the Web Helper does is extract the CSS Path of the selected element and a
meaningful description adding it to your Control Repository. Should you double click on
the control, the Selectors for it will pop up as per the screenshot below:

Should you click on "Add Selector" or "Edit" the Selector Builder will appear.
Using WinAutomation 245

In the Selector Builder you are able to add or remove attributes to the CSS selector by
checking or un-checking the relevant check-boxes. You can also choose to build a
custom Selector from the Custom Option.

In the Custom selector Builder window you can modify the Selector, insert variables, or
change it completely.

To learn more about the values you can enter in the "CSS Selector" field and how to
select a single element within a web page you may refer to the CSS Selectors 317
topic.

© 2018 Softomotive
This is the logic behind any web-related action where you need to specify an element
and perform an operation on it.

3.9.3 The Web Recorder


(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

While you can create a Web Automation Process by combining and configuring actions
in the Process Designer, as you would do for any other other Process, it is much easier
to build your web related Processes by using the Web Recorder

You can open the web recorder either while creating a new Process 85 or from within

the Process Designer by clicking on the Web Recorder button on the toolbar.

This is the initial screen of the Web Recorder. It consists of two parts, the Web
Automation browser on the left and the sidebar with the recorded actions on the right.
At this point, you are presented with a browser choice. You can either record on the
Web Automation browser (initially displaying the "Welcome to Web Recorder" page) or
you may use any already open Internet Explorer window with the help of the Live Web
Recorder.
Using WinAutomation 247

Use the Web Automation browser for the recording


As with the Web Helper 281 , the fist step here is to enter in the address bar the URL of
the site you want to visit and press "Go" (or Enter). Immediately you will see that the
first action in the sidebar gets updated with the website address. This indicates that
the recording has started and in the sidebar you will see the corresponding actions
that get added as you interact with the web page.

Record the actions on an already open Internet Explorer window (Live


Web Recorder)
The Live Web Recorder does not require you type a URL. Instead, the starting web
page is determined by your selection of the Internet Explorer window. In other words,
the current address of the selected window is where the recording starts from.
Therefore, when there are more than one Internet Explorer windows open, you should
select the one displaying the site you want to visit before pressing the "Start" button:

With the correct browser window selected, press the "Start" button to start the
recording. The sidebar will now appear on the top right part of the selected Internet
Explorer and the Web Automation browser (which is now unnecessary) will hide.

© 2018 Softomotive
Note that while using the Live Web Recorder, clicks on the back, forward and refresh
buttons of the browser do not get recorded.

Making the Recording


As soon as you start the recording, the process is similar irregardless of your selection
between the Live Web Recorder and the Web Automation browser.

Whatever you do gets recorded. So, for example, if you click on a link a new "Click Link
on Web Page 583 " action will be appended on the sidebar. Enter some text into a text
field, submit a form, navigate back or click on another link; every activity you perform
will be translated into the appropriate action and added to the sidebar.

If you perform an action unintentionally and you do not want it to be included in the
final sequence of actions, you can move the mouse over the action that you want to
delete and a red button will appear in the action's top right corner, as shown
below. By clicking on the x button the action will be removed from the list of recorded
actions.
Using WinAutomation 249

Most actions have part of their text in blue. These pieces of text correspond to the
parameters of the action and can be edited by clicking on them. As an example we'll
click on the email address that we entered into the email field and change it:

© 2018 Softomotive
This feature is also useful for changing the name the Web Recorder assigns to each
element. WinAutomation makes its best effort to extract a name for every element you
interact with, however this may not always be possible or you may want to replace
the auto generated name with another one that makes more sense to you.
Using WinAutomation 251

While recording you may want to take notes that will be useful if you chose to edit the
actions later in the Process Designer. To do so you need to click on the "Insert
Comment" button and a comment action will be appended in the sidebar. This
action, holding the comment that you entered, will be part of the recorded actions
that will be sent back to the Process Designer.

© 2018 Softomotive
If, at any point you want to discard all the actions you have recorded so far and start
from scratch, you can press the "Reset Recorded Actions" button. A message box will
appear for you to confirm the delete.
Using WinAutomation 253

Extracting Data while Recording


The Web Recorder also includes the functionality of the Data Extraction Web Helper 255
so that while you are recording you can specify any data on the web page you are
visiting that you want to extract. This is done simply by right-clicking on the element
you want to extract and from the context menu that will appear select the "Extract
Element Value" and then the attribute that you want to extract.

As with the Data Extraction Web Helper 255 you may select multiple elements and the
Extraction action will be updated accordingly. The action will also include a link to a
preview of the selected data as it is going to be extracted.

© 2018 Softomotive
By right-clicking on an element you can also insert an action that takes a screenshot
of that element, or an action that waits until the text contained in that element
appears/disappears from the page. The latter is useful especially for dynamic/ajax-
powered websites that you need to make sure that the page has been updated before
moving on the the next action.

Finally, once you are happy with the process you have recorded you can press the
"Finish" button and all the actions will be transferred back to the Process Designer:

As you can see from the screenshot above, all actions (along with any comments you
may have added while recording) have been inserted into your Process. From this point
Using WinAutomation 255

you can continue editing and modifying your actions as you would for any other
Process whether it has been generated by the Web Recorder or not.

3.9.4 Web Data Extraction Part I


Extracting data from web pages is a big part of Web Automation. In WinAutomation
there are four actions dedicated to this task, with the "Extract Data from Web Page 606

" being the more important and versatile.

The other actions allow you to take a screenshot of a web page element 611 , retrieve
details of a web page 608 such as its title or its HTML source and finally retrieve any
HTML attribute of any web page element 609 or even its text.

So far so good, however, very often, you want to retrieve information displayed into
the page in the form of tables or lists, rather than technical values. And this is where
the "Extract Data from Web Page 606 " action comes into play:

© 2018 Softomotive
As with any other web-related action you will first need to specify the web browser
instance containing the page you want to extract data from. The next step is to
specify the data itself and finally to select where the extracted data will be stored.
The default value is to be written into a newly generated Excel spreadsheet, but to do
so you need to have Microsoft Excel installed in your computer.

Alternatively you can have the data stored into a variable for further processing by
later actions. Note that the extracted data can be in any of the following forms:

1. Single Value:

Say that from a web page containing info about a product, your extract the product
name only. In this case, if the extracted data is stored into a variable this variable will
contain a text value.

2. Handpicked (multiple) values:


Using WinAutomation 257

Say that, in our previous example you select to extract not only the product name,
but also the description and its price. In this case three separate values will be
extracted and the resulting variable will hold a value of type DataRow.

You will be able to access each one of the retrieved values using the following form:
%DataFromWebPage[...]% where within the brackets you will enter either a number or
the name of the value.

3. Lists:

You are no longer in the page containing the product info, but in a page containing the
list of all products. If you choose to retrieve all the product names displayed in the
page then you'll end up with a list. Subsequently, the variable holding the extracted
data will be of type List.

4. Tables

In the previous example of the web page containing a list of products you select to
retrieve both the name and the price for each product. In this case the resulting
variable will hold a DataTable with a product in each row and two columns (with the
product name stored in the first column and the product price in the second one).

Selecting the Data to extract from a Web Page


To specify which data you want to extract from the web page you will need to use a
Data Extraction Web Helper 281 . The target data can be specified either by using the
live version of the Web Helper, or the standard one.

Live Web Helpers conveniently work on an existing Internet Explorer window. Just have
the action "Extract data from Web Page" open in your designer and click on the
Internet Explorer of your interest.

The standard Web Helper on the other hand, is a browser window itself and opens by
pressing the "Specify Web Data to Extract".

Should you click on the "Specify Data to Extract" button the Web Helper Window will
appear.

© 2018 Softomotive
this window consists of two parts, the left pane which is the web browser and the
right sidebar which displays a preview of the data selected for extraction.

As with the Web Helpers, the first step is to enter the URL in the address bar and
navigate to the page containing the data to be extracted.

Next, all you have to do is right click on any element of the page that you want to
retrieve and select the property you want to extract. Most often you will want to
extract the text of the element, but you have also the choice to specify any HTML
attribute you want to retrieve.
Using WinAutomation 259

At any point you can press the "Accept" button and finish the process of selecting the
data you want to extract, or you may continue by selecting more elements. Depending
on the elements you select, the web helper may or may not expand the selection. For
example, if the next element you select is the URL of the element chosen in the
previous screenshot (shown in green in the screenshots) you will have just two
elements selected:

© 2018 Softomotive
If, however, the second element you selected was another search result title,
WinAutomation would detect that you are extracting a list and would expand the
selection to all items of the list:

On the right sidebar you see the preview of the data to be extracted in the form of a
list.

So now you have specified that you want to extract a list. If you select an additional
element, WinAutomation will extract the corresponding data for each element already
in the list, returning the result in the form of a table:
Using WinAutomation 261

By selecting an additional element, the table would simply get an additional column.
You can edit the column names by clicking on them in the preview sidebar.

If the data spreads over multiple pages there will be a "Next" link somewhere that
points to the next page. You can right click on that link and select "Set This Element
As Pager". This way, WinAutomation at runtime will not retrieve the data just from the
first page but will continue and retrieve the same data from the next pages too.

At any point you can press the "Reset" button to discard the selection made so
far and start over. You can also examine and modify the CSS Selectors generated by
the Web Helper that specify which info needs to be extracted by pressing the

"Advanced Settings" button .

Finally you can press the "Recalculate Now" button to highlight which data will
be extracted from a web page based on the current selection. This can be useful if, for
example, you select some elements to extract from a web page containing info about a
product. You can then visit a page containing info on another product and click the
"Recalculate Now" button to make sure that appropriate info will be retrieved from the
second page too.

As mentioned before, after you have finished with selecting the data you want to
extract you can press the "Accept" button to return to the action's properties dialog.

© 2018 Softomotive
3.9.5 Web Data Extraction Part II
The web data extraction can also take place on an actual IE if you have the "Extract
data from Web Page" action open while you move your mouse pointer to the page of
interest.

Should you click in the webpage, then the "Live Web Helper- Extract Data From Web
Page" window will pop up. In this Window you will be able to preview the extracted
data.

Extracting a List:
Lets say that you wish to extract the title for all available results in a webpage.

Having the "Extract data from Web Page" action open, hover your mouse on the page
(or click on a blank area). Then right click on the first result and extract its Text as in
the screenshot below:

Do the same for the second result and the list of all the items' text will be
automatically extracted. Click on the "Advanced Settings" icon to review the CSS
selector which you can modify and make it even more efficient.
Using WinAutomation 263

1. As you can see while extracting a list, we have the Base Selector and the CSS
selector. The Base selector is the root element in the HTML code, under which the
items of the list are listed. This means that the extraction starts from the
".....div:eq(1) > ul > li"

2. For each list item from the list "...div:eq(1) > ul > li" and then it gets the "h3 > a"
element.

3.The attribute that you are extracting is "Own Text" and it can be changed to "Title",
"Href", "SourceLink", "Exists" or any other Attribute is available in the HTML code of the
page for this element.

4. You also have the option to apply Regular Expressions on the extracted text, in
order to get just a part of it.

Changing the selector by hand, then you can click on the "Recalculate now"
button to see the extraction's Result.

© 2018 Softomotive
Extracting a Table:

In order to extract more than one piece of info for each result you would have to
extract a table.

Let's say that we want to extract the Title of the product, the link behind it and the
price.

For the first result we right click on the title, extract its "Text", then right click again
to extract the "Href" and finally we right click on the price element to extract its
"Text".

We move on to the second result/product to do the same and the table is


automagically created in the extraction preview window.

For the table, in the same notion as extracting the list, we have the Base CSS
Selector, which is the root element in the HTML code, under which the data of each
result/product exist. This means that the extraction starts from the ".....div:eq(1) >
ul > li" and then for each of the item we extract the

· h3 > a Attribute "Own Text"

· h3 > a Attribute "Href"

· ul:eq(0) > li:eq(0) > span Attribute "Own Text


Using WinAutomation 265

Attributes to extract:

In the Attribute field of the "Advanced Settings" of the "Extraction Preview" window,
other than the attributes that are listed in the drop down list, you can specify any
other attribute that the element has. For example if an element in the HTML code of
the page is:

<li class="sresult lvresult clearfix li shic" id="item463b90d307"


_sp="p2045573.m1686.l2210" r="3" listingid="301647057671">.......</li>

Then in the attribute dropdown list you can write "class" if you want to extract its
class, "id" if you want to extract its id...and so on.

NOTE

· You can extract the plain html code of the element -and all its children elements-
should you write "outerhtml"

· You can extract the plain html code of all the children elements of the element
should you write "innerhtml"

This is very helpful if you want to extract a piece of info that resides in the html for
this element by applying some Regular Expressions on the extracted code.

3.9.6 Web Data Extraction Part III


Very often we want to extract data from a web page after a search, which has
returned more than one page of results. In this case we want to perform the
extraction to all, or to a number of pages.

This can be achieved with the "Extract Data from Web Page" action, if you select to
set an element as "Pager". As shown below, you can right click on the pager element
and select "Set This Element As Pager".

Having done so, upon extraction of the data, the Process will keep clicking on the
"next page" button and extracting what you have set it to extract, up until when the
pager element is enabled and present on the web page.

© 2018 Softomotive
The CSS selector for the pager is shown in the "Advanced Settings" for the Extraction
Preview window. You can modify it and use your own if you are familiar with CSS
selector and maybe use its id and class attributes to make it 100% consistent.

Once you have set the data to extract, press "Commit". Back in the "Extract Data from
Web Page" action you can choose to extract the results from:

- All Available pages, which means that the extraction will finish once there are no
more result pages, or

- only first 'X' Web Pages, which means that the extraction will finish after extracting
the data from the X web page.
Using WinAutomation 267

Feel free to have a look at the Create CSS Selectors topic 317 .

3.9.7 Configure Internet Explorer for Web Automation


For automating your web related tasks you can either use the WinAutomation's
automation browser or an Internet Explorer window. The latter choice is especially
useful when you want the task to be performed through an IE browser window that is
already open.

While you can use the WinAutomation's browser without the need to configure
anything, for being able to control IE you will need to modify some of its settings. By
default, Internet Explorer comes with security settings enabled that do not allow an
external application (WinAutomation in our case) to control it.

To change this, you perform the following steps

Open the Internet Options dialog in Internet Explorer and click on the "Security" tab:

© 2018 Softomotive
Select the "Internet" zone and UNCHECK the "Enable Protected Mode" checkbox:
Using WinAutomation 269

Select the "Local intranet" zone and UNCHECK the "Enable Protected Mode" checkbox:

© 2018 Softomotive
Select the "Trusted Sites" zone and UNCHECK the "Enable Protected Mode" checkbox:
Using WinAutomation 271

Finally click the OK button and restart Internet Explorer. You will now be able to
control Internet Explorer through WinAutomation for automating all kinds of web sites
and web applications.

3.9.8 Configure Internet Explorer for Servers


If you have WinAutomation installed on a Server, for automating your web related
tasks please note the following.

Windows Servers have the "Internet Explorer Enhanced Security Configuration" (IEESC
for short) feature turned "On" by default, which prohibits any and all WinAutomation
Processes from properly launching an Internet Explorer or the Automation Browser via
the "Launch New Internet Explorer" action.

© 2018 Softomotive
Likewise, as long as the IEESC feature is "On" any and all web-automation actions will
too fail to work as intended. Moreover, the design-time Web Helpers of the
aforementioned actions will not work either as long as the IEESC feature is "On".

In order to be able to overcome the above, you would have to change the Security
Configuration as per the screenshots below in 3 small steps.

1. Open the "Server Manager" and go to "Local Server"

2. Click on the "IE Enhanced Security Configuration"

3. Both for Administrators and Users select the "Off" radio button and click "OK".
Using WinAutomation 273

You will now be able to control Internet Explorer through WinAutomation for
automating all kinds of web sites and web applications.

3.9.9 Configure Chrome and Firefox for Web Automation


Unlike with IE, WinAutomation is using add-ons to communicate with Chrome and
Firefox.

These addons are included in the WinAutomatoin installation where you will be
prompted to include the extensions.

However, should you not want to install the extensions right up front, you can do so
at a later point through the Process Designer.

This showcase scenario shows you how to install the add-ons and how to enable them
or disable them in your browser:

(a) Installing add-ons for Firefox or Chrome

1. Open your "Process Designer>Tools> Browser Extensions" and select the Browser
you want to work with (Firefox or Chrome).

© 2018 Softomotive
This will launch (or bring to the foreground) Firefox or Chrome with the following
screen:

Firefox
Using WinAutomation 275

Chrome

2. Click Add and then OK or "Add Extension".

© 2018 Softomotive
Firefox
Using WinAutomation 277

Chrome

What's left is to go through (b) "Additional Settings that Might Influence Automation
for Firefox or Chrome" and you'll be ready to start using Firefox or Chrome for your
web automation.

Another option would be to install the browsers from the WinAutomation Icon in the
System Tray:

© 2018 Softomotive
(b) Additional Settings that Might Influence Automation for Firefox or Chrome

For Firefox: Another thing you might want to know however regarding Firefox
is how to enable or disable (default seems to be enabled) alerts in "modal" dialog boxes
that freeze your browser and prevent you from switching to other tabs or windows.
This setting enabled can have a real impact on the viability of your automations so this
is how you can disable it:

1. Enter the text "about:config" on the URL bar of a new tab on Firefox and press Go:

2. Search for the "prompts.tab_modal.enabled " preference name in the resulting list
and double-click on it in order to change it to false:
Using WinAutomation 279

For Chrome:

Disable running background apps when Google Chrome is closed Settings>Settings


Navicon>Advanced>System

© 2018 Softomotive
3.9.10 Actual Internet Explorer VS Automated Broswer

Differences and limitations for using the WinAutomation Runtime Browser


versus the Actual Internet Explorer:

1. “Click Download link from Web Page” action:

This action only works with the Automated browser regardless the IE version, while in
an actual IE, version 8 and below is a requirement.
Using WinAutomation 281

2. For the actual IE to work reliably with the Web Automation Actions one needs
to change its security options. (Configure Internet Explorer for Web
Automation 267 )

Such tweaks are not necessary when using the WinAutomation Runtime Browser. This
can come in handy for users working in companies having certain standards when it
comes to the security (thusly prohibiting users from changing the security settings of
IE). For these users the WinAutomation Runtime Browser is the way to go.

3. The WinAutomation Runtime Browser suppresses any and all message


dialogs that may pop up unhindered in the actual IE.

When this feature of the WinAutomation Runtime Browser is undesirable (e.g. when
dealing with authentication dialogs) we apply the “(ShowDialogs)” suffix at the end of
the url inside the Launch New Internet Explorer action, so as to temporarily allow such
dialogs to pop up. Using such a workaround is not needed in the actual IE.

4. The WinAutomation Runtime Browser does not support tabs or opening links
in windows.

When the user clicks on a link in an actual IE, which would open in a new window, the
Automated browser automagically opens the link it in the same window/instance (this
discards all navigation history etc).

5. There is a small performance advantage with the Automated browser


because it does not load unnecessary elements and ad-ons like the actual IE
does.

6. When it comes to converting Processes to .exe files the actual IE is a bit more
handy than the embedded one if the .exe is to be distributed to computers that
WinAutomation has never been installed.

The reason for this is that for those machines that want to run a .exe with the
embedded IE the client must install (and then uninstall) WinAutomation in order for
certain registry-keys to be installed in the registry, instructing the Windows OS to run
the Runtime Web Helper of WinAutomation as the IE version of most recent vintage. If
this does not take place then the Runtime Web Helper will be running as IE6 by default
which can cause severe problems in certain websites, thus breaking the .exe Process.

3.9.11 Web Helpers Offset


Sometimes, elements in a web page may be nested one into another, and still have the
same size. In this case you can only highlight the deepest element and by moving the
cursor out of it you also move it out of its parent elements (since they all have the
same size). In this case, to select a parent element, move the mouse cursor over it
and click Control-Shift to move the selection to its parent element instead of the

© 2018 Softomotive
deepest one. You can press Control-Shift repeatedly to walk up the elements
hierarchy.

Also, there might be cases where the Web Helpers appear with an offset relative to
the elements themselves. This is caused from the fact that the web page display is
not at 100% and as a result the helpers are in a different position than the one
actually expected. In order to overcome this issue, you can simple press Ctrl+ (for
zooming in) or Ctrl- (for zooming out) to make the Helpers circulate the elements
correctly!

Helpers with offset.

Helpers with no offset.


4. Advanced Topics
4 Advanced Topics
4.1 Add-ons
4.1.1 What is an Add-on?
WinAutomation being a feature-rich automation platform, includes a vast collection of
actions that are available to you whenever you install the application. However, some
actions are a little too specialized to be included as part of WinAutomation’s core (e.g.
a group of actions that automates Twitter, does not interest everyone). This is why
WinAutomation allows you to use Add-ons.

Add-ons in WinAutomation are essentially external packs of actions that you can
download from our website and install separately in the application according to your
needs. The main purpose of Add-ons, is to provide WinAutomation’s users with as
many features as possible while keeping the number of core actions easily manageable.
This practically means that we do not have to sacrifice flexibility for features or vice
versa.

4.1.2 Install and Remove Add-ons


(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

You can open the WinAutomation Add-on Manager through "Options > Addons" tab in the
console.

Browse All Available Add-ons

This button will get you to the WinAutomation official website where you can review
and download all the available addons.

Uninstall an Add-on

You can uninstall any Add-on that you no longer need, just by selecting it in the list of
installed add-ons and clicking on the “Uninstall Selected Add-on” button. Note here that when
you uninstall an add-on, any Processes that contain actions from that add-on will not work
anymore. This does not apply to compiled Processes that are independent but only to
Processes that run within WinAutomation.

Install New Add-ons

After you have downloaded an Add-on, you can install it by pressing the “Install new Add-on”
button and selecting the .wao file that you downloaded.
Advanced Topics 285

Add-ons designed for WinAutomation version 5 will not work with WinAutomation version 6
and vice versa. If you accidentally installed an incompatible add-on, you can safely delete the
file Addons.dat, which is by default located in the same folder as your Processes.dat file 329 .
Having done that, you may proceed and download the latest compatible version of the add-on
by pressing the “Browse All Available Add-ons” button.

4.2 Variables
Throughout your Processes, you will need to store useful information for passing them
from on action to another: the current date, the file that the user selected, the
contents of the clipboard. WinAutomation allows you to store this kind of data, for
later use, through variables. A variable simply acts like a storage bin that saves
valuable information for the Process’ execution, so that you can use it later. You can
stuff different types of data into variables, such as text or numbers. For more
information about Data Types you can see here 286 .

In order to use variables, you will have to use the specific notation associated with
them: the variable’s name should be enclosed in percentage characters. For example,
in order to use a variable called “ClipboardText” as an input for “Set Clipboard Text”
action, you must write: %ClipboardText% in the “Text to store into Clipboard” field of
the specific action’s properties dialog box.

© 2018 Softomotive
Creating Variables

There are 2 main ways to create a new variable:

1. Through the “Variables Manager Window”. For more information about where to find
and how to use this method you can see: “Variables Manager Window 195 ”.

2. Variables can also be created by Actions. Most actions generate output based on
the input that has been provided to them. For example the “Get Text Length”
action under “Text Actions” category, will accept the text that you want to
measure as an input, and provide the number of chars that this text contains as an
output. This output will be stored in a variable for later use.

Using Variables

Variables can be used to store any specific type of information that may need to be
utilized throughout the Process. Most of the variables that you will use are the
“product of a specific action’s labor”: the current date, the files contained in a specific
folder, the text that is stored in the clipboard, is information that you can retrieve and
store in variables through specific actions.

WinAutomation provides you with an easy and straightforward way to use variables
that have been previously created in your Processes: there is a special “gear” icon
next to every input that accepts variables in the Action Properties Dialog box. By
clicking on that icon, you will be able to directly select any variable or variable
property (for information about properties you can check “Data type Properties 290 ”)
that you want to use as an input.
Notice that the gear icon is placed only next to the “Action’s Inputs” (there are
no gear icons next to “Outputs”). This does not mean that you cannot use a
variable that already exists, as an output, thus overwriting its contents and, possibly,
changing the type of data that the variable contains. However, it is suggested that
you use a new variable to store a different action’s output: it will help you to keep
your Process clear and have a full understanding of what kind of data each variable
contains at any given time of your Process’ execution.

4.2.1 Data Types


Every piece of information that you store in your variables, has a specific type. There
are 14 main data types that WinAutomation recognizes:

· Text:
A “Text” variable can contain any kind of text, from your email address to the text
contents of txt file. Notice that the user’s input through the “Display Input Dialog 460
” action will always be stored as text (even if the user enters a number). In order to
convert text into number you will have to use the “Convert Text to Number 762 ”
action.

· Number:
This is the data type of a variable that holds a number.
Advanced Topics 287

· Boolean:
Can be either True or False. For example the attributes of a file (such as "Hidden")
are of type Boolean. If a file is stored in a variable called %MyFile%,
%MyFile.IsHidden% will be True if the file is hidden and False if it is not (IsHidden is a
property of the File Data Type; for more information about the data type properties
see “Data Type Properties 290 ”).

· Custom Dialog Instance:


A variable of that type is created through the “Display Custom Dialog 456 ” action. It is
used to uniquely identify the specific custom dialog created by the action. Every
Custom Dialog Instance has properties (e.g. LastButtonPressed). For more
information about data type properties see “Data Type Properties 290 ”. Variables of
the "Custom Dialog Instance" type can be used in place of a UI Automation "Window
Instance" in UI and Windows actions.

· Custom Object:
Custom Objects are a type of Variable in WinAutomatoin that allows users to
generate and/or translate ("Convert Custom Object To Json") data in JSON format.
Custom Objects are essentially collections of pairs of Property Names and
corresponding Values. You can access these values using dot (.) notation or bracket
([]) notation since any two different Properties of a Custom Object may have the
same Value but not the same Name.

· List:
A list contains a collection of values (it is the equivalent of single-dimensional arrays
in programming). Depending on the type of the items of the list we can have List of
Texts, List of Numbers, List of Files etc. For more information about lists, see
“Lists 289 ”.

· Data Table:
A data table contains data in a tabular form (it is the equivalent of two-dimensional
arrays in programming). For more information about data tables, see “Data Tables 289
”.

· DataRow:
A data row is an iterable collection that contains all values corresponding to the
columns of a data table for a given row. It is the product of an iteration of a data
table.

· Date Time:
Contains basic date and time information. The form that will be used to print a “date
time” variable (e.g. through a “Display message” action) depends on the machine’s
regional settings. To retrieve a special textual representation of a Date Time value
you need to convert the value into text with the "Convert DateTime to Text 766 "
action.

· Excel Instance:
A variable of that type can be created through the “Launch Excel” action. It is used
to uniquely identify the specific instance of Excel that was launched. Every other
action under “Excel” category (e.g. “Read from Excel”) will require from you to
specify an existing Excel instance (i.e. the specific excel file whose data will be

© 2018 Softomotive
read). Variables of the "Excel Instance" type can be used in place of a UI Automation
"Window Instance" in UI and Windows actions.

· FTP Connection:
A variable of that type can be created through the “Open FTP Connection” and
“Open Secure FTP Connection” actions. It is used to uniquely identify the FTP
connection that was opened. Every other action under “FTP” category (e.g.
“Download File(s) from FTP”) will require from you to specify an existing FTP
connection (i.e. the specific FTP site where the file(s) will be downloaded from).

· File:
Represents a file. Files can be used as input in any of the actions under “Files”
category. Every file has properties (e.g. Size). You can retrieve a file’s properties by
using the following notation: %VariableName.PropertyName%. For more information
about data type properties see “Data Type Properties 290 ”.

· Folder:
Represents a folder. Folders can be used as input in any of the actions under
“Folders” category. Every folder has properties (e.g. CreationTime). You can retrieve
a folder’s properties by using the following notation: %VariableName.PropertyName%.
For more information about data type properties see “Data Type Properties 290 ”.

· Browser Instance:
A variable of that type can be created through the “Launch New Internet Explorer 562
” action or the other web Launching actions. It is used to uniquely identify the
specific instance of Internet Explorer that was launched or attached to. Every other
action under “Web Automation” category (e.g. “Click Link on Web Page 583 ”) will
require you to specify an existing Internet Explorer instance (i.e. the specific browser
window that contains the link to be clicked). Variables of the "Internet Explorer
Instance" type can be used in place of a UI Automation "Window Instance" in UI and
Windows actions.

· Mail Message:
Represents an email. Email variables are populated by the "Retrieve Emails 645 " action.
Every email has properties (e.g. Subject). You can retrieve an email’s properties by
using the following notation: %VariableName.PropertyName%. For more information
about data type properties see “Data Type Properties 290 ”.

· OCR Engine:
A variable of this type can be created through the "Create OCR Engine" group of
actions. It will hold the OCR's engine's instance created in a variable, in order to be
used into further OCR related actions that need the engine to be initialized, for them
to work. Such actions are: "Extract Text With OCR", "Extract text From PDF With
OCR" and any ocr related action.

· Window Instance:
A variable of that type can be created through the “Get Window 517 ” action. It is
used to uniquely identify an application window on the user's desktop. UI and
Windows actions will require you to specify a target Window instance (i.e. the
specific window which will be acted upon / contains the target element(s)).
Advanced Topics 289

4.2.2 List Variables


Lists are collections of items of the same type. You can create a list through the
“Create New List” action (under “Variables” category) and add an item to that list
through the “Add Item to List” action. You can also create a list through actions that
generate lists as output (e.g. “Read text from file” will return a list if you select to
store the file’s contents as a list and "Get Files in Folder" action will return a List of
Files).

In order to retrieve a specific item of a list, you will have to use the following
notation:

%VariableName[ItemNumber]%

Keep in mind that the “ItemNumber” should be 0 for the first item of the list, 1
for the second and so on.

For example, if you have a list that is stored in the variable %MyList% and contains 10
items, you can retrieve the first item with: %MyList[0]% and the last item with
%MyList[9]%.

Very often the "For Each" loop is used for iterating through the items of a list.

4.2.3 Data Tables


Data tables contain data in a tabular form (it is the equivalent of two-dimensional
arrays in programming). A data table contains rows and columns and each item stored
in the data table can be retrieved through its unique row and column number. You can
think of data tables as lists: each item of the list is also a list.

There is no direct way to create a data table but there are 2 actions that generate a
data table as an output: the “Read from Excel” action and the “Execute SQL
Statement” action.

In order to retrieve a specific item of a data table, you will have to use the following
notation:

%VariableName[RowNumber][ColumnNumber]%

Keep in mind that “RowNumber” and “ColumnNumber” should be 0 for the first item (row
or column), 1 for the second and so on.

For example, if you have a data table that is stored in the variable %MyDataTable%,
you can retrieve the first item with: %MyDataTable[0][0]%.

© 2018 Softomotive
Data Rows
If you loop through a data table with a “For Each” action, the variable that will contain
the current iteration’s data, is considered to be a “Data Row”. Data rows are basically
lists: they are no different than regular lists (they contain several items, their items
can be retrieved through the regular list notation), except for the part that they
represent a row in the data table’s scheme. Remember that you can still treat them as
if they were lists without any problem at all.

4.2.4 Data type Properties


Some of the built in WinAutomation data types have properties, which are values
associated to the value stored in the variable. The value of these properties can be
accessed directly through the following notation: %VariableName.PropertyName%.

Below you can find the available properties for the different built-in WinAutomation
data types:

Data type Text has the following property:


· Length: the length (in characters) of the text stored into the variable.

Data type DateTime has the following properties:


· Year: The year part of the DateTime value.

· Month: The month part of the DateTime value.

· Day: The day part of the DateTime value.

· DayOfWeek: The name of the day (e.g. Sunday, Monday etc)

· DayOfYear: The day of the year part of the DateTime value (1-365/6)

· Hour: The hour part of the DateTime value.

· Minute: The minute part of the DateTime value.

· Second: The seconds part of the DateTime value.

Data type List has the following property:


· Count: the number of items stored into the list.

Data type File has the following properties:

· FullName: The full path to the file.

· RootPath: The root path of the file (e.g. C:\).


Advanced Topics 291

· Directory: The directory where the file is stored.

· Name: The name of the file, including the extension (e.g. MyFile.txt).

· NameWithoutExtension: The name of the file, without its extension.

· Extension: The extension of the file.

· Size: The size of the file (in bytes).

· CreationTime: The date when the file was created.

· LastAccessed: The date when the file was last accessed.

· LastModified: The date when the file was last modified.

· IsHidden: This property is true if the file is hidden or false if the file is visible.

· IsSystem: This property is true if the file is a system file or false if it is not.

· IsReadOnly: This property is true if the file is read only or false if it is not.

· IsArchive: This property is true if the file is an archive or false if it is not.

· Exists: This property is true if the file exists or false if the file does not exist.

Data type Folder has the following properties:


· FullName: The full path to the folder.

· RootPath: The root path of the folder (e.g. C:\).

· Parent: The parent directory of the folder.

· Name: The name of the folder.

· CreationTime: The date when the folder was created.

· LastModified: The date when the folder was last modified.

· IsHidden: This property is true if the folder is hidden or false if the folder is visible.

· Exists: This property is true if the folder exists or false if the folder does not exist.

Data type Mail Message has the following properties:


· MailFolder: the name folder the email message is retrieved from

· Uid: the unique identifier of the message

· From: the sender of the email message

· To: a list of values containing the recipients of the message

· Cc: a list of values containing additional recipients for the message (carbon copy)

© 2018 Softomotive
· Date: the date and time in which the message was sent

· Subject: the subject of the message

· Body: the body of the message. This can be in plain text or in HTML form

· BodyText: if the previous property contains HTML, this property contains the body
of the message in plain text form.

· Attachments: a list of File data types that represent the attachments of the
290

email message (if any) after they have been saved locally.

Data type FTPFile has the following properties:


· FullName: The full path to the file.

· Directory: The directory where the file is stored on the FTP Server.

· Name: The name of the file, including the extension (e.g. MyFile.txt).

· NameWithoutExtension: The name of the file, without its extension.

· Extension: The extension of the file.

· Size: The size of the file (in bytes).

· LastModified: The date when the file was last modified.

Data type FTPFolder has the following properties:


· FullName: The full path to the folder.

· Parent: The parent directory of the folder.

· Name: The name of the folder.

· LastModified: The date when the folder was last modified.

Data type DataTable has the following properties:


· RowsCount: The number of rows of the DataTable

· Columns: A list that contains the names of the columns of the DataTable

Data type DataRow has the following property:


· ColumnsCount: The number of columns that the DataRow holds.
Advanced Topics 293

Data type Custom Dialog Instance has the following property:


· LastButtonPressed: The name of the button that was last pressed on the dialog.

· DialogWasForciblyClosed: This property is true if the dialog was closed by a close

window command or by pressing the "Cancel Button", false otherwise.


· Handle: The handle of the Window belonging to this specific Custom Dialog.

4.2.5 Persistent Variables

What Persistent Variables are and why do I need them?

When you are creating a Process with WinAutomation, you may sometimes want to
keep the value of a specific variable available for the future executions of the Process.
Persistent Variables allow you to do exactly that: keep a variable’s value available for
the next time that the Process executes.

Before this feature was available, the standard way to keep values was to store them
into external files, a process which sometimes could be complicated. Now by simply
marking a variable as persistent we can be sure that its value will be kept between the
executions of the Process.

You can set a variable as persistent through the Tools Menu option > Variables
Manager 195 window while in the Process Designer.

© 2018 Softomotive
If the variable that you want to make persistent already exists, you can just select it
in the “User Defined Variables” tab and then hit the “Edit Variable” option. If you want
to create a brand new variable and make it persistent, click on the "Add New Variable"
button.
Advanced Topics 295

In the new dialog box, you will have to enter a name for the new variable and check
the “Variable is Persistent” option.

When you first create the persistent variable it will not have any stored value.
However, if you run the Process and give the variable a specific value, you will be able
to see the currently stored value from the “Edit Variable” window in the Process
Designer’s Variable Manager.

Persistent Variables in Compiled Processes

If you compile a Process that includes persistent variables, there will still be persistent
variables available in the compiled executable, but the stored values will be reset.

The values of persistent variables, after a compiled Process has been executed for the
first time, are stored in a file that is located in the same directory with the compiled
Process and is named according to the following notation:

CompiledProcessName.config

So if, for example, you have a compiled Process named: UploadFolder.exe, the
persistent variables will be stored in a file named UploadFolder.config that is located in
the same directory with UploadFolder.exe.

Notice, that the current value of a compiled Process’s persistent variable can be read
if you open the .config file with a simple text editor (e.g. notepad). However, in some
cases, you may want to store sensitive data, like passwords, in a persistent variable.

© 2018 Softomotive
In this case, you will have to select the “Encrypt Persistent Variables” checkbox in the
“Misc Options” tab of the “Compile Process” dialog.

This way, all the values from the persistent variables will be encrypted in the .config
file.

4.2.6 External Variables


If from a Process (Process A) you run a different Process (Process B) by using the
"Start Process" action, all variables of Process A are available to Process B. These
variables in Process B are considered "External Variables" and can be used for passing
data from one Process to another.

For Process B to access any of the external variables, the "ext:" prefix must be
included before the variable name. For example, if Process A defines a variable
%MyData%, Process B can access the value of that variable using the notation:
%ext:MyData%

4.2.7 Custom Date Formats


You can customize the way that the date is represented in the Convert Date Time to
Text Action 766 by entering characters that represent various parts of the Date/Time
along with any other characters that can be used to link the Date/Time parts.
Advanced Topics 297

Various characters and combinations can be used, some of which are displayed below.

When displayed on their own these characters produce the following formats:

· d: The Short Date (04/02/2010)

· D: The Long Date (Friday, April 02, 2010)

· f: The Full Date Time - short Time (Friday, April 02, 2010 10:00 AM)

· F: The Full Date Time (Friday, April 02, 2010 10:00:46 AM)

· g: General Date Time - short Time (04/02/2010 10:00 AM)

· G: The General Date Time - long Time: (04/02/2010 10:00:46 AM)

· M: The Month and day of the month: ( April 02)

· m: The Month and day of the month: ( April 02)

· r: A Shorter Full date (Fri, 02 Apr 2010 10:00:46 GMT)

· R: A Shorter Full date (Fri, 02 Apr 2010 10:00:46 GMT)

· s: The Sortable Date Time (2010-04-02T10:00:46)

· t: The short time (10:00 AM)

· T: The Long Time (10:00:46 AM)

· y: The Month and Year: (April, 2010)

When used as a combination the characters have the following representation:

· d: The day of the month as a number from 1 to 31 (2)

· dd: The day of the month as a number from 01 to 31 (02)

© 2018 Softomotive
· ddd: The abbreviated day of the week (Fri)

· dddd: The full day of the week (Friday)

· gg: The period era (A.D.)

· h: The hour as a number from 1 to 12 (10)

· hh: The hour as a number from 01 to 12 (10)

· HH: The hour as a number from 00 to 23 (10)

· m: The minutes as a number from 0 to 59 (0)

· mm: The minutes as a number from 00 to 59 (00)

· M: The month as a number from 1 to 12: (4)

· MM: The month as a number from 01 to 12 (04)

· MMM: The abbreviated month (Apr)

· MMMM: The month (April)

· s: The seconds as a number from 0 to 59 (46)

· ss: The seconds as a number from 00 to 59 (46)

· tt: The AM/PM designator (AM)

· y: The last digit of the year (0)

· yy: The last two digits of the year (10)

· yyyy: The year (2010)

· zz: The time zone (+02)

· zzz: The time zone in full format (+02:00)

You can mix and match these special characters in the Custom Date Time Format and
add any other characters you wish to connect them. If you wish to use any of the
characters seen in the above list as a connection character you will need to use the
backslash(\) in front of it. For example if in your custom date you need to represent
the phrase 'The date is ' followed by the Date you will need to enter the following in
the Custom Date field:
Advanced Topics 299

T\he \da\te i\s: d/M/yy

4.2.8 Custom Objects


Custom Objects are a type of Variable in WinAutomation that allows users to generate
and translate data in JSON format.

This topic consists of the following sections:

a) What is JSON and why is it important?

b) The JSON format

c) The Custom Object format

If you already know what JSON is please feel free to jump straight to c) The Custom
Object format.

a) What is JSON and why is it important?

JSON is a text format that is:

a) easy for humans to read and write,

b) easy for machines to parse and generate and

c) completely language independent but uses conventions that are familiar to


programmers.

These properties make JSON an ideal data-interchange language that is very popular
among web developers.

JSON stands for Javascript Object Notation and it is based on a subset of the
JavaScript Programming Language. You can read more about JSON on the Standard's
official page.

b) The JSON format

Here is an example of JSON data:

© 2018 Softomotive
{
"firstName": "John",
"lastName": "Locke",
"address": {
"streetAddress": "24 2nd Street",
"city": "Somerset",
"kingdom": "England",
"postalCode": 10210
},
"phoneNumbers": [
"212 555-1294",
"646 555-6567"
]
}

As you can see, the JSON format is inspired after two structures:

i) an Object, which can be seen as an unordered set of name/value pairs, like


{ "firstName": "John", "lastName": "Michael" } inside curly braces and separated by
commas.

All names has to be strings (i.e. text values), while values can be almost anything,
from Boolean to another Object.

Another thing to note is the colon (:) used to separate the name from its
corresponding value.

ii) an Array, which is an ordered collection of values, like [1,2,3,4] inside brackets and
separated by commas.

Same as before, values can be almost anything, from numbers to strings!

The combination of these two structures is allowing the creation of ordered lists of
name/value pairs. You can access individual object values by using either the dot (.)
notation in the following manner:

myObj = { "name":"John", "age":378, "car":null };


x = myObj.name;

or by using the bracket ([]) notation:

myObj = { "name":"John", "age":378, "car":null };


Advanced Topics 301

x = myObj["name"];

c) The Custom Object format

Understanding the JSON format is important, because Custom Objects were created in order to allow
us to build and use data in that format within WinAutomation.
Just like JSON, custom objects in WinAutomation consist of a name and a value; they
are essentially a pair of two data:

1. A Property Name:

A Property name will be by default a Text Value. Given that fact it can consist of
almost any combination of characters.

However:

-We can use bracket notation in order to access the value corresponding to the
Property Name of the example Custom Object in the following manner.

Setting %BooleanTrue% as true via "Tools>Variables Manager" and 'writing' the


following sequence of actions:

© 2018 Softomotive
If we test this on Process Designer, it will produce the following Variable values:

-if we try to access the same value, using dot notation, we will get a Design error on
action 4, Set Variable %Newvar2%.
Advanced Topics 303

This means that in order to be able to access a value using dot notation, we need to
be careful to avoid producing syntax errors.

It also should be noted that two different Properties of a Custom Object may have the
same Value but not the same Name! (This will produce a Runtime Error informing us
that Property Name exists.)

2. A Property Value:

Just like in JSON, property values can be of almost any kind, from a Data Table to a
List.

This versatility allows you to use Custom Objects either as a medium that allows you
to translate data into JSON within WinAutomation, or as a custom variable type that
can increase your own convenience and capabilities in WinAutomation.

For example, let us consider another example:

© 2018 Softomotive
If we test this on Process Designer, it will produce the following Variable values:

What is noteworthy here is the %NewCustomObject.wife[1]% dot notation syntax


we used in order to access the Text Value "Amanda".

This combination of dot and bracket notation is very convenient for accessing list
items within the Property Value of a Custom Object and is definitely something you
should know in order to make the most of your custom object adventures.

It also should be noted that two different Properties of a Custom Object may have the
same Value but not the same Name! (This will produce a Runtime Error informing us
that Property Name exists.)
Advanced Topics 305

4.3 Loops
WinAutomation allows you to use “Loops”, a concept that is really important in
programming and proves to be invaluable when combined with WinAutomation’s
actions. The idea behind a loop is to make WinAutomation repeat one or more actions
multiple times. Loops in WinAutomation come in 3 flavors:

· Loop: Repeats one or more actions a specific number of times. For more information
see “Simple Loops 305 ”.

· Loop Condition: Repeats one or more actions until a specific condition is met. For
more information see “Loop Condition 306 ”.

· For each: Repeats one or more actions for every item contained in a list or data
table. A different item of the list (or data row of the data table) will be saved in a
variable during each iteration, allowing you to use it inside the actions of the loop.
For more information see “For Each 307 ”.

Note: WinAutomation will automatically indent the block of actions that will be
repeated by a loop.

4.3.1 Simple Loops


WinAutomation implements simple loops with the “Loop 399 ” action. Basically, a simple
loop will repeat the block of actions that it contains, for a set number of times. Note
that a specific variable can be created to keep track of the current iteration’s number.

Use
A simple loop is ideal to use in 2 cases:

1. If you know the exact number of times that action(s) should be repeated

2. If the %LoopIndex% variable must be used somewhere inside the loop (“LoopIndex”
is the default variable’s name that WinAutomation uses to store the current
iteration’s number).

© 2018 Softomotive
3.

You can see an example of a simple loop usage in “Advanced” category of


WinAutomation’s examples: “8 - Rotate Excel Data”

4.3.2 Loop Condition


A “Loop Condition” is implemented in WinAutomation through the homonym action 401 .
Basically, Loop Condition will repeat one or more actions while a certain condition is
true (for more information about conditions check “Conditionals 310 ”). Keep in mind that
at some point, inside the loop, you will have to make the loop’s condition false
otherwise it will keep on repeating and your process will never end (this is called an
endless loop).

Example:
Suppose that you have an executable that you want to keep executing until it returns
a non-zero error code. All you have to do is create a Loop Condition that will repeat a
“Run Application” action while the %AppExitCode% equals to zero.
Advanced Topics 307

4.3.3 For Each


A “For Each 402 ” loop, iterates through every item of a list or data table, and stores the
current item in a variable. This kind of loop is extremely useful when you do not know
or you do not need to know the number of the iterations that will be needed, but you
do want to iterate through every item of a list (or or row of a data table) and use
each one of them in an action (or a series of actions).

Usage Examples
There are plenty of situations that you may need to use a “For Each” loop:

If you want to check which of the text files that are contained in a list have a specific
phrase in it, or if you need to use each data row’s contents to fill in a web form, you
will have to use it. Basically, if you use the words “For Each” when you are describing
the task that you need to automate, you will most likely have to use this action.

Also if you choose to read a text file as a list where each item of the list will be an
item, you can use a "For Each" loop in order to iterate through each line and apply
some actions on it.

© 2018 Softomotive
4.4 Connecting to a Database
WinAutomation can connect to any Database and apply SQL queries to it. All you have
to do is find the correct connection string and pass it to the "Execute SQL
Statement 682 " action.

In computing, a connection string is a string that specifies information about a data


source and the means of connecting to it. It is passed in code to an underlying driver
or provider in order to initiate the connection.

The connection string may include attributes such as the name of the driver, server
and database, as well as security information such as user name and password.

4.4.1 Connect to Excel or Access Database

Connect to an Excel Database:


To connect to an Excel database the most common connection string that one can
use is:
Advanced Topics 309

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:
\myFolder\myExcelFile.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES";

Where Data Source is the full path of the Excel File.

Connect to an Access Database:


To connect to an Access Database the most common connection string is the
following:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:
\myFolder\myAccessFile.accdb; Persist Security Info=False;

Where Data Source is the full path of your Access Database

For other Databases like SQL Server, Oracle, My SQL please, have a look at the
Connection strings 309 section.

4.4.2 Connection Strings and Drivers


More connection strings for any kind of Database can be found in the link below:

www.connectionstrings.com

Of course you are free to use variables in any connection string like for example:

Server=%ServerAddress%;Database=%myDataBase%;User Id=%Username
%;Password=%Password%;

or

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%ExcelFile%;Extended
Properties="Excel 12.0 Xml;HDR=YES";

Most common Drivers List:


You must download and install the appropriate drivers from the list below according to
the database that you want to connect to:

https://www.microsoft.com/en-us/download/details.aspx?id=5793

https://www.microsoft.com/en-us/download/details.aspx?id=13255

https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=23734

© 2018 Softomotive
http://www.ch-werner.de/sqliteodbc/

https://dev.mysql.com/downloads/connector/odbc/

https://dev.mysql.com/downloads/connector/odbc/5.1.html (For previous generally


available ODBC connectors. Make sure that you download the correct one according to
your machine characteristics 32-bit or 64-bit)

An example on how the "Execute SQL Statement" action with excel and further on for
any kind of database do click on the following link:

http://www.winautomation.com/community/topic/sql-syntax-example/

4.5 Conditionals
Conditionals are very important concept WinAutomation, since they allow you to
execute specific actions or blocks of actions only if a certain condition is met. If the
condition is not met, the action(s) that the conditional structure contains will be
skipped.

Usage Examples
There are tons of examples about where you might want to use a conditional: if you
want to delete only files that have not been modified during the last week, if you want
to know whether a specific process is running before launching an application, if you
want to verify that a file does not exist before creating it and so on. Practically,
conditionals are the first thing that you will have to use in order to automate tasks
through WinAutomation, since they give you the ability to choose whether some part
of your process will be executed or not.

Note: WinAutomation will automatically indent the block of actions that is contained in
a conditional structure.

4.5.1 If/Else/EndIf
The most common way to control which actions of your process will be executed is to
use the “If 368 ” action. This action checks whether or not a certain condition is true. If
so, the action or block of actions, that are included between “If” and “End If”, will be
executed.
Advanced Topics 311

An “If” statement consists of 2 operands (the operands are the pieces of information
that will be compared) and an operator. The operator can be:

Ψ “is equal to” (=),

Ψ “is not equal to” (<>),

Ψ “is greater than” (>),

Ψ “is greater or equal to” (>=),

Ψ “is smaller than” (<)

Ψ “is smaller or equal to” (<=)

Ψ Starts with

Ψ Does not Start with

Ψ Contains

Ψ Does not contain

Ψ Ends with

Ψ Does not End with

Ψ Is Empty

Ψ Is not Empty

and it defines how the first operand should relate with the second operand in order for
the condition to be met.

An “If” statement may optionally contain an “Else” action. This action should always be
placed between an “If” and an “End If” action, and it defines the action or set of
actions that will be executed if the condition that is defined by the “If” statement is
not met. Basically, you will have to place the actions that will be executed if the
condition is met between “If” and “Else”, and the actions that will be executed if the
condition is not met between “Else” and “End If”.

You can also use the "Else If" action (which can be placed within the If/End If block
and always before the Else action) to set mutually excluded conditions for which
different blocks of actions need to be executed.

Note: If the first and the second operands are variables, you will have to make sure
that they have the same data type or the condition will, most likely, not be met (or it
will always be met if you used the <> operator). For example, if your conditional

© 2018 Softomotive
checks whether a variable of Date Time type is equal to a variable that contains a file,
this condition will never be met, hence the set of actions contained in the conditional
will never be executed.

4.5.2 If Variations
Apart from the standard If action, there are 5 additional conditional actions:

1. If File Exists 369 : Allows you to check if a file exists (or does not exist) before
executing an action (or a block of actions). This action can prove very useful if, for
example, you want to know if a specific file exists before performing an action on it.

2. If Folder Exists 370 : Allows you to check if a folder exists (or does not exist) before
executing an action (or a block of actions).

3. If Service 372 : Allows you to perform an action (or a block of actions) if a specific
service is running (or is paused or is stopped).

4. If Process 373 : Allows you to perform an action (or a block of actions) if a specific
process is running (or is not running).

5. If Window 374 : Allows you to perform an action (or a block of actions) if a specific
window is open (or is not open).

6. If Image 377 : Allows you to perform an action (or a block of actions) if a specific
image is found/is not found on the screen.

7. If Web Page Contains 387 : Allows you to perform an action (or a block of actions) if
a web page contains/does not contain a specific element or some text.

4.6 Installing MODI for OCR


To make the OCR Actions usable in runtime, please, install MODI for Microsoft Office
2007+.

This document provides methods you can follow to install MODI (Microsoft Office
Document Imaging) on your computer. It also describes the alternative

methods that you can use to regain the functionalities of certain MODI features.

To install Microsoft Office Document Imaging (MODI) for use with Microsoft Office
2010, use one of following methods.

Method 1: Download and install MDI to TIFF File Converter


Advanced Topics 313

To download and install MDI to TIFF File Converter, go to the following Microsoft
website:

http://www.microsoft.com/en-us/download/details.aspx?id=30328

Method 2: Install MODI by installing SharePoint Designer 2007

SharePoint Designer 2007 is provided as a free download from the Microsoft Download
Center. To download SharePoint Designer 2007 and only include

MODI during the installation, follow these steps:

1. Download and run the SharePointDesigner.exe file from this location:

Download SharePoint Designer 2007 (https://www.microsoft.com/en-


us/download/details.aspx?displaylang=en&id=21581)

2. Review, and then accept the software license.

3. Click Customize to open the installation options.

4. On the Installation Options tab, click the down arrow and select Not Available
for these three sections:

• Microsoft Office SharePoint Designer

• Office Shared Features

• Office Tools

5. Expand Office Tools.

6. Click the down arrow for the Microsoft Office Document Imaging option, and then
select Run all from my computer.

7. Click Install Now, and then click Close.

© 2018 Softomotive
Screenshot displaying the location of MODI during a SharePoint Designer 2007 installation

To start Microsoft Office Document Imaging, follow these steps:

1. Click Start, and then select All Programs.

2. Click Microsoft Office, and then select Microsoft Office Tools.

3. Click Microsoft Office Document Imaging.

Method 3: Install MODI with the 2007 Office System media

To use MODI in the 2007 Office System together with Office 2010, follow these steps:
Advanced Topics 315

1. Start the 2007 Office System setup process.

2. Review, and then accept the software license.

3. Click Customize to open the installation options.

4. On the Installation Options tab, click the down arrow and select Not Available
for all sections.

5. Expand Office Tools.

6. Click the down arrow for the Microsoft Office Document Imaging option, and
then select Run all from my computer.

7. Click Install Now, and then click Close.

Screenshot displaying the location of MODI during the 2007 Office system installation.

© 2018 Softomotive
To start Microsoft Office Document Imaging, follow these steps:

1. Click Start, and then select All Programs.

2. Click Microsoft Office, and then select Microsoft Office Tools.

3. Click Microsoft Office Document Imaging.

4.7 Get Web Browser Element Coordinates


There are cases when you might need to get the coordinates of a web element in a
browser, either to hover the mouse to it or send a right click, or simply for getting the
coordinates to use them on an image related action.

The "Get details of element on web page" 609 action supports the
"waelementcentercoords" attribute which retrieves the X,Y coordinates of the
element relative to the browser. However, the X and Y coordinates will be given back
by WinAutomation in the form of a text with the two values being separated by a
comma like:

%Attribute%= 1021, 52

Therefore, should you wish to separately get the X,Y values you should split the text
using "," as a delimiter and then trim them. Also, as their data type is "Text" you will
need to convert them to "Number".

You should also note that based on the fact that each browser display area may be
different - because of the bookmarks or other bars that the user has chosen to display
- you should also use the:

%Browser.DisplayRectangleX%

%Browser.DisplayRectangleY%

variables and finalize the X,Y coordinates that the mouse should move to.

Below, there is an example that will send a right click on a Web Page element after
getting its coordinates:
Advanced Topics 317

4.8 CSS Selectors


Web Automation functionality is one of the most important and commonly used
features of WinAutomation. Web-related actions will allow you to automatically click on
links, fill and submit web forms, as well as scrape data from web pages. You can build
Web Automation Processes either by combining the appropriate Actions in the Process
designer, or by recording your interaction with a webpage and automatically converting
it into Process actions through the Web Recorder.

© 2018 Softomotive
While WinAutomation provides you with quite a specific visual feedback (through the
Web Helper or the Extract Preview window) about the webpage elements you have
selected, it can also provide you with detailed information about the values used to
point to the position of these elements in the HTML page, found in the Control
Repository.

CSS (standing for Cascading Style Sheets) was introduced together with HTML 4, to
denote the presentation semantics (the look and formatting) of a document written in
a markup language. A CSS rule (essentially the statement that tells browsers how to
render particular elements on an HTML page) consists of two parts, the selector
(which "selects" the elements on an HTML page that are affected by the rule set) and
the declaration block (which defines the style to be applied to those elements). You
will find links to several external resources focusing on CSS, at the bottom of this
article.

In WinAutomation we use the CSS selectors to pinpoint the web page elements we
want to interact with. The information that is generated and displayed in the CSS
Selector field is based on the underlying tree structure of the HTML page.

For most of the cases, defining the desired webpage elements through the Web Helper
proves to be sufficient but there are exceptions for which the user has to manually
point to the html element. This may be necessary either due to specific design
characteristics of the HTML page structure or to subsequent -to our Process design-
changes of it (although WinAutomation is adaptable to some of these variations and
can still track the initially user-defined elements).

To overcome this inconsistency, a user can manually include or remove attributes for a
selector, or build one from scratch that will uniquely and undoubtedly define the
desired element.

Just click on the control whose selector you want to edit, click on the selector, click
on "Edit", select the "Custom" option from the top left part of the Selector Builder
window and build your selector in the CSS Selector field. The steps are explained in
detail in the Building a WebAutomation Process 239 topic.

Selecting controls - HTML elements with CSS Selectors, can be achieved relatively
easy within WinAutomation (with add control and a LeftCtrl+LeftShift+click), but it
requires a more advanced knowledge of HTML and CSS when you want to build your
own selectors.

Especially for the Extract Data from Web Page action, the CSS Selector can be edited
through the Advanced Settings Icon of the Web Helper window (opened by the Specify
Web Data to Extract button of the action’s Property Window).
Advanced Topics 319

Moreover, when extracting list-type data from a web-page, the CSS Selector has the
following structure:

where the “Base CSS Selector” represents the route on the HTML tree that points to
the level of elements that constitute the list, while the “CSS Selector” part points to
the specific attribute of each element (or each descendent) we want to extract.

© 2018 Softomotive
The same logic applies also when extracting data in table format, as also
explained in detailed in the Using WinAutomation > Web Automation (Web Data
Extraction Part I 255 , Web Data Extraction Part II 262 , Web Data Extraction Part
III) 265 topic.

In this case we have to specify as many CSS Selectors as the columns of the table
(the categories of data we want to retrieve for each item).

Similar to the inconsistencies that may appear when defining the desired elements
through the Web Helper, we may also have to manually input the “CSS Selector for
Next Page of Search Results” (used for cases of extracting records in forms other than
Single Variables).

Using manually inputted CSS selectors can be a powerful alternative in pointing to the
desired elements for the minority of cases that webpage ’s structure hinders
WinAutomation’s ability to automatically spot and interact with them.

Using classes (.) and ids (#) in the CSS Selectors:


To View the source HTML code of a web page, press F12. There you can see how the
page is structured and how each element is represented.

If the element you are trying to access contains a text i.e. it is a div and the html
shows the below:

<div class="someclass" id="someid">text</div>

Should you wish to use its id or class i.e. then you should have something like

...>...> div.someclass or ...>...> div[class="someclass"] if you want to use its


class or,
Advanced Topics 321

...> ...> div#someid or ...> ...> div[id="someid"] if you want to use its id.Note,
that the id attribute is unique in the HTML for each element, so if you know the id then you
can ignore the previous route and simply go with "div#someid" !

A very useful attribute that you can use is the ":contains("sometext")". If you know that the
element you are trying to access contains a specific string then you can use this attribute to
access it, i.e. for the example above:
...>...> div :contains("text")

External Links and Helpful Tutorials


http://www.w3schools.com/css/css_intro.asp

http://www.w3schools.com/cssref/css_selectors.asp

http://css.maxdesign.com.au/selectutorial

http://benhowdle.im/cssselectors

https://api.jquery.com/category/selectors/

http://www.winautomation.com/community/topic/projeto-web-recorder-running-
extremely-slow/#post-62796

4.9 % and \% Notation


In WinAutomation, the % sign is used as brackets around a Variable. For example,
"%name%" is the Variable 'name'. When you use %name% as an input, the Action will
use the value that has previously been stored in that Variable, so you should have an
earlier Action that assigned a value to %name% as an output. By assigning output
values to Variables, and then using them as input in later steps, you can pass
information through a WinAutomation Process.

All Variables are cleared at the end of a Process, so Variables can only run from one
Process to another if they run at the same time - see External Variables 296 .

© 2018 Softomotive
There are two special situations to this notation. The first, if you want to use the
percent sign as a percent sign, special notation is needed so as not to call a Variable.
Therefore, write a backslash first to denote 'this is not a Variable'. Thus if you want
to, say, display the text "5%" you should write "5\%" instead.

If you want to access a file named by a Variable, you might write "C:\folder\%filename
%". This won't work, as "\%" means it isn't a Variable. Therefore, in this special
case, you would need to write, "C:\folder\\%filename%", as the double backslashes
mean the Variable is a Variable. Just remember:

· %filename% is the Variable 'filename'

· \%filename is the text %filename

· C:\folder\\%filename% is the path to a file named in the Variable 'filename' in the


folder C:\folder\

4.10 Exception Handling


Exceptions occur when a Process finds itself in an unexpected situation. For example a
"Read Text from File" Action may attempt to read from a file that does not exist while
the Process is running. It is also known as a Run-Time Error. The default response of
WinAutomation to Exceptions is to fail that Process. However, WinAutomation also
allows for other options. By going into the Exception Handling tab of an Action
Properties Box, you can specify how the Action will handle an exception.
Advanced Topics 323

The Exception Handling Tab of an Action for a Selected Exception

In general, there are four responses an Action can have to an exception.

First, by default, it will fail the Action and thus the Process. Next, you could tell it to
retry the Action after a specified delay, as many times as you want. For example, you
could set the Exception Handling to retry 8 times, once every 5 seconds.

Or, by clicking on a specific exception, you could specify how this exception should be
handled. The Action could run a different Process and/or continue. If you choose to
continue, you can then tell the Action to go to the next action, a specific Label or
Function (set to create a certain response to the exception), to set a Variable, that
can give you a record of the exception for later Actions or even repeat that action .

Once you have set a response to one specific exception, you can click on another to
record a different response. Thus the Action could handle three different exceptions in
three different ways after retrying four times.

© 2018 Softomotive
It is very important, that you can select from a variety of four options in the exception
handling. First, you can set another value to a variable and retry the action using the
new values of the variable. One more option that the user has, is to run another
process upon the exception. For example, a process could be triggered that would
email the user that the process failed. Moreover, the user can set the process to run a
function after the exception occurs in order to complete part of the task. Last but not
least, the user can set the process to proceed with the process execution from
another point of the process.

Please note, that you can do the above for all the exceptions in one action, or
alternate them according to the nature of the exception thrown in one action.

The Exception Handling Tab of an Action for All Exceptions

Note that exceptions that have some custom behavior assigned, are displayed in bold
(as you can see in the first screen-shot above). Exceptions that simple cause the
Process to fail (the default behavior) are displayed in normal text.

Exception Handling is different the Error Handling Tab 132 in the Console as Error
Handling is what WinAutomation should do in the event that a Process failed,
while Exception Handling is what to do when something unexpected occurs in a
specific action so that the Process does not fail.
Advanced Topics 325

4.11 Exception Block


As mentioned previously, the Exception Handling 147 , is being used when a Process finds
itself in an unexpected situation. It is also known as a Run-Time Error. The default
response of WinAutomation to Exceptions is to fail that Process. However,
WinAutomation also allows for other options. By going into the Exception Handling tab
of an Action Properties Box, you can specify how the Action will handle an exception.

The exception handling, can be placed either for an action, or for a group of actions
that are contained between the "Begin Exception Block" and "End Exception Block"
actions.

As in the single action's exception handling, the "Exception Block" provide the users
with three responses for the process to have upon an exception.

First, upon an exception, the process is able to set a value to a variable. This for
example could be prior to sending an email and the variable could state that the
execution failed.

Secondly, in case an exception occurs within the block, another function could be
triggered.

Last but not least, the "Exception Block" has the option to continue the process
execution, either with the next action, the first action after the block, repeating the
action, or even repeating the whole block execution.

© 2018 Softomotive
In the above example, in case of an exception in any of the actions, the "Exception
Function" is going to be triggered.

Please keep in mind the fact, that in case an action that is contained in an "Exception
Block" already has an exception handling rule set and fails, both rules will apply, first
the actions' and second the exceptions'.

Exception Handling is different than Error Handling Tab 132 in the Console as
Error Handling is what WinAutomation should do in the event that a Process
failed, while Exception Handling is what to do when something unexpected
occurs in a specific action so that the Process does not fail.
Advanced Topics 327

4.12 WinAutomation on the System Tray


By right clicking on the WinAutomation icon in the system tray you will get the
following window.

From here you can

1. Open the WinAutomation Console

2. Show the Status Monitor Window 135

3. Stop All running Processes

4. Exit WinAutomation. By Exiting WinAutomation you are closing the WinAutomation


Console and Stopping all WinAutomation Services (Triggers and Schedules will not
apply if the WinAutomation Services are not running in the background)

4.13 Image Recognition


There are three actions based on Image Recognition: "Wait for Image", "If Image" and
Move Mouse to Image. Both of these Actions require the computer to recognize an
image on the screen.

How the Image Recongition works?

Image Recognition works by checking one pixel (in your image) to another (starting in
the top left corner and working across then down the screen). If that pixel matches, it
checks the second. If the first seven match, but the eighth doesn't, it checks the next
pixel against the first in its image.

To use Image Recognition, first you take a screenshot of the part of the screen that
you want. Once that image is stored, when the Process gets to that Action, it will
start working on finding the stored image. Move Mouse to Image is useful if an image
(like a button you need to click) could move.

Since Image Recognition works by comparing one pixel to another, if your saved image
and most of the screen has a certain color in the upper left corner, it can take some
time to find the right image. To make this more efficient, start with a less-common

© 2018 Softomotive
color in the upper left corner. For example, with a white background for most of the
screen, this image

will take less time to find than this image.

Both will find the image, but the first will be quicker. The less of a color above and to
the left of your image's first pixel color, the faster the Action will work.

NOTE: Image recognition actions are unfortunately not applicable across different
screen resolutions. This is why its use, is suggested as a last resort, while at the same
time taking under consideration that the script will run on a certain screen analysis.
For, example should you wish to compile a Process to a stand alone executable with
the Professional Edition, it is suggested that you refrain from using Image recognition
actions, unless you are 100% sure that the resolution will be the same across the
target machine that will run the application.

4.14 Interactive/Non Interactive Processs


Any time you use the keyboard or mouse, you are creating input for your computer;
and any time something shows on the monitor, your computer is showing output.
These are called interactive functions because the computer interacts with you.

Non-interactive functions are those that don't require input (keyboard & mouse) or
create output on your monitor. For example, if your computer is set up to
automatically connect to the Internet on start-up, this is non-interactive as you don't
have to do anything, and nothing shows up on the monitor. Likewise, computers will
check email, install updates, move files, etc - all without any action or knowledge on
your part.

Since WinAutomation can make changes automatically, without input or output, a


Process can be interactive (needing keystrokes or mouse events with or without
Macros) or non-interactive depending on the actions it contains.

As interactive functions can only work when a user is logged in, only non-interactive
Advanced Topics 329

Processes can be run when all users are logged out.

A Process's interaction with the computer status can be set through the Run Policy
tab 144 of the Process Properties window.

4.15 Manage Processs Database


Processes are stored collectively in one database file (Processes.dat), which by
default is stored in a specific location.

The options that you have with the database are described in detail in the Options >
Settings > Processes File tab.

4.16 Controlling WinAutomation from the command line


Another way to access WinAutomation Processes is through the Command Line. This is
mostly useful if you write your own scripts or programs and you want to run
WinAutomation Processes from your programs.

You can control WinAutomation from the command line using the
WinAutomationController.exe that is located in the installation folder of WinAutomation.
WinAutomationController.exe has the following three switches:

· /start - this will start a specified Process, using the following format:

Example: WinAutomationController /start processPath processCLA1


processCLA2

· /stop - this will stop a specified Process, included as a Command Line Argument

Example: WinAutomationController /stop processPath

· /ListRunning - this will list all running Processes at the moment. The information
that the command line will give back to you, will include the number of Processes
that are running and a list with all the running Processes instances.

Example: WinAutomationController /listrunning

© 2018 Softomotive
WinAutomation Controller /listrunning

'processCLA1' is the first Command Line Argument you include, 'processCLA2' is the
second, etc. Command Line Arguments are information you need to send to the
Process, such as a file path, URL or other needed information, and can be retrieved by
the WinAutomation Process with the "Get Command Line Arguments" Action, under
WinAutomation Actions.

The processPath is the path in the WinAutomation Console for the particular Process,
from a base directory of My Processes in the Folders Pane on the left side. So if your
Process is in the My Processes directory, the name of the Process is sufficient. If you
have put the Process in a subfolder, you will need to include that information in the
processPath.

Note: if the processPath contains spaces, it should be enclosed in double quotes (e.g.
WinAutomationController /start "My Process")

As an example, say you have created a Process that uploads a file that you specify to
an FTP site you designate. You want another program to call up this WinAutomation
Process, UploadFile, from the Command Line. The Process has not been compiled, and
is stored in the subfolder of My Processes called 'FileProcesses'. It will need to be told
where the file to be uploaded is located, but the URL to upload the file to was already
set in the Process. Your Command Line would look like this:

WinAutomationController /start FileProcesses/UploadFile C:


\NewFile\upload.txt
Advanced Topics 331

You can also import and export a Process to and from WinAutomation from the
command line using the following switches:

· /import - this will import the specified waj file into the WinAutomation Processes
database (within the specified folder)

Example: WinAutomationController /import "c:\Users\Some


User\Documents\MyProcess.waj" "My Processes/Examples"

· /export - this will export the specified Process into a waj file on the disk.

Example: WinAutomationController /export "My


Processes/Examples/MyProcess" "c:\Users\Some
User\Documents\MyProcess.waj"

Furthermore, you can also enable and disable a Process in WinAutomation from the
command line using the following switches:

· /enable - this will enable the process specified in the process Path.

Example: WinAutomationController /enable "/My Processes/Path to/Some


Folder/MyProcess"

· /disable - this will export the specified Process into a waj file on the disk.

Example: WinAutomationController /disable "/My Processes/Path to/Some


Folder/MyProcess"

Additionally, you can also get all WinAutomation folders or a specific's folder Processes
data under a specified folder in XML format and display the results in the console or via
a file:

· /getallfolders (console|file path) - this will get all WinAutomation folders in XML
format and display the results in the console or via a file

Parameters: console - print the data to the console

file path - print to the file specified by path

· /getProcessesoffolderPath (console|file path) - this will get a specific's folder


Processes in XML format and display the results in the console or via a file

Parameters: folderPath - folder path containing the Processes you want


to get. ID can be retrieved by executing the /getallfolders command

console - print the data to the console

file path - print to the file specified by path

© 2018 Softomotive
Last but not least, you can export the data from a server to a specific data path:

· /exportserverdata fileToExportServerDataPath - this will export data from the


server and store them in fileToExportServerDataPath

Example: WinAutomationController /exportserverdata textFilePath

Exit Codes of the WinAutomation Controller


It is a common practice for applications to return a certain code (number) upon
termination; this number is called the "Exit Code". The Exit Code is 0 (zero) when the
application terminates normally, while a non-zero value usually indicates that an error
was encountered during the execution. The WinAutomation Controller returns one of
the following non-zero values whenever an error is encountered:

Exit Meaning
Code(s)
1 The syntax of the command is incorrect
2 Process not found
3 Process to be stopped was not found running
6 The file to be imported does not appear to be a Process (.waj) file
7 Cannot read from the file to be imported
8 Cannot find the Process to be exported
9 Cannot write the Process file to the specified path
100 General Exception while performing the requested operation*
101 Could not communicate with the WinAutomation Service / Service
Unavailable

* Additional information regarding this error will be produced and stored into
WinAutomation's Logs.

The "Run DOS Command 340 " is suitable for both running the WinAutomation Controller,
as well as storing the returned Exit Code into a variable for later use.
Advanced Topics 333

4.17 Valid Key Codes for the Send Keys Action


Consider the following scenario: You need to increase the font-size in a Word
document by pressing CTRL + SHIFT + '.', using the Send Keys Action.

In this case, you would want to simulate the dot key press, which is not the same as
sending the dot character. To simulate key-presses inside a Send Keys Action, use the
following notation:

{KeyCode}

where KeyCode is the capital form of the letter itself for letters A-Z, OemSemicolon for
';', Oemplus for '+', Oemcomma for ',', OemMinus for '-', OemPeriod for '.', OemQuestion
for '?', Oemtilde for '~', OemOpenBrackets for '[', OemPipe for '|', etc. You will find the
full list of the valid Key Codes at the bottom of this help topic.

To return back to the Word example, the font-size increase should be written as:

{Control}({Shift}({OemPeriod}))

To produce a colon ':' key press, you may use

{Shift}({OemSemicolon})

The same rule applies for other characters produced by pressing Shift + another key.

Full List of Valid Key Codes

LButton BrowserS D0 Add


earch
RButton D1 Separator
BrowserF
Cancel avorites D2 Subtract
MButtonBrowserH D3 Decimal
XButton ome D4 Divide
1 VolumeMu D5 F1
XButton te
2 D6 F2
VolumeDo
Back wn D7 F3

Tab VolumeUp D8 F4

LineFee MediaNext D9 F5
d Track A F6
Clear MediaPrev B F7
iousTrack
Enter C F8

© 2018 Softomotive
Return MediaStop D F9
ShiftKe MediaPlay E F10
y Pause
F F11
Control LaunchMai
Key l G F12

Menu SelectMed H F13


ia I F14
Pause
LaunchAp
CapsLo plication1 J F15
ck K F16
LaunchAp
Capital plication2 L F17
Hangul OemSemi M F18
Mode colon
N F19
HanguelOem1
Mode O F20
Oemplus P F21
KanaMo
de Oemcom Q F22
ma
JunjaMo R F23
de OemMinu
s S F24
FinalMo
de OemPerio T NumLock
d
KanjiMo U Scroll
de Oem2
V LShiftKey
HanjaM OemQues
W RShiftKey
ode tion
X LControlKey
Escape Oem3
Y RControlKey
IMECon Oemtilde
vert Z LMenu
Oem4
IMENon LWin RMenu
convert OemOpen
Brackets RWin BrowserBack
IMEAcc
ept OemPipe Apps BrowserForward

IMEAce Oem5 Sleep BrowserRefresh


ept OemClos NumPad0 BrowserStop
IMEMod eBrackets NumPad1
eChang Oem6
e NumPad2
Advanced Topics 335

Space OemQuot NumPad3


es
Prior NumPad4
Oem7
PageUp NumPad5
Oem8
PageDo NumPad6
wn Oem102
NumPad7
Next OemBack
slash NumPad8
End
ProcessK NumPad9
Home ey
Multiply
Left Packet
Up Attn
Right Crsel
Down Exsel
Select EraseEof
Print Play
ExecuteZoom
Snapsh NoName
ot
Pa1
PrintScr
een OemClear
Insert KeyCode
Delete Shift
Help Control
Alt
Modifiers

4.18 Copy/Paste Controls


Copying and Pasting an action from one process to another, copies the Controls and
the Images that are connected with the selected action.

In case a control or an image exists in the process with the same name, the control is
being renamed by getting an index number (n).

© 2018 Softomotive
Two Controls with the same name

Two Images with the same name


5. Actions Reference
5 Actions Reference
5.1 System
5.1.1 Run Application Action

Description:
This action executes an application or opens a document by executing the associated
application

Properties:
Actions Reference 339

Application Path:
Insert executable file here, as a complete file path.

Command Line Arguments:


Add extra arguments that would go after the executable file name. For example, you
could enter notepad.exe in the Application Path, and a specific text file in the
Command Line Arguments.

Working Folder:
Enter the full path of the folder to work out of, if applicable.

Window Style:
Choose the appearance and size of your application Window when it opens.

After Application Launch:


Choose whether the next action execute immediately, or wait until the program loads
or completes

Do not wait more than:


Determines whether there is a maximum wait time, and how long before forcing a
continue.

Store Process Id into:


Enter a name to be the variable that will store the Process ID output. This will be a
numeric value.

Store Main Window Handle into:


Enter a name to be the variable that will store the Window Handle. When opening a
new Window, this will catch the value of the Window Handle, and store it in this
variable. A Window Handle is useful to specifically identify a Window in a later action.

Store Exit Code into:


Enter a name to be the variable that will store the Application Exit Code as a numeric
value.

© 2018 Softomotive
Other uses:

Display the contents of a folder:


You can use this action to display a folder inside Windows Explorer. This can be useful
if, for example, the process has just unzipped some files and needs to display them to
the user. Simply set "Application path" to "explorer" and "Command Line Arguments" to
the folder. (e.g., C:\unzipped).

5.1.2 Run DOS Command Action

Description:
This action executes a DOS command or a console application in invisible mode, waits
for the command or application to complete and retrieves its output into a text
variable
Actions Reference 341

Properties:

DOS Command or Application:


Enter the name of DOS command or a console application, with arguments if applicable.

Working Folder:
Enter the full path of the folder to work out of, if applicable.

Store Output into:


Enter a name to be the variable that will store the Command Output. The Command
Output will be the text output from the DOS Command or Application.

© 2018 Softomotive
Store Error Output into:
Enter a name to be the variable that will store the Error Output. The Error Output will
be the text describing the errors occurred (if any) during the execution of the DOS
Command or Application.

Store Exit Code into:


Enter a name to be the variable that will store the Command or Application Exit Code.
This will be a numeric value.

5.1.3 Run VBScript Action

Description:
Executes some custom VBScript code and retrieves its output into a variable.

Although WinAutomation offers a vast number of actions that will cover almost all your
automating needs there may be times that you want to inject some VBScript code into
your Process. Maybe you already have a script in VBScript that you want to use,
maybe you need some really advanced features such as manipulating a COM object.
Whatever the need may be this is the action you can use to include VBScript code into
your Process.
Actions Reference 343

Properties:

VBScript to run:
Enter here the VBScript code you want to execute. TIP: Within the script, you may
include WinAutomation variables, since they will be evaluated prior to the VBScript
code's execution. For example:

© 2018 Softomotive
If the %ExcelFile% variable holds the value, say, "c:\myexcel.xlsx", the last command
in line 8 will equal to

objExcel.ActiveWorkBook.Save "%ExcelFile%"

Store Output into:


Enter the name for the variable to hold the script's output. A script may write some
text to the windows console during its execution. In this case, all the text written by
the script is stored into this variable so that it can be processed by later actions.

Store Error Output into:


Enter the name for the variable to hold any errors that may occur during the execution
of the VBScript code.

NOTE:

Commands in VbScript will be highlighted accordingly so that you can read your script
easily. Also this action's window can be resized.
Actions Reference 345

5.1.4 Run Javascript Action


(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

Description:

Executes some custom Javascript code and retrieves its output into a variable.

© 2018 Softomotive
Properties:

Javascript to run:
Enter here the Javascript code you want to execute. TIP: Within the script, you may
include WinAutomation variables, since they will be evaluated prior to the Javascript
code's execution.

Store Output into:


Enter the name for the variable to hold the script's output. A script may write some
text to the windows console during its execution. In this case, all the text written by
the script is stored into this variable so that it can be processed by later actions.

Store Error Output into:


Enter the name for the variable to hold any errors that may occur during the execution
of the Javascript code.

NOTE:

Commands in Javascript will be highlighted accordingly so that you can read your script
easily. Also this action's window can be resized.

5.1.5 Run PowerShell Script


(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

Description:
Executes some custom Powershell Script and retrieves its output into a variable.
Actions Reference 347

Properties:

Powershell Script to run:


Enter here the Powershell code you want to execute. TIP: Within the script, you may
include WinAutomation variables, since they will be evaluated prior to the Powershell
code's execution. In the example presented above, please remember to escape any
backslash inside the path variable (%DataDirectory%):

C:\\Windows\\SysWOW64

Store Output into:


Enter the name for the variable to hold the script's output. A script may write some
text to the windows console during its execution. In this case, all the text written by
the script is stored into this variable so that it can be processed by later actions.

© 2018 Softomotive
Store Error Output into:
Enter the name for the variable to hold any errors that may occur during the execution
of the Powershell code.

5.1.6 Terminate Process Action

Description:
This action immediately stops a running process.

Properties:

Specify Process by:


Choose whether you want to specify the process to terminate by its name, or by its
ID.

Process Name:
Enter the name of the process that you want to terminate. If more than one process
with the same name are running, all of them will be terminated.
Actions Reference 349

Process ID:
Enter the ID of the process that you want to terminate.

5.1.7 Print Document Action

Description:
This action prints a document on the default printer

Properties:

Document to Print:
Insert the file to print here, as File Variable 285 or as a complete file path.

© 2018 Softomotive
5.1.8 Get Default Printer Action

Description:

This action gets the Default Printer name

Properties:

Store Default Printer's Name into:


Choose the variable to hold the acquired default printer's name.

5.1.9 Set Default Printer Action

Description:
This action sets a printer as the default printer
Actions Reference 351

Properties:

Printer Name:
Choose a printer to be used as default. This will continue to be the default printer until
another default printer is chosen.

5.1.10 Log Off User Action

Description:
This action logs off the current user

© 2018 Softomotive
Properties:

Force Log Off:


Force Log Off, regardless of unsaved files or programs that won't close.

5.1.11 Shutdown Computer Action

Description:
This action shuts down, reboots, suspends or hibernates the computer
Actions Reference 353

Properties:

Action to Perform:
Choose which Shutdown action to perform.

Force Selected Action:


Force selected action, regardless of unsaved files or programs that won't close.

5.1.12 Show Desktop Action

Description:
This action minimizes or restores all open Windows to reveal or hide the Desktop
respectively.

© 2018 Softomotive
Properties:

Action to Perform:
Choose whether to minimize all Windows to reveal the Desktop or restore all Windows
to their original respective states.

Cautions:
Avoid minimizing any Window you are currently interacting with.

5.1.13 Lock Workstation Action

Description:
This action locks the workstation's display to protect it from unauthorized use
Actions Reference 355

Properties:
This action does not have any configurable properties.

Cautions:
This action will prevent your process from interacting with the Desktop. Make sure to
use this command only when you're sure the process won't need to use the mouse,
keyboard or request user input after the action has been executed.

5.1.14 Play Sound Action

Description:
This action plays a system sound or a wav file

© 2018 Softomotive
Properties:

Play:
Choose a type of sound to play.

Sound to Play:
Choose the specific sound to play.

File to Play:
Set the full path of the specific .wav file to play.

5.1.15 Empty Recycle Bin Action

Description:
This action permanently deletes all files from the Windows Recycle Bin
Actions Reference 357

Properties:
This action does not have any configurable properties.

5.1.16 Take ScreenShot Action

Description:
This action takes a screenshot of the foreground window or the entire screen and
saves the image in a file or to clipboard

© 2018 Softomotive
Properties:

Capture:
Choose an area to capture.

Save Screen Shot to:


Choose the location to save Screen Shot to.

Image File:
Set the full path of the file name where image capture will be saved.

Image Format:
Set the format for the image file to be saved.
Actions Reference 359

5.1.17 Control Screen Saver Action

Description:

This action enables, disables, starts or stops the screensaver.

Properties:

Screen Saver Action:


Sets the function of the screensaver.

5.1.18 Ping Action

Description:
Sends a message to determine whether a remote computer is accessible over the
network.

© 2018 Softomotive
Properties:

Host Name:
Enter the name of the remote computer or an IP address.

Timeout:
Enter the maximum number of milliseconds (after sending the echo message) to wait
for the Ping reply message.

Store Ping Result into:


Enter the name of the variable that will hold the status of the Ping message. The value
can be either "Success" or "Failure".

Store Roundtrip Time into:


Enter the name of the variable that will hold the number of milliseconds taken for the
Ping to complete.
Actions Reference 361

5.1.19 Set Environmental Variable Action

Description:
This action sets an environment variable with a given value.

Properties:

Set Environmental Variable:

Enter the name of the Environmental Variable that you want to set. Variable cannot be
greater than or equal to 255 characters

With value:

Enter the value that will be stored in the Environmental Variable

and Type:

© 2018 Softomotive
Select the type of the Environmental Variable that will be saved in.

5.1.20 Get Environmental Variable Action

Description:
This action retrieves the value of an environmental variable

Properties:

Environmental Variable Name:

Enter the name of the Environmental Variable that you wish to retrieve its value

Store Environmental Variable Value Into:

Enter a name to be the variable that will hold the environmental variable's value
Actions Reference 363

5.1.21 Delete Environmental Variable Action

Description:
This action deletes the environment variable from a given scope.

Properties:

Delete Environmental Variable:

Enter the name of the Environmental Variable that you want to delete. Variable cannot
be greater than or equal to 255 characters.

Environmental Variable Type:

Select the type of the Environmental Variable that will be deleted.

© 2018 Softomotive
5.1.22 Get Screen Resolution Action
(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

Description:

This action returns the width, height, bit count and the frequency of the selected
monitor

Properties:

Number of Monitor:
Enter the identification number of the monitor you want to get the resolution of.
Actions Reference 365

Store Width into:


Enter the name of the variable that will hold the Width of the monitor value.

Store Height into:


Enter the name of the variable that will hold the Height of the monitor value.

Store Bit Count into:


Enter the name of the variable that will hold the Bit Count of the monitor value.

Store Frequency into:


Enter the name of the variable that will hold the Frequency of the monitor value.

5.1.23 Set Screen Resolution Action


(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

Description:
This action returns the width, height, bit count and the frequency of the selected
monitor

© 2018 Softomotive
Actions Reference 367

Properties:

Number of Monitor:
Enter the identification number of the monitor you want to set the resolution to.

Set Width:
Enter the Width value to be set to the monitor.

Set Height:
Enter the Height value to be set to the monitor.

Set Bit Count:


Enter the Bit Count value to be set to the monitor.

© 2018 Softomotive
Set Frequency:
Enter the Frequency value to be set to the monitor.

"Available Resolutions" button:


To select one of the predefined available resolutions please click on the "Available
Resolutions" Button.

5.2 Conditionals
5.2.1 If Action

Description:
This action marks the beginning of a conditional block of actions.

Properties:
Actions Reference 369

First Operand:
Enter a variable output defined by a previous action, or a literal value such as a text or
a number to compare with the second Operand.

Operator:
Choose the relationship of first Operand to second Operand.

Ignore Case:
If the comparison is between two text values or variables, this option will specify
whether any difference in case between the two operands will be taken into account.
This property is available only if the selected operator is any of the following: "Starts
with", "Does not start with", "Contains", "Does not contain", "Ends with" or "Does not
end with".

Second Operand:
Enter a variable output defined by a previous action, or a literal value such as a text or
a number to compare with the first Operand.

Remarks:
The operators "Is Empty" and "Is not Empty" have a special meaning depending on the
data type of the first operand. For example, if the first operand is a variable that holds
a text value, "Is Empty" is true if the text value is equal to the empty string. If the
operand is a variable that holds a list then "Is Empty" is true if the list contains no
items.

If the first operand is a value that holds a file (e.g. could be a variable populated by a
"Get Files in Folder" action) then "Is Empty" is true only if the file is an empty file (its
size equals to 0 bytes). Accordingly, if instead of a file is a folder variable "Is Empty"
will be true if the folder does not contain any files or subfolders.

5.2.2 If File Exists Action

Description:
This action marks the beginning of a conditional block of actions depending on whether
a file exists or not

© 2018 Softomotive
Properties:

If File:
Choose state of file to be checked.

File Path:
Set the full path where action will look for the file to be checked.

5.2.3 If Folder Exists Action

Description:
This action marks the beginning of a conditional block of actions depending on whether
a folder exists or not
Actions Reference 371

Properties:

If Folder:
Choose state of folder to be checked.

Folder Path:
Set the full path where action will look for the folder to be checked.

© 2018 Softomotive
5.2.4 If Service Action
(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

Description:
This action marks the beginning of a conditional block of actions depending on whether
a service is running, paused or stopped. It can also be used to determine whether a
service is present on the computer or not.

Properties:

If Service:
Choose state of service to be checked. You can check whether the specified service is
running, paused or stopped as well as whether it is installed or not.

Service Name:
Choose a specific service installed on your computer to be checked.
Actions Reference 373

5.2.5 If Process Action

Description:
This action marks the beginning of a conditional block of actions depending on whether
a process is running or not

Properties:

If Process:
Choose state of process to be checked.

Process Name:
Choose a specific process to be checked.

© 2018 Softomotive
5.2.6 If Window Action

Description:

This action marks the beginning of a conditional block of actions depending on whether
a window is open or not or whether a window is the focused (foreground) window.

by Window Control
Actions Reference 375

by Window Instance/Handle

© 2018 Softomotive
by Title and/or Class

Properties:

Get Window:
Choose whether the action gets the target window from a "Window Instance" variable,
or searches for it by Title and/or Class.

Window Instance:
Enter the variable that contains the Window Instance which you want to bring to
front. This must be a variable defined by a preceding “Get Window 517 ” action or a
valid Window Handle.
Actions Reference 377

Window Title:
Choose title of window. You can use wildcards, like '?' or '*'. If you can't find the
window title in the dropdown list, type it yourself, or open it and press the Refresh
button to the right.

Window Class:
Optional: If you have two windows with the same title, Window Class may help
differentiate between them. In this case, enter the class of the window you wish to
use. Otherwise, leave this blank.

Check if Window:
The state of window to be checked. Choose between: Open, Not Open, Focused, Not
Focused.

5.2.7 If Image Action

Description:
This action marks the beginning of a conditional block of actions depending on whether
a selected image is found on the screen or not.

© 2018 Softomotive
Properties:

If Image:
Choose whether you want to check for the existence or absence of the selected
image.

Image to wait for:


Select the Image(s) that the action check if it exists or not by clicking Add Image from
Repository. Click Delete Image to remove an image from the list.
Actions Reference 379

Search for Image on:


Choose whether you want to search for the specified Image in the foreground Window
only, or the entire visible screen. Neither choice will find the Image if it is not clearly
visible on the screen.

Find All Images in List:


Choose whether you want to search if all image(s) on the list exist or does/do not
exist, or just one of them.

Search Mode:
Specify whether you want to scan the entire screen (or window) to find the supplied
image or only a narrowed down subregion of it.

Tolerance:
Specify a value for how much the Image searched for can differ from the originally
chosen Image.

5.2.8 If Text on Screen (OCR)


This action marks the beginning of a conditional block of actions depending on whether
a given text is found on the screen or not, using an OCR Engine of your choice. The
action allows you to search for text on the Entire Screen or the Foreground Window as
also to limit your search on a subregion of your working area.

© 2018 Softomotive
OCR Engine:

This text field with drop down menu options invites you to enter or choose the
instance of the OCR Engine 737 you want to work with.

Text to Find:

This text field allows you to enter the text you want the OCR Engine to search for as
text or as a Variable.
Actions Reference 381

Is Regular Expression:

Check this check box if you want to use a Regular Expression to find the text on
screen. A Regular Expression creates a range of possibilities and can return a number
of results that match your search. The order that the Engine is adding these matches
is from top to bottom, left to right as it finds them on the given source to analyze!

If Text:

Select if you want the action to check if the text exists or not on the given source to
analyze.

Search for Text on:

Two options on this drop down menu, Entire Screen or Foreground Window only.

Search Mode:

While the first option of this drop down menu is pretty straightforward (Search Whole
Screen or Foreground Window) the other two options that allow you to target a
specific subregion of your window or screen produce a whole different set of additional
Properties which will see in detail here:

-Search on specified subregion of Screen or Foreground window:

By clicking the "Select a Different Subregion" button on the right of the red box, you
will be prompted to select firstly the window you want to work:

© 2018 Softomotive
and then you will be given the opportunity through an amazing interactive feature to
actually select the area you want to narrow down your scan (drag your mouse to
select the area). The X1 X2 Y1 Y2 co-ordinates are denoting the start and finish of
your dragging manoeuvre.

However, using the "Select a Different Subregion" button is not compulsory. You can
enter the values of the co-ordinates by hand or as a Variable (notice the Gear Icon
next to the text fields).

-Subregion relative to image:


Actions Reference 383

This search mode enables you to narrow down your scan through a region that is
defined relative to the top-left corner of an image from the Image Repository.

5.2.9 If Window Contains Action

Description:
Checks whether a specific piece of text or a Window element exists inside a Window.

© 2018 Softomotive
Option 1: Check for Window Element (Exists/Does not Exist)

You can select the window from your Control Repository or Add it in the Repository.
Actions Reference 385

Option 2: Check for Text (Exists/Does not Exist)

This option checks the text inside the Window to determine whether a specified
subtext exists or not.

© 2018 Softomotive
Properties:

Text to Check for:


Enter the text you want check for.

Check if Element is ("Contains Element"/"Does not Contain Element"


should be selected):
Sometimes the target element may be present, but disabled. This property allows you
to check whether the target element, if found, is also in a specific state (Enabled or
Disabled). The If statement will execute its actions only when the target element is
both present and in the required state when this property is checked.

Control:
Choose the Control for the element from your Repository or Add it if it is not already
there.
Actions Reference 387

5.2.10 If Web Page Contains Action

Description:

Checks whether a specific piece of text or a web page element exists in a Web Page.

This action operates on a Web Page that has been previously opened by a "Launch
New Internet Explorer 562 " action. The latter stores the Web browser instance into a
variable. This action accepts this variable and checks whatever page is currently
displayed in that Web Browser Instance.

Option 1: Check for Web Element (Exists/Does not Exist)

Choose the Control for the element from your Repository or Add it if it is not already
there.

© 2018 Softomotive
Option 2: Check for Text (Exists/Does not Exist)

This option checks the text of the Web page to determine whether a specified subtext
exists or not.

Properties

Web Browser Instance:


Enter the variable that contains the Web Browser Instance you want to work with.
This must be a variable defined by a preceding "Launch New Internet Explorer 562 "
action.

Check if Web Page:


Specify whether you want to check for the existence of some text or of an HTML
element.

Text to Check for:


Enter the text that you want to check for.
Actions Reference 389

Control:
Choose the Control for the element from your Repository or Add it if it is not already
there.

5.2.11 Else Action

Description:
Marks the beginning of a block of actions that are executed if the condition specified in
the preceding If Action is not met

Properties:
This action does not have any configurable properties.

5.2.12 Else If Action

Description:
Marks the beginning of a block of actions that are executed if the condition specified in
the preceding If Action is not met and the condition specified in this action is met.

© 2018 Softomotive
This action can only be inserted within an If/End If block and always before the "Else"
action, if any. In all other aspects is similar to the "If" action 368 .
Actions Reference 391

5.2.13 End If Action

Description:

This action marks the end of a conditional block of actions

© 2018 Softomotive
Properties:
This action does not have any configurable properties.

5.2.14 Switch
Switch marks the beginning of a switch block. Unlike if-else or else-if conditional
statements, a switch block can address a number of possible execution paths. A
switch statement is a type of selection control mechanism used to allow the value of a
variable or expression to change the control flow of your scripts via a multiway branch:
Actions Reference 393

This action allows you to set a value [1] that will form the basis of any subsequent
comparisons with other values using the Case 394 /End Case 398 actions:

1. Value to Check:

This should be a variable that we expect its value to be derived out of a set of
predefined options.

5.2.15 End Switch


This action simply marks the end of a Switch 392 block.

© 2018 Softomotive
5.2.16 Case
This action specifies a condition on an existing Switch 392 block and marks the
beginning of a sequence of actions that will be executed if the conditional evaluates to
true.

The end of this sequence of actions is marked by the complimentary End Case 398

action.
Actions Reference 395

The action allows you to choose from a variety of Comparison Types [1] in order to
compare the value provided here [2] with that given in the Switch 392 statement.

© 2018 Softomotive
1. Comparison Type:

This property can have a wide variety of predefined values, designed to fulfill your
most sophisticated needs:
Actions Reference 397

2. Value to Compare:

The Value that you will enter here will be compared after the Comparison Type defined
in [1] with the value defined in the Switch 392 action. If this criterion is met, then the
sequence of actions within the <Case><sequence of actions><End Case> block will be
executed. If not, the flow will move to the next case condition.

© 2018 Softomotive
5.2.17 End Case
This action simply specifies the end of a Case 394 block.

5.2.18 Default Case


Use this block in order to execute a sequence of actions if none of your Case 394

conditionals are to be met:


Actions Reference 399

5.2.19 End Default Case


The complimentary other half of the Default Case 398 action simply marks the end of a
Default Case block:

5.3 Loops
5.3.1 Loop Action

Description:
This action iterates a block of actions for a specific number of times

© 2018 Softomotive
Properties:

Start From:
Sets the starting point for your Loop counter

End To:
Sets the ending point for your Loop counter

Increment By:
Sets the increments your Loop counter increases by

Store Current Index into:


Enter a name to be the variable that will store the Current Index, starting at the Start
From value. The value of this variable will change by the increment with each iteration.
Actions Reference 401

5.3.2 Loop Condition Action

Description:

This action iterates a block of actions while a condition is true

Properties:

First Operand:
Enter a variable output defined by a previous action, or a literal value such as a text or
a number to compare with the second Operand.

Operator:
Choose the relationship of first Operand to second Operand.

© 2018 Softomotive
Second Operand:
Enter a variable output defined by a previous action, or a literal value such as a text or
a number to compare with the first Operand.

5.3.3 For Each Action

Description:
This action loops through the items of a list

Properties:

Variable to Iterate:
Enter a previously created variable that contains a list, data table, or data row. The
actions in the loop will be executed once for each item in the list, each row of the
table, or each column (cell) of the data row.
Actions Reference 403

Store Current Item into:


Enter a name to be the variable that will store the Current Item (item, row, or cell), if
you wish to access it during later actions in the loop.

5.3.4 Exit Loop Action

Description:
This action exits the current Loop

Properties:
This action does not have any configurable properties.

5.3.5 End Loop Action

Description:
This action marks the end of a Loop

© 2018 Softomotive
Properties:
This action does not have any configurable properties.

5.4 Wait
5.4.1 Wait Action

Description:
This action suspends the execution of the process for a specified amount of seconds
Actions Reference 405

Properties:

Wait for:
Enter the number of seconds that you want the process to pause.

5.4.2 Wait for File Action

Description:
This action suspends the execution of the process until a file is created or deleted

© 2018 Softomotive
Properties:

Wait for file to be:


Choose whether the process pauses until a certain file is created or deleted.

File Path:
Set the full path of file to be checked.

Continue Anyway:
Choose whether the process continues after a set number of seconds, regardless of
whether the file has been created/deleted.
Actions Reference 407

5.4.3 Wait for HotKey Action

Description:

This action suspends the execution of the Process until a specific HotKey is pressed by
the user.

There are cases where you want the Process to pause and continue only when the
user says so. For example, a Process may open a number of documents for the user to
review and needs to know when the user has completely reviewed each document to
open the next one.

This is where the "Wait for HotKey" action can be used. You can specify a HotKey and
the Process will continue only when this Hotkey is pressed.

To further elaborate our previous example, let's assume that the user, after reviewing
each document, has the choice to either archive it or delete it. In this case it would
be convenient for the user to be able to press different hotkeys, and the Process to
keep track of the hotkey pressed to interpret the user's intention.

© 2018 Softomotive
If you specify more than one hotkeys to wait for, the action populates a variable
(%PressedHotKey% in the example above) with the ordinal number of the pressed
hotkey. In the example above, if the user pressed Control-D the %PressedHotKey%
would hold the value 1 while if the user pressed space the %PressedHotKey% variable
would hold the value 2. Then you can check for the hotkey pressed by the user as
shown below:
Actions Reference 409

Proceed anyway after:


Choose whether the action will proceed anyway whether the period of time, waiting for
a hotkey, expires.

Store HotKey Pressed into:

Enter the name of the variable that will hold the ordinal position of the HotKey pressed
by the user. If the user presses the second HotKey the variable will hold the value
two.

5.4.4 Wait for Process Action

Description:
This action suspends the execution of the process until a process starts or stops
running

© 2018 Softomotive
Properties:

Wait for process to:


Choose whether the process pauses until a certain process starts or stops.

Process Name:
Choose or enter the process name to be checked.

Continue Anyway:
Choose whether the process continues after a set number of seconds, regardless of
whether the process has started or stopped.
Actions Reference 411

5.4.5 Wait for Service Action


(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition)

Description:

This action suspends the execution of the process until a service starts, stops or
pauses

Properties:

Wait for service to:


Choose whether the process pauses until a certain service starts, stops, or pauses.

Service Name:
Choose or enter the name of a service to be checked.

© 2018 Softomotive
Continue Anyway:
Choose whether the process continues after a set number of seconds, regardless of
whether the service has started, stopped, or paused.

5.4.6 Wait for Window Action

Description:
This action suspends the execution of the process until a specific window opens,
closes, gets or loses the focus.
Actions Reference 413

© 2018 Softomotive
Properties:

Get Window:
Choose whether the action gets the target window from a "Window Instance 286 "
variable, or searches for it by Title and/or Class.

Window Instance:
Enter the variable that contains the Window Instance which you want to bring to
front. This must be a variable defined by a preceding “Get Window 517 ” action or a
valid Window Handle.
Actions Reference 415

Window Title:
Choose title of window. You can use wildcards, like '?' or '*'. If you can't find the
window title in the dropdown list, type it yourself, or open it and press the Refresh
button to the right.

Window Class:
Optional: If you have two windows with the same title, Window Class may help
differentiate between them. In this case, enter the class of the window you wish to
use. Otherwise, leave this blank.

Wait for Window to:


Choose the event that this action will wait for: you can choose to wait for a specific
window to open, close, become focused (i.e. become the foreground window), or lose
focus (stop being the foreground window).

Focus Window after it opens:


Bring the Window to the front after it opens, so later actions are directed at this
Window.

Fail if window does not appear/close within:


Choose whether the action will throw an exception after a set number of seconds if
the specified Window has not opened/closed/became focused/lost focus. Then go to
the Exception Handling tab at top to specify how the Exception will be handled.
Otherwise, the Process will stop and issue an error message.

5.4.7 Wait for Image Action

Description:
This action waits until a specific image appears on the screen or on the foreground
window. This action uses the Image Recognition 327 feature.

© 2018 Softomotive
Properties:

Wait for Image to:


Select if you want the action to wait for the image(s) to appear or disappear.
Actions Reference 417

Image to wait for:


Select the Image(s) that the action waits to appear or dissapear by clicking Add Image
from Repository. Click Delete Image to remove an image from the list.

Search for Image on:


Choose whether you want to search for the specified Image in the foreground Window
only, or the entire visible screen. Neither choice will find the Image if it is not clearly
visible on the screen.

Search Mode:
Specify whether you want to scan the entire screen (or window) to find the supplied
image or only a narrowed down subregion of it.

X1, Y1, X2, Y2:


Specify the subregion of the screen or window to narrow down the scan for the
supplied image to. You can visually select a subregion of the screen or window by
pressing the "Select a Different Subregion" button.

Tolerance:
Specify a value for how much the Image searched for can differ from the originally
chosen Image.

Fail if image does not appear:


Choose whether the action will throw an exception after a set number of seconds if
the specified Image has not been found. Then go to the Exception Handling tab at top
to specify how the Exception will be handled. Otherwise, the process will stop and
issue an error message.

Location of Image Found:


Enter the names to be the variables that will hold the X and Y coordinates of the point
where the image is found on the screen. If the image is being searched for on the
foreground window, the coordinates returned are relative to the top left corner of the
window.

© 2018 Softomotive
5.4.8 Wait for Text on Screen (OCR)
This action waits (pauses the execution of your script) until a specific text [2]
appears/disappears [4] on the entire screen or foreground window [5] allowing you to
analyze either the whole of that image or a specific subregion of it [6]. You can also
specify whether you want the action to fail [7] if the text does not appear within a
custom set of seconds [8]. The action returns the location [9] (coordinates) of the
specified text's first occurence (or match if a regular expression [3] is used) from left
to right, top to bottom.
Actions Reference 419

1. OCR Engine:

This text field with drop down menu options invites you to enter or choose the
instance of the OCR Engine 737 you want to work with.

2. Text to Find:

This text field allows you to enter the text you want the OCR Engine to search for as
text or as a Variable (please be mindful of the fact that OCR is case sensitive).

3. Is Regular Expression:

Check this check box if you want to use a Regular Expression to determine the text
you are looking for. A Regular Expression creates a range of possibilities and can return
a number of results that may match your search. The order that the Engine is adding
these matches is from top to bottom, left to right as it scans the given source to
analyze.

4. Wait for Text to:

This drop down menu allows you to specify whether you want to wait for the Text on

© 2018 Softomotive
5. Search for Text on:

Two options on this drop down menu, Entire Screen or Foreground Window only.

6. Search Mode:

While the first option of this drop down menu is pretty straightforward (Search Whole
Screen or Foreground Window) the other two options that allow you to target a
specific subregion of your window or screen produce a whole different set of additional
Properties which will see in detail here:

-Search on specified subregion of Screen or Foreground window:

By clicking the "Select a Different Subregion" button on the right of the red box, you
will be prompted to select firstly the window you want to work:
Actions Reference 421

and then you will be given the opportunity through an amazing interactive feature to
actually select the area you want to narrow down your scan (drag your mouse to
select the area). The X1 X2 Y1 Y2 co-ordinates are denoting the start and finish of
your dragging manoeuvre.

However, using the "Select a Different Subregion" button is not compulsory. You can
enter the values of the co-ordinates by hand or as a Variable (notice the Gear Icon
next to the text fields).

-Subregion relative to image:

© 2018 Softomotive
This search mode enables you to narrow down your scan through a region that is
defined relative to the top-left corner of an image from the Image Repository.

7. Fail if Text does not appear within:

This checkbox allows you to produce an exception (which you can in turn handle
through the state of the art of exception handling mechanisms 322 PR is providing you
with) in case the specified Text appear or does not appear within a custom set of
seconds to be defined on [8].

8. Fail if Text does not appear within specified number of seconds:

The maximum number of seconds you can set in this box is 600.

9. Location of Text found:

This action returns the coordinates of the top-left corner of the text found on screen
or a specified window, stored in a couple of variables for later use.
Actions Reference 423

5.4.9 Wait for Mouse Action

Description:

This action suspends the execution of the process until the mouse pointer changes,
usually to or from the 'wait cursor' or hourglass.

Properties:

Wait for mouse pointer to:


Choose what action of the mouse cursor you will wait for.

Continue Anyway:
Choose whether the process continues after a set number of seconds, regardless of
whether the mouse pointer has changed or not.

© 2018 Softomotive
5.4.10 Wait for Window Content Action

Description:

Waits until a specific text or Element appears or disappears from a Window.

This action operates on a UI Automation Window Instance that has been previously
acquired by a "Get Window 517 " action. The latter stores the Window instance into a
variable. This action accepts this variable and waits until the supplied Window
Instance contains or does not contain a specific text or Element.

Option 1: Wait for UI Element (Contained/Not Contained in Window)


Actions Reference 425

Option 2: Wait for Text (Exists/Does not Exist)

This option waits until the specifies text appears or disappears from the Window
Contents.

Properties:

Window Instance:
Enter the variable that contains the parent Window Instance of the Element or text
you are waiting for. This must be a variable defined by a preceding “Get Window 517 ”
action or a valid Window Handle.

Wait Till Window:


Specify whether you want to wait for a UI element or a specific text.

© 2018 Softomotive
Wait for Element to Become:
This property allows you to wait until the target element is present and in a specific
state (Enabled or Disabled). The Wait statement will only stop waiting when the target
element is both present and in the required state, if this property is checked.

Text to Wait for:


Enter text you want to wait for.

Description for Element:


Enter a short description for the Window Element you want to wait for. This is
optional, meant for documentation purposes and when possible it is auto-populated
along with the "UI Selector" property, during the UI Element Live Selection 223 .

UI Selector of Element:
Enter the UI Selector of the Window Element you want to check for. You do not need
to manually enter a value here; this field will be populated automatically when you
select an element on any Window, by right-clicking on it while having the action's
properties dialog open.

Fail On Timeout:
Choose whether the action will throw an exception after a set timeout of waiting. Then
go to the Exception Handling tab to specify how the Exception will be handled,
otherwise the process will stop and issue an error message.

5.4.11 Wait for Web Page Content Action

Description:
Waits until a specific text or Element appears or disappears from a Web Page.

This action operates on a Web Page that has been previously opened by a "Launch
New Internet Explorer 562 " action. The latter stores the Web browser instance into a
variable. This action accepts this variable and waits until the page is currently
displayed in that Web Browser Instance contains or does not contain a specific
element or text.
Actions Reference 427

Option 1: Wait for Web Element (Contained/Not Contained in Page)

© 2018 Softomotive
Option 2: Wait for Text (Exists/Does not Exist)

This option waits until the specifies text appears or disappears from the Web page.

Properties:

Web Browser Instance:


Enter the variable that contains the Web Browser Instance you want to work with.
This must be a variable defined by a preceding "Launch New Internet Explorer 562 "
action.

Wait for Web Page to:


Specify whether you want to wait for an HTML element or a specific text.

Text to Wait for:


Enter text you want to wait for.
Actions Reference 429

Fail On Timeout:
Choose whether the action will throw an exception after a set timeout of waiting. Then
go to the Exception Handling tab to specify how the Exception will be handled,
otherwise the process will stop and issue an error message.

5.5 Flow Control


5.5.1 Label Action

Description:
This action places a label at a specific process location that can be referenced by a
Go To Action

Properties:

© 2018 Softomotive
Label Name:
Enter a Label, to be used by a Go To action, to find at a later point in the process.

5.5.2 Go To Action

Description:
This action jumps the execution flow to the specified label

Properties:

Label Name:
Enter an existing Label Name that this action will find and jump to.
Actions Reference 431

5.5.3 Run Function Action

Description:

This action turns the execution flow to the specified function.

Properties:

Function Name:
Enter the Name of the function to run.

5.5.4 Exit Function Action

Description:
This action causes the current function to return immediately to the point it was called
from, as if it exhausted all its actions.

© 2018 Softomotive
Properties:
This action does not have any configurable properties.

5.5.5 Stop Process Action

Description:
This action stops the execution of the process
Actions Reference 433

Properties:

End Process:
Choose whether this action ends the process with an error message or not.

Error Message:
Enter text to be a descriptive error message explaining why the process was ended.

Exit Code:
Enter a number to be the exit code of the Process. This applies only to Processes that
are compiled to exe; for Processes that run within WinAutomation this setting will have
not effect.

© 2018 Softomotive
5.5.6 Begin Exception Block Action

Description:

This action sets the beginning of an exception handling region

Properties:

Name:
Enter the name of the Exception Block for virtual purposes only.

Set Variable - Set Value:


Enter the value to be set into the variable when exception in any action occurs.
Actions Reference 435

Set Variable - into Variable:


Enter the variable into which the value should be set when exception in any action
occurs.

Run Function:
Set a function to run when exception in any action occurs.

Continue Execution:
Set to continue the process execution with a selected command when exception in
any action occurs.

5.5.7 End Exception Block Action

Description:
This action sets the end of an exception handling block

Properties:

This action does not have any configurable properties.

© 2018 Softomotive
5.6 Mouse and Keyboard
5.6.1 Block Input Action

Description:
This action blocks user mouse and keyboard input events, so the process can perform
mouse and keyboard actions without interference from the user.

Properties:

Action to Perform:
Choose whether this action will block or unblock Mouse and Keyboard input.

Cautions:
If your process fails while your mouse and keyboard input is locked, your control will
not be unlocked. To regain control, press ctrl + alt + delete on your keyboard. This
works even if the process has not failed.
Actions Reference 437

5.6.2 Get Mouse Position Action

Description:

Retrieves the current position of the mouse cursor on the screen in pixel coordinates.

Properties:

Get Position Relative to:


Specify whether to retrieve the mouse position in screen coordinates or you want the
mouse position relative to the top left corner of the active window.

Store Mouse Position X value into:


Enter a name to be the variable that will store the horizontal (X) value of the mouse
position.

Store Mouse Position Y value into:


Enter a name to be the variable that will store the vertical (Y) value of the mouse
position.

© 2018 Softomotive
5.6.3 Move Mouse Action

Description:

This action moves the mouse to a specific position

Properties:

Move Mouse to:


Set the position of the mouse in X and Y pixel coordinates. Press CONTROL + SHIFT
keys if you wish to grab the current cursor position, or hold them both down to record
a mouse movement.

Relative to:
Choose whether the new Mouse position will be relative to the top left corner of the
screen, or of the foremost Window, or relative to the current mouse position.
Actions Reference 439

Move Mouse From Previous Position:


Choose the style of movement in which the mouse will move from it's previous position
to the beginning of the recorded route (or to it's final position). The mouse can move
instantly (jump) to the new position or navigate smoothly at three different speeds
(slow/normal/fast).

5.6.4 Move Mouse to Image Action

Description:

This action moves the mouse over an image found on the screen or on the foreground
window. This action uses the Image Recognition 327 feature.

© 2018 Softomotive
Actions Reference 441

Properties:

Image to move mouse on:


This is the list of Image(s) that the action will move the mouse to. Press 'Add Image
From Repository' to select the image(s) from the images repository.

© 2018 Softomotive
Search for Image on:
Choose whether you want to search for the specified Image in the foremost Window
only, or the entire visible screen. Neither choice will find the Image if it is not clearly
visible on the screen.

Search Mode:
Specify whether you want to scan the entire screen (or window) to find the supplied
image or only a narrowed down subregion of it.

X1, Y1, X2, Y2:


Specify the subregion of the screen or window to narrow down the scan for the
supplied image to. You can visually select a subregion of the screen or window by
pressing the "Select a Different Subregion" button.

Mouse position relative to image:


Choose which section of the image the mouse will be moved to.

Offset X:
Offset the mouse from the Position by this many pixels to the right.

Offset Y:
Offset the mouse from the Position by this many pixels down.

Tolerance:
Specify a value for how much the Image searched for can differ from the originally
chosen Image.

Move Mouse From Previous Position:


Choose the style of movement in which the mouse will move from it's current position
to the position of the image found. The mouse can move instantly (jump) to the new
position or navigate smoothly at three different speeds (slow/normal/fast).

Location of Image Found:


Enter the names to be the variables that will hold the X and Y coordinate of the point
where the image is found on the screen. If the image is being searched for on the
foreground window, the coordinates returned are relative to the top left corner of the
window.
Actions Reference 443

Wait for image to appear:


Choose whether you want the action to wait if the image is not found on the screen or
foreground window. If this property is not checked and the image is not found the
action will through an exception, otherwise the action will wait until the image appears.
In the next property you can specify the maximum number of seconds (timeout) to
wait.

Fail if image does not appear within x seconds:


Choose whether the action wait indefinitely for the image to appear or it will throw an
exception after a set number of seconds if the specified Image has not been found.
You can then go to the Exception Handling tab at top to specify how the Exception will
be handled, otherwise, if the image is not found within the timeout, the process will
stop and issue an error message.

Send a Left Click after moving mouse:


Choose whether you want the action to send a left click after the mouse is positioned
over the image.

5.6.5 Move Mouse to Text on Screen (OCR)


This action allows you to move the mouse over a specific image some specific text [2] found on
screen or a foreground window [5] using an OCR Engine of your choice [1]. If this text is found more
than once on that surface, you can target a specific occurence [4] (2nd, 3rd etc.) given the fact that
the OCR is adding these matches first to last, top to bottom, left to right. Just like in other actions that
use OCR, you can work with a variety of options that allow you to search on very specific subregions
of your screen [6], but the action is also giving you option to select the speed with which the mouse
[7] will be moved on the spot.

The action returns co-ordinates [8] of where the text is found relative to the top left of your screen or
the top left corner of the window you are working with. Along the position of the text it returns the
width and height of that image in two [9] corresponding Variables.

© 2018 Softomotive
General Tab

1. OCR Engine:

This text field with drop down menu options invites you to enter or choose the
instance of the OCR Engine 737 you want to work with.

2. Text to Find:

This text field allows you to enter the text you want the OCR Engine to search for as
text or as a Variable.
Actions Reference 445

3. Is Regular Expression:

Check this check box if you want to use a Regular Expression to find the text on
screen. A Regular Expression creates a range of possibilities and can return a number
of results that match your search. The order that the Engine is adding these matches
is from top to bottom, left to right as it finds them on target!

4. Occurrence:

This positive integer should point to the match that interests you, if your search
returns more than one occurences or a collection of values (through a regular
expression for example).

5. Search for Text on:

Two options on this drop down menu, Entire Screen or Foreground Window only.

6. Search Mode:

While the first option of this drop down menu is pretty straightforward (Search Whole
Screen or Foreground Window) the other two options that allow you to target a
specific subregion of your window or screen produce a whole different set of additional
Properties which will see in detail here:

-Search on specified subregion of Screen or Foreground window:

By clicking the "Select a Different Subregion" button on the right of the red box, you
will be prompted to select firstly the window you want to work:

© 2018 Softomotive
and then you will be given the opportunity through an amazing interactive feature to
actually select the area you want to narrow down your scan (drag your mouse to
select the area). The X1 X2 Y1 Y2 co-ordinates are denoting the start and finish of
your dragging manoeuvre.

However, using the "Select a Different Subregion" button is not compulsory. You can
enter the values of the co-ordinates by hand or as a Variable (notice the Gear Icon
next to the text fields).

-Subregion relative to image:


Actions Reference 447

This search mode enables you to narrow down your scan through a region that is
defined relative to the top-left corner of an image from the Image Repository.

7. Move Mouse From Previous Position:

This drop down menu gives you a number of options in case the speed with which the
mouse will move is critical to your process.

8. Location of Text Found (co-ordinates):

It is important that you understand that OCR understands text as an Image. These co-
ordinates pin point the position of that image on the surface (screen or foreground
window) you are currently work with.

9. Location of Text Found (dimensions):

Enter the names to be the variables that will hold the X and Y coordinates of the point
where the image is found on the screen. If the image is being searched for on the
foreground window, the coordinates returned are relative to the top left corner of the
window.

5.6.6 Send Mouse Click Action

Description:
This action sends a mouse click event

© 2018 Softomotive
Properties:

Move Event to Send:


Choose what form of mouse event to send.

Wait:
Set a time for the action to delay before sending the mouse event, in 1/1000 of a
second. In other words, 1000 means one second, 1500 means one and a half seconds,
2250 means two and a quarter seconds and so on.
Actions Reference 449

Move Mouse to:


Set the position of the mouse in X and Y pixel coordinates. Press CONTROL + SHIFT
keys if you wish to grab the current cursor position.

Relative to:
Choose whether the new Mouse position will be relative to the top left corner of the
screen, or to the foremost Window, or to the current mouse position.

Move mouse from previous position:


Choose the style of movement in which the mouse will move from its previous position
to the beginning of the recorded route (or to its final position)

5.6.7 Send Keys Action

Description:
This action sends keystrokes to the Application that is currently active

© 2018 Softomotive
Properties:

Text to Send:
Insert keystrokes to send as text. Special key and modifiers can be accessed below
the box. Control is under Insert Modifier, and Control-a, for example, needs to appear
in the form {Control}({A}). Any Key, as compared to a character, must be written
here in braces and capitalized, such as {A}. Within Modifiers, Keys must be used, not
characters like 'a' or '$'. For a complete list of the Key Codes corresponding to the
keyboard keys, please consult the topic "Valid Key Codes for the Send Keys Action 333 ".

Delay Between Keystrokes:


Choose a time to delay between keystrokes to avoid input errors.
Actions Reference 451

5.6.8 Press/Release Key Action

Description:

This action presses (and holds) or releases one or more modifier keys (Alt, Control, or
Shift). This is useful mainly taking steps that call for a key to be pressed while
operating the mouse, and requires another use of this action to release the key(s)
being held.

Properties:

Action to Perform:
Choose whether to Press or Release keys with this action.

© 2018 Softomotive
Control:
Choose whether the CTRL key is pressed/released or not.

Alt:
Choose whether the Alt key is pressed/released or not.

Shift:
Choose whether the Shift key is pressed/released or not.

Win:
Choose whether the Windows key is pressed/released or not.

5.6.9 Set Key State Action

Description:
This action sets the state (on or off) for the keys CAPS LOCK, NUM LOCK or SCROLL
LOCK.
Actions Reference 453

Properties:

Set Key to:


Choose the key you wish to set, and select 'On' or 'Off'.

5.7 Message Boxes


5.7.1 Display Message Action

Description:
This action displays a message box

© 2018 Softomotive
Actions Reference 455

The Message Dialog in action

Properties:

Message Box Title:


Enter the text, or a previously defined variable, to be used as the Message Box title.

Message To Display:
Enter the text, or a previously defined variable, to be displayed as the actual message.

Message Box Icon:


Choose which Icon to display with the Message Box.

Message Box Buttons:


Choose which buttons to display on the Message Box.

Default Button:
Choose which button is highlighted by default. If the user presses {Enter}, this button
will be pressed.

Keep Message Box Always on Top:


Choose whether the Message Box should always remain on top of all other windows.

Close Message Box Automatically:


Choose whether Message Box closes automatically after a preset time, as if the default
button was pressed. Otherwise, the process will wait until a button is pressed by the
user.

© 2018 Softomotive
Timeout:
Choose how many seconds to pause the process while waiting for input, until
continuing automatically.

Store Button Pressed into:


Enter a name to be the variable that will store the text of the button pressed.

5.7.2 Display Custom Dialog Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action displays a Customized Dialog.
Actions Reference 457

Properties:

"Open Designer" Button:


Pressing this button will open up the Custom Dialog Designer window. You will find more
details regarding the Custom Dialog Designer in the section "Designing a Custom
Dialog 212 ".

Store Dialog Results into:


Enter a name to be the variable that will store the values populated in the Custom
Dialog.

Store Dialog Instance into:


Enter a name to be the variable that will store the specific Custom Dialog instance for
use with later UI Automation actions.

Advanced Properties Tab - Override Default CSS Theming:


Specify whether you would like to override the default theming of this Custom Dialog
with your own CSS rules.

Advanced Properties Tab - CSS Theming Overrides:


Enter the CSS rules you desire to be applied over the default theming of this Custom
Dialog.

Control Specific Tips:

© 2018 Softomotive
Date Control:
Be forewarned that the formatting flags used by the Date Control inside the Custom
Dialog are different from the flags used for converting text-to-datetime by means of
the 'Convert Text to DateTime' action. Having said this, the date-format field in the
properties of the Date Control, supports the following flags:

· d - day of month (no leading zero)

· dd - day of month (two digit)

· o - day of year (no leading zeros)

· oo - day of year (three digit)

· D - day name short

· DD - day name long

· m - month of year (no leading zero)

· mm - month of year (two digit)

· M - month name short

· MM - month name long

· y - year (two digit)

· yy - year (four digit)

· @ - Unix timestamp (ms since 01/01/1970)

· ! - Windows ticks (100ns since 01/01/0001)

· '...' - literal text

· '' - single quote

· anything else - literal text

For example in order to parse a date in ISO format like "2007-01-26" one would have to
set the date-format field of the Date Control to the pattern "yy-mm-dd".
Actions Reference 459

5.7.3 Display Notification Action

Description:

This action displays an inobtrusive message though the notification popup 90

Properties:

Notification Message:
Enter the text, or a previously defined text variable, to be displayed in the Notification
Popup while the process is being run from the WinAutomation Console Window (not
Process Designer) or as a Console Application if the process has been converted to
.exe.

© 2018 Softomotive
5.7.4 Display Input Dialog Action

Description:

This action displays a dialog box that prompts the user to enter text

The Input Dialog in action

Properties:
Actions Reference 461

Input Dialog Title:


Enter the text, or a previously defined text variable, to be used as the Dialog title.

Input Dialog Message:


Enter the text, or a previously defined variable, to be displayed as the actual message.

Default Value:
Enter the text to be displayed by default. If the user wishes to change this, they can
type over it. Otherwise, the default text will be used.

Input Type:
Choose the format for the input text. Choose Single Line - Password if you wish to hide
the text, or Multi Line if you want a larger display box to make visible more than one
line of text. Otherwise choose Single Line.

Keep Input Dialog Always on Top:


Choose whether the Input Dialog should always remain on top of all other windows.

Store User Input into:


Enter a name to be the variable that will store the text entered by the user, or the
default text.

Store Button Pressed into:


The user will automatically be given the choice of OK or Cancel. Enter a name to be
the variable that will store the text of the button pressed.

5.7.5 Display Select Date Dialog

Description:
This action displays a dialog box that prompts the user to enter a date or a date range

© 2018 Softomotive
The Select Date Dialog in action
Actions Reference 463

Properties:

Dialog Title:
Enter the text, or a previously defined text variable, to be used as the Dialog title.

Dialog Message:
Enter the text, or a previously defined variable, to be displayed as the actual message.

Dialog Type:
Choose whether the user will enter a single date or two dates to be the endpoints of a
range of dates.

Prompt for:
Choose whether the user will enter the date only or the date and time.

Default Value:
Enter a DateTime value, or a previously defined DateTime variable, to be used as the
default value.

Keep Date Selection Dialog Always on Top:


Choose whether the Date Selection Dialog should always remain on top of all other
windows.

Default Value for Second Date:


Enter a DateTime value, or a previously defined DateTime variable, to be used as the
default value for the end date in a range.

Store Selected Date into:


Enter a name to be the variable that will store the date entered by the user or the
default date.

Store Second Selected Date into:


Enter a name to be the variable that will store the second date entered by the user or
that default date.

© 2018 Softomotive
Store Button Pressed into:
The user will automatically be given the choice of OK or Cancel. Enter a name to be
the variable that will store the text of the button pressed by the user.

5.7.6 Display Select From List Dialog Action

Description:
This action displays a dialog box with options that lets the user select from a list
Actions Reference 465

© 2018 Softomotive
The Select From List Dialog in action with "Allow Multiple Selection" unchecked

The Select From List Dialog with "Allow Multiple Selection" checked

Properties:

Dialog Title:
Enter the text, or a previously defined text variable, to be used as the Dialog title.

Dialog Message:
Enter the text, or a previously defined text variable, to be displayed as a Prompt
Message for the user.

List to choose from:


Enter a list of choices - one per line, or a previously defined variable that contains a
list. This will be displayed as a drop-down menu for the user to choose from.
Actions Reference 467

Keep Select Dialog Always on Top:


Choose whether the Selection Dialog should always remain on top of all other windows.

Limit to List:
Deselect this box if you wish to allow the user to enter their own answer outside of
the list being displayed. This means the action will act more like the "Display Input
Dialog" action.

Allow Empty Selection:


Allow the user to not select anything, creating an empty Selected Item output.

Allow Multiple Selection:


Allow the user to select more than one choice. This means that the Selected Item and
Selected Index variables will hold a list of items.

Preselect Items Starting with a + Sign:


This option is available only when the previous one (Allow Multiple Selection) is
checked. By selecting this option all items with a '+' sign prepended on their name will
appear automatically preselected (and the '+' sign will be removed from the item's
text).

Store Selected Item into:


Enter a name to be the variable that will store the item selected from the list as text
(or a list of text values if 'Allow Multiple Selection' is checked).

Store Selected Index into:


Enter a name to be the variable that will store the index number of the item(s)
selected from the list. This allows you to use the item number instead of the full text
of the user's choice. The variable that will store the index of the selected item as
number (or a list of numeric values if 'Allow Multiple Selection' is checked). If the 'Limit
to List' box is not checked and the user enters a new value, the index value will be '-
1'.

Store Button Pressed into:


Enter a name to be the variable that will store the name of the button pressed by the
user (OK or Cancel).

© 2018 Softomotive
5.7.7 Display Select File Dialog Action

Description:

This action displays the Select File Dialog and prompts the user to select one or more
files
Actions Reference 469

The Select File Dialog in action (as displayed in Windows Vista)

Properties:

Dialog Title:
Enter the text, or a previously stored text variable, to be used as the Dialog title.

Initial Folder:
Enter or choose the initial folder to be opened when browsing for a file. This is where
the Select File Dialog action will start the user looking for the file(s).

File Filter:
Choose a filter to limit the files retrieved. This allows wild cards, for example "*.txt" or
"document?.doc" (without the quotes). If you want to allow for multiple file filters the
user can choose from, separate your choices with a semi-colon, for example,
"*.txt;*.exe".

Keep File Selection Dialog Always on Top:


Choose whether the File Selection Dialog should always remain on top of all other
windows.

Check if File Exists:


If checked, this action will then only accept a file (or multiple files) that already exists.

© 2018 Softomotive
Allow Multiple Selection:
Choose whether this action will allow the user to select more than one file or not.

Store Selected File(s) into:


Enter a name to be the variable that will store the file(s). If Allow Multiple Selection is
checked, this variable will contain a list of files, even if the list is only one entry. If
Allow Multiple Selection is not checked, this variable will contain a single file, not a list.

Store Button Pressed into:


The user will automatically be given the choice of Open or Cancel. Enter a name to be
the variable that will store the text of the button pressed.

5.7.8 Display Select Folder Dialog Action

Description:
This action displays the Select Folder Dialog and prompts the user to select a folder
Actions Reference 471

Properties:

Dialog Description:
Enter text to explain why you want the user to select a folder. For example, "Please
select the folder into which you wish to copy the files."

Initial Folder:
Enter or choose the initial folder to be opened. This will be the default folder unless the
user picks a new one.

Keep Folder Selection Always on Top:


Choose whether the Folder Selection Dialog should always remain on top of all other
windows.

© 2018 Softomotive
Store Selected Folder into:
Enter a name to be the variable that will store the selected folder.

Store Button Pressed into:


The user will automatically be given the choice of OK or Cancel. Enter a name to be
the variable that will store the text of the button pressed.

5.8 Files
5.8.1 Get Files in Folder Action

Description:
This action retrieves the list of files in a folder and stores the files info into a "List of
Files" variable
Actions Reference 473

Properties:

Folder:
Enter or choose the full path of the folder, or a variable containing the folder, you wish
to get files from.

File Filter:
Choose a filter to limit the files retrieved. This allows wild cards, for example "*.txt" or
"document?.doc" (without the quotes). If you want to allow for multiple file filters,
separate your choices with a semi-colon, for example, "*.txt;*.exe".

Include Subfolders:
Check this if you wish to look into Subfolders as well.

Store Retrieved Files into:


Enter a name to be the variable that will store the files selected by this action as a list
of file objects.

© 2018 Softomotive
Sort by:
Choose if this action will sort the results, and by what criteria.

Descending:
Does this action sort into ascending or descending order?

5.8.2 Copy File(s) Action

Description:

This action copies one or more files into a destination folder.

Properties:
Actions Reference 475

File to Copy:
Enter or choose the file(s) that will be copied. This can be a file path, or a variable
containing a file, a list of files, a text path, or a list of text paths. You can use the
'Get Files in Folder' action to populate a variable with a list of files.

Destination Folder:
Enter or choose the folder, or a variable containing a folder, that this action will use as
the destination for the copied files.

If File Exists:
Choose what will happen if a file with the same name already exists in the destination
folder.

Store Copied Files into:


Enter a name to be the variable that will store the copied file(s) as a list of files.

5.8.3 Move File(s) Action

Description:
This action moves one or more files into a destination folder

© 2018 Softomotive
Properties:

File to Move:
Enter or choose the the file(s) that will be moved. This can be a file path, or a variable
containing a file, a list of files, a textual path, or a list of text paths. You can use the
'Get Files in Folder' action to populate a variable with a list of files.

Destination Folder:
Enter or choose the folder, or a variable containing a folder, that this action will use as
the destination for the moved files.

If File Exists:
Choose what will happen if a file with the same name already exists in the destination
folder.

Store Moved Files into:


Enter a name to be the variable that will store the moved file(s) as a list of files.
Actions Reference 477

5.8.4 Delete File(s) Action

Description:
This action deletes one or more files

Properties:

File(s) to Delete:
Enter or choose the file(s) that will be deleted. This can be a file path, or a variable
containing a file, a list of files, a text path, or a list of text paths. You can use the
'Get Files in Folder' action to populate a variable with a list of files.

5.8.5 Rename File(s) Action

Description:
This action changes the name of one or more files

© 2018 Softomotive
Properties:

File to Rename:
Enter or choose the the file(s) that will be renamed. This can be a file path, or a
variable containing a file, a list of files, a text path, or a list of text paths. You can use
the 'Get Files in Folder' action to populate a variable with a list of files.

Rename Scheme:
Choose how you wish to rename the file(s).
Actions Reference 479

Rename Scheme: Set New Name

New File Name:


Enter the text, or a previously stored text variable, to be the new name of the file(s).

Keep Extension:
Check this box if you wish to include the previous extension with the file name(s). If
this box is not checked, you must include the extension you wish the file(s) to have,
or it will have none.

Rename Scheme: Add Text

Text to Add:
Enter the text, or a previously stored text variable, to add to the original file name(s).

Add Text:
Choose whether to add the text before or after the original name(s).

Rename Scheme: Remove Text

Text to Remove:
Enter the text, or a previously stored text variable, to remove from the original file
name(s). This will search each file name, and remove the entered text from anywhere
in the name. If this text exists more than once in the original name(s), it will be
removed every time.

Rename Scheme: Replace Text

Text to Replace:
Enter the text, or a previously stored text variable, to be replaced in the original file
name(s). This will search each file name, and replace the entered text anywhere in the
name, each time it occurs.

© 2018 Softomotive
Replace with:
Enter the text, or a previously stored text variable, to replace the original text.

Rename Scheme: Change Extension

New Extension:
Enter the text, or a previously stored text variable, to be the new extension for the
file(s).

Rename Scheme: Add Date or Time

DateTime to Add:
Choose what DateTime value to add to the file name(s).

Custom DateTime:
Enter a previously stored DateTime variable to be added to the file name(s).

Add DateTime:
Choose whether to add the DateTime before or after the original name(s).

Separator:
Choose what to use to separate the original file name and the DateTime value added,
including 'no separator'.

DateTime Format:
Enter or choose a Format this action will use to express the DateTime value that will
be added to the file name. You can custom format a DateTime as, for example,
MM/dd/yyyy for date, and hh:mm:sstt for time.

Example:
Here you can see an example of the final output.
Actions Reference 481

Rename Scheme: Make Sequential

Add Number to:


Choose whether to add the number to the existing file name(s) or a new name.

New Name:
Enter the text, or a previously stored text variable, to be the new base name of the
file(s).

Add Number:
Choose whether to add the number before or after the original name(s) or a new base
name.

Start Numbering at:


Enter a number, or a previously stored number variable, to be the starting number
value.

Increment by:
Enter a number, or a previously stored number variable, to be the increment this action
will count by.

Separator:
Choose what to use to separate the original file name and the number added, including
'no separator'.

Make each number at least:


Choose to have a set minimum length for each number added.

Example:
Here you can see an example of the final output.

If File Exists:
Choose what will happen if a file with the same name already exists in the folder.

© 2018 Softomotive
Stored Renamed Files into:
Enter a name to be the variable that will store the renamed file(s) as a list of files.

5.8.6 Read Text from File Action

Description:
This action reads the content of a text file and stores it into a variable

Properties:

File Path:
Enter or choose the the file to be read. This can be a file path, or a variable containing
a file or a textual path.
Actions Reference 483

Store Content As:


Choose how to store the text. If you choose Single Text Value, the entire text will be
stored as a single text value. If you choose to store as a List, each line of the original
text will be a text item in the list.

Encoding:
Select the encoding of the input text File.

Store Content Into:


Enter a name to be the variable that will store the contents as a text or list of texts,
depending on your choice in 'Store File Content As'.

5.8.7 Write Text to File Action

Description:
This action writes or appends text to a file

© 2018 Softomotive
Properties:

File Path:
Enter or choose the file to be to be written to. This can be a file path, or a variable
containing a file or a textual path.

Text to Write:
Enter the text, or a previously stored variable, to be the content to write.
Actions Reference 485

Append New Line:


Defines whether a new line character should be appended at the end of the overall
text to be written to the file.

If File Exists:
Choose whether to overwrite the existing content, or to append to the end of the
existing content. If the file does not exist, this action will automatically create it.

Encoding:
Select the encoding used for the specified text to be written into the text file.

5.8.8 Read From CSV File Action

Description:
Reads a CSV file into a Data Table Variant.

© 2018 Softomotive
Properties:

File Path:
Enter or choose the CSV file to be read. This can be a file path, or a variable
containing a file or a textual path.

Encoding:
Select the encoding to be used for reading the CSV file.

Store Table into:


Enter the name of the variable that will store the contents of the CSV file as a Data
Table.

5.8.9 Write to CSV File Action

Description:
Writes a Data Table Variant or Data Row Variant or List Variant to a CSV file.
Actions Reference 487

© 2018 Softomotive
Properties:

Variable to Export:
Enter the name of the Data Table Variable or Data Row Variable or List Variable which
must be written into the target CSV file.

File Path:
Enter or choose the CSV file to export the variable to. This can be a file path, or a
variable containing a file or a textual path.

Encoding:
Select the encoding to be used for writing to the CSV file specified.

Include column names:


Choose whether the column names of the variant specified should become the very
first row of the CSV file. This option takes effect if and only if the target CSV file
either does not initially exist or exists but is otherwise empty of text.

If file exists:
Specify the desired behavior when the targeted CSV file is found to be already present
in the filesystem.

Columns Separator:
Specify the column separator to use in the CSV file to be created.

5.8.10 Get FilePath Part Action

Description:
This action retrieves one or more parts (directory, filename, extension etc) from a text
that represents a FilePath
Actions Reference 489

Properties:

File Path:
Enter a previously defined text variable containing a file path to be used as the source.

Root Path:
Enter a name to be the variable that will contain the Root Path of the source file.

Directory:
Enter a name to be the variable that will contain the Directory of the source file.

File Name:
Enter a name to be the variable that will contain the name of the source file.

© 2018 Softomotive
File Name without Extension:
Enter a name to be the variable that will contain the file name (without the extension)
of the source file.

Extension:
Enter a name to be the variable that will contain the Extension (for example, .doc) of
the source file.

5.8.11 Get Temporary File Action

Description:
This action creates a uniquely named, empty temporary file on disk, and returns the
file object (which is a representation, and can access the file and all its information).

Properties:
Actions Reference 491

Store Temporary File into:


Enter a name to be the variable that will contain the temporary file object.

5.9 Folders
5.9.1 Get Subfolders in Folder Action

Description:

This action retrieves the list of subfolders in a folder and stores the subfolders info into
a List of folders variable

© 2018 Softomotive
Properties:

Folder:
Enter or choose the full path of the folder, or a variable containing the folder, you wish
to retrieve the list of Subfolders from.

Include Subfolders:
Check this if you wish to look into the Subfolders, and retrieve their Subfolders (and so
on) as well.

Store Retrieved Subfolders into:


Enter a name to be the variable that will store all of the Subfolders selected by this
action as a list of folders.

Sort By:
Choose if this action will sort the results, and by what criteria.
Actions Reference 493

Descending:
Does this action sort into ascending or descending order?

5.9.2 Create Folder Action

Description:
This action creates a new folder

Properties:

Create New Folder into:


Enter or choose the full path of the folder, or a variable containing the folder, you wish
to create a new Folder in.

New Folder Name:


Enter the text, or a text variable, to be the name of the new Folder.

© 2018 Softomotive
Store Newly Created Folder into:
Enter a name to be the variable that will contain the created Folder object (which is a
representation, and can access the folder and all its information).

5.9.3 Delete Folder Action

Description:
This action deletes an existing folder and its contents (files and subfolders)

Properties:

Folder to Delete:
Enter or choose the full path of the folder, or a variable containing the folder, you wish
to delete. Remember that all contents of that folder, and its Subfolders, will be deleted
too.
Actions Reference 495

5.9.4 Empty Folder Action

Description:

This action deletes all the contents of a folder (files and subfolders) without deleting
the folder itself.

Properties:

Folder to empty:
Enter or choose the full path of the folder, or a variable containing the folder whose
contents you want to delete.

5.9.5 Copy Folder Action

Description:
This action copies a folder into a destination folder

© 2018 Softomotive
Properties:

Folder to Copy:
Enter or choose the full path of the folder, or a variable containing the folder, you wish
to copy. If the folder path ends with a \ only the contents of the folder (files +
subfolders) will be copied. Otherwise, the folder itself (along with its contents) will be
copied as a subfolder into the destination folder

Destination Folder:
Enter or choose the full path of the folder, or a variable containing the folder, to be
the destination Folder.

If Folder Exists:
Choose whether to overwrite files or to not copy if the destination folder already
exists. If the folder exists, but the files have different names, the old files will still be in
the folder.
Actions Reference 497

Store Copied Folder into:


Enter a name to be the variable that will contain the copied folder object (which is a
representation, and can access the folder and all its information).

5.9.6 Move Folder Action

Description:
This action moves an existing folder into a destination folder

Properties:

Folder to Move:
Enter or choose the full path of the folder, or a variable containing the folder, you wish
to move.

© 2018 Softomotive
Destination Folder:
Enter or choose the full path of the folder, or a variable containing the folder, to be
the destination Folder.

Store Moved Folder into:


Enter a name to be the variable that will contain the moved folder object (which is a
representation, and can access the folder and all its information).

5.9.7 Rename Folder Action

Description:
This action changes the name of a folder

Properties:
Actions Reference 499

Folder to Rename:
Enter or choose the full path of the folder, or a variable containing the folder, to be
the Folder that will be renamed.

New Folder Name:


Enter or choose the full path, or a variable containing the folder, to be the new Folder
name.

Store Renamed Folder into:


Enter a name to be the variable that will contain the renamed folder object (which is a
representation, and can access the folder and all its information).

5.9.8 Get Special Folder Action

Description:
This action retrieves the path of a Windows' special folder (such as Desktop, My
Pictures, Internet Cache etc)

© 2018 Softomotive
Properties:

Special Folder Name:


Choose the name of the Special Folder (like My Documents or Desktop). This will be
independent of path, so the Special Folder can be found on any computer regardless of
path specifics. The Special Folder Path for the current computer will be displayed in
the field below.

Store Special Folder Path into:


Enter a name to be the variable that will contain the Special Folder object (which is a
Folder object 291 , and can access the folder and all its information).

More Information:
This command is extremely useful if you plan to send a compiled process to many
people. Let's say you're unzipping a file to the end user's desktop. The path would look
something like this: "C:\Users\Jane Doe\Desktop". Obviously, this will only work if "Jane
Doe" is the current user. If "John Doe" tried to run the process it would fail. This action
Actions Reference 501

could be used to solve such problems by replacing the names of folders when needed
automatically.

5.10 Compression
5.10.1 Zip Files Action

Description:
This action compresses one or more files or folders into a Zip archive

Properties:

© 2018 Softomotive
Archive Path:
Enter the full path of zip file you wish to create. If this file already exists, the new
zipped files and/or folders will be added to the zip file. If the zip file already contains a
file or folder with the same name, the existing one will be overwritten by the one
brought in by this action.

File(s) to Zip:
Enter or choose the full path of a file or folder, or the name of a variable containing a
file, a folder, or a list of files or folders, that you wish to include in the zip file. A list
can be built with the 'Get Files in Folder' or 'Get Subfolders in Folder' actions. If you
create a list of files, all subfolder information will be lost, and these will be extracted to
the base folder. If you create a list of folders, subfolders will be kept, and the files will
be extracted to their same directory structure.

Compression Level:
Choose the level of compression you want to use. The higher the compression, the
smaller the file, though it takes longer to create or access.

Password:
Enter a password if you want the archive to be password protected. Otherwise leave
this field blank and it will not have a password.

Archive Comment:
Enter any comment you wish to be included in the zip file as a file property.

Store Zip File into:


Enter a name to be the variable that will store the zip file created by this action.

5.10.2 Unzip Files Action

Description:
This action uncompresses one or more files or folders contained in a Zip archive
Actions Reference 503

Properties:

Archive Path:
Enter or choose the full path of a zip file, or the name of a variable containing a zip
file, to be extracted.

Destination Folder:
Enter or choose the full path of a folder, or the name of a variable containing a folder,
to extract the archive to. This will overwrite files in the folder with the same name as
a file in the archive.

Password:
Include the password, if any, that is used for this archive. If the zip file is not
password-protected, leave this blank.

© 2018 Softomotive
Include Mask:
Choose a filter to limit the files extracted to those entered here. This allows wild cards,
for example "*.txt" or "document?.doc" (without the quotes). If you want to allow for
multiple file filters, separate your choices with a semi-colon, for example, "*.txt;*.exe".
Other files will not be extracted.

Exclude Mask:
Choose a filter to limit the files extracted by excluding those entered here. This allows
wild cards, for example "*.txt" or "document?.doc" (without the quotes). If you want
to allow for multiple file filters, separate your choices with a semi-colon, for example,
"*.txt;*.exe". These files will not be extracted.

5.11 Clipboard
5.11.1 Get Clipboard Text Action

Description:
This action copies the text from the clipboard into a variable
Actions Reference 505

Properties:

Store Clipboard Text Into:


Enter a name to be the variable that will store the text currently in the clipboard.

5.11.2 Set Clipboard Text Action

Description:
This action copies text to the clipboard

© 2018 Softomotive
Properties:

Text to store into Clipboard:


Enter the text, or a previously stored text variable, to be copied into the clipboard.

5.11.3 Clear Clipboard Contents Action

Description:
This action clears the contents of the clipboard
Actions Reference 507

Properties:
This action does not have any configurable properties.

5.12 UI and Windows


5.12.1 Use Desktop Action

Description:
Perform desktop and taskbar related operations

© 2018 Softomotive
Properties:

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Click-Type:
Set the click action you want to perform on the specified element by selecting the
click-type (left/right/double click). Quick-launch items will attempt to spawn a new
application window, whenever this is possible.
Actions Reference 509

5.12.2 Select Tab in Window Action

Description:

Select a Tab from a group of Tabs.

Properties:

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

© 2018 Softomotive
5.12.3 Click Element in Window Action

Description:

Clicks on any element of a Window.


Actions Reference 511

Properties

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

5.12.4 Select Menu Option in Window Action

Description:
Selects an Option in a Menu of a Window

© 2018 Softomotive
Properties

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

i.e. To select the "Save As" menu option on a text file, once you select the control the
properties of the action will look like this:
Actions Reference 513

5.12.5 Drag and Drop Element in Window Action

Description:

Drags and Drops an Element of a Window

© 2018 Softomotive
Properties:

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Advanced Properties Tab - Click-Type:


Specify which mouse button to use for clicking and holding down, while dragging the
element over to its destination.
Actions Reference 515

Advanced Properties Tab - Drag and Drop Targets Mouse Position


Relative to Element:
For occasions where the target element is part of a parent element and cannot be
identified as a separate control ( when selected from the General Properties tab), you
have to select the overall element and in the Advanced Properties Tab set the specific
area of the element you want to place your cursor and click.

To do so you may initially select one of the nine parts in which the element is divided
to place your the cursor, while for more fine tuning of cursor's position you may also
define the Offset (in pixels) for X and Y axes relative to the control element’s border or
corner (as defined by the red arrow in each part).

e.g. for the setting above the cursor will be placed in the middle right section of the
control element 2 px left from the right border and 5px lower from the middle.

5.12.6 Expand / Collapse Tree Node in Window Action

Description:
Expands or Collapses a Node of a Tree view residing in a Window

© 2018 Softomotive
Properties:

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Folders Path:
Enter a forward slash separated path made out of folders names leading to the Tree
Node you want to expand or collapse.

Note that you may also use a value of a variable (generated in an earlier step of the
process) to specify the path to the tree node you wish to expand or collapse.
Actions Reference 517

Use Regular Expression:


In the case of using a value of a variable for Folder Path input and depending on its
notation, you may also need to check the ‘Use Regular Expression’ option so that
action will interpret the name of the folder as a regular expression.

Operation:
Select whether you want to expand or collapse the tree node.

5.12.7 Windows
5.12.7.1 Get Window Action

Description:
Gets a running window, for automating desktop applications.

© 2018 Softomotive
Get Specific Window
Actions Reference 519

Get Foreground Window

Properties:

Get:
Choose whether the action looks for the Window using a UIAutomation Instance
Variable or a combination of Window Title/Class.

Depending on the Get option you will have some of the following inputs

Associate window with control:


Choose whether the window that this action trying to find will be associated with an
existing control into controls repository or a new one that will be created.

© 2018 Softomotive
Window:
Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Store Window Title into (when Get is "Foreground Window"):


Enter a name to be the variable that will store the title of the Foreground Window

Store Window Instance into:


Enter a name to be the variable that will store the title of the specific Window
Instance for use with later UI Windows actions

5.12.7.2 Focus Window Action

Description:
This action activates and brings a specific window to the foreground
Actions Reference 521

by Window Control

© 2018 Softomotive
by Window Instance/Handle
Actions Reference 523

by Title and/or Class

Properties:

Get Window:
Choose whether the action looks for the Window using a UIAutomation Instance
Variable or a combination of Window Title/Class.

Depending on the Get Window option you will have some of the following inputs

© 2018 Softomotive
Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Window Instance:
Enter the variable of a variable that contains a UI Automation Instance, acquired by a
Get Window Action.

Window Title:
Choose title of window. You can use wildcards, like '?' or '*'. If you can't find the
window title in the dropdown list, type it yourself, or open it and press the Refresh
button to the right.

Window Class:
Optional: If you have two windows with the same title, Window Class may help
differentiate between them. In this case, enter the class of the window you wish to
use. Otherwise, leave this blank.

5.12.7.3 Set Window State Action

Description:
This action restores, maximizes or minimizes a specific window
Actions Reference 525

by Window Control

© 2018 Softomotive
by Window Instance/Handle
Actions Reference 527

by Title and/or Class

Properties:

Get Window:
Choose whether the action looks for the Window using a UIAutomation Instance
Variable or a combination of Window Title/Class.

Depending on the Get Window option you will have some of the following inputs

© 2018 Softomotive
Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Window Instance:
Enter the variable of a variable that contains a UI Automation Instance, acquired by a
Get Window Action.

Window Title:
Choose title of window. You can use wildcards, like '?' or '*'. If you can't find the
window title in the dropdown list, type it yourself, or open it and press the Refresh
button to the right.

Window Class:
Optional: If you have two windows with the same title, Window Class may help
differentiate between them. In this case, enter the class of the window you wish to
use. Otherwise, leave this blank.

Set Window State to:


Choose in which state you would like to display the window.

5.12.7.4 Set Window Visibility Action

Description:

This action shows a hidden window or hides a visible window


Actions Reference 529

by Window Control

© 2018 Softomotive
by Window Instance/Handle
Actions Reference 531

by Title and/or Class

Properties:

Get Window:
Choose whether the action looks for the Window using a UIAutomation Instance
Variable or a combination of Window Title/Class.

Depending on the Get Window option you will have some of the following inputs

© 2018 Softomotive
Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Window Instance:
Enter the variable of a variable that contains a UI Automation Instance, acquired by a
Get Window Action.

Window Title:
Choose title of window. You can use wildcards, like '?' or '*'. If you can't find the
window title in the dropdown list, type it yourself, or open it and press the Refresh
button to the right.

Window Class:
Optional: If you have two windows with the same title, Window Class may help
differentiate between them. In this case, enter the class of the window you wish to
use. Otherwise, leave this blank.

Set Window Visibility to:


Choose in which state you would like to display the window.

5.12.7.5 Move Window Action

Description:

This action sets the position of a specific window


Actions Reference 533

by Window Control

© 2018 Softomotive
by Window Instance/Handle
Actions Reference 535

by Title and/or Class

Properties:

Get Window:
Choose whether the action looks for the Window using a UIAutomation Instance
Variable or a combination of Window Title/Class.

Depending on the Get Window option you will have some of the following inputs

© 2018 Softomotive
Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Window Instance:
Enter the variable of a variable that contains a UI Automation Instance, acquired by a
Get Window Action.

Window Title:
Choose title of window. You can use wildcards, like '?' or '*'. If you can't find the
window title in the dropdown list, type it yourself, or open it and press the Refresh
button to the right.

Window Class:
Optional: If you have two windows with the same title, Window Class may help
differentiate between them. In this case, enter the class of the window you wish to
use. Otherwise, leave this blank.

New Window Position:


Set the position of the top left corner of the Window on the X and Y coordinates,
based on the pixels of the screen.

5.12.7.6 Resize Window Action

Description:
This action sets the size of a specific window
Actions Reference 537

by Window Control

© 2018 Softomotive
by Window Instance/Handle
Actions Reference 539

by Title and/or Class

Properties:

Get Window:
Choose whether the action looks for the Window using a UIAutomation Instance
Variable or a combination of Window Title/Class.

Depending on the Get Window option you will have some of the following inputs

© 2018 Softomotive
Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Window Instance:
Enter the variable of a variable that contains a UI Automation Instance, acquired by a
Get Window Action.

Window Title:
Choose title of window. You can use wildcards, like '?' or '*'. If you can't find the
window title in the dropdown list, type it yourself, or open it and press the Refresh
button to the right.

Window Class:
Optional: If you have two windows with the same title, Window Class may help
differentiate between them. In this case, enter the class of the window you wish to
use. Otherwise, leave this blank. this blank.

New Window Size:


Set the new size of the Window, in pixels.

5.12.7.7 Close Window Action

Description:

This action closes a specific window


Actions Reference 541

by Window Control

© 2018 Softomotive
by Window Instance/Handle
Actions Reference 543

by Title and/or Class

Properties :

Get Window:
Choose whether the action looks for the Window using a UIAutomation Instance
Variable or a combination of Window Title/Class.

Depending on the Get Window option you will have some of the following inputs

© 2018 Softomotive
Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Window Instance:
Enter the variable of a variable that contains a UI Automation Instance, acquired by a
Get Window Action.

Window Title:
Choose title of window. You can use wildcards, like '?' or '*'. If you can't find the
window title in the dropdown list, type it yourself, or open it and press the Refresh
button to the right.

Window Class:
Optional: If you have two windows with the same title, Window Class may help
differentiate between them. In this case, enter the class of the window you wish to
use. Otherwise, leave this blank. this blank.

5.12.8 Form Filling


5.12.8.1 Focus Text Field in Window Action

Description:
Sets the input Focus on a Text Box of a Window and scrolls it into view.
Actions Reference 545

Properties:

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

5.12.8.2 Populate Text Field in Window Action

Description:
Fills a TextBox in a Window with the specified text.

© 2018 Softomotive
Properties:

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Text to Fill In:


Enter here the text you want to fill in the text field with.

You may also use as input the value of a variable defined in a preceding action of your
Process.
Actions Reference 547

5.12.8.3 Press Button in Window Action

Description:

Presses a Window Button

Properties:

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

© 2018 Softomotive
5.12.8.4 Select Radio Button in Window Action

Description:

Selects a Radio Button in the Window

Properties:

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

5.12.8.5 Set Checkbox State in Window Action

Description:
Checks or unchecks a Checkbox in a Window Form
Actions Reference 549

Properties:

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Set Checkbox State to:


Select whether you want the checkbox to be checked or unchecked.

5.12.8.6 Set Dropdown List Value in Window Action

Description:
Sets or clears the Selected Option from a Drop Down List in a Window Form

© 2018 Softomotive
Operation: Clear Selected Options
Actions Reference 551

Operation: Select Option(s)

Properties:

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Operation:
Set whether you want to select a value or clear the selected value from a dropdown
list.

© 2018 Softomotive
Select Option(s) by:
Set the selection method for the value(s) of the Dropdown list.

You may choose to do so either by name or by ordinal position.

Depending on the dropdown list control element design you may be able to select a
single or multiple items.

For selection by name, multiple selection is available by entering more than one names
(one per line). For selection by index, multiple selection is available by entering more
than one items’ index separated by a space or a - e.g. 1-3-4.

Note that if the Dropdown list only supports single selection and you have specified
more than one items then only the first specified will be used.

5.12.9 Data Extraction


5.12.9.1 Get Details of Window Action

Description:
Get a property of a Window, such as its title or its source text.
Actions Reference 553

Properties:

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Operation:
Specify the information of the running Window that you want to retrieve. You have the
option to get details such as Window title,Window text, Window location and size.

Store Property Into:


Set the name of the variable that will hold the retrieved information of the Window.
The value of this variable can be used in a following action (e.g. displayed through a
“Display Message” action).

© 2018 Softomotive
5.12.9.2 Get Details of Element in Window Action

Description:

Gets the value of an element’s attribute in a Window


Actions Reference 555

Properties:

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Attribute Name:
You have the option to get details for element attributes such as element’s own text,
whether it exists or not, its location and size, and whether it is enabled or not. To
select the attribute for which the details you want to retrieve use the ‘Attribute Name’
property menu options in the Advanced Tab.

Store Element Text Into:


Set the name of the variable that will hold the retrieved information of the Element’s
attribute. The value of this variable can be used in a following action (e.g. displayed
through a “Display Message” action).

© 2018 Softomotive
5.12.9.3 Get Selected Checkboxes in Window Action

Description:

Retrieves the names of the Selected Checkboxes in a Checkbox Group or the State of
a specific Checkbox.
Actions Reference 557

Properties:

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Operation:
Specify whether you want to retrieve the names of multiple Checkboxes in the running
window or just the State of a Specific Checkbox

Store Selected Checkboxes/Checkbox Into:


Set the name of the variable that will hold the names of the Selected
Checkboxes/state of the specific Checkbox. The value of this variable can be used in a
following action (e.g. displayed through a “Display Message” action).

5.12.9.4 Get Selected Radiobutton in Window Action

Description:
Retrieves the names of the Selected Radiobutton in a Radiobutton Group or the State
of a specific Radiobutton.

© 2018 Softomotive
Actions Reference 559

Properties:

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Operation:

Specify whether you want to retrieve the name of the Radiobutton that is selected
within a Radiobutton Group in the running window or just the State of a Single
Radiobutton.

Store Selected Radiobutton Into:


Set the name of the variable that will hold the name of the Selected Radiobutton/state
of the specific Radiobutton. The value of this variable can be used in a following action
(e.g. displayed through a “Display Message” action).

5.12.9.5 Extract Data from Window Action

Description:
Extracts Data from specific parts of a Window in the form of single values, lists or
tables.

© 2018 Softomotive
Store data in an Excel Spreadsheet
Actions Reference 561

Store data in a Variable

Properties:

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Store Extracted data in:


Specify whether you want to store the Extracted Data in an Excel Spreadsheet or as
the value of a variable.

© 2018 Softomotive
Store New Excel Instance Into:
In the case that you have selected to store the Extracted Data in an Excel
Spreadsheet, enter the name to be the variable that will hold the Excel Instance with
the Extracted Data. This instance can be used in consequent dedicated Excel Actions
to manipulate (or save and close) the spreadsheet.

Store Extracted Data Into:


In the case that you have selected to store the Extracted Data as the value of a
variable,set the name of the variable that will hold these Data. The value of this
variable can be used in a following action (e.g. displayed through a “Display Message”
action).

5.13 Web Automation


5.13.1 Launch New Internet Explorer Action

Description:
Launches a new instance of IE or attaches to a running instance of IE for automating
web sites and web applications.

Launch Automation Browser


Actions Reference 563

Launch New Internet Explorer

© 2018 Softomotive
Attach to running IE
Actions Reference 565

Advnced tab of "Launch New Internet Explorer"

Properties:

Operation:
Select the type of Internet Explorer you wish to work with. Note that if you want to
use Internet Explorer to automate your web related tasks you will need to configure its
security settings 267 first.

Initial URL:
Enter the URL of the web site you want to visit as soon as the web browser is
launched.

Window State:
Specify whether the Web Browser window will be launched in normal, minimized of
maximized state.

© 2018 Softomotive
Attach to Internet Explorer Tab:
Choose whether the action will attach to an Internet Explorer Tab by it's Title, by it's
URL, or attach to the Active Tab of the Internet Exlorer running as the Foreground
Window.

Tab Title:
Specify the title (or part of it) of the Internet Explorer Tab you want to attach to. In
the dropdown list you can choose between the titles of all the IE tabs that are
currently open.

Tab URL:
Enter the URL of the Internet Explorer Tab you want to attach to.

Store Internet Explorer Instance into:


Enter a name to be the variable that will store the specific Internet Explorer Instance
for use with later web automation actions.

Clear Cache:
Specify whether to clear the entire cache of the web browser right after launching it.

Clear Cookies:
Specify whether to clear all stored cookies in the web browser right after launching it.

Wait for Page to Load:


Choose whether you want the Process to wait for the new web page to load
completely before proceeding to the next action.

If a popup dialog appears:


Specify what you want the Process to do if a popup dialog appears while loading the
initial web page.
Actions Reference 567

5.13.2 Launch New Firefox


(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

Description:
Launches a new instance of Mozilla Firefox or attaches to a running instance of Firefox
for automating web sites and web applications.

Launch New Firefox

© 2018 Softomotive
Attach to running Firefox Instance

Properties:

Operation:
Select whether you wish to work with an existing running instance of your browser or if
you want to launch a new one. You can select either the 'Launch New Firefox' option
or the 'Attach to Running Firefox' option.
Actions Reference 569

The 'Attach to Running Firefox' option should be selected when we have (or we are
about to have through a running script ) an open Instance of Firefox and we want to
reference that Instance (or Tab) somewhere within our scripts via a Variable.

Initial URL:
If you have selected to work with a new Firefox Instance (Launch New Firefox) in the
Operation drop down menu, the Initial URL text box will invite you to enter the URL of
the web site you want to visit as soon as the web browser is launched.

Window State:
If you have selected to work with a new Firefox Instance (Launch New Firefox) in the
Operation drop down menu, the Window State text box will invite you to specify
whether the new web browser window will be launched in normal, minimized of
maximized state.

Select Firefox:
If you have selected to work with an already running Firefox Instance (Attach to
Running Firefox) the Select Firefox drop down menu will invite you to specify whether
you want to identify that instance via its Title, its URL or simply by the fact that the
Instance is running currently in the Foreground:

© 2018 Softomotive
Once more, according to our option we will have the opportunity to work with two
different text boxes, the Tab URL and Tab Title respectively, that will allow us to enter
the info necessary in order to locate the running Instance that is interesting us.

Tab Title:
If you have selected to work with a running Firefox Instance (Attach to Running
Firefox) this drop down menu allows you to specify the title (or part of it) of the
Firefox Window or Tab you want to use in your scripts. From this drop down list you
can choose between the titles of all the Firefox windows or tabs that are currently
open.

Tab URL:
Enter the URL of the Firefox Tab you want to use in your scripts.

Store Firefox Instance into:


Enter a name to be the variable that will store the specific Firefox Instance for use in
later web automation actions.
Actions Reference 571

The Advanced tab:

The Advanced tab options are available to you only if you have previously selected to
work with a brand new Firefox Instance.

Advanced tab of "Launch New Firefox"

Clear Cache:
Specify whether to clear the entire cache of the web browser right after launching it.

Clear Cookies:
Specify whether to clear all stored cookies in the web browser right after launching it.

© 2018 Softomotive
Wait for Page to Load:
Choose whether you want the Process to wait for the new web page to load
completely before proceeding to the next action.

If a pop-up dialog appears:


Specify what you want the Process to do if a pop-up dialog appears while loading the
initial web page.

5.13.3 Launch New Chrome


(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

Description:
Launches a new instance of Google Chrome or attaches to a running instance of
Chrome for automating web sites and web applications.
Actions Reference 573

Launch New Chrome

© 2018 Softomotive
Attach to running Chrome Instance

Properties:

Operation:
Select whether you wish to work with an existing running instance of your browser or if
you want to launch a new one. You can select either the 'Launch New Chrome' option
or the 'Attach to Running Chrome' option.
Actions Reference 575

The 'Attach to Running Chrome' option should be selected when we have (or we are
about to have through a running script ) an open Instance of Chrome and we want to
reference that Instance (or Tab) somewhere within our scripts via a Variable.

Initial URL:
If you have selected to work with a brand new Google Chrome Instance (Launch New
Chrome) in the Operation drop down menu, the Initial URL text box will invite you to
enter the URL of the web site you want to visit as soon as the web browser is
launched.

Window State:
If you have selected to work with a brand new Google Chrome Instance (Launch New
Chrome) in the Operation drop down menu, the Window State text box will invite you
to specify whether the new web browser window will be launched in normal, minimized
of maximized state.

Select Chrome:
If you have selected to work with an already running Google Chrome Instance (Attach
to Running Chrome) the Select Chrome drop down menu will invite you to specify
whether you want to identify that instance via its Title, its URL or simply by the fact
that the Instance is running currently in the Foreground:

© 2018 Softomotive
Once more, according to our option we will have the opportunity to work with two
different text boxes, the Tab URL and Tab Title respectively, that will allow us to enter
the info necessary in order to locate the running Instance that is interesting us.

Tab Title:
If you have selected to work with a running Chrome Instance (Attach to Running
Chrome) this drop down menu allows you to specify the title (or part of it) of the
Chrome Tab you want to work with in your scripts. From this drop down list you can
choose between the titles of all the Chrome tabs that are currently open.

Tab URL:
Enter the URL of the Chrome Tab you want to use in your scripts.

Store Chrome Instance into:


Enter a name to be the variable that will store the specific Chrome Instance for use in
later web automation actions.
Actions Reference 577

The Advanced tab:

The Advanced tab options are available to you only if you have previously selected to
work with a brand new Chrome Instance.

Advanced tab of "Launch New Chrome"

Clear Cache:
Specify whether to clear the entire cache of the web browser right after launching it.

Clear Cookies:
Specify whether to clear all stored cookies in the web browser right after launching it.

© 2018 Softomotive
Wait for Page to Load:
Choose whether you want the Process to wait for the new web page to load
completely before proceeding to the next action.

If a pop-up dialog appears:


Specify what you want the Process to do if a pop-up dialog appears while loading the
initial web page.

5.13.4 Create New Tab


The Create new Tab action allows you to create a new tab on a running web browser instance. The
Web Browser Instance in which the tab will be added is provided to the action via a Variable [1] and
the URL you want the tab to navigate to can be provided as either a string or a Variable [2]. The
output of the Action is another Variable [3] of type Web Browser Instance.
Actions Reference 579

1. The Web Browser Instance:

This drop down menu will present to you a list with all the available variables of web
browser instance type. You have not but to select the one that interests you:

2.URL to navigate to:

This text box allows you to either enter directly the URL you want to navigate to (for
example https://en.wikipedia.org/wiki/Domain_controller) or to simply press the
interactive gear control element that will allow you to select a variable as this
property's value.

© 2018 Softomotive
3. Start New Web Browser Instance into:

Here you have not but to enter a name as the name of the Variable that will store the
resultant web browser instance (the new Tab you have just created) for later use:
Actions Reference 581

5.13.5 Go to Web Page Action

Description:

Navigates the Web Browser to a new page, back, forward or reloads the currently
loaded page.

© 2018 Softomotive
Properties:

Web Browser Instance:


Enter the variable that contains the Web Browser Instance you want to work with.
This must be a variable defined by a preceding "Launch New Internet Explorer 562 "
action.

Navigate:
Specify whether you want to visit a new URL, refresh the page, move back or forward.

URL to navigate to:


Enter here the URL you want to navigate to.

Wait for Page to Load:


Choose whether you want the Process to wait for the new web page to load
completely before proceeding to the next action.
Actions Reference 583

If a popup dialog appears:


Specify what you want the Process to do if a popup dialog appears while loading the
web page.

5.13.6 Click Link on Web Page Action

Description:
Clicks on a Link, or any other element, of a Web Page.

© 2018 Softomotive
Properties:

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Wait for Page to Load:


Choose whether you want the Process to wait for the new web page to load
completely after clicking on the link.

If a pop-up dialog appears:


Specify what you want the Process to do if a pop-up dialog appears after clicking on
the link.
Actions Reference 585

5.13.7 Click Download Link on Web Page Action

Description:

Clicks on a link in a Web Page that results in downloading a file.

Properties:

Web Browser Instance:


Enter the variable that contains the Web Browser Instance you want to work with.
This must be a variable defined by a preceding "Launch New Internet Explorer 562 "
action.

© 2018 Softomotive
Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Destination Folder:
Enter the folder where you want the file to be saved.

Store Download File into:


Enter the name to be the variable that will store the file on the disk where the
download has been saved. This will be a file path that consists of the download folder
as specified above plus the name of the file as provided by the web server.

5.13.8 Hover Mouse over element on Web Page Action

Description:
This action hovers the mouse over an element of a Web Page
Actions Reference 587

Properties:

Web Browser Instance:


Enter the variable that contains the Web Browser Instance you want to use. This must
be a variable defined by a preceding "Launch New Internet Explorer 562 " action.

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

5.13.9 Close Web Browser

Description:
Closes a Web Browser window that has been previously opened by a "Launch new
Internet Explorer 562 /Firefox 567 /Chrome 572 " action.

© 2018 Softomotive
Properties:

Web Browser Instance:


Click on the drop down menu and select the the variable that contains the Web
Browser Instance you want to close.
Actions Reference 589

5.13.10 Execute Javascript Function On Web


This action allows you to execute a given Javascript function [2] on a web page [1]
and stores the returned result into a variable for later use [3]:

1. Web Browser Instance:

This drop down menu allows you to enter effortlessly the Browser Instance of your choice, by listing
all the variables of that type (web browser instance) in your script:

© 2018 Softomotive
It is worth noting here, that the drop down menu will list even browser instances that
haven't yet come up on your workflow, so you might want to be careful about that.

2. Javascript Function:
The Javascript Function text box, not only allows you to enter your javascript through
a variable, using the handy familiar gear next to the info bubble, but it also comes with
a little helper on its own, the Use Template button [a]. This button produces the
following Javascript template that helps you understand how you should structure your
code:
Actions Reference 591

In this template, you should replace the single line comments in green with your js

© 2018 Softomotive
3. Result:

This text box invites you to enter a new or existing variable in order to store in it the
result of the Javascript Function from [2] for later use.

5.13.11 Web Forms


5.13.11.1 Focus Text Field on Web Page Action

Description:
Sets the input Focus on a Text Box of a Web Page and scrolls it into view.
Actions Reference 593

Properties:

Web Browser Instance:


Enter the variable that contains the Web Browser Instance you want to work with.
This must be a variable defined by a preceding "Launch New Internet Explorer 562 "
action.

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Wait for Page to Load:


Choose whether you want the Process to wait for the new web page to load
completely after setting the focus on the text field.

If a popup dialog appears:


Specify what you want the Process to do if a popup dialog appears after setting the
focus on the text field.

© 2018 Softomotive
5.13.11.2 Populate Text Field on Web Page Action

Description:

Fills a web form text field in a web page with the specified text.
Actions Reference 595

Properties:

Web Browser Instance:


Enter the variable that contains the Web Browser Instance you want to work with.
This must be a variable defined by a preceding "Launch New Internet Explorer 562 "
action.

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Text To Fill-In:

Enter here the text you want to fill in the text field with.

© 2018 Softomotive
Emulate Typing:
Specify whether you want the text to be filled in at once by simply setting the value
of the text box, or emulate a user typing by sending characters one by one. The latter
method is slower, but required in some complex web pages.

Unfocus Text after filling it:


Choose whether you want the text field to become unfocused right after this action
fills it with the text you 've specified.

If you are planning on scraping autocompletion lists, you most probably need to leave
this option unchecked.

Wait for Page to Load:


Choose whether you want the Process to wait for the new web page to load
completely after populating the text field.

If a popup dialog appears:


Specify what you want the Process to do if a popup dialog appears after populating
the text field.

5.13.11.3 Set Checkbox State on Web Page Action

Description:
Checks or unchecks a Checkbox in a Web Form.
Actions Reference 597

© 2018 Softomotive
Properties:

Web Browser Instance:


Enter the variable that contains the Web Browser Instance you want to work with.
This must be a variable defined by a preceding "Launch New Internet Explorer 562 "
action.

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Set Checkbox State to:


Select whether you want the checkbox to become checked or unckeched.

Wait for Page to Load:


Choose whether you want the Process to wait for the new web page to load
completely after setting the checkbox state.
Actions Reference 599

If a popup dialog appears:


Specify what you want the Process to do if a popup dialog appears after setting the
checkbox state.

5.13.11.4 Select Radio Button on Web Page Action

Description:
Selects a Radio Button on the Web Page.

© 2018 Softomotive
Properties:

Web Browser Instance:


Enter the variable that contains the Web Browser Instance you want to work with.
This must be a variable defined by a preceding "Launch New Internet Explorer" action.

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Wait for Page to Load:


Choose whether you want the Process to wait for the new web page to load
completely after selecting the radio button.

If a popup dialog appears:


Specify what you want the Process to do if a popup dialog appears after selecting the
radio button.
Actions Reference 601

5.13.11.5 Set DropDown List Value on Web Page Action

Description:

Set or clear the Selected Option for a Drop Down List in a Web Form.

© 2018 Softomotive
Properties:

Web Browser Instance:


Enter the variable that contains the Web Browser Instance you want to work with.
This must be a variable defined by a preceding "Launch New Internet Explorer 562 "
action.

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Operation:
Select whether you want to select a value or clear the selected value of the dropdown
list.
Actions Reference 603

Selection Option(s) by:


Choose the method to use in order to select the options: By name or by ordinal
position (1 2 3 ...) inside the list.

Option Names:
Enter one or more options (one per line if more than one) you want to be selected in
the drop down list. Multiple options make sense only when working with multi-select
lists. If the list is single-selection, then only the first option specified will be used.

Options Indeces:
Type a space-separated list of 1-based indeces (e.g. 1 3 4), denoting which options of
the list should be selected.

Wait for Page to Load:


Choose whether you want the Process to wait for the new web page to load
completely after setting the value for the dropdown list.

If a popup dialog appears:


Specify what you want the Process to do if a popup dialog appears after setting the
value for the dropdown list.

5.13.11.6 Press Button on Web Page Action

Description:
Presses a button on a Web Page Form.

© 2018 Softomotive
Actions Reference 605

Properties:

Web Browser Instance:


Enter the variable that contains the Web Browser Instance you want to work with.
This must be a variable defined by a preceding "Launch New Internet Explorer 562 "
action.

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Wait for Page to Load:


Choose whether you want the Process to wait for the new web page to load
completely after the button is pressed.

If a Popup Dialog Appears:


Specify what you want the Process to do if a popup dialog appears after pressing the
button.

© 2018 Softomotive
5.13.12 Web Data Extraction
5.13.12.1 Extract Data from Web Page Action

Description:
Extracts Data from specific parts of a Web Page in the form of single values, lists, or
tables.

Store extracted data into Excel


Actions Reference 607

Store extracted data into a Variable

Properties:

Web Browser Instance:


Enter the variable that contains the Web Browser Instance you want to work with.
This must be a variable defined by a preceding "Launch New Internet Explorer 562 "
action.

"Specify Web Data to Extract" button:


To specify which parts of a web page will be extracted you can press this button to
launch the "Data Extraction Web Helper 255 ". Though this tool you can select the
elements that you want to retrieve as well as the form in which you want to retrieve
the values. Depending on your selection, the result can be in a form of a list, a table or
a single value.

© 2018 Softomotive
Store Extracted Records into:
Specify whether you want to store the extracted data into a variable for later
processing or you want it directly exported into an Excel spreadsheet (you need to
have Microsoft Excel installed for the latter option).

Store New Excel Instance Into:


Enter a name to be the variable that will hold the Excel Instance with the Extracted
Data. You can use this instance to manipulate the spreadsheet (or save and close it)
by using the dedicated Excel Actions.

Store Extracted Data Into:


Enter a name to be the variable that will hold the Extracted Data.

5.13.12.2 Get Details of Web Page Action

Description:
Get a property of a Web Page, such as its title or its source text.
Actions Reference 609

Properties:

Web Browser Instance:


Enter the variable that contains the Web Browser Instance you want to work with.
This must be a variable defined by a preceding "Launch New Internet Explorer 562 "
action.

Operation:
Specify the information of the Web Page that you want to retrieve.

Store Property Into:


Set the name of the variable that will hold the retrieved information of the Web Page.

5.13.12.3 Get Details of Element on Web Page Action

Description:
Gets the value of an element's attribute on a Web Page.

© 2018 Softomotive
Actions Reference 611

Properties:

Web Browser Instance:


Enter the variable that contains the Web Browser Instance you want to work with.
This must be a variable defined by a preceding "Launch New Internet Explorer 562 "
action.

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Store Web Element Attribute into:


Enter a name to be the variable that will hold the value of the Web Element's attribute.

Attribute Name:
Select an attribute from the list or type in the attribute whose value you want to
retrieve.

NOTE: Should you wish to get the coordinates of an element in the web browser, you
may type "waelementcentercoords". The output of the action will be X and Y
coordinates of the element relative to the active window which is the browser.

5.13.12.4 Take Screenshot of Web Page Action

Description:
Takes a screenshot of the Web Page (or an element of the Web Page) currently
displayed in the browser and saves the image into a file or to the clipboard.

© 2018 Softomotive
Properties:

Web Browser Instance:


Enter the variable that contains the Web Browser Instance you want to work with.
This must be a variable defined by a preceding "Launch New Internet Explorer 562 "
action.

Operation:
Specify whether you want to capture the entire web page or only a specific element of
it.
Actions Reference 613

Control:

Click on Select Control from Repository button and a box with all controls will appear.
Hover over camera icon to preview the control's image.

Save Captured Image to:


Choose whether you want to save the image into a file or store it into the clipboard.

Image File:
Set the full path for the file where the image capture will be saved.

Image Format:
Set the format for the image file to be saved.

5.13.13 Direct Web Access


5.13.13.1 Download from Web Action

Description:
This action downloads text from a web page, or a file from the web, and stores it.

© 2018 Softomotive
Actions Reference 615

Properties:

URL:
First choose http or https protocol, then enter the remainder of the web address.

Method:
Choose how you want to retrieve a website's information. Choose GET if all information
needed is in the URL, and choose POST if you need to enter more information
(passwords, etc).

Return Data:
Specify how the returned data will be stored. If you are downloading a webpage, you
can choose to Get Text so you can access it directly. Otherwise, or if you are
downloading a file, choose Save to Disk.

© 2018 Softomotive
Post Parameters:
Click here to Add, Edit, or Delete details for a Post's Parameter(s).

Connection Timeout:
Specify the time (in seconds) that the agent should wait for a connection to be
established with the server, before giving up.

Follow Redirection:
Choose whether you want to allow the web server to redirect you to another web
page or website.

Clear Cookies:
Choose whether you want to clear all cookies created by similar actions during this
Process before this action. Note that WinAutomation does not interact with existing
cookies, and that old cookies are not used or affected by the Process, and no new
cookies are made by the Process. Therefore this only applies to cookies created by
other Actions in this Process.

User Agent:
Choose which browser identity you wish to be seen as. Some web servers will not
allow you access unless you choose a browser identity.

Encoding:

Choose the encoding used for the web page. If you choose Auto-detect the encoding
to be used will be specified by the web server.

File Name:
Choose whether you want to keep the original name of the downloaded file, or you
want to specify a new name. In the first case you will need to provide just the
destination folder where the file will be saved. In the second case you will need to
provide the full path of the downloaded file (destination folder plus the new file name).

Destination File Path:


Enter or choose a file path, or a previously stored variable, to specify the full path
(folder plus filename) where the file returned by the web server will be stored.

Destination Folder:
Actions Reference 617

Enter or choose a local folder, or a previously stored variable containing a folder, to


specify the folder where the file returned from the web server will be saved.

Store Web Page Text into:


Enter a name to be the variable that will store the Webpage text.

Store Downloaded File into:


Enter a name to be the variable that will store the file object.

HTTP Authentication:
Specify whether or not the web server requires authentication. This property refers to
HTTP authentication (that is, when the browser displays a popup window asking for
user name and password).

User Name:
Enter the User Name for the web server here.

Enter Password:
If you choose 'directly', the password entered in the Password field will be hidden. If
you choose 'as variable' it will expect you to enter a variable and treat the '%' as an
indicator of a variable, not part of the password.

Password:
Enter the Password here. You may enter either a text, or a variable containing the
password depending on the selection of the previous property (Enter Password).

5.13.13.2 Invoke Web Service Action

Description:
This action invokes a web service by sending data through HTTP and retrieving the
response from the web service.

© 2018 Softomotive
Actions Reference 619

Properties:

URL:
First choose http or https format, then enter the remainder of the web address.

© 2018 Softomotive
Method:
Choose the HTTP method you want to use to invoke the web service.

Accept:
Specify the acceptable content type for the response of the web service.

Content Type:
Specify the content type of the request that will be sent to the web service.

Custom Headers:
Specify any custom headers to be included in the request that will be sent to the web
service.

Request Body:
Specify the body of the request that will be sent to the web service.

Return Data:
Specify how the Web Service response will be stored. You can either store it into a
variable or (if the Web Service will return a file) store it into a file by choosing Save to
Disk.

File Name:

Choose whether you want to keep the original name of the downloaded file, as
provided by the Web Service, or you want to specify a new name. In the first case
you will need to provide just the destination folder where the file will be saved. In the
second case you will need to provide the full path of the downloaded file (destination
folder plus the new file name).

Destination File Path:

Enter or choose a file path, or a previously defined variable, to specify the full path
(folder plus filename) where the file returned by the Web Service will be stored.

Destination Folder:

Enter or choose a local folder, or a previously defined variable containing a folder, to


specify the folder where the file returned by the Web Service will be saved.

Store Headers Into:


Actions Reference 621

Enter a name to be the variable that will store the HTTP Headers of the response.

Store Web Service Response into:

Enter a name to be the variable that will store the Web Service response.

Store Downloaded File into:

Enter a name to be the variable that will store the file object.

Advanced tab

Connection Timeout:

Specify the time (in seconds) that the agent should wait for a connection to be
established with the server, before giving up.

Follow Redirection:
Choose whether you want to allow the web server to redirect you to another web
service.

Clear Cookies:
Choose whether you want to clear all cookies created by similar actions during this
Process before this action. Note that WinAutomation does not interact with existing
cookies, and that old cookies are not used or affected by the Process, and no new
cookies are made by the Process. Therefore this only applies to cookies created by
other Actions in this Process.

Fail on Error Status:


Choose whether you want the responses of the invoked web service that denote
errors to be processed as if they were normal responses (suppressing all exceptions) or
whether you would like them to result in the related exceptions displayed in the
Exception Handling Tab)

Encode Request Body:


Specify whether the body of the request should be url-encoded before invoking.

HTTP Authentication:
Specify whether or not the web server requires authentication. This property refers to
HTTP authentication (that is, when the browser displays a popup window asking for
user name and password).

© 2018 Softomotive
User Name:
Enter the User Name for the web server here.

Enter Password:
If you choose 'directly', the password entered in the Password field will be hidden. If
you choose 'as variable' it will expect you to enter a variable and treat the '%' as an
indicator of a variable, not part of the password.

Password:
Enter the Password here. You may enter either a text, or a variable containing the
password depending on the selection of the previous property (Enter Password).

5.14 FTP
5.14.1 Open FTP Connection Action

Description:
This action establishes a connection to a remote FTP server
Actions Reference 623

Properties:

Ftp Server:
Enter the FTP Server address here.

Port:
Choose which port to use for the FTP Server. Usually, this is Port 21.

Active Mode:
Uncheck this box if you want the connection to be made in passive mode. Default is
Active Mode, as that is most common.

© 2018 Softomotive
User Name:
Enter the User Name for this FTP Server here.

Enter Password:
If you choose 'directly', the password entered in the Password field will be hidden. If
you choose 'as variable' it will expect you to enter a variable and treat the '%' as an
indicator of a variable, not part of the password.

Password:
Enter the Password here. You may enter either a text, or a variable containing the
password depending on the selection of the previous property (Enter Password).

Store Connection into:


Enter a name to be the variable that will store the specific FTP Connection for use
with later FTP Actions. This allows you to specify which, of possibly several, FTP
Connection to access.

5.14.2 Open Secure FTP Connection Action

Description:
This action establishes a secure connection to a remote FTP server
Actions Reference 625

Properties:

Ftp Server:
Enter the FTP Server address here.

Port:
Choose which port to use for the FTP Server.

Secure FTP Protocol:


Choose the FTP protocol you wish to use to encrypt your connection.

© 2018 Softomotive
Authentication Method:
Choose the method you wish to use to authenticate yourself on the FTP server. You
have the choice between using username and password or username and a private key
file which may or may not protected by a passphrase.

User Name:
Enter the User Name for this FTP Server here.

Enter Password:
If you choose 'directly', the password entered in the Password field will be hidden. If
you choose 'as variable' it will expect you to enter a variable and treat the '%' as an
indicator of a variable, not part of the password.

Password:
Enter the Password here. You may enter either a text, or a variable containing the
password depending on the selection of the previous property (Enter Password).

File Path to Private Key:


If the authentication method is set to "Private Key" enter here the path to the file
containing the private-key to be used for authentication.

Enter Private Key Pass Phrase:


If you choose 'directly', the pass phrase entered in the Private Key Pass Phrase field
will be hidden. If you choose 'as variable' it will expect you to enter a variable and
treat the '%' as an indicator of a variable, not part of the password.

Private Key Pass Phrase:


Enter the private key pass phrase here. You may enter either a text, or a variable
containing the password depending on the selection of the previous property (Enter
Private Key Pass Phrase).

Store Connection into:


Enter a name to be the variable that will store the specific FTP Connection for use
with later FTP Actions. This allows you to specify which, of possibly several, FTP
Connection to access.
Actions Reference 627

5.14.3 Close FTP Connection Action

Description:

This action closes an open connection to an FTP server

Properties:

FTP Connection to close:


Enter the variable containing the previously opened FTP Connection you wish to close.
You must have previously specified this variable in an Open FTP Connection action.

5.14.4 List FTP Directory Action

Description:
This action returns the subdirectories and files contained in the current directory of an
FTP connection

© 2018 Softomotive
Properties:

FTP Connection:
Enter the variable containing the previously opened FTP Connection you wish to look
in. You must have previously specified this variable in an Open FTP Connection action.

Store Subdirectories into:


Enter a name to be the variable that will store the list of FTP folders in the current FTP
location.

Store Files into:


Enter a name to be the variable that will store the list of FTP files in the current FTP
location.
Actions Reference 629

5.14.5 Change Working Directory Action

Description:

This action sets the current working directory for an FTP connection

Properties:

FTP Connection:
Enter the variable containing the previously opened FTP Connection you wish to alter.
You must have previously specified this variable in an Open FTP Connection action.

Set Working Directory to:


Enter the path, or a variable containing the path, that you want to set as the new
directory you are working from. When you first connect to an FTP Server, you are
always in the root directory. This allows you to work with files and folders in a different
directory without specifying a path each time.

© 2018 Softomotive
5.14.6 Download File(s) from FTP Action

Description:

This action downloads one or more files from an FTP server

Properties:

FTP Connection:
Enter the variable containing the previously opened FTP Connection you wish to
download from. You must have previously specified this variable in an Open FTP
Connection action.

File(s) to Download:
Enter the name of the file(s), filepath(s), or a variable containing the file(s), that you
wish to download.
Actions Reference 631

Download into Folder:


Enter the full path of a folder, or the name of a variable containing a folder, to be the
destination of the file(s) you are downloading.

Transfer Type:
Enter ASCII or binary if you wish to specify the method for downloading a single file. If
you're not sure what type the file will be, or if you are downloading more than one,
choose Auto so WinAutomation will follow the transfer rules specified in Tools ->
Options -> FTP from the WinAutomation Console.

If File Exists:
Choose what you want to do if the file already exists. Overwrite writes over the
original file so you can't access it any more, and Download with Unique Name adds an
underscore and a sequential number to the end.

5.14.7 Download Folder(s) from FTP Action

Description:
This action downloads one or more folders from an FTP server

© 2018 Softomotive
Properties:

FTP Connection:
Enter the variable containing the previously opened FTP Connection you wish to
download from. You must have previously specified this variable in an Open FTP
Connection action.

File to Download:
Enter the name of the folder(s) path(s), or a variable containing the FTP folder(s),
that you wish to download.

Download into Folder:


Enter the full path of a folder, or the name of a variable containing a folder, to be the
destination of the FTP Folder(s) you are downloading.
Actions Reference 633

5.14.8 Upload File(s) to FTP Action

Description:

This action uploads one or more files to an FTP server

Properties:

FTP Connection:
Enter the variable containing the previously opened FTP Connection you wish to upload
to. You must have previously specified this variable in an Open FTP Connection action.

File to Upload:
Enter the full path of the file(s), or a variable containing file(s), to upload.

© 2018 Softomotive
Transfer Type:
Enter ASCII or binary if you wish to specify the method for downloading a single file. If
you're not sure what type the file will be, or if you are downloading more than one,
choose Auto so WinAutomation will follow the transfer rules specified in Tools ->
Options -> FTP from the WinAutomation Console.

If File Exists:
Choose what you want to do if the file already exists. Overwrite writes over the
original file so you can't access it any more, and Download with Unique Name adds an
underscore and a sequential number to the end.

5.14.9 Upload Folder(s) to FTP Action

Description:
This action uploads one or more folders to an FTP server

Properties:
Actions Reference 635

FTP Connection:
Enter the variable containing the previously opened FTP Connection you wish to upload
to. You must have previously specified this variable in an Open FTP Connection action.

Folder(s) to Upload:
Enter the full path of the folder(s), or a variable containing folder(s), to upload.

5.14.10 Delete FTP File Action

Description:
This action deletes one or more files from an FTP server

Properties:

© 2018 Softomotive
FTP Connection:
Enter the variable containing the previously opened FTP Connection you wish to work
in. You must have previously specified this variable in an Open FTP Connection action.

File to Delete:
Enter the name of the file, filepath, or a variable containing a file, that you wish to
delete.

5.14.11 Rename FTP File Action

Description:
This action renames a file that resides on an FTP server

Properties:
Actions Reference 637

Ftp Connection:
Enter the variable containing the previously opened FTP Connection you wish to work
in. You must have previously specified this variable in an Open FTP Connection action.

File to Rename:
Enter the name of the file, filepath, or a variable containing a file, that you wish to
rename.

New File Name:


Enter a new name for the file, or a variable containing the new name of the file. If you
enter a name with a path, the file will also be moved to that location. If the location
doesn't exist, it will throw an exception.

5.14.12 Create FTP Directory Action

Description:
This action creates a directory on an FTP server

© 2018 Softomotive
Properties:

FTP Connection:
Enter the variable containing the previously opened FTP Connection you wish to work
in. You must have previously specified this variable in an Open FTP Connection action.

New Directory:
Enter a name, or a variable containing a name, to be the new directory. If this
directory already exists, nothing will happen. If you specify a path, all of the new
folders leading to the new directory will be created.

5.14.13 Delete FTP Directory Action

Description:
This action deletes a directory from an FTP server
Actions Reference 639

Properties:

FTP Connection:
Enter the variable containing the previously opened FTP Connection you wish to work
in. You must have previously specified this variable in an Open FTP Connection action.

Directory to Delete:
Enter the name, or a variable containing the name, of a folder to be deleted.
Everything in the folder will be deleted as well.

5.14.14 Synchronize FTP Directory Action

Description:
Synchronizes the files and subdirectories of a given local folder with a given remote
FTP directory. This action can synchronize a local folder to the contents of a remote
FTP directory (download updates), or it can synchronize a remote FTP directory to the
contents of a local folder (upload updates).

© 2018 Softomotive
Actions Reference 641

Properties:

FTP Connection:
Enter the variable containing the previously opened FTP Connection you wish to work
in. You must have previously specified this variable in an Open FTP Connection action.

© 2018 Softomotive
Synchronization Direction:
Choose the direction of synchronization, i.e., whether the local folder will be
synchronized to the remote directory (DOWNLOAD) or the remote directory will be
synchronized to the local folder (UPLOAD).

Files to Synchronize:
Choose whether you want to synchronize all files, or you want to use a file filter to
include or exclude a specific set of files.

File Filter:
Enter the File-name pattern that controls which files will be included to, or excluded
from the synchronization (depending on the setting of the 'Files to Synchronize'
property). This allows wild cards, for example "*.txt" or "document?.doc" (without the
quotes). If you want to allow for multiple file filters, separate your choices with
comma, for example, "*.txt,*.exe".

Local Folder:
Enter the name (or a variable) of the local folder to be synchronized. Depending on the
synchronization 'Direction' property, this will be either the source or the target
directory.

Remote FTP Directory:


Enter the name (or a variable) of the remote FTP directory to be synchronized.
Depending on the synchronization 'Direction' property this will be either the source or
the target directory.

Delete if source is absent:


Choose whether you want a file that exists only in the target directory and not in the
source directory to be deleted from the target directory during synchronization.

Include Subdirectories:
Choose whether you want the subdirectories of the specified directories to be included
in the synchronization process.

Time on FTP Server is:


Enter here the time difference between the FTP server and the local computer. Very
often FTP servers are located in different time zones to their clients. The time
difference should be used to ensure correct date matching, so that the action will be
able to detect which files are out of date and should be synchronized.
Actions Reference 643

Store Added Files into:


Enter the name to be the variable that will hold the list of files that initially existed only
in the source directory and after the synchronization were added to the target
directory.

If the target directory is the local folder (download direction selected), this variable
will hold a list of Files, otherwise, if the target directory is the remote FTP directory
(upload direction selected), this variable will hold a list of FTP Files.

Store Modified Files into:

Enter the name to be the variable that will hold the list of files that initially existed in
both the source and target directory and were transferred from source to target during
synchronization.

If the target directory is the local folder (download direction selected), this variable
will hold a list of Files, otherwise, if the target directory is the remote FTP directory
(upload direction selected), this variable will hold a list of FTP Files.

Store Deleted Files into:


Enter the name to be the variable that will hold the list of files that initially existed only
in the target directory and were deleted during synchronization. Note that files that
appear only in the target directory are deleted only if the 'Delete if source file is
absent' property is checked.

If the target directory is the local folder (download direction selected), this variable
will hold a list of Files, otherwise, if the target directory is the remote FTP directory
(upload direction selected), this variable will hold a list of FTP Files.

5.14.15 Invoke FTP Command Action

Description:
This action invokes the given literal FTP command on the server.

© 2018 Softomotive
Properties:

FTP Connection:
Enter the variable containing the previously opened FTP Connection you wish to work
in. You must have previously specified this variable in an Open FTP Connection action.

FTP Command:
Enter the command, or a variable containing the command, that you wish to run along
with any arguments. For example, you could run FEAT, or CHMOD here.

Valid Reply Code(s):


Enter the code(s) that could be returned by the Command, separated by semi-colon. If
the FTP Command returns a code that was not entered here, this action will throw an
exception.
Actions Reference 645

Store Reply Code into:


Enter a name to be the Variable that will contain the actual code that was returned.

Store Reply Text into:


Enter a name to be the Variable that will contain any text returned by the FTP Server.

5.15 Email
5.15.1 Retrieve Emails Action

Description:
This action retrieves email messages from an IMAP server.

Messages can be filtered based on various criteria, such as the sender's address, the
IMAP folder (location on server) or even the existence of specific keywords in the
body, subject or other fields of the email.

© 2018 Softomotive
Note that this action will mark the retrieved emails as read on the server. If you wish
to keep the emails marked as unread you can change their state back to unread
through the Process Emails Action. Only the messages that match all of the filters set
in the action will be included in the retrieval and marking.
Actions Reference 647

Properties:

Mail Folder:
In the Mail Folder property you can enter the name of the mail folder (also known as
`Mailbox') that you want to retrieve messages from.

You can select to retrieve emails from your INBOX or from any other folder of your
email account. To avoid confusion, you should keep in mind that in this action, by
using the term “Mail Folder”, we refer to the folders of your email server and not to the
folders where you store your files locally, in your PC.

If you have already set some values in the IMAP Server Properties Tab for this or a
previous Retrieve Emails action in the Process, the drop-down menu will load and
present you all the available folders from your email server. However, even if you have
not already set IMAP Server properties, you can specify your preferred Mail Folder by
just typing its name in the Mail Folder property (provided that when you execute this
Process, the specified folder will exist in the email server).

© 2018 Softomotive
Retrieve:
In the Retrieve property you can specify whether you want to retrieve all messages
from the Mail Folder, or only the unread ones. This could be important especially when
the Retrieve Emails Action is to be performed periodically and you want to get
feedback on only the updated conversations and unread emails from your mailbox.

From Contains:
Enter the full e-mail address of the Sender whose messages you want to retrieve.
Leave this field blank to retrieve all messages regardless of the sender.

To Contains:
Enter the full e-mail address(es) of the Receipient(s) (separated by space if more than
one) for the messages you want to retrieve. Leave this field blank to retrieve all
messages regardless of the recipient(s).

Subject Contains:
Enter the keywords to be found within the email Subject. Leave this field blank to
retrieve all emails regardless of the their subject.
Actions Reference 649

Body Contains:
Enter the keywords to be found within the email Body. Leave this field blank to retrieve
all emails regardless of the their content.

Of course, as with any other property in WinAutomation, you have the option to define
your criteria on all "Contains" properties using Process Variables. You can, for example,
set the “From Contains” property to get its value from a variable where you have
stored email address information of the customers that bought a specific product and
you want to retrieve any feedback provided by them:

With this setting the Retrieve Emails Action will search your specified Mailbox (or your
email server inbox if not otherwise specified) for any emails sent by any of the email
addresses stored as the values of this Variable (unread or all according to your
preference) and retrieve them.

The use of Variables as the values of the Sender’s and/or Receiver’s properties also
gives you the option to include the Retrieve Emails Action in a Loop Section of a
Process and iteratively check and retrieve emails for each one of this group of email
addresses.

Below we present you a part of a script that uses a variable (here named %Contacts
%) as that input of "From Field Contains" property of Retrieve Emails Action, in order to
retrieve emails sent by each one of a group of contacts and display a message
informing you about the number of the unread messages you have from each one of
them.

© 2018 Softomotive
Attachments:
Specify whether you want to save the attachments of the emails retrieved or not.

Save attachments into:


Enter here the folder in which you want the attachments to be saved. WinAutomation
will save all the attachments of the retrieved emails to the same (specified) local
folder. In the case that more than one emails have the same name, WinAutomation will
rename them by appending a 4-digit suffix. For example, if there is already a file named
OrderForm.doc in the destination folder, the next attachment of a retrieved email also
named OrderForm.doc that is to be saved, will eventually be saved as
OrderForm_0001.doc.

Furthermore, as you may see below in the Mail Message Variable Properties, each
retrieved email variable is accompanied by a list of its attachments that are saved
locally (represented by the attachments property) to which you can refer in order to
track the email to which each file was attached to.
Actions Reference 651

Save Emails into:


Enter a name to be the variable that will store the retrieved e-mails for later
processing. The outcome of the Retrieved Email Action (%RetrievedEmails%) will be a
List of Mail Messages variable. As every list variable 289 , its only property is “Count”
that has as value the number of the retrieved emails according to our selections in the
Retrieve Emails Action properties fields:

Each item of this list will be a Mail Message 291 object. Since %RetrievedEmails%
Variable is a list type variable, each item of the list (i.e. each email) can be described
by the following notation:
%RetrievedEmails[n]%
with n referring to the index of each retrieved email of our action (e.g. 0 for the first
retrieved email, 1, for second).

Each Mail Message (included as an item in the List of Mail Messages) is itself a
variable with the respective properties 290 (populated by the Retrieve Emails action).

You can retrieve any of each email’s properties and use it as input in an action’s
properties by following the general notation:
%VariableName.PropertyName%
For example if you want to retrieve the Subject of the third retrieved email from you
action, you should use the notation:
%RetrievedEmails[2].Subject%

Below you can see an example of how the Retrieve Emails Action can be used inside a
loop. This section of the Process’s script will search and retrieve all unread emails from
your Inbox that their subject contains the subtext "Order Form" (as specified in the
Retrieve Emails Action Properties window). If any of the retrieved emails has
attachments, those will be saved locally, inside the specified folder. For every
matching email, this Process will append the corresponding emails of the sender(s) to a
specific text file.

In other words, the final outcome of this Process will be a text file containing all the
sender addresses of messages with a subject containing the text "Order Form"

© 2018 Softomotive
Note that in order to record only the Sender’s address for each of the retrieved emails
we used (as presented in the Properties of “Write Text to File” action window below)
the notation :
%CurrentEmail.From%
requesting from this action to retrieve the value of the “From” property of the
retrieved email used as iterative variable (%CurrentItem%) in each loop.
Actions Reference 653

IMAP Server:
Enter the IMAP Server address here (e.g., imap.gmail.com).

Port:
Specify the port to be used for the IMAP Server. Usually, this is Port 993.

Enable SSL:
Specify whether you need to use a secure connection to communicate with the IMAP
Server.

© 2018 Softomotive
User Name:
Enter the User Name of the e-mail account you want to access.

Enter Password:
If you choose 'directly', the password entered in the Password field will be hidden. If
you choose 'as variable' you must enter a variable containing the password and the '%'
character will be treated as an indicator of a variable, not part of the password.

Password:
Enter the Password here. You may enter either a text, or a variable containing the
password depending on the selection of the previous property (Enter Password).

5.15.2 Process Emails Action

Description:
Moves, deletes or marks as unread an email (or a list of emails) retrieved by a "Retrieve
Emails 645 " action.

Process Emails Action is one of the three actions under the Email Actions category
(the other two being the Send Email 657 and Retrieve Emails 645 ). This particular group
of actions provides WinAutomation with the ability of automating any task typically
performed by email clients. With the Process Email Action you can manipulate the
retrieved emails from a previous Retrieve Emails action. You may delete the emails from
your Server, mark them as (un)read or move them to different folders inside your
Mailbox.

Note that when retrieved, messages are automatically marked as "read" on the server.
Actions Reference 655

© 2018 Softomotive
Properties:

Email(s) to process:
Enter a variable containing the email or list of emails to be processed. This should be a
variable populated by a "Retrieve Emails 645 " action.

Operation:
Specify which operation you want to perform on the specified email messages.

Mail Folder:
Enter the name of the mail folder you want to move the emails to.

IMAP Server:
Enter the IMAP Server address here (e.g., imap.gmail.com).
Actions Reference 657

Port:
Specify the port to be used for the IMAP Server. Usually, this is Port 993.

Enable SSL:
Specify whether you need to use a secure connection to communicate with the IMAP
Server.

User Name:
Enter the User Name of the e-mail account you want to access.

Enter Password:
If you choose 'directly', the password entered in the Password field will be hidden. If
you choose 'as variable' you must enter a variable containing the password and the '%'
character will be treated as an indicator of a variable, not part of the password.

Password:
Enter the Password here. You may enter either a text, or a variable containing the
password depending on the selection of the previous property (Enter Password).

5.15.3 Send Email Action

Description:
This action creates and sends a new email message

© 2018 Softomotive
Actions Reference 659

The Send Email Action can be useful in a number of situations, such as:

1. Sending to a large number of recipients (and even personalize each message)

2. Sending emails in specific time intervals

3. Sending messages triggered by specific events, etc.

Properties:

© 2018 Softomotive
From:
Enter the Sender's email address.

Sender Display Name:


Enter the Sender's display name.

To:
Enter the email(s) of the recipient(s). If you enter more than one email, the list of
addresses should be separated by semi-colons.

CC:
Enter the email(s) of the CC recipient(s). If you enter more than one email, the list of
addresses should be separated by semi-colons.

BCC:
Enter the email(s) of the BCC (hidden) recipient(s). If you enter more than one email,
the list of addresses should be separated by semi-colons.

Subject:
Enter the subject of the email.

Body:
Enter the text of the body.

Body Is HTML:
Choose whether the body of the email is interpreted as HTML coding.

Attachment(s):
Enter or choose the full path of any attachment(s), or choose a variable that contains
a file or a list of files. Multiple files should be enclosed in double quotes (") and
separated by a space character.

SMTP Server:
Enter the SMTP Server address here.
Actions Reference 661

Server Port:
Choose which port to use for the Server. Usually, this is Port 25.

Enable SSL:
Choose whether or not to communicate with the Server through a secure connection.

SMTP Server need authentication:


Specify whether or not the server requires authentication.

User Name:
Enter the User Name.

Password:
Enter the Password. This entry will be hidden.

5.16 Exchange
5.16.1 Connect to Exchange Server

Description:
This action opens a new connection to an Exchange Server:

© 2018 Softomotive
Actions Reference 663

Properties:

Exchange Server Version:


Select the version of the Exchange server that you are using

Connection Type:
Select the way that you want to connect to your Exchange server

Server Address:
Enter your Exchange Server Address

© 2018 Softomotive
Credentials:
Choose the way that the user's Exchange credentials will be provided to the action

Domain:
Enter your Exchange account Domain. If you leave it empty, action will extract it from
the username

Username:
Enter your Exchange account username

Enter Password:
Select the way that you will provide your password.

Password:
Enter your Exchange account password directly

Store Exchange Connection into:


Enter a name to be the variable that will store the specific Exchange Connection for
use with later Exchange Actions
Actions Reference 665

Timeout: Set the time in seconds that you want to wait for the connection to be
established before the action fails

5.16.2 Retrieve Exchange Email Messages

Description:
This action retrieves email messages from an Exchange server.

© 2018 Softomotive
Messages can be filtered based on various criteria, such as the sender's address, the
Exchange folder or even the existence of specific keywords in the body, subject or
other fields of the email.

Note that this action will mark the retrieved emails as read on the server. If you wish
to keep the emails marked as unread you can change their state back to unread
through the "Process Exchange Email Messages" Action. Only the messages that match
all of the filters set in the action will be included in the retrieval and marking.
Actions Reference 667

Properties:

Exchange Connection:

Enter the variable that holds your exchange connection. Exchange connection can be
created from \"Connect To Exchange Server\" action.

Exchange Folders:
Select a predefined Exchange Folder to retrieve email messages from or add a custom
one.

Retrieve:
In the Retrieve property you can specify whether you want to retrieve all messages
from the Mail Folder, or only the unread ones. This could be important especially when
the Retrieve Emails Action is to be performed periodically and you want to get
feedback on only the updated conversations and unread emails from your mailbox.

From Contains:
Enter the full e-mail address of the Sender whose messages you want to retrieve.
Leave this field blank to retrieve all messages regardless of the sender.

To Contains:
Enter the full e-mail address(es) of the Receipient(s) (separated by space if more than
one) for the messages you want to retrieve. Leave this field blank to retrieve all
messages regardless of the recipient(s).

Subject Contains:
Enter the key phrase to be found within the email Subject. Leave this field blank to
retrieve all email messages regardless of the their subject.

Body Contains:
Enter the key phrase to be found within the email Body. Leave this field blank to
retrieve all email messages regardless of the their content.

Of course, as with any other property in WinAutomation, you have the option to define
your criteria on all "Contains" properties using Process Variables. You can, for example,
set the “From Contains” property to get its value from a variable where you have

© 2018 Softomotive
stored email address information of the customers that bought a specific product and
you want to retrieve any feedback provided by them:

With this setting the Retrieve Action will search your specified Mailbox (or your email
server inbox if not otherwise specified) for any emails sent by any of the email
addresses stored as the values of this Variable (unread or all according to your
preference) and retrieve them.

The use of Variables as the values of the Sender’s and/or Receiver’s properties also
gives you the option to include the Retrieve Email Messages Action in a Loop Section
of a Process and iteratively check and retrieve emails for each one of this group of
email addresses.

Attachments:
Specify whether you want to save the attachments of the emails retrieved or not.

Save attachments into:


Enter here the folder in which you want the attachments to be saved. WinAutomation
will save all the attachments of the retrieved emails to the same (specified) local
folder. In the case that more than one emails have the same name, WinAutomation will
rename them by appending a 4-digit suffix. For example, if there is already a file named
OrderForm.doc in the destination folder, the next attachment of a retrieved email also
named OrderForm.doc that is to be saved, will eventually be saved as
OrderForm_0001.doc.

Furthermore, as you may see below in the Mail Message Variable Properties, each
retrieved email variable is accompanied by a list of its attachments that are saved
locally (represented by the attachments property) to which you can refer in order to
track the email to which each file was attached to.

Save Emails into:


Enter a name to be the variable that will store the retrieved email messages for later
processing. The variable will contain a List of Exchange Mail Messages objects.

The outcome of the Retrieved Emails Action (%RetrievedEmails%) will be a List of Mail
Messages variable. As every list variable 289 , its only property is “Count” that has as
value the number of the retrieved emails according to our selections in the Retrieve
Emails Action properties fields:
Actions Reference 669

Each item of this list will be a Mail Message 291 object. Since %RetrievedEmails%
Variable is a list type variable, each item of the list (i.e. each email) can be described
by the following notation:
%RetrievedEmails[n]%
with n referring to the index of each retrieved email of our action (e.g. 0 for the first
retrieved email, 1, for second).

Each Mail Message (included as an item in the List of Mail Messages) is itself a
variable with the respective properties 290 (populated by the Retrieve Emails action).

You can retrieve any of each email’s properties and use it as input in an action’s
properties by following the general notation:
%VariableName.PropertyName%
For example if you want to retrieve the Subject of the third retrieved email from you
action, you should use the notation:
%RetrievedEmails[2].Subject%

5.16.3 Send Exchange Email Messages


Description:
This action creates and sends a new email message

© 2018 Softomotive
Properties:

Exchange Connection:
Enter the variable that holds your exchange connection. Exchange connection can be
created from \"Connect To Exchange Server\" action.
Actions Reference 671

From:
Enter the Sender's email address.

Sender Display Name:


Enter the Sender's display name.

To:
Enter the email(s) of the recipient(s). If you enter more than one email, the list of
addresses should be separated by semi-colons.

CC:
Enter the email(s) of the CC recipient(s). If you enter more than one email, the list of
addresses should be separated by semi-colons.

BCC:
Enter the email(s) of the BCC (hidden) recipient(s). If you enter more than one email,
the list of addresses should be separated by semi-colons.

Subject:
Enter the subject of the email.

Body:
Enter the text of the body.

Body Is HTML:
Choose whether the body of the email is interpreted as HTML coding.

Attachment(s):
Enter or choose the full path of any attachment(s), or choose a variable that contains
a file or a list of files. Multiple files should be enclosed in double quotes (") and
separated by a space character.

© 2018 Softomotive
5.16.4 Process Exchange Email Messages

Description:

Moves, deletes or marks as unread an email (or a list of emails) retrieved by a "Retrieve
Exchange Email Messages 665 " action.
Actions Reference 673

© 2018 Softomotive
Properties:

Exchange Connection:
Enter the variable that holds your exchange connection. Exchange connection can be
created from \"Connect To Exchange Server\" action.

Email Message(s) to process:


Enter a variable containing the email or list of emails to be processed. This should be a
variable populated by a "Retrieve Exchange Email Messages" action.

Operation:
Specify which operation you want to perform on the specified email messages
between:

1. Delete Email Messages from Server


Actions Reference 675

2. Mark Email Messages as Unread

3. Move Email Messages to Mail Folder

If the selected Operation is "Move" then you will also get the...

Exchange Folders:
Enter the name or the path (e.g.folder1\\folder2) of the Mail-folder that you want to
move email messages to.

5.17 Cmd Session


5.17.1 Open Cmd Session
(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

Description:

This action opens a new command line session. This session will remain open until you
close it with a "Close Cmd Session". In the meantime you can write commands or read
ouput from the Cmd session. This will be extremely usefully in cases where user input is
required on the Cmd or in case that you wish to run something like a batch file.

© 2018 Softomotive
Properties:

Working Folder: Enter the full path of the folder to work out of, if applicable

Store Cmd Session into: Enter a variable name that will hold the Cmd session, for
use in later Cmd Session actions.
Actions Reference 677

5.17.2 Close Cmd Session


(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

Description: This action closes a previously opened Cmd session.

Properties: Enter the variable containing the previously opened Cmd Session you wish
to close. You must have previously specified this variable in an "Open Cmd Session"
action.

5.17.3 Write to Cmd Session


(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

Description: This action executes a command in an open Cmd Action.

© 2018 Softomotive
Properties:

Cmd Session: Enter the variable that will contain a previously opened Cmd Session.

Command: Enter the command that you want to execute.


Actions Reference 679

5.17.4 Read from Cmd Session


(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

© 2018 Softomotive
Description: This action read the output of a Cmd Session.

Properties:

Operation: Specify which Read operation you wish to perform on the specified Cmd
session.

There are three operations that you can choose from. Depending on the operation
chosen based on the output that you wish to have, the output variables may be
%CMdOutput%, %CmdError%.

Store output: Enter a name to be the variable that will store the Cmd session's
standard output

Store Error: Enter a name to be the variable that will store the Cmd session's
standard error
Actions Reference 681

5.17.5 Wait for Text on Cmd Session


(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

Description: This action waits for a specific text on a previously opened Cmd Session.

Properties:

Cmd Session: Enter the variable that will contain a previously opened Cmd Session.

Text to Wait: Enter the text or the Regular Expression that you want to wait to
appear on standard output or on standard error

Is Regular Expression: Check this box if you want to wait for for a regular
expression match instead of a plain text.

Ingore Case: Check this box if you wish to ingore the case of the text to wait.

© 2018 Softomotive
5.18 Database
5.18.1 Open SQL Connection
Description:

This action opens a new connection to a database.

Properties:

Connection String: Enter how to connect with the database. The button on the
right (with ellipses) will allow you to build the connection string.

Store SQL Connection into: Enter a name to be the variable that will store the
specific SQL connection for use with later SQL statements.

5.18.2 Execute SQL Statement Action

Description:
This action connects to a database and executes a SQL statement
Actions Reference 683

Properties:

Connection String:
Enter how to connect with the database. The button on the right (with ellipses) will
allow you to build the connection string.

SQL Statement:
Enter the SQL Statement to be issued to the database here.

Timeout:
The Execute SQL Statement action waits for a result from the database. Choose a
maximum amount of time that the action will wait.

Store Query Result into:


Enter a name to be the variable that will store the result from the database in the form
of a data table, with rows and columns.

© 2018 Softomotive
More about connecting to a database and executing SQL Queries on it, please visit:

Connecting to a Database 308

Connect to Excel or Access Database 308

Connection Strings and Drivers 309

5.18.3 Close SQL Connection

Description:
This action closes an open connection to a database.
Actions Reference 685

Properties:

SQL Connection to close: Enter the variable containing the previously opened SQL
connection you wish to close. You must have previously specified this variable in an Open
SQL connection action.

5.19 Excel
5.19.1 Launch Excel Action

Description:

This action launches a new Excel Instance and opens an Excel document

Properties:

Launch Excel:
Choose whether you want to open a New Excel document, or an existing one.

© 2018 Softomotive
Document Path:
Enter the full path of the existing Excel document you wish to open

Make Instance Visible:


Choose whether you want to make the Excel Window visible, or hide it. This doesn't
limit WinAutomation's ability to use Excel, just the whether the user sees it.

Store Excel Instance into:


Enter a name to be the variable that will store the specific Excel Instance for use with
later Excel actions. This allows you to specify which, of possibly several, Excel
spreadsheet to access.

Cautions:
For any Excel-related action to work correctly, Microsoft Excel must be installed on the
computer where the process will run.

5.19.2 Attach to Running Excel Action

Description:
Attached to an Excel Document that's already open.
Actions Reference 687

Properties:

Document Name:
Enter either the name or the path of the Excel file you wish to attach to.

Store Excel Instance into:


Enter the name to be the variable that will hold the Excel Instance this action has
attached to, for use with later Excel actions.

5.19.3 Read from Excel Action

Description:
This action reads the value of a cell or a range of cells from the active worksheet of a
previously launched Excel Instance

© 2018 Softomotive
Actions Reference 689

Properties:

Excel Instance:
Enter the variable that contains the Excel Instance you want to work with. You must
have previously specified this variable in a Launch Excel action.

Retrieve:
Choose whether to retrieve the value of a single cell or a table from a range of cells.

© 2018 Softomotive
Start Column:
Enter a numeric value to be the cell column or starting column number. This must be a
number. For example, Column F requires the entry of '6'.

Start Row:
Enter a numeric value to be the cell row or starting row number.

End Column:
Enter a numeric value to be the ending column number. This must be a number. For
example, Column J requires the entry of '10'.

End Row:
Enter a numeric value to be the ending row number.

Advanced Properties Tab - Get Cell Contents as Text:


Check this to retrieve the content of the cell(s) purely as text. Leave this option
unchecked if you want the action's output variable type to match (as closely as
possible) the source cell's data type. In that case, a date in Excel will be stored as
DateTime variable in WinAutomation, numbers as numeric variables etc.

Advanced Properties Tab - First line of range contains column names:


Choose whether this action considers the first row as column names. If it does, the
names won't be read as data into the table, and later actions can search the data by
column names.

Store Cell Value(s) into:


Enter a name to be the variable that will store the value of the single cell or a table
from the range of cells.

Cautions:
For any Excel-related action to work correctly, Microsoft Excel must be installed on the
computer where the process will run.
Actions Reference 691

5.19.4 Save Excel


(Available with the Professional and Professional Plus Edition. N/A to the Basic
Edition)

This action saves a previously launched Excel Instance

1. Excel Instance:

Enter the variable that contains the Excel Instance you want to work with. You must
have previously specified this variable in a Launch Excel action.

2. Save Mode:

Choose how to save the document of this instance.

© 2018 Softomotive
5.19.5 Write to Excel Action

Description:
This action writes some value or the contents of a variable into a cell or a range of
cells of a previously launched Excel Instance

Properties:

Excel Instance:
Enter the variable that contains the Excel Instance you want to work with. You must
have previously specified this variable in a Launch Excel action.
Actions Reference 693

Value to Write:
Enter the text, number, or a previously stored variable, to be inserted. If the variable
contains a table, it will fill in cells to the right and below, writing over other cell data if
need be, and a list will fill in cells below.

Cell Column:
Enter a numeric value to be the column number for the cell this action will write to.
This must be a number. For example, Column F requires the entry of '6'.

Cell Row:
Enter a number to be the row for the cell this action will write to.

Cautions:
For any Excel-related action to work correctly, Microsoft Excel must be installed on the
computer where the process will run.

5.19.6 Close Excel Action

Description:
This action closes a previously launched Excel Instance

© 2018 Softomotive
Properties:

Excel Instance:
Enter the variable that contains the Excel Instance you want to close. You must have
previously specified this variable in a Launch Excel action.

Before Closing Excel:


Choose whether and how to save the document of this Instance before closing that
Instance.

Document Path:
Enter or choose the full path you want to save the document as.

Cautions:
For any Excel-related action to work correctly, Microsoft Excel must be installed on the
computer where the process will run.
Actions Reference 695

5.19.7 Add New Worksheet Action

Description:

This action adds a new worksheet to the document of a previously launched Excel
Instance

Properties:

Excel Instance:
Enter the variable that contains the Excel Instance you want to work with. You must
have previously specified this variable in a Launch Excel action.

New Worksheet Name:


Enter the text, or a previously defined text variable, to be used as the name of the
new Worksheet.

© 2018 Softomotive
Add Worksheet As:
Choose whether the new Excel Worksheet will be added before or after the existing
Worksheets.

Cautions:
For any Excel-related action to work correctly, Microsoft Excel must be installed on the
computer where the process will run.

5.19.8 Set Active Worksheet Action

Description:
This action activates a specific worksheet of a previously launched Excel Instance

Properties:
Actions Reference 697

Excel Instance:
Enter the variable that contains the Excel Instance you want to work with. You must
have previously specified this variable in a Launch Excel action.

Choose Worksheet by:


Choose to find the worksheet by name or index.

Worksheet Index:
Enter the Index number of the Worksheet you wish to make active. The numbering
starts from 1, meaning that the index of the fist worksheet is 1, of the second is 2,
etc.

Worksheet Name:
Enter the name of the Worksheet you wish to make active.

Cautions:
For any Excel-related action to work correctly, Microsoft Excel must be installed on the
computer where the process will run.

5.19.9 Get First Free Column/Row Action

Description:
This action retrieves the first free column and/or row of the active worksheet. This is
useful for adding new data into a worksheet that already has data in it.

© 2018 Softomotive
Properties:

Excel Instance:
Enter the variable that contains the Excel Instance you want to work with. You must
have previously specified this variable in a Launch Excel action.

Store First Free Column into:


Enter a name to be the variable that will store the numeric value of the first fully
empty column. This will be a number. For example, if column F is the first empty
column, it will be stored as '6'.

Store First Free Row into:


Enter a name to be the variable that will store the numeric value of the first fully
empty row.

Cautions:
For any Excel-related action to work correctly, Microsoft Excel must be installed on the
computer where the process will run.
Actions Reference 699

5.19.10 Advanced Excel


Enter topic text here.

5.19.10.1 Run Excel Macro


(Available with the Professional and Professional Plus Edition. N/A to the Basic
Edition)

This action runs a specified macro [2] on the document of a previously launched [1]
Excel Instance:

1. Excel Instance:

Enter the variable that contains the Excel Instance you want to work with. You must
have previously specified this variable in a Launch Excel action.

2. Macro:

© 2018 Softomotive
As the help bubble says, enter the text or a previously defined text variable, to be
used as the macro to run. The text should consist of the name of the macro, followed
by any arguments (optional), all separated by semicolons.

5.19.10.2 Get Active Excel Worksheet Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).
Description:

This action retrieves an Excel document's active worksheet.


Actions Reference 701

Properties:

Excel Instance: Enter the variable that contains the Excel Instance you want to
work with . You must have previously specified this variable in a Launch Excel action

Active Worksheet Name: Enter a name to be the variable that will store the
name of the active worksheet

Active Worksheet Index: Enter a name to be the variable that will store the
index of the active worksheet

5.19.10.3 Get All Excel Worksheets Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).
Description:

This action retrieves all worksheet names of an Excel document.

© 2018 Softomotive
Properties:

Excel Instance: Enter the variable that contains the Excel Instance you want to
work with . You must have previously specified this variable in a Launch Excel action

Worksheet Names: Enter a name to be the variable that will store the name of the
all worksheets
Actions Reference 703

5.19.10.4 Delete Excel Worksheet Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:

This action deletes a specific worksheet from a previously launched excel Instance.

© 2018 Softomotive
Properties:

Excel Instance: Enter the variable that contains the Excel Instance you want to
work with . You must have previously specified this variable in a Launch Excel action.

Delete Worksheet with: Choose whether you want to find the worksheet by Name
or Index

Worksheet Name/Index: Enter the Name/Index of the worksheet you wish to


delete.

5.19.10.5 Rename Excel Worksheet Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).
Description:

This action renames a specific worksheet from a previously launched excel Instance.
Actions Reference 705

Properties:

Excel Instance: Enter the variable that contains the Excel Instance you want to
work with . You must have previously specified this variable in a Launch Excel action.

Rename Worksheet with: Choose whether you want to find the worksheet by
Name or Index

Worksheet Name/Index: Enter the Name/Index of the worksheet you wish to


delete. (this will depend on what you selected int he previous option)

Worksheet New Name: Enter the new name of the worksheet

© 2018 Softomotive
5.19.10.6 Activate Cell in Excel Worksheet Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action activates a cell in the active worksheet of a previously launched Excel
Instance, given column, row and offset.

Properties:

Excel Instance:
Enter the variable that contains the Excel Instance you want to work with. You must
have previously specified this variable in a Launch Excel action.
Actions Reference 707

Activate:
Enter a name to be the variable that will store the numeric value of the first fully
empty column. This will be a number. For example, if column F is the first empty
column, it will be stored as '6'.

Cell Location Column: Enter a numeric value or letter to be the cell column.

Cell Location Row: Enter a numeric value to be the cell row. The numbering starts
from 1.

© 2018 Softomotive
5.19.10.7 Select Cells in Excel Worksheet Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description: This action selects a range of cells in the active worksheet of a


previously launched Excel Instance
Actions Reference 709

Properties:

Excel Instance: Enter the variable that contains the Excel Instance you want to work with.
You must have previously specified this variable in a Launch Excel action.

Select: Choose whether to select an explicitly specified range of cells or a range of cells
relatively to the currently active cell.

Range Start at Column: Enter a numeric value or letter to be the first column.

Range Starts at Row: Enter a numeric value to be the first row number.

Range Ends at Column: Enter a numeric value or letter to be the last column.

© 2018 Softomotive
Range Ends at Row: Enter a numeric value or letter to be the last row. The numbering
starts from 1.

Range Ends at X Axis direction: Select x-axis offset direction. Select where to look
along the horizontal axis, based on currently activated cell's position.

Number of Cells: Enter a numeric value to be the X axis offset

Range Ends at Y Axis direction: Select y-axis offset direction. Select where to look
along the vertical axis, based on currently activated cell's position.

Number of Cells: Enter a numeric value to be the Y axis offset

5.19.10.8 Get Selected Cell Range From Excel Worksheet Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action retrieves the selected range of cells in a structure consisting of first
column, first row, last column and last row.
Actions Reference 711

Properties:

First Column Index: Enter a name to be the variable that will store the numeric
value of the range's first column.

First Row Index: Enter a name to be the variable that will store the numeric value
of the range's first row.

Last Column Index: Enter a name to be the variable that will store the numeric
value of the range's last column.

Last Row Index: Enter a name to be the variable that will store the numeric value
of the range's last row.

© 2018 Softomotive
5.19.10.9 Copy Cells in Exel Worksheet Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:

This action copies a range of cells from the active worksheet of a previously launched Excel
Instance

Operation: Single Cell Value


Actions Reference 713

Operation: Value from a Range of Cells

© 2018 Softomotive
Operation: Selection

Properties:

Excel Instance: Enter the variable that contains the Excel Instance you want to
work with. You must have previously specified this variable in a Launch Excel action.

Copy Mode: Choose whether to copy a single cell, a range of cells or the current
selection of cells.

(The screenshots above show how the actions properties change depending on the
operation that you will choose. )

Column: Enter a numeric value or letter to be the cell column.

Row: Enter a numeric value to be the cell row.

First Column: Enter a numeric value or letter to be the cell column or first column.

First Row: Enter a numeric value to be the cell row or first row number.

Last Column: Enter a numeric value or letter to be the last column.


Actions Reference 715

Last Row: Enter a numeric value to be the last row number.

5.19.10.10Paste Cells to Excel Worksheet Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action pastes a range of cells to the active worksheet of a previously launched
Excel Instance

© 2018 Softomotive
Properties:

Excel Instance: Enter the variable that contains the Excel Instance you want to
work with. You must have previously specified this variable in a Launch Excel action.

Paste Mode: Choose whether to paste on a specified cell or the currently active
cell.

Column: Enter a numeric value or letter to be the cell column.

Row: Enter a numeric value to be the row number.

5.19.10.11Insert Row in Excel Worksheet Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action inserts a row above a selected row of a previously launched Excel
Instance
Actions Reference 717

Properties:

Excel Instance: Enter the variable that contains the Excel Instance you want to
work with. You must have previously specified this variable in a Launch Excel action.

Row Index: Enter the Index number of the row you wish to add a new row above.
The numbering starts from 1.

5.19.10.12Delete Row from Excel Worksheet Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action inserts a row above a selected row of a previously launched Excel
Instance

© 2018 Softomotive
Properties:

Excel Instance: Enter the variable that contains the Excel Instance you want to
work with. You must have previously specified this variable in a Launch Excel action.

Row Index: Enter the Index number of the row you wish to delete. The numbering
starts from 1.

5.19.10.13Insert Column to Excel Worksheet Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).
Description:
Actions Reference 719

This action inserts a column to the left of a selected column of a previously launched
Excel Instance

Properties:

Excel Instance: Enter the variable that contains the Excel Instance you want to
work with. You must have previously specified this variable in a Launch Excel action.

Column: Enter a column's index number or letter. A new column will appear on the
left side of the column indicated.

5.19.10.14Delete Column from Excel Worksheet Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).
Description:

© 2018 Softomotive
This action deletes a selected column from a previously launched Excel Instance

Properties:

Excel Instance: Enter the variable that contains the Excel Instance you want to
work with. You must have previously specified this variable in a Launch Excel action.

Delete Column: Enter the Index number or letter of the column you wish to delete.

5.19.10.15Get First Free Row on Column from Excel Worksheet Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action retrieves the first free row, given the column of the active worksheet.
Actions Reference 721

Properties:

Excel Instance:
Enter the variable that contains the Excel Instance you want to work with. You must
have previously specified this variable in a Launch Excel action.

Column: Enter the index or the letter that identifies the column. Column numbering starts
from index 1.

Store Column's First Free Row into: Enter a name to be the variable that will store
the numeric value of the given column's first fully empty row.

© 2018 Softomotive
5.20 Outlook
5.20.1 Launch Outlook Action
(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

Description:
This action launches Outlook and creates a new Outlook Instance

Properties:

Store Outlook Instance into:


Enter a name to be the variable that will store the specific Outlook Instance for use
with later Outlook actions.
Actions Reference 723

Cautions:

For any Outlook-related action to work correctly, Microsoft Outlook must be installed
on the computer where the process will run.

5.20.2 Retrieve Email Messages From Outlook Action


(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

Description:

This action retrieves email messages from an Outlook account

Properties:

© 2018 Softomotive
Outlook Instance:
Enter the variable that contains the Outlook Instance you want to work with. You
must have previously specified this variable in a "Launch Outlook" action.

Account:
Enter the name of the Outlook account (Data File name) you wish to work with (ex:
[email protected], John Tyler, Personal Folders).

Please find the name of your account by navigating to your Account Settings Data
Files Tab.

Mail Folder:
Enter the name of the folder that you want to retrieve messages from. Enter the full
folder path for subfolders (ex. Inbox\Work).
Actions Reference 725

Retrieve:
Specify whether you want to retrieve all messages in the folder, or only the unread
ones.

Mark As Read:
Specify whether you want to mark as read all the unread messages retrieved.

"From" Field Contains:


Enter the full e-mail address of the Sender whose messages you want to retrieve.
Leave this field blank to retrieve all messages regardless of the sender.

"To" Field Contains:


Enter the full e-mail address(es) of the Receipient(s) (separated by space or semicolon
if more than one) for the messages you want to retrieve. Leave this field blank to
retrieve all messages regardless of the recipient(s).

"Subject" Contains:
Enter the key phrase to be found within the email Subject. Leave this field blank to
retrieve all email messages regardless of the their subject.

"Body" Contains:
Enter the key phrase to be found within the email Body. Leave this field blank to
retrieve all email messages regardless of the their content.

Attachments:
Specify whether you want to save the attachments of the email messages retrieved or
not.

Save Attachments into:


Enter here the folder in which you want the attachments to be saved.

Store Messages into:


Enter a name to be the variable that will store the retrieved email messages for later
processing. The variable will contain a List of Outlook Message objects.

© 2018 Softomotive
Cautions:

For any Outlook-related action to work correctly, Microsoft Outlook must be installed
on the computer where the process will run.

5.20.3 Send Email Through Outlook Action


(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

Description:

This action creates and sends a new email message through Outlook

Properties:
Actions Reference 727

Outlook Instance:
Enter the variable that contains the Outlook Instance you want to work with. You
must have previously specified this variable in a "Launch Outlook" action.

Account:
Enter the name of the Outlook account (E-mail Account name) you wish to work with
(ex: [email protected], John Tyler, work, home).

Please find the name of your account by navigating to your Account Settings E-mail
Tab.

To:
Enter the email address(es) of the recipient(s). If you enter more than one email
address, the list of addresses should be separated by spaces or semicolons.

© 2018 Softomotive
CC:
Enter the email address(es) of the CC recipient(s). If you enter more than one email
address, the list of addresses should be separated by spaces or semicolons.

BCC:
Enter the email address(es) of the BCC (hidden) recipient(s). If you enter more than
one email address, the list of addresses should be separated by spaces or semicolons.

Subject:
Enter the subject of the email.

Body:
Enter the text of the body.

Body is HTML:
Choose whether the body of the email is interpreted as HTML coding.

Attachment(s):
Enter or choose the full path of any attachment(s), or choose a variable that contains
a file or a list of files. Multiple files should be enclosed in double quotes (") and
separated by a space character.

Cautions:
For any Outlook-related action to work correctly, Microsoft Outlook must be installed
on the computer where the process will run.

5.20.4 Process Email Messages in Outlook Action


(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

Description:
Moves or deletes an email (or a list of email messages) retrieved by a "Retrieve Emails
From Outlook" action.
Actions Reference 729

Properties:

Outlook Instance:
Enter the variable that contains the Outlook Instance you want to work with. You
must have previously specified this variable in a "Launch Outlook" action.

Account:
Enter the name of the Outlook account (Data File name) you wish to work with (ex:
[email protected], John Tyler, Personal Folders).

Please find the name of your account by navigating to your Account Settings Data
Files Tab.

© 2018 Softomotive
Email Message(s) to Process:
Enter a variable containing the email or list of email messages to be processed. This
should be a variable populated by a "Retrieve Email Messages From Outlook" action.

Operation:
Specify which operation you want to perform on the specified email messages.

Mail Folder:
Enter the name of the folder that you want to move e-mail messages to. Enter the full
folder path for subfolders (ex. Inbox\Work).

Cautions:
For any Outlook-related action to work correctly, Microsoft Outlook must be installed
on the computer where the process will run.
Actions Reference 731

5.20.5 Save Outlook Email Messages Action


(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

Description:
This action saves Outlook email messages given an account

Properties:

Outlook Instance:
Enter the variable that contains the Outlook Instance you want to work with. You
must have previously specified this variable in a "Launch Outlook" action.

Account:
Enter the name of the Outlook account (Data File name) you wish to work with (ex:
[email protected], John Tyler, Personal Folders).

Please find the name of your account by navigating to your Account Settings Data
Files Tab.

© 2018 Softomotive
Email Message(s) to Save:
Enter a variable containing the email message or list of email messages to be saved.
This should be a variable populated by a "Retrieve Email Messages From Outlook"
action.

File Name:
Specify whether you want to save the mssages using the default name (Subject) or
provide your own.

Save Format:
Specify the format by which to save the messages.

Save As:
Specify custom name for messages' name which will differ from message to message by
an automatically added suffix.
Actions Reference 733

Save Email Message(s) to:


Enter here the folder to which you want the messages to be saved.

Stored Message(s) Files:


Enter a name to be the variable that will store the file paths of the saved email
messages for later processing.

Cautions:
For any Outlook-related action to work correctly, Microsoft Outlook must be installed
on the computer where the process will run.

5.20.6 Respond To Outlook Email Message Action


(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

Description:
This action provides a response to an Outlook Message, by replying, replying to all or
forwarding

© 2018 Softomotive
Properties:

Outlook Instance:
Enter the variable that contains the Outlook Instance you want to work with. You
must have previously specified this variable in a "Launch Outlook" action.

Account:
Enter the name of the Outlook account (E-mail Account name) you wish to work with
(ex: [email protected], John Tyler, work, home).

Please find the name of your account by navigating to your Account Settings E-mail
Tab.
Actions Reference 735

Response Action:
Choose whether to reply (to sender or all) with a message or forward the received
message.

To:
Enter the email address(es) of the recipient(s). If you enter more than one email
address, the list of addresses should be separated by spaces or semicolons.

CC:
Enter the email address(es) of the CC recipient(s). If you enter more than one email
address, the list of addresses should be separated by spaces or semicolons.

BCC:
Enter the email address(es) of the BCC (hidden) recipient(s). If you enter more than
one email address, the list of addresses should be separated by spaces or semicolons.

© 2018 Softomotive
Mail Message:
Enter the variable that holds the mail message you wish to act upon. This should be a
variable populated by a "Retrieve Email Messages From Outlook" action.

Body:
Enter the HTML text of the body.

Attachment(s):
Enter or choose the full path of any attachment(s), or choose a variable that contains
a file or a list of files. Multiple files should be enclosed in double quotes (") and
separated by a space character.

Cautions:
For any Outlook-related action to work correctly, Microsoft Outlook must be installed
on the computer where the process will run.

5.20.7 Close Outlook Action


(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

Description:
This action closes a previously launched Outlook Instance
Actions Reference 737

Properties:

Outlook Instance:
Enter the variable that contains the Outlook Instance you want to close. You must
have previously specified this variable in a "Launch Outlook" action.

Cautions:
For any Outlook-related action to work correctly, Microsoft Outlook must be installed
on the computer where the process will run.

5.21 OCR Actions

© 2018 Softomotive
5.21.1 Create Tesseract OCR Engine
(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

WinAutomation allows you to work with a number of different OCR Engines through an
equal number of different actions 737 . Each of these actions has different Properties
and property Values according to each respective Engine's capabilities.

This action allows you to work with the Tesseract OCR Engine in order to extract text from Image
Files, in combination with the Extract Text With OCR 742 action.

Please Note: Tesseract is the only OCR Engine that it comes ready to use with
WinAutomation without the need to install it.

Tesseract Engine allows you to detect a number of different languages [1] and this
Action is giving you the option to select any of them. It also allows you to rescale your
image; you can resize width and height [2] of your image independently from one
another through the use of multipliers, since Tesseract works best on images which
have a DPI (Dots Per Inch) of at least 300. The Action returns an Ocr Engine Data
Type [3] stored within a variable:
Actions Reference 739

1. Tesseract Language:
This drop down menu allows you to select the language of the image's text that
Tesseract will detect:

2. Width & Height Multipliers:


These multipliers allow you to rescale an image in order to help the OCR Engine read
the text in it. Tesseract is known to require a DPI of at least 300 in order to work,
however since there is plenty of confusion among non-experts regarding DPI, PPI and
optimal Image settings for OCR Text Extraction we invite you to feel comfortable to
experiment/play with the available options (try for example 2, 3 or 4).

3. OCR Engine:

This text field invites you to set the variable that will hold the value of the Ocr Engine
Data Type 286 produced from this action.

© 2018 Softomotive
5.21.2 Create MODI OCR Engine
(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

WinAutomation allows you to work with a number of different OCR Engines through an
equal number of different actions 737 . Each of these actions has different Properties
and property Values according to each respective Engine's capabilities.

This action allows you to work with the MODI (Microsoft Office Document Imaging)
OCR Engine in order to extract text from Image Files, in combination with the Extract
Text With OCR 742 action.

Please Note: MODI requires additional installations. Tesseract 738 is the only OCR Engine
that it comes ready to use with WinAutomation without the need to install it.

MODI allows you to detect a number of different languages [1] and this Action is giving
you the option to select any of them. It also allows you to rescale your image; you
can resize width and height [2] of your image independently from one another through
the use of multipliers, since that might help MODI read the text we want to extract.
The Action returns an Ocr Engine Data Type [3] stored within a variable:
Actions Reference 741

1. MODI Language:

This drop down menu allows you to select the language of the image's text that MODI
will detect:

2. Width & Height Multipliers:


These multipliers allow you to rescale an image in order to help the OCR Engine read
the text in it. Resizing an Image is known to help OCR read text in them and since
there is plenty of confusion among non-experts regarding DPI, PPI and optimal Image
settings for OCR Text Extraction we invite you to feel comfortable to experiment/play
with the available options (try for example 2, 3 or 4).

3. OCR Engine:

This text field invites you to set the variable that will hold the value of the Ocr Engine
Data Type 286 produced from this action.

© 2018 Softomotive
5.21.3 Extract Text With OCR
(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

Description: This action extracts text from the image-source specified: A region of
the screen, a window, an image file on the disk and so on.

Search Mode: Whole of specified source


Actions Reference 743

Search Mode: Specific Subregion only

© 2018 Softomotive
Search Mode: Subregion relative to image

Properties:

OCR Engine: Select the Engine you want to use for the OCR operation.

OCR Source: Choose whether you want to search for the specified Image in the
foremost Window only, or the entire visible screen. Neither choice will find the Image if
it is not clearly visible on the screen.

Search Mode: Specify whether you want to scan the entire screen (or window) to
find the supplied image or only a narrowed down subregion of it.
Actions Reference 745

X1 Y1 X2 Y2: Specify the subregion of the screen/window/image to narrow down


the scan to.

Image: Specify the image to use as a Image for narrowing the scan down to a
subregion which is positionally relative to said Image.

Tolerance: Specify a value for how much the Image searched for can differ from the
originally chosen Image.

Sub-region relative to Image: Specify the subregion (relative to the top left
corner of the Image image you've specified) which you would like to have it scanned
for its text.

Scanned Text: Enter a name to be the variable that will store the text which got
extracted using OCR.

OCR Language: Select the language of the image that the OCR will be performed

Wait for image to appear: Choose whether you want the action to wait if the
image is not found on the screen or foreground window. If this property is not checked
and the image is not found the action will through an exception, otherwise the action
will wait until the image appears. In the next property you can specify the maximum
number of seconds (timeout) to wait.

Fail if image does not appear within x seconds: Specify whether the action
should wait indefinitely for the image to appear or throw an exception after a set
number of seconds (if the specified Image does not get found).

5.22 Services
5.22.1 Start Service Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action starts a stopped Windows Service

© 2018 Softomotive
Properties:

Service to Start:
Choose or enter the name of a Service to start.

5.22.2 Stop Service Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action stops a running Windows Service
Actions Reference 747

Properties:

Service to Stop:
Choose or enter the name of a Service to stop.

5.22.3 Pause Service Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action pauses a running Windows Service

© 2018 Softomotive
Properties:

Service to Pause:
Choose or enter the name of a Service to pause.

5.22.4 Resume Service Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action resumes a paused Windows Service
Actions Reference 749

Properties:

Service to Resume:
Choose or enter the name of a paused Service to resume.

5.23 WinAutomation Actions


5.23.1 Start Process Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action executes a specific Process

© 2018 Softomotive
Properties:

Process to Run:
Choose or enter the name of a WinAutomation Process. Usually, it will be a Process
other than the current one.

Wait for Process to Complete:


Check this box if you want to pause this Process until the called Process is complete.
Otherwise both will run simultaneously.

Continue Anyway:
Choose whether the Process continues after a set number of seconds, regardless of
whether the called Process has finished or not.
Actions Reference 751

5.23.2 Get Command Line Arguments Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action retrieves the command line arguments that can be provided if the process
is compiled or started through the command line

Properties:

Store Command Line Arguments into:


Enter a name to be the variable that will store the Command Line Arguments entered
by the user. This will be a list of text values.

Note: A backslash (\) character will "escape" the next control character, including
quotes ("") and itself. Therefore, when you need to include literal backslashes into one
of the parameters (e.g. "C:\My Data\etc\"), please remember to escape them first
("C:\\My Data\\etc\\").

© 2018 Softomotive
5.23.3 Get Process' Path Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action retrieves the path of the currently running Process. This is the folder where
the Process is stored plus the Process name. In a compiled Process the action
retrieves the full path (directory and file name) of the executable file.

Properties:

Store Process's Path into:


Enter a name to be the variable that will store the path of the current Process.
Actions Reference 753

5.23.4 Log Message Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action creates a custom Log Entry in the WinAutomation Event Log 114 .

Properties:

Message to Log:
Enter the message you want to log.

Event Type:
Specify the event type that will be logged (informational, warning or error).

© 2018 Softomotive
5.23.5 Get Last Exception Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action retrieves the last occurred exception.

Properties:

Store Exception into:


Enter a name to be the variable that will store the last exception occurred and its
relevant info.
Actions Reference 755

5.24 Text Actions


5.24.1 Get Text Length Action

Description:
This action retrieves the length (in characters) of a text value or variable

Properties:

Text to Measure:
Enter the text, or a previously stored text variable, to be measured.

Store Length into:


Enter a name to be the variable that will store the text's length as a number.

© 2018 Softomotive
5.24.2 Append Line to Text Action

Description:

This action appends a new line of text to a text value or variable

Properties:

Original Text:
Enter the original text or a previously stored text variable.

Line to Append:
Enter the text, or a previously stored text variable, to add on as a new line.

Store Result into:


Enter a name to be the variable that will store the new text. As elsewhere, this can be
the name of the original variable, overwriting the original text with the new text.
Actions Reference 757

5.24.3 Get Subtext Action

Description:

This action retrieves a subtext from a text value or variable

Properties:

Original Text:
Enter the text, or a previously stored text variable, that contains the section of text
you want to retrieve.

© 2018 Softomotive
Start Index:
Choose how you want to find the starting point for text retrieval.

Character Position:
Set the position of the first character you will retrieve. This is a zero-based index,
counting from zero for the first character. For example, the tenth character would be
9.

Length:
Choose whether the subtext continues to the end of the text, or includes only a
certain number of characters.

Number of Chars:
Set the number of characters to be retrieved.

Store Subtext into:


Enter a name to be the variable where the subtext will be stored. As elsewhere, this
can be the name of the original variable, overwriting the original text with the new
text.

5.24.4 Pad Text Action

Description:

This action creates a fixed length text by adding characters to the left or to the right
of an existing text
Actions Reference 759

Properties:

Text to Pad:
Enter the text, or a previously stored text variable, to be lengthened.

Pad:
Choose whether to add characters to the left or right of the existing text.

Char or Text for Padding:


Enter the character or text that will be added to lengthen the original text.

Total Length:
Set the total character length of the final padded text. This means that the Char or
Text for Padding will be repeatedly added until the final text is the right length. If it is
already the right length, no characters will be added.

© 2018 Softomotive
Store Result into:
Enter a name to be the variable that will store the new, padded Text. As elsewhere,
this can be the name of the original variable, overwriting the original text with the new
text.

5.24.5 Trim Text Action

Description:

This action removes all occurrences of white space characters (such as space, tab, or
new line) from the beginning and/or end of an existing text.

Properties:

Text to Trim:
Enter the text, or a previously stored text variable, that you want to have trimmed.
Actions Reference 761

What to Trim:
Choose where white space characters will be removed from.

Store Trimmed Text into:


Enter a name to be the variable that will store the new, trimmed Text. As elsewhere,
this can be the name of the original variable, overwriting the original text with the new
text.

5.24.6 Change Text Case Action

Description:
This action changes the casing of a text to uppercase, lowercase, title case or
sentence case.

Properties:

© 2018 Softomotive
Text to Convert:
Enter the text, or a previously stored text variable, that you want to convert.

Convert to:
Choose which text case style you want to use. Examples are given in their names.

Store Text with New Case into:


Enter a name to be the variable that will store the new, converted Text. As elsewhere,
this can be the name of the original variable, overwriting the original text with the new
text.

5.24.7 Convert Text to Number Action

Description:
This action converts a text representation of a number to a variable that contains a
numeric value
Actions Reference 763

Properties:

Text to Convert:
Enter a previously stored text variable containing only a number, that will be converted
to a numeric value variable. Spaces will be ignored, but non-number text will throw an
exception.

Store Result into:


Enter a name to be the variable that will store the new, numeric value.

5.24.8 Convert Number to Text Action

Description:
This action converts a number to text using a specific format that you determine.

© 2018 Softomotive
Properties:

Number to Convert:
Enter a number, or a previously stored numeric variable, that will be converted to text.

Decimal Places:
Choose the number of decimal places that will be included before truncation. Zeros can
also be added to the end to pad the text in this way.

Use 1000 Separator:


Choose whether or not to use punctuation as a 1000 separator.
Actions Reference 765

Example:
Here you can see an example of what your textual number will look like.

Store Result into:


Enter a name to be the variable that will store the formatted number as Text.

5.24.9 Convert Text to DateTime Action

Description:
This action converts a text representation of a Date and/or Time value to a variable
that contains a DateTime value

Properties:

© 2018 Softomotive
Text to Convert:
Enter the text, or a previously stored text variable, to be converted to a DateTime
value. This text must be in a recognizably DateTime value format.

Date is represented in custom format:


Use this option if the text to be converted contains a representation of the Date Time
in a non-standard, non-recognizable format. In this case you will also need to provide
the custom format in which the date is represented.

Custom Format:
Enter the format in which the date is stored in the text. You can express a custom
format as, for example, yyyyMMdd for date, and hhmmss for time. For more information
on how to specify a custom format see Custom Date Formats 296 .

Store Result into:


Enter a name to be the variable that will store the DateTime value.

5.24.10 Convert DateTime to Text Action

Description:
This action converts a DateTime value to text using a specific format
Actions Reference 767

Properties:

DateTime to Convert:
Enter a DateTime value, or a previously stored DateTime variable, that will be
converted to text.

Format to Use:
Choose whether to use a standard DateTime format, or create a custom one.

Standard Format:
Choose which standard DateTime format this action will use to display the DateTime
value.

© 2018 Softomotive
Custom Format:
Set the custom Format this action will use to display the DateTime value. You can
express a DateTime as, for example, MM/dd/yyyy for date, and hh:mm:sstt for time.
For more information, see the Custom Date Formats 296 topic.

Example:
This is an example of how the action will display the DateTime value.

Store Result into:


Enter a name to be the variable that will store the formatted DateTime as a text value.

5.24.11 Create Random Text Action

Description:
This action generates a text of specified length consisting of random characters. This
can be useful for generating passwords.
Actions Reference 769

Properties:

Characters to Use:
Choose which characters may be included in the generated Text.

Minimum Length:
Choose a minimum length for the random Text. If you want a certain length of Text,
set the minimum and maximum values to that number.

Maximum Length:
Choose a maximum length for the random Text. If you want a certain length of Text,
set the minimum and maximum values to that number.

© 2018 Softomotive
Store Random Text into:
Enter a name to be the variable that will store the random Text.

5.24.12 Join Text Action

Description:
This action converts a list into a text value by separating its items with a specified
delimiter.

Properties:

List to Join:
Enter a previously stored list variable, to be converted to Text.
Actions Reference 771

Delimiter to separate list items:


Choose whether to use no Delimiter, a standard Delimiter or a custom one.

Standard Delimiter:
Choose the Delimiter and how many repetitions from the list.

Custom Delimiter:
Enter the character(s) to be used as Delimiter. Spaces at the beginning and the end
will be trimmed, unless in the format of %"xxx"%, where xxx is the text, and can
contain spaces anywhere.

Store Result into:


Enter a name to be the variable that will store the new, delimited Text.

5.24.13 Split Text Action

Description:
This action creates a list containing the substrings of a text that are separated by a
specified delimeter or by regular expression

© 2018 Softomotive
Properties:

Text to Split:
Enter the text that contains delimiters, or a previously stored text variable, to be split.

Delimiter that separates text elements:


Choose whether the used Delimiter is of a standard or custom format.

Standard Delimiter:
Choose the Delimiter used from the list.

Custom Delimiter:
Enter the character(s) that were used as Delimiter.
Actions Reference 773

Is Regular Expression:
Check this box if your Delimiter is a Regular Expression. A Regular Expression creates a
range of possibilities for the Delimiter. For example \d means that the Delimiter could be
any digit.

Store Result into:


Enter a name to be the variable that will store the new List.

5.24.14 Parse Text Action

Description:
This action parses a text to find the first or all occurrences of a specified subtext or a
regular expression pattern

© 2018 Softomotive
Properties:

Text to Parse:
Enter the text, or a previously stored text variable, to be parsed.

Text to Find:
Enter the subtext, a previously stored text variable, or a Regular Expression, to search
for.
Actions Reference 775

Is Regular Expression:
Check this box if your subtext is a Regular Expression. A Regular Expression creates a
range of possibilities to be the subtext. For example \d means that the subtext could
be any digit.

Start Parsing at Position:


Enter the position where this action will begin to look for the Text to Find. The first
position is zero, so use 0 to start from the beginning.

First Occurrence Only:


Choose if you want this action to find the first occurrence only, or each occurrence of
the Text to Find.

Ignore Case:

Choose whether you want this action to find the specified text using case-sensitive or
case-insensitive matching.

Store Position(s) of found text into:


Enter a name to be the variable that will store the position(s) of the "Text to Find" into
the "Text to Parse". If you have not checked Find First Occurrence, the result(s) will
be a list of numerical values; otherwise it will be a single numerical value. If the text
you are searching for is not found within the original text, this variable will hold the
value -1.

Store Match(es) into:


Enter a name to be the variable that will store the result(s) that match your Regular
Expression. If you have not checked Find First Occurrence, the result(s) will be a list
of text values; otherwise it will be a single text value.

5.24.15 Replace Text Action

Description:
This action replaces all occurrences of a specified subtext, with another specified text.
It can also be used with Regular Expressions

© 2018 Softomotive
Properties:

Text to Parse:
Enter the text, or a previously stored text variable, to be parsed.

Text to Find:
Enter the subtext, a previously stored text variable, or a Regular Expression, to search
for.
Actions Reference 777

Use Regular Expressions for find and replace:


Check this box if the subtexts are Regular Expressions. A Regular Expression creates a
range of possibilities to be the subtext. For example \d means that the subtext could
be any digit.

Ignore Case:

Choose whether you want this action to find the subtext to be replaced using case-
sensitive or case-insensitive matching.

Replace With:
Enter the text, a previously stored text variable, or a Regular Expression, to replace
found text. For example '\t' in the replacement text will be interpreted as a tab.

Activate Escape Sequences:


Check this box if you want special sequences.

Store Result Text into:


Enter a name to be the variable that will store the new, updated Text.

5.24.16 Escape Text for Regular Expression Action

Description:
This action escapes a minimal set of characters (\,*,+,?,|,{,[,(,),^,$,.,# and white
spaces) by replacing them with their escape codes of an existing test.

© 2018 Softomotive
Properties:

Text to Escape:
Enter the text, or a previously stored text variable, to be escaped.

Store Escaped Text into:


Enter a name to be the variable that will store the escaped text.

5.25 DateTime Actions


5.25.1 Get Current Date and Time Action

Description:
This action retrieves the current date or the current date and time
Actions Reference 779

Properties:

Retrieve:
Choose whether to gather the date and time, or just the date. If you choose to gather
only the Date, the time value will be stored as midnight (0:00:00).

Store Retrieved DateTime into:


Enter a name to be the variable that will store the current DateTime value.

5.25.2 Add to DateTime Action

Description:
This action adds (or subtracts) a specific number of seconds, minutes hours or days to
a DateTime value stored into a variable

© 2018 Softomotive
Properties:

Add:
Enter a numeric value, or a previously stored numeric variable, and choose the unit of
time it represents. To subtract a time, this value would be negative. For example, add
-7 days here to go back one week.

To Variable:
Enter the name of a variable with a DateTime value that you wish to alter.

Store the result into:


Enter a name to be the variable that will store the new, altered DateTime value. As
elsewhere, this can be the name of the original variable, overwriting the original
DateTime with the new DateTime.
Actions Reference 781

5.25.3 Subtract Dates Action

Description:

This action finds the time difference between two given dates in days, hours, minutes,
or seconds.

Properties:

Subtract Date 1:
Enter a DateTime or the name of a variable that holds a DateTime value.

From Date 2:
Enter a DateTime or the name of a variable that holds a DateTime value. This will be
the base DateTime, so generally put the later date/time in this field.

© 2018 Softomotive
Get Difference in:
Choose what unit of time to express the difference in.

Store Result into:


Enter a name to be the variable that will hold the difference in time as a numeric value.

5.26 XML Actions


5.26.1 Read XML from File Action

Description:
This action reads the contents of an XML file into a variable.
Actions Reference 783

Properties:

File path:
Enter or choose the XML document to be read. This can be a file path, or a variable
containing a file or a textual path.

Encoding:
Select the encoding used for the specified file.

Store XML Document into:


Enter the name of the variable that will store the XML Document read from the file.

5.26.2 Write XML to File Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action writes the contents of an XML Node variable into a file.

© 2018 Softomotive
Properties:

File path:
Enter or choose the file where the XML document to be written into.

XML to write:
Enter the variable that contains the XML Node or document to be written that you
want to write into the file.

Encoding:
Select the encoding used for the specified file.
Actions Reference 785

5.26.3 Execute XPath Expression Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action extracts values from an XML Document (a variable containing data in XML
format) based on the XPath Query provided.

© 2018 Softomotive
Properties:

XML Document to Parse:

This action displays an inobtrusive message through the notification popup

XPath Query:

Enter the XPath expression to execute against the XML Document.

Get First Value Only:

Specify whether you want to retrieve a single value (The first value only) or all the
values that match the provided XPath expression.

Store Extracted Value(s) into:

Enter the name of the variable that will store the extracted node(s) as an XML Node or
a list of XML Nodes (depending on your choice in “Get First Value Only” property)

5.26.4 Get XML Element Attribute Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action gets the value of an attribute of an XML Element.
Actions Reference 787

Properties:

XML Document:
Enter the variable that contains the XML Document or XML Element whose attribute
you want to retrieve.

XPath Query:
Enter the XPath Expression to locate the sub-element whose attribute you want to
retrieve.

Attribute Name:
Enter the name of the attribute whose value you want to retrieve.

Get Value as:


Select the data type for the attribute value.

© 2018 Softomotive
Set the XML Attribute Value into:

Enter the name of the variable that will store the retrieved value of the XML Attribute. The type of the

variable will depend on the selection of the “Get Value as” property.

5.26.5 Set XML Element Attribute Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action sets the value of an attribute of an XML Element.
Actions Reference 789

Properties:

Xml Document:
Enter the variable that contains the XML Document or XML Element whose attribute
you want to set.

XPath Query:
Enter the XPath Expression to locate the sub-element whose attribute you want to
set.

Attribute Name:
Enter the name of the attribute whose value you want to set.

© 2018 Softomotive
Attribute Value:
Enter the new value for the attribute.

5.26.6 Remove XML Element Attribute Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action removes an attribute from an XML Element.
Actions Reference 791

Properties:

XML Document:
Enter the variable that contains the XML Document or XML Element whose attribute
you want to remove.

XPath Query:
Enter the XPath Expression to locate the sub-element whose attribute you want to
remove.

Attribute Name:
Enter the name of the attribute you want to remove.

5.26.7 Get XML Element Value Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action gets the value of an XML Element.

© 2018 Softomotive
Properties:

XML Document:
Enter the variable that contains the XML Document or XML Element whose value you
want to retrieve.

XPath Query:
Enter the XPath Expression to locate the sub-element whose value you want to
retrieve.

Get Value as:


Select the data type for the Element value

Store the XML Element Value into:


Enter the name of the variable that will store the retrieved value of the XML Element.
The type of the variable will depend on the selection of the “Get Value as” property.
Actions Reference 793

5.26.8 Set XML Element Value Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action sets the value of an XML Element.

Properties:

XML Document:
Enter the variable that contains the XML Document or XML Element whose value you
want to retrieve.

© 2018 Softomotive
XPath Query:
Enter the XPath Expression to locate the sub-element whose value you want to
retrieve.

XML Element Value:


Enter the Value for the XML Element

5.26.9 Insert XML Element Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action inserts a new XML Element into an XML document
Actions Reference 795

Properties:

XML Document:
Enter the XML Document where you want to insert the new XML Element.

XPath Query:
Enter the XPath Expression to locate the parent XML element into which the new
element will be inserted.

XML Element to Insert:


Enter the new XML element you want to insert into the XML document.

© 2018 Softomotive
5.26.10 Remove XML Element Action

(Available with the Professional and Professional Plus Editions. N/A to the Basic
Edition).

Description:
This action removes one or more XML Elements from an XML Document.

Properties:

XML Document:
Enter the XML Document that contains the XML element(s) you want to remove.
Actions Reference 797

XPath Query:
Enter the XPath expression to locate the element(s) you want to remove.

5.27 Variables Actions


5.27.1 Set Variable Action

Description:
This action sets the value of a new or existing variable, and can be used to create a
new variable or overwrite a previously created variable.

Properties:

Set Value:
Enter a value or expression, or a previously stored variable, to be the value of this
variable.

© 2018 Softomotive
into Variable:
Enter a name to be the variable that will hold the value you set. This can be a new or
existing variable.

5.27.2 Increase Variable Action

Description:
This action increases the value of a variable by a specific amount

Properties:

Variable Name:
Enter the name of the numeric variable you wish to increase.
Actions Reference 799

Increase by:
Enter a numeric value, or a previously stored numeric variable, to increase the variable
by.

5.27.3 Decrease Variable Action

Description:
This action decreases the value of a variable by a specific amount

Properties:

Variable Name:
Enter the name of the numeric variable you wish to decrease.

© 2018 Softomotive
Decrease By:
Enter a numeric value, or a previously stored numeric variable, to decrease the variable
by.

5.27.4 Truncate Number Action

Description:
This action accepts a numeric value and returns its integral or fractional digits, or
rounds up the value to a specified number of decimal places.
Actions Reference 801

Properties:

Number to Truncate:
Enter the number or the name of the variable that holds the numeric value you want to
truncate/round up.

Operation:
Select the operation you want to perform on the given number.

Decimal Places:
Specify the number of decimal places you want to round the given number up. Enter 0,
do you want the result to be an integer.

5.27.5 Generate Random Number Action

Description:
Generates a random number or a list of random numbers that fall between a minimum
and maximum value

© 2018 Softomotive
Properties:

Minimum Value:
Enter a numeric value, or a previously stored numeric variable, to specify a lower
boundary for the random number(s) to generate.

Maximum Value:

Enter a numeric value, or a previously stored numeric variable, to specify an upper


boundary for the random number(s) to generate.

Generate Multiple Numbers:


Specify whether you want to generate a single random number or a list of random
numbers.
Actions Reference 803

How Many Numbers:


Enter a numeric value, or a previously stored numeric variable, to specify how many
random numbers to generate.

Allow Duplicates:
Specify whether to permit or prevent the same number from appearing more than once
in the random numbers list.

Store Random Number(s) into:


Enter a name to be the variable that will store the newly generated random number(s).
The variable will hold a numeric value or a list of numeric values, depending on your
choice in 'Generate Multiple Numbers'

5.27.6 Get Items Count Action

Description:
This action retrieves the count of items of a variable that contains a list or a
datatable. A datatable will return the number of rows.

© 2018 Softomotive
Properties:

Variable Name:
Enter the name of the list or datatable variable to be counted.

Store Items Count into:


Enter a name to be the variable that will hold the count of items on the list or the
number of rows in the datatable.

5.27.7 Create New List Action

Description:
This action creates a new empty list and assigns it to a variable
Actions Reference 805

Properties:

Store new empty list into:


Enter a name to be the variable that will hold the list.

5.27.8 Clear List Action

Description:
This action removes all items from a List contained into a variable.

© 2018 Softomotive
Properties:

List to Clear:
Enter the name of a variable that contains the list you wish to remove its items.

5.27.9 Add Item to List Action

Description:

This action appends a new item of the same type to a variable that contains a List.
Actions Reference 807

Properties:

Add Item:
Enter a value, or the name of a variable, to be added. The new value must be a single
value and not a list of values. If the list you are adding to has a specific type of
elements, say all numeric or all file information, the new value must be of the same
type.

into List:
Enter the name of a variable that contains a list you wish to add to.

5.27.10 Remove Item from List Action

Description:
This action removes an item at a specified index from a variable that contains a List.

© 2018 Softomotive
Properties:

Remove Item at Index:


Enter the index number of the item you wish to remove. This action will shorten the list
by that item.

From List stored into:


Enter the name of a variable that contains a list you wish to remove the item from.

5.27.11 Sort List Action

Description:
This action sorts the items of a List contained in a variable. The items on the list must
be of the same type.
Actions Reference 809

Properties:

List to Sort:
Enter the name of a variable that contains a list you wish to sort.

Sort by list items' properties:


If your list items are objects (such are files, folders, etc) you can choose here to sort
the item by a specific property. If you leave this unchecked the items of the list will be
sorted by their default property (e.g. file objects will be sorted by their full path).

So, for example, if you have a list of files, using this option you can sort them, say, by
extension and then by size. If you don't use the option, the files will be sorted by their
full path.

© 2018 Softomotive
First Property to Sort by:
Enter the name of a property of the items contained in the list that you want to sort
by. You can find the properties for some of the data types supported by
WinAutomation here 290 . For data types defined in Addons, please refer to the
corresponding Addon documentation.

Second Property to Sort by:


Optional: Enter the name of a second property to sort by.

Third Property to Sort by:


Optional: Enter the name of a second property to sort by.

5.27.12 Shuffle List Action

Description:
This action creates a random permutation of a List contained in a variable. The items
on the list must be of the same type.
Actions Reference 811

Properties:

List to Shuffle:
Enter the name of a variable that contains a list you wish to shuffle.

5.27.13 Merge Lists

Description:

This action merges two lists into one.

© 2018 Softomotive
Properties:

Fisrt List:

Enter the name of a variable that is the first list of items to be merged.

Second List:

Enter the name of a variable that is the second list of items to be merged.

Output List:

Enter the name of the variable that will contain the merged list. The initial lists will not
be affected.

5.27.14 Reverse List Action

Description:
This action reverses the order of the items of a List contained into a variable.
Actions Reference 813

Properties:

List to Reverse:
Enter the name of the variable that contains the List, whose items order you want to
reverse.

5.27.15 Remove Duplicate Items from List Action

Description:
This action removes the multiple occurrences of items in a list, so that in the resulting
list each item will be unique.

Properties:

List to Remove Duplicate Items from:

Enter the name of a variable that contains a list you wish to remove duplicate items
from.

© 2018 Softomotive
5.27.16 Find Common List Items Action

Description:

This action compares two lists, and creates a new list with the items that are common
to both.

Properties:

List 1:
Enter the name of a variable containing a list, to be compared.

List 2:
Enter the name of a variable containing a different list, to be compared.

Store Common Items into List:


Enter a name to be the variable that will hold the new list of common items.
Actions Reference 815

5.27.17 Subtract Lists Action

Description:

This action compares two lists, and creates a new list with the items that are in the
first list but not in the second.

Properties:

List 1:
Enter the name of a variable containing a list to be compared.

List 2:
Enter the name of a variable containing a different list to be subtracted from the first
list. Subtracted items will shorten the resultant list. If two identical lists are compared,
the result will be an empty list.

Store difference as new List into:


Enter a name to be the variable that will hold the new, resulting list.

© 2018 Softomotive
5.27.18 Retrieve DataTable Column into List Action

Description:
This action converts the contents of a DataTable column into a List for further
processing

Properties:

DataTable:
Enter the name of a variable containing a data table.

Column Name or Index:


Enter the column name, if you have defined column names, or the index number of the
column you wish to retrieve. Note that the index is 0 based.
Actions Reference 817

Store column contents as new list into:


Enter a name to be the variable that will hold the new list. This list will hold the
contents of the specified data table.

5.27.19 Create New Custom Object

Description:
This action creates a new Custom Object 299 and stores it [1] into a variable for later use:

Properties:

This action does not accept any input.

1. Store New Custom Object into:

This text field invites you to type the variable you wish to hold the new Custom
Object 299 .

© 2018 Softomotive
5.27.20 Add Property To Custom Object

Description:
This action allows you to add pairs of custom object Property Names [2] and Property Values [3] to
an existing Custom Object 299 . What is noteworthy is that the format of the action allows you to work
with a number of available custom objects through the drop down menu of the Custom Object [1]
action property:

This action does not provide any output.

Properties:

1. Custom Object:
Actions Reference 819

This is a text-field with drop down menu options. It allows you to enter the Name of
the Custom Object you want to work with, or simply find and select it effortlessly from
the drop down menu that lists all available custom objects in your script.

2. Property Name:

This is a text-field that allows you to enter the new Property Name of the Custom
Object of your choice [1]. If you have any questions on what is the Property Name of
a Custom Object, please refer to the Custom Object format of the following article 299 .
Please also know, that you can always use the Gear Icon to enter Property Name as a
variable:

© 2018 Softomotive
3. Property Value:

This is a text-field that allows you to enter the Property Value of the previously filled
Property Name [2]. If you have any questions on what is Property Name or Property
Value of a Custom Object, please refer to the Custom Object format of the following
article 299 . Please also know, that you can always use the Gear Icon to enter this
Property Value as a variable. This can be very helping in case you want to use a data
type that you have constructed earlier on in your script.

5.27.21 Convert Json to Custom Object

Description:
This action is giving you the ability to translate JSON [1] into a Custom Object and store it inside a
new variable for later use [2]:
Actions Reference 821

Properties:

1. JSON:

This action property allows you to enter either a multiple lines long JSON directly or
through a WinAutomation variable. If you have any questions on what JSON or Custom
Objects are, please refer to the appropriate section of the following topic 299 . Please
also know, that you can always use the Gear Icon to enter effortlessly an existing
variable.

2. Into Custom Object:

In this text-field you should enter the name of the existing or new variable that you
wish to store the Custom Object.

Please note that you can access the values of your custom object almost exactly like
if they were JSON. Consider for example the following actions in Process Designer's
Workspace 162 :

© 2018 Softomotive
Testing this from Process Designer 199 will produce the following variable value for
%NewVar2%:

5.27.22 Convert Custom Object to Json

Description:
This action enables you to convert a Custom Object [1] to a JSON and store it into a WinAutomation
variable [2] for later use:
Actions Reference 823

Properties:

1. Custom Object:

This is a text-field with drop down menu options. It allows you to enter the Name of
the Custom Object you want to work with, but also find it and select it effortlessly
from the drop down menu that lists all available custom objects in your script.

2. Into JSON:

JSON is a text format, so it should not be a surprise that this action returns a Text Value. This text
field however allows you to enter the name of the variable (new or existing) in which you want to
store the JSON Text Value. Also, in case you wish to work with that Text Value, please do note that it
is JSON formatted, containing line breaks:

© 2018 Softomotive
Please also note that double clicking on the Value
on the Image above will produce the following pop-up (which is the Variables Visualizer
Window 167 ), showing us the format of the returned value.

Hovering over the Value will produce the following


pop-up that also allows you to develop a quick feeling of your variable value, without
of course the capacity to edit your variable:
Actions Reference 825

5.28 PDF Actions


5.28.1 Extract Text From PDF
(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

Description:
This actions extracts the text from a PDF file.

© 2018 Softomotive
General
Actions Reference 827

Advanced

Properties:

PDF File: Enter or choose the PDF file, whose text will be extracted. It can be a file
path, a variable containing a file or a text path.

Page(s) To Extract: Choose how many pages will be extracted. All, Single or Range
of pages.

Single Page Number: Set the number of the single page that text will be
extracted.

From Page Number: Set the first page number from the range of pages that text
will be extracted

To Page Number: Set the last page number from the range of pages that text will
be extracted

Store Extracted Text into: Enter a name to be the variable that will store the
extracted text.

© 2018 Softomotive
Use Password: Choose whether you want to use password for PDFs that are
password protected.

Enter PDF Password: If you choose 'directly', the password entered in the
Password field will be hidden. If you choose 'as variable' you must enter a variable
containing the password and the '%' character will be treated as an indicator of a
variable, not part of the password.

Password: Enter the Password here. The password will be hidden.

Password: Enter a variable containing the password here.


Actions Reference 829

5.28.2 Extract Images From PDF Action


(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

© 2018 Softomotive
Description:

This action extracts images from a PDF file.

General Tab
Actions Reference 831

Advanced Tab

Properties:

PDF File: Enter or choose the PDF file, whose text will be extracted. It can be a file
path, a variable containing a file or a text path.

Page(s) To Extract: Choose how many pages will be extracted using OCR.. All,
Single or Range of pages

Single Page Number: Set the number of the single page that images will be
extracted.

From Page Number: Set the first page number from the range of pages that
images will be extracted.

© 2018 Softomotive
To Page Number: Set the last page number from the range of pages that images
will be extracted.

Image(s) Name: Enter how the image(s) will start. Extracted image(s) name
example: GivenName_1, GivenName_2

Save Image(s) To: Enter or choose a local folder, or a previously defined variable
containing a folder, to specify the folder where the extracted images from PDF will be
saved into as png files.

Use Password: Choose whether you want to use password for PDF that are
password protected.

Enter PDF Password: If you choose 'directly', the password entered in the
Password field will be hidden. If you choose 'as variable' you must enter a variable
containing the password and the '%' character will be treated as an indicator of a
variable, not part of the password.

Password: Enter the Password here. The password will be hidden.

Password: Enter a variable containing the password here.


Actions Reference 833

5.28.3 Extract text From PDF With OCR


(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

© 2018 Softomotive
Description: This action extracts text from a PDF file using OCR.

General Tab
Actions Reference 835

Advanced Tab

Properties:

General Tab's Properties:

OCR Engine: This text field with drop down menu options invites you to enter the OCR Engine
instance you want to work with.

PDF File: Enter or choose the PDF file, whose text will be extracted. It can be a file
path, a variable containing a file or a text path.

Page(s) To Extract: Choose how many pages will be extracted using OCR. All,
Single or Range of pages

© 2018 Softomotive
Single Page Number: Set the value of the page you want to extract text using
OCR.

The following two options will be available if you have chosen Range on the "Page(s)
To Extract" Property Value:

From Page Number: Set the first page number from the range of pages that text
will be extracted using OCR.

To Page Number: Set the last page number from the range of pages that text will
be extracted using OCR.

Store Extracted Text into: Enter a name to be the variable that will store the
extracted text using OCR.

Advanced Tab's Properties:

Use Password: Choose whether you want to work with PDFs that are password
protected.

Enter PDF Password: If you choose 'directly', the password entered in the
Password field will be hidden. If you choose 'as variable' you must enter a variable
containing the password and the '%' character will be treated as an indicator of a
variable, not part of the password.

Password (Directly): Enter the Password here. The password will be hidden.

Password (as Variable): Enter a variable containing the password here.


Actions Reference 837

5.28.4 Extract PDF Pages to New PDF

Description: This action extracts pages from a PDF file to a new PDF file.

Properties:

PDF File: Enter or choose the PDF file, whose text will be extracted. It can be a file
path, a variable containing a file or a text path.

Page Selection: Set the Index numbers of the pages you want to keep e.g.
(1,3,17-24)

Extracted PDF Path: Enter a path where the extracted PDF will be stored

If File Exists: Choose what to do in case Output PDF file already exists

© 2018 Softomotive
Store Extracted PDF File into: Select a variable where the new PDF File will be
stored

5.28.5 Merge PDF Files

Description: This action merges a list of PDF files into a new one

Properties:

PDF Files: Enter the files to be merged. Multiple files should be enclosed in double
quotes (") and should be separated by a delimiter of your choice. You can also use a
variable that contains a list of files
Actions Reference 839

Merged PDF Path: Enter the path to the file that this action will use to store the
PDF file.

If File Exists: Choose what to do in case Output PDF file already exists

Store Merged PDF File into: Enter the Name of the Variable that will contain the
PDF File

5.29 Synchronization Actions


5.29.1 Lock Handle Action
(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

Description:
Waits on the handle specified to become available for locking.

© 2018 Softomotive
Properties:

Handle:
Enter the name of the handle to wait on till it becomes eligible for locking.

5.29.2 Release Handle Action


(Available with the Professional Plus Edition. N/A to the Basic and Professional
Editions)

Description:
Releases the lock on a handle.

Properties:
Actions Reference 841

Handle:
Enter the name of the handle to release the lock of. The handle must have been
locked within the same process-instance, otherwise this action won't have any effect
on the handle whatsoever.

© 2018 Softomotive
842 WinAutomation Help

Index -=-
= 310

- %- ->-
% 321 > 310
%ButtonPressed% 188 >= 310
%EventTriggerEventID% 101
%EventTriggerEventLogName%
%EventTriggerEventMessage%
101
101
-1-
%EventTriggerEventSource% 101 1000 Separator 763
%EventTriggerEventType% 101
%FileTriggerEventType% 103 -A-
%FileTriggerFileName% 103
%FileTriggerFilePath% 103 access 144, 146
%FileTriggerOldFileName% 103 access the file 490
%LoopIndex% 305, 308, 309 Action 188, 193, 196, 201, 204, 338, 346, 349,
%name% 321 350, 351, 352, 354, 355, 356, 357, 359, 361, 362,
%PingTriggerHostName% 106 363, 364, 365, 368, 369, 370, 372, 373, 374, 383,
387, 389, 391, 399, 401, 402, 403, 404, 405, 407,
%ProcessTriggerEventType% 108
409, 411, 412, 415, 423, 424, 426, 429, 430, 432,
%ProcessTriggerProcessName% 108 434, 435, 436, 437, 438, 439, 447, 449, 451, 453,
%ServiceTriggerServiceName% 107 456, 459, 460, 464, 470, 472, 474, 475, 477, 482,
%ServiceTriggerServiceState% 107 485, 486, 494, 495, 497, 498, 501, 502, 504, 505,
%TriggerName% 93, 94, 95 506, 507, 511, 520, 524, 532, 536, 540, 544, 545,
547, 548, 549, 552, 554, 556, 557, 559, 586, 592,
%VariableName[ItemNumber]% 289
594, 596, 599, 601, 603, 608, 609, 611, 613, 617,
%VariableName[RowNumber][ColumnNumber]% 751, 752, 765, 781, 799, 801, 803
289
Action Icons 196

-.- Action Input


Action Output
188
188
Action Properties 285
.exe 93, 94, 95, 459
Action Properties Box 322, 325
.NET 2.0 148, 153
Action Property Window 172
.wav 355
action reference 346, 511

-/- Action to Perform


Action’s Inputs
352
285
actions 162, 333, 346, 606
/ListRunning 329
Actions by Category 162
/start 329
Actions Pane 160
/stop 329

-\-
\% 321

© 2018 Softomotive
Index 843

Actions Reference 338, 340, 342, 345, 349, 350, Add to DateTime 779
351, 352, 354, 355, 356, 357, 359, 364, 365, 368, Add to DateTime Action 779
369, 370, 372, 373, 374, 377, 383, 387, 389, 391, Adding an Action 186
399, 401, 402, 403, 404, 405, 407, 409, 411, 412,
Adding Breakpoints 200
415, 423, 424, 426, 429, 430, 432, 434, 435, 436,
437, 438, 439, 447, 449, 451, 452, 453, 456, 459, Additional Data 115
460, 461, 464, 468, 470, 472, 474, 475, 477, 482, addon 284
483, 485, 486, 488, 490, 491, 493, 494, 495, 497, add-on 284
498, 499, 501, 502, 504, 505, 506, 507, 509, 510, Addons 134
513, 515, 520, 524, 528, 532, 536, 540, 544, 545,
add-ons 284
547, 548, 549, 552, 554, 556, 557, 559, 586, 592,
594, 596, 599, 601, 603, 608, 609, 611, 613, 617, Advanced 305, 308, 309, 321, 322, 325, 327, 328,
622, 624, 627, 629, 630, 631, 633, 634, 635, 636, 329
637, 638, 639, 643, 645, 654, 657, 682, 684, 685, Advanced Topics 321, 322, 325, 327, 328, 329
686, 687, 692, 693, 695, 696, 697, 700, 701, 703, Agent 613, 617
704, 706, 708, 710, 712, 715, 716, 717, 718, 719, all 701
720, 722, 723, 726, 728, 731, 733, 736, 745, 746,
Allow 464
747, 748, 749, 751, 752, 755, 756, 757, 758, 760,
761, 762, 763, 765, 766, 768, 770, 771, 773, 775, Allow Empty Selection 464
777, 778, 779, 781, 797, 798, 799, 801, 803, 804, Allow Multiple Selection 464, 468
806, 807, 808, 814, 815, 816 Alt 449, 451
activate 706 amount 404
Activate cell in excel Worksheet 706 amount of seconds 404
Activate cell in excel Worksheet Action 706 append 483, 485, 486
Activate License 129 Append Line 756
activates 520, 544, 545, 547, 548, 549, 592, 594, Append Line to Text 756
596, 599, 601, 696, 700, 701, 706 Append Line to Text Action 756
active 449 Application 306, 338, 340, 342, 345, 348, 449
active cell 706 Application Path 338
active foreground Window 205 archive 501, 502
Active Mode 622, 624 Archive Comment 501
Active Worksheet 696, 700, 701, 706 Archive Path 501, 502
activities 204 Argument 329
Actual Internet Explorer 562, 581, 583, 585 Arguments 338, 751
Add 195, 477, 613, 617, 716, 717, 718, 719, 779 artificial delay 196
add an Action 186 ascending 472
add breakpoints 200 ASCII 124, 630, 633
Add control 223 associated 338
Add Date or Time 477 Athens 13
Add DateTime 477 Attach 96, 562, 581, 587, 686
Add Item 289, 806 attach a Trigger 96
Add Item to List 806 Attach Excel 686
Add Item to List Action 806 Attach to Excel Action 686
Add New Trigger 96 Attachment 645, 654, 657, 722, 723, 726, 728,
Add New Variable 195 731, 733, 736
Add New Worksheet 695 attribute 790, 791, 793, 794, 796
Add New Worksheet Action 695 Audit 101
Add Number 477 Audit Failure 101
Add Text 477 Audit Success 101

© 2018 Softomotive
844 WinAutomation Help

authentication 126, 645, 654, 657, 722, 723, 726,


728, 731, 733, 736
AUTO 124
-C-
Autologin 126 Cancel 468, 470
automatically 93, 94, 95, 205, 305, 308, 310, 468 capitalized 449
automation 221 CAPS 452
Automation Browser 562, 581, 583, 585 CAPS LOCK 452
avoid 449 Capture 357, 364, 365, 415, 611
Capture with Delay 415
-B- Case 761
casing 761
backslash 321 category 286
backup 329 Cautions 685, 686, 687, 692, 693, 695, 696, 697,
Basic Logs 114 700, 701, 703, 704, 706, 708, 710, 712, 715, 720
BCC 645, 654, 657, 722, 723, 726, 728, 731, 733, CC 645, 654, 657, 722, 723, 726, 728, 731, 733,
736 736
beginning 370, 372, 373, 760 cell 402, 706, 708, 710, 712, 715
Behaviour 132 Cell Column 692
between 449 Cell Row 692
binary 124, 630, 633 Cell Value 687
blank 374, 383, 387, 412 certain condition 310
block 325, 368 certain file 405, 407
Block Input 436 Change Extension 477
Block Input Action 436 Change Text Case 761
block of actions 305, 308, 309, 310, 312, 389 Change Variable value 201
blocks of actions 310 Change Working Directory 629
Body 645, 654, 657, 722, 723, 726, 728, 731, 733, Change Working Directory Action 629
736 changed 103
Boolean 286 changes 107, 285, 498
bottom 204 changes the name 477
bottom right 205 Char 758
bottom right of the screen 205 Character 757
Box 453, 456, 459, 460, 461, 464, 468, 470 Character Position 757
braces 449 Characters to Use 768
brackets 321 check 596
breakpoints 162 checkbox 548, 596
browser 613, 617 checkbox Action 548
browser identity 613, 617 checkboxes 556
Browser Tab 578 checked 372, 373, 405, 407, 409
bug 114 checking 327
Build Repository 233 checks 310
Building 204 Choose 696, 700, 701, 706, 708, 710, 712, 715,
button 193, 201, 547, 548, 596, 599, 601 716, 717, 718, 719
Button Pressed 453, 456, 460, 461, 468, 470 Class 374, 383, 387, 412, 509, 510, 513, 515, 520,
ButtonPressed 188 524, 528, 532, 536, 540, 592, 594, 596, 599, 601
Clear 120, 506, 613, 617

© 2018 Softomotive
Index 845

clear all cookies 613, 617 Compilation id 156


Clear Clipboard Contents 506 compile 87, 148, 153
Clear Cookies 613, 617 compile the Process 87
clear list 805 compiled 148, 153, 751, 752
Clear Logs 114 compiled Process 148, 153
click 200, 596, 599, 601 Compiler 149, 153
Click Download Link 585 Compiler Window 149, 153
Click Link 583 Complete 749
clipboard 285, 357, 611 Completed 90
Clipboard Category 504, 505, 506 complications 144, 146
Clipboard Contents 506 Component Types 215
Clipboard Text 504, 505 compress 501
close 453, 456, 540, 587, 684, 693, 736 Compression 501, 502
close cmd 677 Compression Category 501, 502
close cmd session 677 Compression Level 501
close cmd session action 677 Computer 352
close command 677 concept 305, 308, 310
close command line session 677 concurrency 146
Close Excel 693 condition 310, 389
Close Excel Action 693 conditional 310, 312, 368, 369, 370, 374, 377, 383,
Close FTP 627 387
Close FTP Connection Action 627 conditional block 369, 370, 372, 373, 374, 377,
close outlook 736 383, 387
Close Window 540 conditional structure 310
Close Window Action 540 Conditionals 306, 310, 312, 368, 369, 370, 372,
373, 374, 377, 383, 387, 389, 391
Closing 686, 693
Conditionals Category 368, 369, 370, 372, 373,
CMD 675, 677, 679, 681
374, 377, 383, 387, 389, 391
collapse 515
configurable 506
collections 289
Configuring 188
collectively 329
Configuring an Action 188
colored green 193
connect 682, 684
column 289, 402, 706, 708, 710, 712, 715, 718,
Connection 286, 627, 629, 630, 634, 635, 636,
719
637, 638, 643, 682, 684
column names 687
Connection String 682, 684
ColumnsCount 290
connects 682, 684
combining 204
considered 200
Command 340, 342, 345, 643, 675, 677, 679, 681,
Console 81, 109, 120, 459
751
console application 340
command line 329, 675, 677, 679, 681
Console Menu 109, 120
Command Line Arguments 338, 751
Console Options 322, 325
Comment 193
contains 687
Common 814
contents 494, 495, 816
Common List Items 814
continue 322, 325
compact 329
Continue Anyway 405, 407, 411, 749
company 13
Control 227, 359, 449, 451
compare 368, 401

© 2018 Softomotive
846 WinAutomation Help

Control Repository 175, 223, 230, 233 Create new tab 578
Control Screen Saver 359 Create Random Text 768
Control Screen Saver Action 359 Create Random Text Action 768
Controlling 329 Create UI 212
Controlling WinAutomation from the command line created 103, 405, 407
329 created on the fly 285
controls 227, 317, 335 created variable 797
convert 761, 820, 822 created/deleted 405, 407
Convert DateTime to Text 286, 766 creates 645, 654, 657, 722, 723, 726, 728, 731,
Convert DateTime to Text Action 766 733, 736
Convert Number 763 creates a new folder 493
Convert Number to Text 763 Creating 285
Convert Number to Text Action 763 Creating Variables 285
Convert Text to DateTime 765 CreationTime 286, 290
Convert Text to DateTime Action 765 criteria 472
Convert Text to Number 762 crosshair 374, 377, 383, 387
Convert to 761 crosshairs 374, 377, 383, 387
converted 459 css 317, 387, 456
converts 204, 762, 816 csv 485, 486
Cookies 613, 617 ctrl + alt + delete 436
coordinates 437, 438, 447, 532 Ctrl-Alt-S 205
copied cell 712, 715 Ctrl-Alt-T 89, 121
copies 329, 474, 505 Current 399, 778
copies a folder 495 Current Index 399
copy 162, 335, 495, 712, 715 Current Item 402
copy cells in excel Worksheet 712 current iteration 305, 308, 309
copy cells in excel Worksheet Action 712 current position 437, 438
Copy File 474 Current Value 164
Copy File(s) 474 cursor 423
Copy File(s) Action 474 Custom 456, 477, 766, 770, 771, 817
Copy Folder 495 custom date 296
Copy Folder Action 495 Custom Delimiter 770, 771
copy your actions 204 Custom Designer 215
copy/paste 712, 715 Custom Dialog 212
Count 290, 803 Custom Format 766
cpolumn 719 custom messages 90
Create 493, 637, 804 Custom Objects 817, 820, 822
create exe 156 Cut 162
Create Folder 493
Create Folder Action 493 -D-
Create FTP Directory 637
Create FTP Directory Action 637 Daily 111
Create Function 184 dat 329
Create New Folder into 493 data 236, 285, 402
Create New List 289, 804 data extraction 317
Create New Process 84, 85 data row 305, 308, 402

© 2018 Softomotive
Index 847

data table 289, 305, 308, 402 Defined in Action 195


data table’s scheme 289 delay 196, 322, 325, 447
Data Tables 286, 289 Delay Between Keystrokes 449
data type 310 delays 205
Data type Properties 285, 290 delete 363, 477, 494, 613, 617, 635, 638, 703, 717,
Data Types 286 719
database 114, 121 delete all 495
Database Category 682, 684 delete column in excel action 719
DataRow 290 delete column in excel worksheet 719
datatable 803 Delete File 477
DataTable column 816 Delete File(s) 477
DataTable variable 491 Delete File(s) Action 477
date 285, 296 Delete Folder 494
Date and Time 778 Delete Folder Action 494
date range 117 Delete FTP Directory 638
Date Time 286, 310 Delete FTP Directory Action 638
Date Time type 310 Delete FTP File 635
Dates 781 Delete FTP File Action 635
DateTime 164, 290, 477, 766, 779 Delete Function 184
DateTime Actions 778, 779, 781 delete items from list 805
DateTime Actions Category 778, 779, 781 delete row in excel action 717
DateTime Format 477 delete row in excel worksheet 717
DateTime to Add 477 Delete Worksheet 703
DateTime to Convert 766 Delete Worksheet Action 703
DateTime to Text 766 deleted 103, 329, 405, 407
Day 290 deletes 477, 635, 638
DayOfWeek 290 delimeter 771
DayOfYear 290 Delimiter 770, 771
days 779, 781 demonstrate 63, 69, 74
Debug 199, 201 denote 321
Debugger 196 Descending 472, 491
Debugger Options 196 Description 140, 195, 470
debugging 162 Design Time 172
Decimal 763 Design Time Errors 172
Decimal Places 763 Designer 160, 196, 198
declare 195 Designer Components 215
Decrease 799 Designer Elements 215
Decrease Variable 799 Designer Options 196
Decrease Variable Action 799 Desktop 144, 146, 353, 507
decreases 799 destination 474, 475, 495
default 322, 325 destination folder 474, 495, 497
default policies 147 Destination Folder: 502
Default Printer 350 details 115, 606
default response 322, 325 Dialog 89, 460, 461, 464, 468, 470
Default Value 188, 460, 461 dialog box 464
Define a new variable 285 Dialog Message 188

© 2018 Softomotive
848 WinAutomation Help

Dialog Title 188, 464 Download File 630


differ 415, 439, 586 Download File(s) 630
difference 781, 815 Download File(s) from FTP 286, 630
different 322, 325 Download Folder 631
different location 205 Download Folder(s) 631
different Process 322, 325 Download Folder(s) from FTP Action 631
different response 322, 325 Download from Web 613
different ways 322, 325 Download from Web Action 613
differentiate 193 Download into Folder 630, 631
directory 488 Downloaded File 613
Directory to Delete 638 downloads 613
disable 90 dpi 364, 365
Disable Action 191 drag 162, 513
Disable Process 91, 92, 93, 94, 95 drag & drop 513
disabled 91, 92, 93, 94, 95, 162 drag and drop 87
disables 359 Drag drop 513
Display 453, 456, 459, 460, 461, 464, 468, 470 drop 513
Display Custom 456 dropdown 549
Display Custom Message Action 456 drop-down 549
Display Input Dialog 460 duplicated 813
Display Input Dialog Action 460 Dynamic change 201
Display Message 453, 456
Display Message Action 453 -E-
Display Notification 90
Display Notification Action 90, 459 Each 307, 402
Display Select Date 461 each Action 196
Display Select Date Dialog 461 each number 477
Display Select File Dialog Action 468 easier interface 204
Display Select Folder Dialog 470 Edit 613, 617
Display Select Folder Dialog Action 470 Edit Process 84, 85
Display Select From List Dialog Action 464 Edit Process Properties 138
distinction 285 Edit Triggers 96
DNS 359 edited 204
Do not wait more than 338 Editions 14
document 338 effects 188
Document Path 685, 686, 693 efficient 327
Document to Print 349 element 383, 387, 510, 554, 556, 557, 559, 596,
documentation 140 599, 601, 603, 609, 786, 788, 790, 791, 793, 794, 796
domain 359 elements 771
DOS 340 Else 310, 389
DOS Command 340 Else Action 389
double backslashes 321 Else If 389
double-click 162 Else If Action 389
doubles 813 email 98, 147, 661, 665, 669, 672, 722, 736
down 439, 586 Email Category 645, 654, 657, 722, 723, 726, 728,
731, 733, 736
Download 148, 153, 585

© 2018 Softomotive
Index 849

email message 645, 654, 657, 661, 722, 723, 726, Event Source 101, 117
728, 731, 733, 736 Event Type 117
empty 495, 804 Events list 115
Empty Folder 495 EventTriggerEventID 101
Empty Folder Action 495 EventTriggerEventLogName 101
empty list 804, 805 EventTriggerEventMessage 101
Empty Recycle Bin 356 EventTriggerEventSource 101
Empty Recycle Bin Action 356 EventTriggerEventType 101
empty temporary file 490 every item 307
empty text 93, 94, 95 exact number 305, 308, 309
Enable 91, 92, 191 example 63, 69, 74
Enable Action 191 Excel 286, 685, 686, 687, 692, 693, 695, 696, 697,
Enable Process 91, 92 700, 701, 703, 704, 706, 708, 710, 712, 715, 716,
Enable/Disable Actions 191 717, 718, 719, 720
Enabled/Disabled 81 Excel Category 685, 686, 687, 692, 693, 695, 696,
enables 359 697, 700, 701, 703, 704, 706, 708, 710, 712, 715,
716, 717, 718, 719, 720
end 587, 760
Excel document 685
End If 310, 391
excel file 286
End If Action 391
Excel Instance 164, 286, 685, 692, 696, 697, 700,
End Loop 403
701, 706, 708, 710, 712, 715, 716, 717, 718, 719, 720
End Loop Action 403
Exception 322, 325, 412
end of a conditional 391
Exception Block 325
End Process 432, 434, 435
Exception Handling 322, 325, 415
End Process Action 432, 434, 435
exceptions 172, 322, 325, 754
End To 399
Exchange 661, 665, 669, 672
EndIf 310
exchange connect 661
endless loop 306
exchange retrieve 665
Engine 738, 740
exchange server 661, 665, 669, 672
Enter License 129
Exclude Mask 502
Enter Password 622
exe 149, 153
entire screen 357, 364, 365
executable 87, 93, 94, 95, 148, 149, 153, 156, 752
environmental 361, 362, 363
execute 201, 431, 589, 682, 684, 785
environmental variable 361, 362, 363
Execute Next 200, 201
equal 310
Execute Next Action 200, 201
error 114, 115
Execute SQL Statement 682, 684
Error Handling 132, 147, 322, 325
Execute SQL Statement Action 682, 684
error icons 199
Execute step by step 201
error list 120
executed 310, 402
Error Message 432, 434, 435
executes 338, 749
Errors 132
executing 338
Errors Pane 160, 164, 172
execution 196, 432, 434, 435
event 103, 447
existing folder 494, 495, 497
Event Details 115
existing text 760
Event Log 101
Exists 290, 369, 370
Event Log Monitor 101
Exit 403
Event Log Monitor Trigger 101

© 2018 Softomotive
850 WinAutomation Help

Exit Code 338, 340 File Monitor Trigger 103


Exit FUnction 431 File Name 488
Exit Loop 403 File Name without Extension 488
Exit Loop Action 403 file object 490
Exit WinAutomation 93, 94, 95 File Path 369, 405, 482, 483, 488
expand 515 File to Copy 474
Export 87 File to Delete 635
Export Process 87 File to Download 631
ext: 296 File to Move 475
extension 488 File to Play 355
External 296 File to Rename 477, 636
External Variables 296, 321 File to Upload 633
extract 236, 317, 552, 554, 556, 557, 559, 603, File(s) to Delete 477
606, 608, 609, 742, 829, 833, 838 File(s) to Download 630
Extract data from web 603 File(s) to Zip 501
extract data from web page 603 file’s properties 286
Extract data from web page action 603 filename 488
Extract data from window 559 files 494, 495
Extract data from window action 559 Files Category 472, 474, 475, 477, 482, 483, 488,
extract from PDF 838 490
extract image 829 Files in Folder 472
extract images from PDF 838 FileTriggerEventType 103
extract images from PDF action 838 FileTriggerFileName 103
extract images from PDF with OCR 829 FileTriggerFilePath 103
extract text from PDF with OCR 833 FileTriggerOldFileName 103
extract text from PDF with OCR action 829, 833 fill in 594
extract text with OCR 742 filter 117
extract text with OCR action 742 Filter Events 117
extraction 236, 559, 603, 606 Filtering 117
find 184, 415, 775, 777
-F- Find Common List Items 814
Find Common List Items Action 814
Fail 415 Find Usages 184
fail that Process 322, 325 Find Window 412, 520
failure 106 fired 101, 103
false 306 fires 103, 105
feature 148, 153, 415, 439, 586 First 401
field 544, 545, 592, 594 First Free 697, 720
file 285, 357, 611, 613, 617 First Free Column 697
File Category 472, 474, 475, 477, 482, 483, 488, First Free on Column 720
490 First Free Row 697, 720
File Dialog 468 First line 687
File Exists 369, 468, 474, 477 First Occurrence 773
File Filter 468, 472 First Operand 368, 401
file from the web 613, 617 first Process 63, 69, 74
File Monitor 103 fixed 758

© 2018 Softomotive
Index 851

fixed length 758 FTP Command 643


Flow Control 429, 430, 432, 434, 435 Ftp Connection 636
Flow Control Category 429, 430, 432, 434, 435 FTP Connection to close 627
Focus 520, 544, 545, 592 FTP Directory 637
Focus fieldAction 544 FTP File 164, 635, 636
Focus text field 544, 592 FTP Folder 164
Focus text field Action 592 Ftp Server 622, 624
Focus Window 520 FTPFile 290
Focus Window Action 520 FTPFolder 290
Folder 103, 164, 286, 290, 370, 470, 472, 491, full path 405
493, 494, 495, 497, 498, 499, 634 FullName 290
Folder Category 491, 493, 494, 495, 497, 498, 499 Function 93, 94, 95, 183, 184
Folder Dialog 470 Functions 183, 328, 431
Folder Exists 370
Folder Path
Folder to Copy
370
495
-G-
Folder to Delete 494 gear 285
Folder to empty 495 General 109, 120, 121
Folder to Move 497 General Options 329
Folder to Rename 498 General tab 89
Folders Category 491, 493, 494, 495, 497, 498, generate 289
499 generate exe 148, 153, 156
Folders List 81 generated 148, 153
Follow Redirection 613, 617 generating 768
For 307, 402 get 350, 362, 364, 437, 504, 742, 751, 752, 755,
For each 305, 308 757, 803, 829, 833, 838
For Each Action 402 Get Active Worksheet 700
Force 351, 352 Get Active Worksheet Action 700
Force Log Off 351 Get Active Worksheets 701
Force Selected Action 352 get all 701
foreground 205, 415, 520 Get all Active Worksheets Action 701
Foreground Window 357, 364, 365, 439, 517 Get Clipboard Text 504
foremost 437, 438, 439, 447 Get Clipboard Text Action 504
format 296, 613, 617, 763, 766 Get Command Line Arguments 751
Format to Use 766 Get Current Date and Time 778
formats 296 Get Current Date and Time Action 778
four responses 322, 325 Get Data 559, 603
Free 697, 720 get decimal part 800
Free Column 697, 720 Get Default Printer 350
frequency 114 Get Default Printer Action 350
From 645, 654, 657, 722, 723, 726, 728, 731, 733, get details of element on web 609
736 Get Details of element on web page 609
FTP 124, 286, 622, 624, 627, 629, 630, 631, 633, Get Details of element on web page action 609
634, 635, 636, 637, 638, 639, 643
get details of web 608
FTP Category 622, 624, 627, 629, 630, 631, 633,
Get Details of web page 608
634, 635, 636, 637, 638, 639, 643
Get Details of web page action 608

© 2018 Softomotive
852 WinAutomation Help

Get Details of Window 552 global variable 361, 362, 363


Get Details of Window action 552 go to 179, 322, 325, 581
Get Details of Window element 554 Go To Action 430
Get Details of Window element action 554 Go to line 179
Get Difference in 781 go to web 581
get exception 754 Google 738
Get FilePath 488 grab 437, 438
Get FilePath Part 488 gray column 200
Get FilePath Part Action 488 grayed-out 91, 92
Get Files 472 greater 310
Get Files in Folder Action 472 Greece 13
Get First Free Column/Row 697 GUI Components 215
Get First Free Column/Row Action 697
Get First Free Row on Column/Row 720 -H-
Get First Free Row on Column/Row Action 720
get integer part 800 Handle 338, 412, 509, 510, 513, 515, 520, 524,
Get Items Count 803 528, 532, 536, 540, 599, 601
Get Items Count Action 803 handle an exception 322, 325
Get Mouse 437 Handling 322, 325, 412
Get Mouse Action 437 hidden 509, 510, 513, 515, 528
Get Process's Path 752 Hide 353
Get Process's Path Action 752 hides 509, 510, 513, 515, 528
get selected 710 highlighted 162, 204
get selected cell 710 highlighting 186
get selected cells in excel Worksheet 710 History 16
get selected cells in excel Worksheet Action 710 hold 437, 438
Get selected checkboxes in Window 556 holidays 111
Get selected checkboxes in Window action 556 homonym 306
Get selected radiobuttons in Window 557 host 106
Get selected radiobuttons in Window action 557 Hotkey 63, 69, 74
Get Special Folder 499 HotKeys 104, 162
Get Special Folder Action 499 Hour 290
get started 63, 69, 74 hourglass 423
Get Subfolders 491 hours 779, 781
Get Subfolders in Folder 491 hover 586
Get Subfolders in Folder Action 491 hover Mouse 586
Get Subtext 757 hover Mouse to element 586
Get Subtext Action 757 HTML 387, 645, 654, 657, 722, 723, 726, 728, 731,
733, 736
Get Temporary File 490
http 613, 617
Get Temporary File Action 490
HTTP Authentication 613, 617
Get Text 613, 617
https 613, 617
Get Text Length 755
Get Text Length Action
Get Window 517
755
-I-
given dates 781
icon 285
global 361, 362, 363

© 2018 Softomotive
Index 853

ideal 305, 308, 309 Increase 798


identify 286 Increase Variable 798
identity 613, 617 Increase Variable Action 798
Idle 105 Increment 399, 477
Idle Monitor 105 indent 305, 308, 310
Idle Monitor Trigger 105 index 807
IE Enhanced Security Configuration 271 information 285
IE security settings 267 Initial 470
IE settings Server 271 Initial Folder 468, 470
If 310, 312, 368, 369, 370, 372, 373, 374, 377, 383, Initial Value 164, 195
387, 389, 391 input 105, 144, 146, 285, 328
If Action 368 Input Dialog 460
If File 369 Input Type 188, 460
If File Exists 312, 369, 475, 483, 630, 633 insert 716, 718, 794, 796
If File Exists Action 369 insert column 718
If Folder 370 insert column in excel action 718
If Folder Exists 312, 370, 495 insert column in excel worksheet 718
If Folder Exists Action 370 insert row in excel action 716
If Image 312 Insert row in excel worksheet 716
If Image Action 377 Install MODI 312
If Process 312, 373 installed 372
If Process Action 373 Instance 685, 687, 692, 695, 696, 697, 700, 701,
If Service 312, 372 703, 704, 706, 708, 710, 712, 715, 716, 717, 718,
If Service Action 372 719, 720
If Variations 312 instances 146
If Web page Contains 387 interact 160
If web page Contains Action 387 interacting 354
If Webpage contains 312 interactions 144, 146
If Window 312, 374 interactive 144, 146
If Window Action 374 Interactive Process 204
If Window Contains 383 Interactive/Non Interactive Processes 328
If Window Contains Action 383 interacts 328
If/Else/EndIf 310 Internal Exception 114
image 228, 357, 377, 611, 829, 838 internet 359
image does not appear 415 Internet Cache 499
Image File 357, 611 Internet Explorer 237, 267, 271, 280, 562, 581,
Image Format 357, 611 583, 585
image recognition 327, 377, 415, 439, 838 internet protocol 359
Image Repository 180 interval 106, 114
images 228 into Variable 797
implements 305, 308, 309 Invoke 431, 617, 643
import 87, 485, 486 Invoke FTP Command 643
Import Process 87 Invoke FTP Command Action 643
Include 472 IP 359
Include Mask 502 IP address 106
Include Subfolders 472, 491 Is Regular Expression 771

© 2018 Softomotive
854 WinAutomation Help

IsArchive 290 LastAccessed 290


IsHidden 290 LastModified 290
IsReadOnly 290 Late 111
IsSystem 290 launch 204, 338, 562, 581, 685, 722
item 402 Launch browser 562, 581
ItemNumber 289 Launch Excel 286, 685
items 289 Launch Excel Action 685
Items Count 803 launch new internet explorer 562
iterate 307 launch outlook 722
iterates 399, 401 Launched 93, 94, 95, 108
iterating 289 Layout 198
iteration 305, 308 left 758
length 758
-J- less time 327
less-common color 327
Java 345 License 129
Javascript 345, 589 Limit 464
Join 770 Limit to List 464
Join Text 770 Line 179, 751, 756
Join Text Action 770 Link 583, 585
Jquery 345 list 120, 164, 307, 402, 472, 549, 601, 770, 803
Json 820, 822 List 1 814
jump 205 List 2 814
jumps 430 List Dialog 464
List FTP 627
-K- List FTP Directory 627
List FTP Directory Action 627
Keep Extension 477 list notation 289
Key 451, 452 list of files 472, 474
key combination 93, 94, 95, 121 list of subfolders 491
keyboard 328, 354 List to choose from 464
Keyboard Monitor 104 List to Join 770
Keyboard Monitor Trigger 104 lists 814
Keys 333, 407, 449 literal 368, 401, 643
keystrokes 144, 328, 407, 449 location 329, 429, 552, 608, 609
kill 346, 348 Lock 354
Lock Workstation 354
-L- Lock Workstation Action 354
locked 436
label 430 Log 101, 117, 118, 351
Label Name 429 log database 114
large number Processes 329 log file 114
last 754 Log Off 351
Last Run 81 Log Off User 351
Last Run Result 81 Log Off User Action 351
last Working Day of Month 111 logged 114, 144, 328

© 2018 Softomotive
Index 855

logged in 105 Message Boxes Category 453, 456, 459, 460, 461,
logged on 204 464, 468, 470
logged out 328 met 310
logged-in 144 Method 613, 617
Logging 114 Microsoft 740
Logs 81, 120, 121 Microsoft's 148, 153
logs off 351 Minimize all Windows 353
Logs Window 114, 115 minimizes 524
Loop 200, 305, 306, 308, 399, 401, 403 Minimum 768
Loop Action 399 Minimum Length 768
Loop Condition 305, 306, 308, 401 Minute 290
Loop Condition Action 401 minutes 779, 781
LoopIndex 305, 308, 309 mode 144, 146
Loops 305, 308, 309, 399, 401, 402, 403 MODI 740
Loops Category 399, 401, 402, 403 modified 103
lowercase 761 modifier 451
Monitor 101, 103, 104, 105, 107, 108, 353, 364,
-M- 365
monitor email accounts 98
Macro Recorder 84, 85, 204, 205 Month 290
Macro Recorder Setting 205 Monthly 111
Macro Recorder Settings Dialog 205 More Information 499
macro recording 206 Mouse 423, 436, 437, 438, 439, 447, 449, 451,
452, 586
Main Window Handle 338, 524
Mouse and Keyboard 204, 436, 437, 438, 439,
Make Instance Visible 685
447, 449, 451, 452
Make Sequential 477
Mouse and Keyboard Category 436, 437, 438, 439,
Manage 227, 228, 329 447, 449, 451, 452
Manage Functions 184 Mouse Click 447
Manage Processes 329 mouse clicks 205
Manage Processes Database 329 mouse events 328
Manage Repository 230 mouse movement 144, 146
Manager 195 Mouse Moves 205
manually 93, 94, 95 Move 438, 439, 447, 475, 497, 532, 586
Massive Rename 203 Move File 475
match 327 Move File(s) 475
matches 327 Move File(s) Action 475
maximizes 524 Move Folder 497
Maximum 768 Move Folder Action 497
Maximum Length 768 Move Folders 87
menu 439, 509, 511, 586 Move Mouse 438, 439, 586
Menu Option 511 Move Mouse Action 438
Merge list 811 Move Mouse to element 586
message 645, 654, 657, 661, 665, 722, 723, 726, Move Mouse to Image 327, 439
728, 731, 733, 736
Move Mouse to Image Action 439
Message Boxes 453, 456, 459, 460, 461, 464,
Move Processes 87
468, 470

© 2018 Softomotive
856 WinAutomation Help

Move Window 532 Non Interactive 328


Move Window Action 532 non-interactive 144, 146, 328
moved 475 not 374, 383, 387
MS outlook 722, 723, 726, 728, 731, 733, 736 not met 389
multiple 305, 308 not monitor 148, 153
Multiple Instances 144, 146 not protected 329
multiple Processes 104 not using 105
Multiple Selection 468 not very critical 329
My Pictures 499 notation 289
notes 140, 193
-N- notes to yourself 193
Notification 90, 459
Name 81, 164, 195, 290, 372, 429, 552, 608, 609, notification popup 459
695, 696, 700, 701, 703, 704, 706, 708, 710, 712, Notifications tab 90
715, 716, 717, 718, 719, 816
NUM 452
name of a folder 498
NUM LOCK 452
NameWithoutExtension 290
number 289, 399
navigation 237, 280
Number of Chars 757
network 359
number of times 399
New 695, 804
Number to Convert 763
new data 697, 720
Number to Text 763
New Directory 637
Numerical 164
New Extension 477
New File Name
New Folder Name
477, 636
493, 498
-O-
New Instance 562, 581, 587 Object 817
new line 760 objects 472
New List 804 Occurrence 773
New Name 477 occurrences 760, 773, 775, 777
new Process 84, 85 ocr 738, 740, 742, 829, 833
New Row 716 Off 452
new size 536 Offset 439, 586
New Tab 578 Offset X 439, 586
New Variable 195 Offset Y 439, 586
New Window 536 OK 470
New Window Position 532 On 452
New Window Size 536 one or more actions 305, 308
New Worksheet 695 one or more files 475
Next Action 201 Open 468, 622, 624, 682
Next Scheduled Run 81, 111 open cmd 675
no affect 193 open cmd session 675
no input 105 open cmd session action 675
no Logs 199 open command 675
no properties 186 open command line session 675
no yellow and white fields 285 open connection 627
node 515 Open FTP Connection 286, 622

© 2018 Softomotive
Index 857

Open Macro Recorder 205 pasting 329


Open Secure FTP Connection 624 Path 685, 686, 693, 752
Open Secure FTP Connection Action 624 pattern 773
opens 412 Pause 747
operand 310 Pause Service 747
operands 310 Pause Service Action 747
operating 451 paused 372, 411, 748
operator 310 pauses 107, 405, 407, 411, 412, 747
optical character recognition 742, 829, 833 pdf 742, 829, 833, 838
option 511, 596, 599, 601 percent 321
Options 109, 120, 121, 124, 126, 132, 133, 134, percent sign 321
196, 329 percentage 285
Organize 192 percentage characters 285
Original 756, 757 Perform 352
originally 439, 586 persistent 293
outlook 722, 723, 726, 728, 731, 733, 736 ping 106, 359
output 144, 146, 289, 328, 340 Ping Trigger 106
Output property 195 PingTriggerHostName 106
overview 221 pixel 327, 447
overwrite 797 pixel coordinates 447
overwrites 329 pixels 439, 532, 536, 586
placed 310
-P- Play 355
Play Sound 355
Pad 758 Play Sound Action 355
Pad Text 758 playback 205
Pad Text Action 758 populate 594
Padding 758 Populate text field 545, 594
Pane 162, 164, 172, 201 Populate text field Action 594
panic button 89 populatefieldAction 545
Parameters 613, 617 Popup 459
Parent 290 Port 622, 624, 645, 654, 657, 722, 723, 726, 728,
parse 742, 773, 829, 833, 838 731, 733, 736
Parse Text 773 position 205, 437, 438, 447, 532
Parse Text Action 773 POST 613, 617
parses 773 Post Parameters 613, 617
Part 1 63 Post's Parameter 613, 617
Part 2 69 Power 346
Part 3 74 PowerShell 346
passing data 296 preceding 389
Password 126, 501, 502, 622, 624, 645, 654, 657, precise 205
722, 723, 726, 728, 731, 733, 736 predefined Trigger 89
passwords 768 press 451, 547, 548
paste 162, 335, 712, 715 press button 547
paste cells in excel Worksheet 715 press button Action 547
paste cells in excel Worksheet Action 715 Press Key 451

© 2018 Softomotive
858 WinAutomation Help

Press/Release Key 451 protected 329


Press/Release Key Action 451 Protocol 359, 624
pressed 451, 468
prevent 354 -Q-
previously 797
Print 349 quarter 447
Print Document 349 Query 682, 684
Print Document Action 349 Query Result 682, 684
printer 349 quicker 327
Printer Name 350
PRO 148, 153 -R-
PRO version 148, 153
Process 108, 346, 348, 361, 362, 363, 373, 409, radio 548, 557, 599, 601
654, 728, 731, 733 radio button 548
Process Compiler 14 radiobutton 557
Process Design 205 Random 768, 801
Process Designer 93, 94, 95, 160, 196, 199, 459 Random List 801
Process Designer Options 162, 196 Random Number 801
Process Email 654, 672, 728, 731, 733 Random Text 768
Process Id 338 range 687
Process is Late 111 read 687, 742, 785, 786, 788, 790, 791, 793, 794,
Process manually 200 796, 829, 833, 838
process message 672 read cmd 679
Process Monitor 108 read cmd session 679
Process Monitor Trigger 108 read cmd session action 679
Process Name 373, 409 read command 679
Process Properties 89, 138, 328 read command line session 679
Process Properties Dialog 138 Read from Excel 286, 687
Process to Run 749 Read from Excel Action 687
Process Trigger 103 read from PDF 829, 833
Processes 82, 121, 328, 329 Read Text 482
Processes Database 329 Read Text from File Action 482
Processes List 81 read xml 782
Processes Tab 83 read xml from file 782
Processes.dat 329 read xml from file action 782
Process's 752 reboots 352
Process's Path 752 Recognition 327
ProcessTriggerEventType 108 recognize 327
ProcessTriggerProcessName 108 record 204, 322, 325, 437, 438
Professional 14 record a mouse movement 437, 438
programming 289, 305, 308 Record Macro 205
Prompt 461 Record Macro button 205
Properties 186, 290, 338, 340, 352, 357, 364, 365, Record Mouse Actions 205
611 record of the exception 322, 325
Properties Box 188 recorded 199
Properties dialog box 162 recorder 205, 206

© 2018 Softomotive
Index 859

Recording 204 Remove Item from List Action 807


Recording vs Building a Process 204 remove items from list 805
records 204 remove Row 717
Recurring 110, 114 Remove Text 477
Recurring schedule 114 Rename 203, 477, 498, 636, 704
Recycle Bin 356 Rename File 477
red dot 162, 200 Rename File(s) 477
redirect 613, 617 Rename File(s) Action 477
Redirection 613, 617 Rename Folder 498
Reference 338, 340, 349, 350, 351, 352, 354, 355, Rename Folder Action 498
356, 357, 359, 364, 365, 368, 369, 370, 372, 373, Rename FTP File Action 636
374, 377, 383, 387, 389, 391, 399, 401, 402, 403, Rename Scheme 477
404, 405, 407, 409, 411, 412, 415, 423, 429, 430,
Rename Worksheet 704
432, 434, 435, 436, 437, 438, 439, 447, 449, 451,
452, 453, 456, 459, 460, 461, 464, 468, 470, 472, Rename Worksheet Action 704
474, 475, 477, 482, 483, 485, 486, 488, 490, 491, Renamed 103
493, 494, 495, 497, 498, 499, 501, 502, 504, 505, repeat 305, 308
506, 509, 510, 513, 515, 520, 524, 528, 532, 536, repeated 305, 308, 309
540, 586, 592, 594, 596, 599, 601, 611, 613, 617,
replace 775, 777
622, 624, 627, 629, 630, 631, 633, 634, 635, 636,
637, 638, 639, 643, 645, 654, 657, 682, 684, 685, Replace Text 477, 775, 777
686, 687, 692, 693, 695, 696, 697, 700, 701, 703, Replace Text Action 775, 777
704, 706, 708, 710, 712, 715, 716, 717, 718, 719, Replace with 477
720, 723, 726, 728, 731, 733, 745, 746, 747, 748, Reply Code 643
749, 751, 752, 755, 756, 757, 758, 760, 761, 762,
Reply Text 643
763, 765, 766, 768, 770, 771, 773, 775, 777, 778,
779, 781, 797, 798, 799, 801, 803, 804, 806, 807, repository 223, 227, 228
808, 814, 815, 816 reproduce 205
regain 436 Requirements 14
regain control 436 Resize 536
regional settings 286 Resize Window 536
Regions 192 Resize Window Action 536
regular expression 771, 773 Resolution 364, 365
Regular Expressions 775, 777 resolve 359
regular list notation 289 resource 485, 486
relationship 401 resource-intensive 105
relative 437, 438, 439, 586 respond 106, 733
Release 451 response 322, 325
Release History 16 restore 329
Release Key 451 Result 758
released 451 results 472
remember 140 Resume 748
reminder 205 Resume Service 748
remote computer 359 Resume Service Action 748
remove 284, 477, 790, 791, 793, 796, 813 resumes 748
remove column 719 Retrieve 289, 491, 645, 723, 726
Remove Item 807 Retrieve DataTable Column 816
Remove Item from List 807 Retrieve DataTable Column into List 816
Retrieve Email 645, 669, 723, 726

© 2018 Softomotive
860 WinAutomation Help

retrieve emails 665 schedule 110, 111, 114, 153


Retrieved Files 472 Schedule Expire 111
retrieves 499, 803 Schedule Trigger 111
retry 322, 325 Schedule Trigger Properties 111
Return 431, 613, 617 scheduler 110, 153
Return Data 613, 617 Scheme 477
Return to Console 84, 85 screen 205, 327, 353, 357, 364, 365, 415, 439, 611
Reveal Desktop 353 Screen Saver 359
reverse list 812 screensaver 359
right 439, 586, 758 ScreenShot 357, 364, 365, 611
right-click 191 Script 342, 345
right-clicking 191 scripts 329
robot 752 SCROLL 452
Root Path 488 SCROLL LOCK 452
RootPath 290 Search 162, 415, 439
Rotate Excel Data 305, 308, 309 Search for Actions 162
round number 800 searched 439
Row 687, 692, 697, 706, 708, 710, 712, 715, 716, second 447
717, 720 Second Operand 368, 401
rows 289 seconds 404, 779, 781
RowsCount 290 secure connection 624
Run 338, 749 Secure FTP 286, 624
run a different Process 322, 325 Secure FTP Connection 286
run a specific application 205 Secure FTP Protocol 624
Run another Process 147 select 461, 464, 470, 511, 548, 583, 585, 599, 708
Run Application 338 select any variable 285
Run Application Action 338 select cells in excel Worksheet 708
Run DOS Command 340 select cells in excel Worksheet Action 708
Run DOS Command Action 340 Select Date 461
Run Function 431 Select Desktop 507
run immediately 111 Select File 468
Run Process 89, 749 Select File Dialog 468
Run Properties 89, 144, 146, 328 Select Folder 470
Run Time Errors 172 Select Folder Dialog 470
running 164, 372, 373, 409, 747 Select From List 464
Run-Time Error 322, 325 Select menu option action 511
select option 511
-S- select radio 599
select radio button 599
same type 289 Select radio button Action 548
save 731 select radio button in window Action 599
Save File 613 select web element 239, 281
Save File to 613 selected 461, 464, 470, 556, 557
Save Screen Shot 357, 364, 365, 611 Selected Action 352
Save to Disk 613 selected cell 708
saves 357, 364, 365, 611 Selected Date 461

© 2018 Softomotive
Index 861

Selected Folder 470 Set Default Printer Action 350


Selected Index 464 set drop down list 601
Selected Item 464 set drop down list value in web page 601
selected Worksheet 708, 710, 712, 715 set drop down list value in web page Action 601
selection 464, 511, 708, 710, 712, 715 Set Key 452
selectors 317 Set Key State 452
send 447, 449, 657, 723, 726 set list 549
Send an email 147 Set New Name 477
send email 657, 669 set number of seconds 405, 407, 411
Send Email Action 657 set number of times 305, 308, 309
Send Keys 333, 407, 449 set of Actions 204
Send Keys Action 449 set screen 365
send message 669 set state 548, 596
Send Mouse Click 447 Set Value 797
Send Mouse Click Action 447 Set Variable 797
Sender 645, 654, 657, 723, 726, 728, 731, 733 Set Variable Action 797
sends 645, 654, 657, 723, 726, 728, 731, 733 Set Window 509, 510, 513, 515, 528
sentence case 761 Set Window State 524
separate list items 770 Set Window State Action 524
separates 771 Set Window Visibility 509, 510, 513, 515, 528
Separator 477, 763 Set Working Directory to 629
Server 132, 133 sets 536
Service 107, 134, 148, 153, 372, 411, 617, 745, Settings 121
746, 747, 748 Shift 449, 451
Service Category 745, 746, 747, 748 Shuffle List 810
Service Monitor 107 shutdown 352, 587
Service Monitor Trigger 107 Shutdown Computer 352
Service Name 372, 411 Shutdown Computer Action 352
Service to Pause 747 shuts 352
Service to Resume 748 shuts down 352
Service to Start 745 sign 321
Service to Stop 746 similar actions 613, 617
Services Category 745, 746, 747, 748 Simple Loops 305, 308, 309
ServiceTriggerServiceName 107 simulate 204
ServiceTriggerServiceState 107 Simulating 204
session 675, 677, 679, 681 site 387
Set 350, 361, 365, 452, 505, 509, 510, 513, 515, situation 322, 325
524, 528, 548, 596, 601, 793, 797 size 196, 364, 365, 536, 552, 608, 609
set a Variable 322, 325 skip 111, 310
Set Active Worksheet 696 skipped 310
Set Active Worksheet Action 696 smaller 310
set checkbox state on web page 596 SMTP 132, 133, 645, 654, 657, 723, 726, 728,
set checkbox state on web page Action 596 731, 733
Set Clipboard Text 505 SMTP Server 132, 133, 147
Set Clipboard Text Action 505 Softomotive 13
Set Default Printer 350 Softomotive Ltd 13

© 2018 Softomotive
862 WinAutomation Help

Sort 472, 808 Status Monitor Window 135


Sort by 472 step by step 201
Sort List 808 sticky-pad 193
Sort List Action 808 stop all running Processes 121
Sound 355 stop process 89, 90, 346, 348
Sound to Play 355 Stop Service 746
source 115, 606 Stop Service Action 746
space 760 stopped 372, 411
special 285, 321 stops 359, 409, 411, 432, 434, 435, 746
special "gear" icon 285 storage 285
Special Folder 499 storage bin 285
Special Folder Name 499 Store 399, 402, 460, 461, 464, 468, 504, 627, 643,
special kind 193 682, 684, 687, 697, 720, 751, 757, 773, 775, 777,
specific 289, 373, 399, 520, 592, 594, 596, 599, 778, 803
601 Store Button Pressed 453, 456, 460, 470
specific Process 118 Store Clipboard Text Into 504
specific time 93, 94, 95, 111 Store Command Line Arguments 751
specified 404 Store Command Line Arguments into 751
Split 771 Store Common Items into List 814
Split Text 771 Store Connection 624
Split Text Action 771 Store Connection into 622
SQL 682, 684 Store Content 482
SQL Category 682, 684 Store Copied Files 474
SQL Statement 682, 684 Store Copied Folder into 495
SSL 645, 654, 657, 723, 726, 728, 731, 733 Store Current Index 399
standalone 93, 94, 95 Store Downloaded File 613, 617
stand-alone 148, 153 Store Excel Instance into 685
Standard 14, 766, 770, 771 Store Files into 627
Standard Delimiter 770, 771 Store Length 755
Standard Format 766 Store Main Window Handle 412
Start 199, 399, 687, 745 Store Match 773
Start button 199 Store Match(es) into 773
Start From 399 Store Moved Files 475
Start Numbering 477 Store Moved Files into 475
Start Parsing 773 Store Moved Folder into 497
Start Process Action 749 Store Newly Created Folder into 493
Start Recording 205 Store Output into 340, 342, 345
Start Service 745 Store Position 773
Start Service Action 745 Store Position(s) of found text into 773
started 411, 751 Store Process's Path 752
Starting 205 Store Process's Path into 752
Starting the Macro Recoder 205 Store Random Text 768
starts 107, 108, 359, 409, 411 Store Renamed Folder into 498
state 370, 372, 373, 374, 383, 387, 548, 596 Store Reply Code 643
Statement 682, 684 Store Reply Code into 643
status 90 Store Reply Text into 643

© 2018 Softomotive
Index 863

Store Result 756, 758, 762, 763, 765, 766, 770, System Startup 134
771, 775, 777, 781 System Tray 327
Store Result into 758, 762, 763, 765, 766, 771
Store Result Text
Store Retrieved DateTime
775, 777
778
-T-
Store Retrieved Subfolders into 491 tab 578, 760
Store Selected File 468 tables 289
Store Selected Folder 470 tabs 172
Store Special Folder Path into 499 tabular 289
Store Subdirectories into 627 Take 357, 611
Store Subtext 757 Take ScreenShot 357, 611
Store Temporary File 490 Take ScreenShot Action 357
Store Temporary File into 490 Take ScreenShot of web page 611
Store Text 761 Take ScreenShot of web page Action 611
Store Text with New Case 761 technical 115
Store Text with New Case into 761 Temporary File 490
Store the result into 779 terminate 346, 348
Store Trimmed Text into 760 Terminated 93, 94, 95, 108
Store User Input 460 terminates 107, 108
Store Web Page Text 613, 617 Tesseract 738
Store Zip File into 501 test 191
stored 164 Text 164, 286, 290, 424, 426, 449, 483, 504, 505,
Stored Renamed Files 477 544, 545, 592, 594, 599, 601, 755, 757, 758, 760,
String 682, 684 765, 766, 770, 771, 773
Subdirectories 627 Text Actions 755, 756, 757, 758, 760, 761, 762,
763, 765, 766, 768, 770, 771, 773, 775, 777
subfolders 494, 495
Text Actions Category 755, 756, 757, 758, 760,
Subject 645, 654, 657, 723, 726, 728, 731, 733
761, 762, 763, 765, 766, 768, 770, 771, 773, 775, 777
subnet 359
Text Case 761
substrings 771
text elements 771
subtext 773, 775, 777
text field 545
Subtract 781, 815
text file 147
Subtract Dates 781
Text Length 755
Subtract Dates Action 781
Text to Add 477
Subtract Lists 815
Text to Convert 762, 765
Subtract Lists Action 815
Text to Convert: 761
subtracts 779
Text to DateTime 765
success 106
Text to Find 773
suspends 352, 404, 405, 407, 409, 411, 412, 423,
Text to Measure 755
424, 426
Text to Number 762
sync 639
Text to Pad 758
synchronization 639
Text to Parse 773, 775, 777
synchronize 639
Text to Remove 477
System 338, 340, 349, 350, 351, 352, 354, 355,
356, 357, 359, 364, 365 Text to Replace 477
System Category 338, 340, 349, 350, 351, 352, Text to store into Clipboard 505
354, 355, 356, 357, 359, 364, 365 Text to Trim 760

© 2018 Softomotive
864 WinAutomation Help

Text to Write 483 UI selectors 230, 233


text value 755, 757, 770 unauthorized 354
than 310 unblock 436
this is not a Variable 321 uncompress 502
Time 778 unexpected 322, 325
time range 117 unexpected situation 322, 325
Timeout 453, 456, 682, 684 Unzip 501, 502
times 399 Unzip Category 501, 502
title 374, 383, 387, 412, 453, 456, 460, 461, 464, Unzip Files 502
468, 509, 510, 513, 515, 520, 524, 528, 532, 536, Unzip Files Action 502
540, 552, 592, 594, 596, 599, 601, 608, 609 updated 775, 777
To 645, 654, 657, 723, 726, 728, 731, 733 Upload 633, 634
To Variable 779 Upload File 633
token 156 Upload File(s) 633
Tolerance 415, 439 Upload File(s) to FTP Action 633
toolbar 199 Upload Folder 634
Tools 109, 120, 329 Upload Folder(s) 634
Topic 321, 322, 325, 327, 328, 329 Upload Folder(s) to FTP Action 634
Total 758 uppercase 761
Total Length 758 URL 106, 613, 617
transfer 124 Usage 307, 310
transfer type 124 Usage Examples 307, 310
tree 515 Use 766
trigger 89, 96, 101, 103, 104, 105, 106, 107, 108, Use 1000 Separator 763
110, 153
Use Desktop 507
Trigger Types 96
useful information 285
Trigger Variables 93, 94, 95, 195
User 351, 613, 617
TriggerName 93, 94, 95
User Agent 613, 617
Triggers 81, 93, 94, 95, 101, 148, 153
User Defined Variables 195
Triggers tab 93, 94, 95
User Input 460
Triggers Window 96
User Name 622, 624, 645, 654, 657, 723, 726,
Trim 760 728, 731, 733
Trim Text 760 Username 132, 133
Trim Text Action 760 Using 285
true 401 Using Variables 285
truncate number 800
two kinds of errors
two-dimensional arrays
172
289
-V-
Type 164, 195, 460, 461 v3 285
typing speed 205 Valid 643
Valid Reply Code 643
-U- Valid Reply Code(s) 643
valuable information 285
ui 212, 221, 223, 230, 233, 236, 383, 507, 511 value 460, 692, 791
UI actions 223 Variable 164, 203, 293, 321, 322, 325, 361, 362,
UI Automation Window 517 363, 402, 797, 798, 799, 801

© 2018 Softomotive
Index 865

variable property 285 Wait For Hotkey 407


Variable Types 188 Wait For Hotkey Action 407
VariableName[ItemNumber] 289 Wait for Image 327
VariableName[RowNumber][ColumnNumber] 289 Wait For Image Action 415
Variables 93, 94, 95, 101, 103, 108, 160, 164, 188, Wait for key 407
195, 201, 285, 286, 289, 290, 293, 296 Wait For Mouse 423
Variables Actions 797, 798, 799, 801, 803, 804, Wait For Mouse Action 423
806, 807, 808, 814, 815, 816 Wait for Process 409, 749
Variables Actions Category 797, 798, 799, 801, Wait For Process Action 409
803, 804, 806, 807, 808, 814, 815, 816
Wait for Process to Complete 749
Variables Manager 93, 94, 95, 164, 195
Wait For Service 411
Variables Manager Window 195, 285
Wait For Service Action 411
Variables Pane 172
Wait for service to 411
Variables Visualizer 167
Wait For text 424
VBS 342
wait for text on cmd 681
VBscript 342
wait for text on cmd session 681
version 148, 153
Wait For web 426
version 3 16
Wait For webpage 426
version 4 16
Wait For Window 412
version 5 16
Wallpaper 353
version 6 16
Warning 101, 117
version 7 16
Warnings 132
version 8 16
Web 317, 426, 562, 581, 583, 585, 587, 592, 594,
Versions 16 596, 599, 601, 606, 613, 617
View Logs 114 web address 613, 617
Visibility 509, 510, 513, 515, 528 web applications 237, 280
visible 415, 439, 509, 510, 513, 515, 528 web automation 237, 239, 246, 280, 281
visually 196 Web Category 613, 617
vs 204 web data extraction 246, 255, 262, 265
web forms 237, 280
-W- web harvesting 255, 262, 265
web page 387, 592, 594, 596, 599, 601, 613, 617
Wait 404, 405, 407, 409, 411, 412, 415, 423, 424,
Web Page Text 613, 617
426, 447
web recorder 246
Wait Action 404
web scrapping 255, 262, 265
Wait Category 404, 405, 407, 409, 411, 412, 415,
423, 424, 426 web server 271, 613, 617
wait cmd 681 web sites 237, 280
wait cmd session 681 Webpage 426, 562, 581, 583, 585, 587
wait cmd session action 681 WebService 617
wait command 681 website 562, 581, 583, 585, 587, 592, 594, 596
wait command line session 681 weekday 111
Wait For Content 424, 426 Weekly 111
Wait For File 405 What to Trim 760
Wait For File Action 405 What’s new 285
Wait for file to be 405 What’s new about variables 285
What's new 16

© 2018 Softomotive
866 WinAutomation Help

white space 760 Worksheet Name 696, 700, 701


whole screen 205 Workspace 160, 162, 164, 172, 186
wildcards 374, 383, 387, 412, 509, 510, 513, 515, Workstation 354
520, 524, 528, 532, 536, 540 Write 483, 692
Win 451 write cmd 677
WinAutomation 329, 459 write cmd session 677
WinAutomation Actions 749, 751, 752 write cmd session action 677
WinAutomation Actions Category 749, 751, 752 write command 677
WinAutomation Console Window 459 write command line session 677
WinAutomation Log 753 Write Text 483
WinAutomation Options 121, 124, 132, 133, 134 Write Text to File 483
WinAutomation Process 148, 153 Write Text to File Action 483
WinAutomation Processes 329 Write to Excel Action 692
WinAutomation Service 93, 94, 95, 134 write xml 783
WinAutomation v2 users 285 write xml to file 783
WinAutomationController 329 write xml to file action 783
WinAutomationController.exe 329
Window 195, 205, 221, 236, 374, 383, 412, 424,
437, 438, 439, 459, 507, 509, 510, 511, 513, 515,
-X-
520, 524, 528, 532, 536, 540
xml 782, 783, 785, 786, 788, 790, 791, 793, 794,
Window Class 374, 383, 387, 412, 509, 510, 513, 796
515, 520, 524, 528, 532, 536, 540
xpath 782, 783, 785, 786, 788, 790, 791, 793, 794,
Window Handle 412, 509, 510, 513, 515, 520, 524, 796
528, 532, 536, 540
Window Position
Window Size 536
532
-Y-
Window State 524
Year 290
Window Style 338
yellow 193
Window Title 374, 383, 412, 509, 510, 513, 515,
520, 524, 528, 532, 536, 540
Windows 236, 356, 499, 509, 510, 513, 515, 520,
-Z-
524, 528, 532, 536, 540, 544, 545, 547, 548, 549,
745, 746, 747, 748 Zip 501, 502
Windows Applications Event Log 147 Zip archive 501, 502
Windows Category 509, 510, 513, 515, 520, 524, Zip Category 501, 502
528, 532, 536, 540, 544, 545, 547, 548, 549 Zip Files 501
Windows Event Log 101 Zip Files Action 501
Windows Recycle Bin 356
Windows Service 745, 746, 747, 748
Windows' special folder 499
Windows Vista 148, 153
wish 452
Working 111
Working Directory 629
Working Folder 338, 340
worksheet 697, 720
Worksheet Index 696, 700, 701

© 2018 Softomotive

Common questions

Powered by AI

In the Process Designer, variable management has been enhanced by allowing users to close the 'Variables Manager' dialog with the Esc key, streamlining the user experience . Additionally, error handling has improved by introducing informative exception messages for FTP-related actions and throwing exceptions if both window name and class are not set in Windows-related actions . In regex operations, the 'Parse Text' action now throws an exception if an invalid regex is provided . These enhancements collectively refine user interaction and error management within the process design workflow.

Enhancements to FTP actions in the latest WinAutomation release include the introduction of descriptive exception messages for errors encountered during secure FTP connections . Corrections have been made to ensure the 'Download Folder from FTP' action no longer alters the working directory . Additionally, issues with certain servers where 'Open Secure FTP Connection' failed are now resolved . These changes improve reliability and ease of troubleshooting in FTP operations.

Enhancements to 'Extract Data From Web' improve data extraction efficiency by ensuring pager elements like 'Next Page' are recognized even in complex configurations, addressing issues of incomplete data collection from multi-page sources . Further improvements corrected the action to handle dropdowns by extracting all options rather than just the selected ones, enhancing data comprehensiveness . Additionally, the extraction process now omits excess information injected by the Skype plugin, focusing only on relevant data . These updates streamline data extraction tasks, increase action reliability, and ensure cleaner, more comprehensive data retrieval.

Changes to the Process Designer interface include allowing users to specify hotkeys for renaming variables and conducting step-by-step execution during debugging . Panes within the Process Designer can now be relocated, providing users the flexibility to customize their workspace layout to their preferences . Furthermore, a dedicated comment action box now defaults to focus, encouraging documentation and context-keeping during process design . These changes improve usability by enabling personalization, enhancing the debugging workflow, and promoting clearer process documentation.

The latest version of WinAutomation introduced several improvements for handling web element extraction errors. Firstly, the "Extract Data From Web Page" action now identifies complex pager elements like "Next Page" to prevent missing information in data extraction . Additionally, errors in element extraction due to incorrect div element recognition on Yahoo-powered websites have been corrected, addressing mistaken rich text editor identification . Furthermore, phantom variable errors caused by unescaped percentage signs in table headers are now automatically handled . These updates collectively enhance accuracy and reliability in web element data extraction, resolving prior issues with improper content extraction and unhandled exceptions.

The modifications to the 'Display Notification' action enhance its functionality in console-based WinAutomation processes by ensuring that notification messages are now consistently output to the command prompt console, even when the 'Display Notifications' option is unchecked in the Compiler dialog . This change guarantees visibility of important process messages and addresses issues of communication reliability by maintaining notification integrity irrespective of dialog settings, thus providing more robust logging and debugging opportunities for developers.

WinAutomation has added support for Internet Explorer 10 in its latest update. The "Launch New Internet Explorer" action's output variable now includes a .Handle property, which returns the handle of the browser's window. This property can be used with window-related actions (like move, resize, or focus) that require a window handle as input . These enhancements improve user control over browser instances for more efficient automation processes.

The updated version of WinAutomation addresses scheduling and trigger issues by refining how triggers function. Previously, copying a process with triggers necessitated a service restart for the new process's triggers to function; this has been corrected . Additionally, issues where scheduled triggers executed prematurely by several minutes have been addressed, enhancing accuracy and timing consistency . These improvements ensure reliable and precise process execution scheduling, reducing potential for human error and process mismanagement.

Design improvements to the Error Handling and Process Designer options include the addition of color coding for nested regions, offering a visually intuitive means to distinguish between different process structures . The Debugger Option allows for customizable delay times between actions, facilitating better visual tracking of process execution and improving debugging efficiency . These enhancements contribute significantly to user experience by increasing clarity in process visualization and allowing for customized debugging controls, which is particularly beneficial for complex automation workflows.

The updates to text actions enhance functionality by offering a broad array of operations for text manipulation. The 'Trim Text' action removes leading and trailing whitespaces efficiently, crucial for data sanitization and uniformity . The 'Change Text Case' action allows for comprehensive case transformations—uppercase, lowercase, title, or sentence case—accommodating diverse use-case requirements . Furthermore, the 'Convert Text to Number' action ensures accurate conversion of numeric text representations into a numeric variable, a critical function for arithmetic operations . These improvements provide a robust set of tools for handling and transforming text data, key for automating text-intensive tasks.

You might also like