The automation interface in ROB-EX allows external programs to execute predefined macros. As an example you can use the automation interface to trigger the database integration that exchange information with an external ERP system.
The ROB-EX Automation interface is TCP/IP based allowing it to be triggered from any PC on the network.
Note that the ROB-EX automation interface is not DCOM based and it do not allow ROB-EX to be controlled via e.g. Visual Basic scripts etc. So do not confuse this with the Windows term of the same name.
To learn how to create a macro please read the chapter on Macro editing.
Enabling automation support
All ROB-EX planner clients can function as an Automation Server, e.g. the host where the macro is being executed. ROB-EX viewer clients cannot work as automation servers.
Also note that the ROB-EX Multiuser Server can not work as automation server host either, only ROB-EX planner clients can.
To enable/diable automation support in a planner client select the “Integration” tab in the menu “Function->Settings->General”.
By default the automation service is disabled. Press the “Start now” button to start the automation service now and put a check mark in “Auto start Automation Server” to have ROB-EX automatically start up the automation service when ROB-EX start up.
The default port number to listen on is 14324. If you experience conflicts with other applications using the same port change to a different port number. Also note that on a Windows/Citrix Terminal Server you may have multiple ROB-EX clients started each trying to start up the Automation Server interface. In that case it will be necessary to select a different port number for each of the clients.
Checking “Broadcast integration status” will broadcast the status when login in to the multiuser.
Triggering the automation interface
To trigger or call an existing ROB-EX macro through the automation interface there is two ways of doing this.
You can either make a macro with the command RunMacro or you can use the external executable “ROB-EXCMD.EXE” located in the directory \bin\ROB-EXCMD.exe (where is the directory where the planner client is being executed from).
If you have created a macro in the domain “main” with the name “HTML report” that will generate an HTML report (see example below)
this macro can be called by an external program by calling the ROB-EXCMD.exe command with the following parameters
rob-excmd.exe -runMacro "main:HTML report"
As an example you can create a windows shortcut to ROB-EXCMD.exe and then add the parameters to the shortcut:
Macros in ROB-EX are divided into domains, typically each plugin has it’s own domain.
Each domain persists macros in it’s own separate XML file, the main domain is persited/saved in the XML file “mainMacro.xml” located in the ROB-EX user configuration directory (ie. c:\documents and settings\\robex\ganttPlanner\mainMacro.xml).
If you open any of these XML documents you will see the domain name in the top row as attribute namespace=“XXXX”. Note the domain name is also visible in the edit macro window.
Each plugin (i.e. ERP Database) defines standard built in macros for running the integration. To trigger the macro being called when manually pressing the “ERP Database” synchronization button you would run the following command
rob-excmd.exe -runMacro "dbplugin:Manual"
Command line parameters to ROB-EXCMD.exe
You can see all possible parameters that can be passed to ROB-EXCMD.exe by specifying -help as a parameter to the program
|-host||specify the host name of the PC running the automation server you want to call|
|-port||specify the port number of the automation server you want to call, the default port number is 14324|
|-help||show the possible parameters that can be passed to ROB-EXCMD.exe|
|-dbsync||will run the macro line “DBSynchronization”. This option is deprecated and should instead be replaced by using the -runMacro option on built in macro “dbplugin:Manual”.|
|-opr||select in the gantt chart the operation with the specified id|
|-prodOrder||select all operations in the gantt chart for the production order with the specifed id|
|-runMacro||run the macro with the specified name.|