RoboJob V 2.35c Features

What's new, what's fixed

The following panels will give an overview about the most significant improvements, changes and fixes.

V 2.35 V 2.34 V 2.33 V 2.32 V 2.31 V 2.30 V 2.21 V 2.15 V 2.10 V 2.00

RoboJob V 2.35c

What's new in Version 2.35
RoboJob now uses the COMSPEC environment variable to determine the command processor for .cmd files and the SHELL statement from config.sys for .bat files
Additions for the Rexx interface
New returntype PROGPARM for Rexx scripts on startup.
Special meaning of @ for RBNotify
New parameter @ for RBNotify.Exe
Modified Icon View
Objects started with ObjStart.Exe now have their icons displayed in icon or tree view.

Note : The following restrictions apply:

What's fixed in Version 2.35
Minor changes to make RoboJob fully Year 2000 compliant and resolve the dreaded Year 2424 problem. Upgraded RAR because of installation problems on Aurora.

RoboJob V 2.34

What's new in Version 2.34
A comment possibility has been added to RoboCmd.

What's fixed in Version 2.34
Problems with the External Communication Interface due to the speed should be solved.
Overwriting log files
Logs got overwritten on multiple dayly starts of RoboJob if the program was installed on a FAT partition.
RoboGraph and the current days logfile
RoboGraph has been changed to allow reading of the current days log even if it's in use by RoboJob.

RoboJob V 2.33

What's new in Version 2.33
External communications got a lot faster with less CPU overhead.
Window position memory
RoboJob has now the ability to memorize your programs position on the desktop. Activate this feature in the Property Dialog.
Logging modified
If "Write log file" is enabled, the log will be written immediately to disk and won't be lost in case of an OS/2 failure.
RBCatch Utility
RBCatch works together with RBScan to provide you with information about Text Mode OS/2 programs.
ScanMon now available via hot key
Press Alt M to start the RBScan monitor.
Single step your RBScan scripts with ScanMon
To aid in debugging ScanMon now includes the possibility to step thru scripts.
RBScan processing MLE fields changed
The processing of Multi Line Edit fields has been changed to avoid long strings. Please check your scripts for match statements involving \r\n constants!

What's fixed in Version 2.33
Example .cmd file in the "How do I..." section stated wrong "ROB" instead of "ROBOJOB"
Shutdown message
The log entry "OS/2 shutdown in progress" has been changed to "possible OS/2 shutdown in progress" because the source of the WM_QUIT message cannot be determined reliable, eg. you could terminate RoboJob with the RBScan TERMINATE command which isn't an OS/2 shutdown.

RoboJob V 2.32

What's new in Version 2.32
Changes and additions to RBScan and ScanMon.

What's fixed in Version 2.32
The log didn't show the Jobname for messages like "past time specifed".

RoboJob V 2.31

What's new in Version 2.31
Fonts for windowed Jobs may now be specified.
Update for substitution parameters
Window Handle and/or Process ID are available now.
More support for Batch programming
Query from .cmd file if RoboJob accepts commands
RBScan Utility
Ever wanted a program reacting on other programs status messages? Have a look what you can do with the RBScan utility

What's fixed in Version 2.31
The picture in the online help showed an older version of the criteria's dialog.
Countdown Timer
If no Jobs due within 24 hours this timer was sometimes red blinking.
Disable Communications
This option was not properly restored
Font and Colors
The rescheduling indicator didn't save this option
RoboGraph
For fixes and enhancements please have a look at the RoboGraph online help.

RoboJob V 2.30

What's new in Version 2.30
Exclusion times for dependent Jobs. Look at Criteria's for dependent Jobs.
New scheduling options for dependent Jobs
Jobs may now be dependent on RoboJob startup, either the first startup after OS/2 boot or on every RoboJob startup. The startup delay is for every Job configurable.
Substitution variables updated
The new RoboJob " startcounter" is available as %STARTCOUNT%.
RoboCmd command set updated
The "log" and "equ" (enhanced query) commands are intended for use by the RoboGraph utility. Look at RoboCmd for further information.

Caution : These interfaces can change in the next release. Do not rely on the generated format.

File dependent Jobs
DelSema.Cmd has been added as example for deleting semaphore files via a Rexx Exit.
Graphical log file representation via external utility
Look at RoboGraph for further information.

What's fixed in Version 2.30
Save of queue and options on OS/2 shutdown (regression from 2.15 due to changed shutdown processing)
Memory usage
The fix for Warp Server SMP introduced a problem which resulted in high memory usage on some systems.
Month selection
Selecting June for the month didn't work. If no other months were selected, a "No valid month selected" Error Message was generated.
Selecting last day of month
Under some conditions didn't work as expected.
Drag & Drop for%DAY%
Instead of %DAY% there was "%DAY ....% transferred
External communications result codes
Commands which require a parameter and where no parameter was specified had a result of "unknown command" instead "required parameter missing".
"Window not created bug" on exit (Warp Server SMP)
Upgrading the development environment cured this bug.

RoboJob V 2.21

What's new in Version 2.21
LAN License now available.

Note : When ordering multiple copies you will get one key valid for the number of RoboJob's ordered for concurrent use.

Additional Registration sites
View the list of additional ordering possibilities.
RoboCmd command set updated
Lan and License have been added. Please look at RoboCmd for further information.
Window title changed
Window title has been shortened on customer request.
What's fixed in Version 2.21
Some bugfixes

RoboJob V 2.15

What's new in Version 2.15
Enhancements
Rexx Exits
Rexx procedures may be specified before a Job starts and after a Job ends.
New commandline parameters
Specify /NoComm or /Comm to deny or allow access to RoboJob via the external interface.
Updated Icon View
RoboJob now tries to display the default icon (if any) for the program defined in your Job.
List of Substitution Parameters
%ISHOLIDAY% has been added.
What's fixed in Version 2.15
Some bugfixes

RoboJob V 2.10

What's new in Version 2.10
Two new parameters are available.
Icon view of Jobs
To get a quick overview of your Jobs use the new Icon View.
Popup menu modification
It's now possible to use the Popup Menu from the keyboard (press Enter on the selected record). Use the underlined characters from this menu to select an action.
Jobs across midnight
It's now possible to schedule a Job for repeated execution across midnight.
Speedup for delayed Jobs
Searching for the next scheduled time has been improved for Jobs with multiple runs daily.
The list of Substitution Parameters
%PROGNAME% and %COUNT% have been added.
Aid for entering Substitution Parameters
A Popup Menu has been added to the Parameter entry field, access it by pressing the right mouse button.
RoboCmd updated
The list of commands from RoboCmd has been expanded. Extract has been added which writes every item from the current Jobs as a single queue named nnn.que. Use debug(on) and debug(off) to enable or disable debugging mode.
RBinst updated
The install program has been updated to handle the graphics in the .html files.
Handling of RC dependent Jobs improved
To avoid recursive calls to this type of Jobs they will not trigger themselves.
Toolbar Help
Indicates the current selected Job in the help line.
Toolbar Icons
Icon spacing at lower screen resolutions improved.
What's fixed in Version 2.10
Some bugfixes

RoboJob V 2.00

What was new in Version 2.00
New selections for scheduling
The list of possible choices has been expanded. To ensure compatibility with previous versions, they were added at the end of the selection list.
Registration made easier
A new Registration dialog was added. Electronic registration is now available, no need to wait for the diskette.

Note : To enter your registration number select Help -> Registration or press Alt R

What's fixed in Version 2.00
Some bugfixes

Help for HelpPanel1

*** Help panel V236Panel ***

Icons used by RoboJob

The Toolbar
A quick way to most common functions
The Icon View
Select Options -> Job View - Icon View
These are the default icons used by RoboJob
RoboJob will try to use the programs own icon.

Note : The special icon for Rexx procedures will not be replaced.

Command Line Arguments

Commandline arguments:
Starting RoboJob
Command Line Arguments

Note : No special order is required and they are independent.

/NoComm switch: 
Prevents execution of commands via RoboCmd. 

Note : Every access attempt is logged and RoboCmd will get a result of "ACCESS DENIED"

The Options Menu setting "Disable Communication" will be checked and consequently stored with all other options 
/Comm switch:
Enables execution of commands via RoboCmd. 
The Options Menu setting "Disable Communication" will be unchecked and consequently stored with all other options 
/min switch:
Starts RoboJob in minimized state: 
/max switch:
Starts RoboJob in maximized state: 
/h switch:
This puts all Jobs on hold. No scheduling will occur until you release them. 
QueueFileName
Specify an alternate filename for your Jobs. The file extension must be ".que". 

Note : This filename will be used to save the queue on program exit.

Environment Settings

Environment Settings

There is currently one environment variable supported.

SET OVERDUE_DELAY=seconds

Setting this variable stops scheduling for overdue Jobs for the specified number of seconds on program startup.

Note : This value is also used for delaying the file and process monitoring of dependent Jobs.

The Jobs Menu

Manipulating your Jobs
Add a Job
Presents the Job Property Dialog.
Delete a Job
Deletes the current selected Job. Depending on your options a confirmation dialog will be shown.
Edit a Job
Presents the Job Property Dialog. If the current selected Job is running, no changes can be made there.
Copy a Job
Makes a copy of the selected Job information and presents a prefilled Job Property Dialog. You must enter at least a new Job Title.
Suspend a Job
Suspends scheduling for selected Job.
Resume a Job
Puts selected Job in active state and evaluates missed events and holidays.
Hold all Jobs
Puts all Jobs in a suspended state. No scheduling occurs until one or more Jobs are released.
Release all Jobs
Sets all suspended Jobs to active and evaluates missed events and holidays.
Cancel a Job
Tries to cancel the selected Job. Ofcourse, the status of this Job must be "Running".
Exit
This terminates RoboJob. Depending on your selection from the Options Menu various program states are saved.
Alternate ways
The most common commands are available via a "Popup Menu". Click the right mouse button over a Job in the Status Display and select a command there. Last not least there is a toolbar for these commands available. Simple put the mouse over one of these buttons and a hint will tell you the meaning of this button. Putting the mouse over the countdown will tell you the name of the next Job to run.

Frequently Asked Questions

Tips and tricks
Difficulties when upgrading from previous releases
Rename your existing queue to eg. robojob.sav before starting RoboJob. Open an OS/2 cmd window and load robojob.sav with RoboCmd.
Saving the queue
Use RoboCmd for this task. Generate a Job, program is RoboCmd.exe, parameters \pipe\robojob sav(robojob.que) and schedule it as often as you like.
Very slow system and RoboJob only shows a waiting pointer
After an unsuccessful attempt to install the "File and Print Client" there are left over DLLs in the MUGLIB directory which must be removed manually.
Why the new position memory features is initially disabled
To remain compatible with previous versions of RoboJob you must explicitly turn on this feature.
Why does the new position memory feature doesn't work with Windows programs
Specifying positions on Job start for Windows programs is ignored by the OS/2 API.
RoboCmd returns DosOpenError 53
Ask your system administrator to enable named pipe support for accessing this workstation.
Communciation timing changed
Please reevaluate your scripts if you are using any form of timing involving RoboJobs communication feature. It's now considerably faster.
Why a saved Font Size must exist
This feature is language dependent and there is no failsafe way for getting the language of menu entries because of generic fixpacks which may result in English menus even on a German, French, Spanish etc. OS/2 system.
Using the %HANDLE% or %APPHAN(progname)% in your programs
The Window Handle as returned by these variables is the absolute decimal representation. You may use the following code fragment to convert to a HWND.

C Example

/* assumes Window Handle is the first parameter to your program */
HWND hwnd = (HWND)(atol ( argv[1] )*(-1L) );
How to start with the RBScan utility
Open an OS/2 window and execute the following command: RBScan 0 debug.rbs (debug.rbs is a mini script located in the RoboJob folder). This will produce an ASCII file (rbscan.log) where you can find all strings you may want to search for. A heavily commented sample script for the popular PMMail program is provided too.
RBScan's WriteFile command
Without data for writing this can be used to produce a zero length file suitable as conditional file for RoboJob.
RBCatch and starting .CMD files
Use RBCatch cmd.exe /c xxx.cmd
RBCatch and starting .COM files
You must specify the extension for .com files. There are a only few left over, eg. CHKDSK.COM
RBScan 0 script.rbs does not show the RBCatch strings
You must either specify the window handle on startup or use the RBScan USE command.
Starting Jobs anytime
Select the Job in the main display and press Ctrl U or use the second (usually right) mouse button to display a Popup Menu and select run.
Scheduling Jobs at intervals not presented in the "Job runs" listbox
Use the Rexx exit on startup and supply the current date and time as parameters. and return "Skip" if you don't want the Job to run at this time.

Example

/* Sample Rexx Job Startup Script */
Parse arg data /* Get arguments */
retstr = "OK"    /* init return variable */
if Address() = "ROBOJOB" then do /* check environment */
   if Word(data, 1) \= "NN" then do  /* change "NN" to the day you want */
      retstr = "Skip" /* tell RoboJob not to run the Job at this time */
   end
end
return retstr  /* return your result */

Note : This example assumes you have specified %DAY% in the parameter field of the Rexx startup script for your Job.

How to delete semaphore files
An example .cmd file (DelSema.Cmd) is located in the RoboJob home directory. It will delete all files specified in the commandline.
Easy selecting a Job
Type the first letter of the Job Name. If more than one Job Name starts with the same letter, typing this letter again selects the next one.
Starting .cmd files
Enter the name of the .cmd file as program. No more need for quotes around names containing spaces.
Starting .bat files
Enter the name of the .bat file as program. Parameters will not be quoted as the OS/2 command.com doesn't understand this.
Using programs must run, may not run efficiently
You only have to specify the unique part of the Job Title. Specifying a common part in the Job Title for related Jobs is a time saver.

Note : This is a way of managing only serial reusable resources such as some multimedia components.

Starting a customized session (program object)
Use the supplied Object Selector program to find the Object Handle and start via the objstart.exe utility.

Note : There is currently no way to get at the returncode of the program object. The returncode shown is from ObjStart only. A Rexx Exit on termination will be called at the end of ObjStart.

What's the blinking 'S'
This is only a visual representation of the activity of the Scheduling thread.
Dependent Jobs
You can use any program or batch file. Use the substitution parameters to get the info you need. If you have a program capable of calling a pager you can be notified when something goes wrong.
Scheduling dependent Jobs after a condition was met
Whenever a dependent Job starts because of a condition met, this condition is monitored for clearing. Afterwards the Job is enabled on this condition again.

Note : This doesn't apply to returncodes.

Jobs which will be never scheduled automatically
Create a dependent Job and enter "0;Your Jobname" for the rc field.

Note : To prevent loops, dependent Jobs will not be triggered on their own termination.

Summer and Winter time
Generate a Job which runs on the last Sunday in March and October. Use %MONTH% as parameter to distinguish between Summer and Winter (if that's your time of change, ofcourse).
A note about returncodes
Use the >0 with caution. it's usually safer to use !0 because it's possible for a program to return a negative value.

The Property Dialog

Specifying the Job properties

Jobname
Required. Every Job must have a title. This title appears in the tasklist when this Job is running.
Program button
Presents a standard file dialog for easy selecting the program.

Note : Use of this button is optional.

Program name
Required. The program (.exe/.cmd/.com/.bat) file to run. Either specify the program name only or the full path.

Note : Full path specification is currently required for Dos and Windows programs.

Program parameters
Optional. The parameters for your program.

Note : If you need file redirection you must use cmd.exe (or command.com for Dos programs) with the parameter /c followed by your program and the file redirection(s).

Note : Click the right mouse button and you can drag the special Substitution Parameters to this field.

Program directory
Optional: If your program must be started from a specific directory you may enter it here.
Job runs listbox
Select from the listbox either one daily run or multiple runs a day.

Note : When selecting dependent Job, the Criteria Dialog will pop up when you press OK

Limit
For multiple daily runs you may enter a limit. The Job runs only up to this limit times.

Note : Multiple daily runs across midnight are now supported too

Year, Month, Day, Hour, Minute
Required. Select date and time for the first run of this Job.
Window or Fullscreen
Select if your Job will run in a windowed or fullscreen session.

Note : This always defaults to windowed. Fullscreen must be specific selected when needed. Has no effect on PM programs.

Foreground or Background
Start the Job in the Foreground or Background.

Note : Foreground starts are only possible if RoboJob executes in the foreground at the time a new Job starts.

Note : Ignore Positions

This check box has 3 states: Initially state it set to ignore window positions. Clicking on the check box will advance it to memorize window positions. Clicking again will enable you to specify the window positions directly. Please remember, OS/2 counts positions from the lower left corner of the screen.

Note : The state of this field will be ignored on Job start for all Fullscreen sessions and for Windows sessions.

Program type
This is automatically selected if the program could be found in your path or the correct path was given.

Warning : Only specify this parameter if you are absolutely sure or if the program doesn't exist at the time you are creating this Job entry.

Day selection
Specify selected days of the week or all days. This is the default.
Month selection
Specify selected months of the year or all months. This is the default.
Holidays
Uncheck to obey the holiday definitions.

Note : If you uncheck this and there are no holiday definitions, the Holiday Definition Dialog is presented.

Overdue
If checked this Job will be executed on startup if the real execution time has been missed.
Rexx Exit
Check this if you want to call Rexx procedures. A separate dialog will be shown where you can enter the procedure names along with all parameters.
Specify font size for windowed programs
Check this if you want to specify a non standard font for this Job. A separate dialog will be shown where you can select the font size.
Files exist
Optional: specify the file or files (separated by ; ) which must exist
Files don't exist
Optional: specify the file or files (separated by ; ) which may not exist
Programs running
Optional: specify the program or programs (separated by ; ) which must be running.

Note : These are the Job Titles or the entries from the tasklist.

Programs not running
Optional: specify the program or programs (separated by ; ) which may not be running.

Note : These are the Job Titles or the entries from the tasklist.

Specifying the Font Size

Specifying the Font Size

Select the desired font size and click on Done or click on Cancel to abort the selection.

Criterias for dependent Jobs

Specifying the dependent Job properties
Accessing the Criteria Dialog
This dialog is automatically displayed when you select "depends on other criterias" in the Job runs listbox of the Property Dialog.
RC and Program
Enter the Returncode(s) and the Job Title(s) you wish to monitor. Returncode(s) and program titles must be separated by semicolons.

Note : To apply the selected Returncode(s) to all Jobs leave out the program title and enter only the delimiting semicolon.

Example
0-15,20-27,!28;Test Job;CP,CPN,CF,CFN;!Test Job;
Description
Run the dependent Job whenever Test Job returns a rc in the range 0 to 15, 20 to 27 and ignore 28. The returncodes CP, CPN, CF, CFN of any Job will trigger execution except for Test Job
Files that must exist
A list of files (separated by semicolons). When one of these files is found the dependent Job is started.
File that may not exist
A list of files (separated by semicolons). When one of these files is not found the dependent Job is started.
Programs that must be running
A list of program titles (separated by semicolons). When one of these programs is running the dependent Job is started.
Programs that may not be running
A list of program titles (separated by semicolons). When one of these programs is not running the dependent Job is started.
Exclusion Times
A list of starting and stopping times in military (24 hour) format. There may be up to 25 elements, separated by ";".

Note : 02:30-02:45;22:40-22:45

Caution : There is a big difference between using Rexx Exits to achieve exclusion times and using this new capability.

When using Rexx Exits the conditions are evaluated and must be reversed before a Job will be scheduled again. Contrary, there is no evaluation of conditions involved when using exclusion times.

Rexx Exits

Rexx exits
Two Rexx Exits are available for every Job. The command environment name is ROB
On Job Start
The startup directory for this procedure is the same as specified in the Job Directory parameter or the RoboJob directory if this parameter is left blank.
Return values
The following return strings are checked by RoboJob:
On Job Termination
The startup directory depends on other Jobs started and no fixed location can be assumed.
Parameter field
Use the right mouse button in the parameter field to get the panel of available substitutions parameters.

Holiday Definition Dialog

Public holidays: 
Select month and day with the spinbuttons and click the add button. 
If you make a mistake,  mark the wrong date in the listbox and click on delete. 
Religious holidays:
They depend on the Easter date. You must select an offset in days, then click on add. 
If you make a mistake,  mark the wrong offset in the listbox and click on delete. 
Common offsets
Good Friday
Offset -2
Easter Sunday
Offset 0
Easter Monday
Offset 1
The Ascension Day
Offset 39
Whitsun
Offset 49
Whitmon
Offset 50
Corpus Christi
Offset 60
Save button
This saves the holiday definition to a file which will be loaded automatically by RoboJob on startup. 
Cancel button
This cancels the dialog. No changes will be recorded. 

Special Parameter Substitution

Job Parameters

Note : All parameters must be uppercase.

The Options Menu

Tailoring your preferences.
Sort options
Click here to get a submenu of available sort options.
Filter options
Presents a submenu where you can specify which fields should be shown in the Job Display. Checkmarks left of the field name show visible fields. Press Apply for changes to take effect and to dismiss this menu.

Note : Your selections are preserved when Save Options is checked.

View options
Choose between Detail, Icon or Tree view.
Show Icon Details
Initially on. Toggle between Job Name only and Job Name with Scheduling Information.
Confirmation on
This is a toggle. Default state is on.

Caution : When confirmation is off, you may delete or cancel the selected Job with a single mouseclick!

Write log file
You can toggle the writing of a log file. Log files are saved on a daily basis. The name of the logfile consists of the basename of the program and the extension is the day of the year. Default state is on.
Set Font Colors
Presents the Font Color Dialog. You can change the color of fonts for Job display, log, the message area, date and time in the status bar. How to change fonts.
Set Background Colors
Presents the Background Color Dialog. You can change the colors of Job display, log, the message area, date and time in the status bar. It's also possible to open the Color Palette and drag a color to these areas.
Define Holidays
Presents the Holiday Dialog.
Enable Debug
This is a toggle. Please enable this if you are having trouble with specifying the conditions for dependent Jobs.

Note : A lot of information is displayed in the log and therefore this option should be disabled as soon as possible.

Disable Communications
When checked, any attempt to send commands via RoboCmd will be logged and a result of "ACCESS DENIED" will be returned.

Note : This may be set as commandline parameter too and will be saved when "Save Options" is in effect.

Save Options
This is a toggle. All states in the Option Menu and the sub menus are saved if a checkmark appears to the left. Default state is on.

The Log Menu

You may hide the log by expanding the Job Status. This works as a toggle. A checkmark left of this menu entry signals hidden state.

Default is to show the log.

See also: Explanation of log entries

Connections to the RoboGraph utility are excluded from logging when "Hide RoboGraph Connection" is checked.

Select "View the log with RoboGraph" to start the RoboGraph Utility.

Select "The RBScan Online Monitor" to start the ScanMon Utility

Keyboard shortcuts

Most of the commands have keyboard shortcuts assigned.
Alt C
Show Help Contents.
Alt E
Show Help for Help.
Alt M
Run the ScanMon Utility.
Alt I
Show Help Index.
Alt R
Presents the Registration dialog.
Alt V
Run the RoboGraph Utility.
Ctrl A
Add a Job. Presents the Job Property Dialog.
Ctrl C
Cancels the current selected Job. The Job must be running. Only if confirmation is on you may abort this command.
Ctrl D
Delete a Job. Only if confirmation is on you may abort this command. You cannot delete a running Job.
Ctrl E
Edit a Job. Presents the Job Property dialog.

Note : If the Job is running, you can only view the properties.

Ctrl G
Toggle debugging output to the log.
Ctrl H
Holds all Jobs. Scheduling for all Jobs is suspended.
Ctrl I
Hides or shows the log.
Ctrl L
All Jobs in suspended state are released.
Ctrl O
Show or Hide RoboGraph connections in the log file
Ctrl P
Copy the selected Job. Presents the Job Property dialog. filled with data from the currently selected Job. You must supply a new Job title.
Ctrl R
Resumes scheduling of a previously suspended Job.
Ctrl S
Suspend current selected Job. You can only suspend an Active Job. Scheduling for this Job is suspended until it is released.
Ctrl U
Run the selected Job.

Note : Job state must be Active and all conditions like files existing etc. must be met to launch the selected Job.

Ctrl V
Toggle saving of options.
Ctrl Y
Presents the Holiday Definition Dialog.
In the Popup Menu
Use the underlined character in the menu to run, edit, copy, delete or cancel this Job.
F6
Sorts the Job Display ascending, key Job Name.
F7
Sorts the Job Display descending, key Job Name.
F8
Sorts the Job Display ascending, key Scheduled Time.

Note : This is the default. The next Job to run will be at the top

F9
Sorts the Job Display descending, key Scheduled Time.
F3
Stops program execution. Only if confirmation is on you may abort this command.

Log Details

Key to log entries

Except for the "sign on and off" messages every log entry consists of three parts.

Job Status Display

Your current Jobs

Note : Have a look at the Options Panel how to customize this display.

Name
Shows the name you have defined for this Job.
Scheduled
Date and time for this Job to run next.
Status
The current state of this Job.
Last Rc
Last return code from this Job or NA if there was no previous run.

Note : The codes CF, CFN, CP, CPN denote conditions not met on startup. Have a look at the log. NoLaunch and Skip can be returned via Rexx Exit procedure on startup.

Program
The program to execute.
Parameter
The (optional) program parameter(s).
Start Directory
The (optional) program startup directory.
Last Exec
The date and time the program has last run or NA if there was no previous run.
The (optional) Dependencies
The dependency information (or empty)
The (optional) Rexx Exits
Information about Rexx Exits, procedure and parameters on startup and exit.

Note : Only if the field with the label "Exits" shows a 1, these exits are enabled.

The (optional) Exclusion Times
Information about Exclusion Times defined for dependent Jobs.
The (optional) On StartUp definitions
Displays condensed Info about Jobs at RoboJob startup. If this field starts with 0, no "on startup" is defined.
The (optional) Font Size selection (valid for windowed OS/2 and Dos Jobs only)
Displays condensed selection info. If this field starts with 0, no font size selection is defined.

External Utility - RoboCmd

QRoboCmd is a small utility located in the RoboJob folder. It will return a 1 if RoboJob is running and accepts commands via RoboCmd, else it will return 0.

RoboCmd Overview

Note : This utility enables you to delete, run, cancel Jobs, save the current JobQueue, load another queue and modify certain aspects of RoboJob.

It works on the same machine from another task or over any LAN which has support for named pipes.

RoboCmd Syntax 
If on the same machine: RoboCmd \pipe\robojob cmd1 cmd2 .... cmdn 
If across a LAN: RoboCmd \\server\pipe\robojob cmd1 cmd2 ... cmdn 
All commands may be abbreviated. Only the first three characters are significant. 
RoboCmd Commands

Note : The registered version contains the C source to RoboCmd

comment("your text") 
Adds "your text" to the log with a key of "P" (for private) 
query
Lists all the jobs with current state, time scheduled and program information. 
query(jname)
Lists the selected Job with title jname if it exists. 
equery and equery(jname)
Gives more information than the query command. Primary use is for the RoboGraph utility. Interface may change in a future release... 
log
Lists start and stop times for all Jobs for the current day and run of RoboJob. Interface may change in a future release... 
delete(jname)
Deletes the Job with title jname if it exists. 
run(jname)
Runs the Job with title jname if it exists. Behaves like Ctrl U within RoboJob. 
extract
Write every Job in a own queue. These files are named nnn.que 
lan
Shows machines running RoboJob on your LAN. 
license
Shows remaining licenses, useful for network coordinators. 
save(filename)
Writes the current queue to filename. 
load(filename)
Loads the Queue from filename. 
hold
Holds all Jobs. 
hold(jname)
Holds the specified Job. 
release
Releases all held Jobs. 
release(jname)
Releases the specified Job. 
Commands which influence jobname matching
wildmatch(on) 
Only a part of the jobname must be given 
wildmatch(off)
You must specify the full jobname. This is the default. 
ignorecase(on)
Case is not significant when matching a jobname. This is the default. 
ignorecase(off)
Case is significant when matching a jobname. 
Commands which influence RoboJob options
minimize 
Minimizes RoboJob. 
restore
Restores RoboJob old position. 
maximize
 compact. 
Maximizes RoboJob 
hide(on)
Hides the log display 
hide(off)
Show the log if it was hidden. 
confirmation(on)
Set RoboJob confirmation on. 
confirmation(off)
Set RoboJob confirmation off. 
writelog(on)
The log will be written at midnight and after RoboJob has ended. 
writelog(off)
No log will be written at midnight and after RoboJob has ended. 
debug(on)
Turns debugging option on. Has no effect if it's already on. 
debug(off)
Turns debugging option off. Has no effect if it's already off. 
shutdown
Terminate RoboJob. 

Caution : Confirmation setting is ignored.

RoboCmd return codes.
Returncode 0: all commands executed normally. 

Note : This doesn't guarantee your commands were correct, it simple states the communication with RoboJob was successful. Returncode 1: RoboJob not executing or busy.

Note : Look at the RoboCmd display: DosOpenError 231 means another copy of RoboCmd is executing, DosOpenError 3 means the specified pipe could not be found. Returncode 255: no commands entered, help displayed.

External Utility - RBScan

Purpose of RBScan
Query screen output of a PM Program.

Note : Use RBCatch to query the output of text mode OS/2 programs.

How to call RBScan
In most cases you will create a dependent Job which waits for an instance of another running program.

Note : RBScan will not run on a machine without either a running RoboJob or having run RoboJob at least once before starting RBScan.

RBScan commandline parameters
Two arguments are required, a third is optional.
  1. Window handle as supplied by %HANDLE% or %APPHAN(progname)% or use 0 to scan thru all programs currently executing. This handle will be called TARGET
  2. Script filename
  3. Optional. Name of a log file for debugging.

The RBScan script format
The script consists of blocks of 4 lines.
  1. line: Label. Must start with a :
  2. line:
    Command Parameters Purpose
    APPENDFILE filename data Appends data to filename.
    CDD path Change Drive and/or Directory.
    CHAIN rbscan script file Executes the specified script as subroutine.
    DEBUG [filename] Writes debug output to filename. Default is rbscan.log.
    DELETEFILE filename Deletes the file specified by filename
    FILEEXIST filename Check existence of file (wildcards possible).
    GOBACK N/A Resumes execution of the calling script.
    HIDESCAN N/A Hides ScanMon if it's running.
    ISCHAINED N/A Evaluates to True if this script was loaded via CHAIN.
    LISTBOX ON or OFF Turns reading of listboxes ON or OFF: Default state is OFF.
    MATCH String Scans for the string within TARGET.
    RUN [/Min|/Max] program [parameters] Starts program with optional parameters. You must specify the full path and extension. /Min or /Max are optional.
    SHOWSCAN N/A Restore ScanMon if it's running.
    TERMINATE N/A Tries to terminate the TARGET by sending a WM_QUIT.
    USE programname Defines new TARGET for MATCH and TERMINATE.
    WRITEFILE filename [data] Creates or Replaces filename and writes optional a line of data.
  3. line: Action to perform when line 2 evaluates to TRUE
  4. line: Action to perform when line 2 evaluates to FALSE
The RBScan Action commands
Following is a list of currently implemented commands. Square brackets indicate optional parameters
RBScan return codes
If RBScan encounters an error during script parsing or execution it will return one of the following codes:
RC Description
any positive value User defined rc from quit
0 Normal termination
-1 not yet assigned.
-2 Undefined Label referenced.
-3 Undefined Cmd type.
-4 Script file not found.
-5 Script is empty.
-6 Mismatched label in Action True.
-7 Mismatched label in Action False.
-8 Label missing from GO in Action True.
-9 Label missing from GO in Action False.
-10 Out of memory for buffers.
-11 not ON or OFF for LISTBOX specified.
-13 Invalid Cmd in True or False.
-14 Application from RUN could not start.
-15 No QUIT and 0 as Handle. The Desktop can't get invalid.
-20 Maximum CHAINing level exceeded. More than 20 chaining scripts are not supported.
-21 Invalid GOBACK, eg. without previous CHAIN.
-30 Shared memory allocation failed.
-31 Shared memory give failed.
-32 DosWriteQueue failed. Don't close ScanMon when a script is running!
-50 Creation of Event Semaphore failed.
-51 Creation of MUX Wait Semaphore failed.
-60 Creation of thread failed.
-99 Undefined Action keyword found.
-100 Internal error while parsing.
-101 Target handle got invalid.
-102 Unable to reset Kill Signal.
-103 Kill Signal from ScanMon received.
-255 Too few parameters or RoboJob has not run at least once since OS/2 boot.

Note : If you encounter errors -30 or -31, use this script without monitoring.

Closing ScanMon while scripts are running will terminate ALL OF THEM with error -103.

Restrictions
Not all program strings may be found during scanning. Known limitations exist with CIM for OS/2 where not all of the strings can be retrieved. This limitation exists for all programs which are using GpiDrawString for the status messages.
Status Match
TRUE when offline "Manager;Exit;"
TRUE when online "Manager;Disconnect;"
Help in debugging your scripts
Start the ScanMon application in your RoboJob folder or use the Alt M shortcut before scheduling a script.

External Utility - RBCatch

Purpose of RBCatch
Query screen output of an OS/2 Text Mode Program.

How to use RBCatch
Run the program you want to monitor under the control of RBCatch. Syntax: RBCatch programname params...
How does it work
Everytime RBScan encounters a USE statement, it will check for RBCatch and query it for the whole screen at every MATCH statement.

External Utility - ScanMon

The ScanMon Utility

External Utility - RBNotify

The RBNotify utility

This small program shows all its Parameters in a Messagebox and accepts up to 800 characters to display.

RBNotify Syntax

RBNotify param1 param2 .... paramn

Note : to force a linebreak in the resulting messagebox use "\n"

Special meaning of a leading @ in parameters

When you specify an @ as the start of a parameter all remaining characters of this parameter are interpreted as a filename. The contents of this file will be copied unmodified to the resulting messagebox.

Note : To specify a leading @ you must enter @@ Examples

RBNotify @file.txt

RBNotify Error \nProgram %PROG% ended with \nRc %RC%

Add this as dependent Job to your queue and enter as criteria !0,CP,CPN,CF,CFN,Error,NoLaunch

This will trigger execution on any returncode except zero and on all conditions specified for regular Jobs

External Utility - ObjStart

ObjStart Overview
ObjStart Syntax 
ObjStart "<objectid>|objecthandle" {settings} ... "objectid|objecthandle" {settings} 
Parameter Description
objectid 
This is the object id assigned when the object was created. 

Note : You can also specify a file or path to open them in the default view.

A program object must be always surrounded by " and "

object handle
This is the persistent object handle shown in the handle column of the ObjSel program. 
settings
They may be specified optionally and must follow the rules outlined in the description of "SysCreateObject". 

Caution : It is not possible to modify the Object Id with this program. Use ObjSel for this task. When specifying set statements there is no translation to uppercase.

External Utility - Object Selector

The Object Selector Utility

External Utility - RoboGraph

This utility is located in the RoboJob folder and comes with its own help.

Registration

How to register

This is a full functional 30 day evaluation version. If you want to use the program after the 30 day limit, you must register.

Just click on the pen icon in the RoboJob Folder for the order form.

New since Version 2.0 is the Registration dialog. After receiving your order and verifying the payment, your key will be sent to you if an email address is specified. This is in addition to the diskette version.

View the list of additional ordering possibilities.

Prices

RoboJob single license (valid for one machine): USD 49.00

RoboJob additional license per machine: USD 29.00

For volume discounts please contact us at one of these addresses.

Shipping & Handling: Europe USD 2.00, elsewhere USD 3.00

Personal cheques are accepted too. Please allow a few days for clearance.

Note : Customers residing within the EC must include their VAT ID or will be charged an additional 20 % VAT.

Additional Registration Sites

Ordering fast and easy
The following companies are pleased to accept your orders

FootNote 1

NPSWPS users who have "Activate Window at Pointer" turned on must use a waiting time greater 0 or the popup menu may not work correctly.

FootNote 2

Single returncode
Either a number or the words CF, CFN, CP, CPN, Error, NoLaunch, Skip

Note : Error and NoLaunch prevent further scheduling of this Job until the Job is changed (edited) by the user.

Conditions
Supported are: ! < > (for numeric values only)
Range
Specify a range of returncodes eg 0-15
List of returncodes
Enter the returncodes (including conditions) separated by ","

FootNote 3

Use "if Address() = "ROB" then do .... end" to check for the correct environment in your Rexx procedure.

FootNote 4

To change fonts open the Font Dialog in the System Folder and drop a font on these areas.

FootNote 5

The following states are defined:

FootNote 6