- 32 Bit Multithreaded PM Job Scheduler and Program Launcher
- Smart Program Type autodetection
- All program types supported:
- PM, OS/2, DOS & MS Windows
- Low CPU usage
- Job Termination Watch includes return code
- Jobs may be scheduled
- daily
- multiple runs daily even across midnight
- weekdays, months, years in advance
- certain days or months
- 1st, 2nd, 3rd, 4th, 5th and last weekday of month
- depending on Returncode of other Job(s)
- depending on existence or nonexistence of files
- depending on other programs running or not
- On RoboJob startup
- Update! Substitution for selected parameters
- Rexx exits before a Job starts and after a Job
ends
- User definable holidays
- public holidays
- religious holidays depending on Easter Date
- Fonts for windowed Jobs (OS/2 & DOS)
may be specified.
- Automatic window position memory for your Jobs.
- Missed (overdue) Jobs may be run on startup
- User specified delay for overdue Jobs on startup
- Cancel Option for running Jobs (when started by RoboJob)
- Batch Interface now with enhanced speed.
- adding, deleting and launching of Jobs
- define characteristics for RoboJob
- from another task on the same machine
- across the lan
- registered version comes with example source code
- interface to RoboGraph Utility
- Access to Window Handle and/or Process ID of running programs via
parameter substitution.
- RBScan external utility for automating
other programs. Comes with its own Debugger!
- RBNotify Utility
- RBCatch Utility
- ObjSel Utility for easy access to Object
ID's and persistent Object Handles included.
- ObjStart Utility to start customized
sessions
- Fonts and Colors user definable
- Main Job Display may be customized
- Extensive Logging
- Debugging option to the log for complex dependent Jobs.
- Automatic maintenance for logfiles
- Update! Online Help including a "Tips and Tricks" section
- Keyboard shortcuts for nearly all
commands
- Automatic queue and options conversion from previous versions
- 30 day Evaluation Version not crippled, no "nag screens"
- Support by author via Internet
- Registration via BMT Micro
available
- WWW ordering available
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
- 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:
- if the icon type is XGA only the default objstart icon will be
shown.
- For objects created by programs without an icon setting the default
objstart icon will be shown.
- 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.
- 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.
- 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.
- 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".
- 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.
- 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.
- 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
- Hopefully fixed 'window not created' bug on Warp Server SMP machines
- The hot key for releasing all Jobs was Ctrl-Alt-l instead of Ctrl-l
- Help for Help panel was missing.
- RoboJob could not start when Rexx was not installed.
- One field in the status line couldn't restore font.
- Rexx exit procedure button didn't preload correctly.
- Rexx exit dialog input field alignment.
- Property dialog cosmetic problems at low resolution.
- 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
- RoboCmd returned DOS Error 123 when started from a VDM.
- Jobs with nonexistent programs were not marked with the question
mark.
- Jobs with nonexistent programs couldn't be deleted right after Job
creation.
- PM programs were started by default in a maximized state.
- Loading a queue with RoboCmd while editing a Job could destroy icon
information.
- Hints for button bar are not aware of the current Job status.
- What's new in Version 2.10
- Two new parameters are
available.
- /min to start RoboJob minimized
- /max to start RoboJob maximized
- 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
- shutdown when minimized or maximized couldn't restore previous size
on next start
- problems with Warp 4 on some machines when specifying a
startupdirectory solved
- RBinst fixed when user profile was not OS2.INI
- Quoting commandlines for .cmd files was missing
- Autoquoting for substitution parameters was missing
- Help was (sometimes) truncated
- Help index was not provided
- RBNotify requirement special x'ff' encoding of parameters removed
- Status line didn't reflect changes after receiving external commands
- Run now was not reset for Jobs with RC of 'Error' after editing
- The 'Error' RC didn't trigger dependent Jobs
- Dependent Jobs testing for RC 0 were triggered by CP, CPN, CF, CFN,
Error
- Some combinations of holidays delayed Jobs indefinitely
- Documentation errors and omissions
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.
- Every last day of a month
- Every 1st weekday(s) of specified month(s)
- Every 2nd to 5th weekdays(s) of specified month(s)
- Every last weekdays(s) of specified month(s)
- Jobs that are depending of other Jobs returncodes
- Jobs that are depending of the existence or non existence of file(s)
- Jobs that are depending of other programs running or not running
- Because the conditions involved may become complex, a Debug Options
was added
- RBNotify, a new external utility has
been added.
- Substitution for selected parameters.
- 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
- Required quotes around HPFS filenames in programs generated a
useless error message
- Job count in status display was not decremented on delete
- Holiday selection was not always preserved
- Queue was not saved on OS/2 shutdown
- Options were not saved on OS/2 shutdown
- Leaving RoboJob with the Log hidden had a display problem on the
next start
- Menu options were not disabled if they had no meaning for the
particular Job
- The Compuserve Internet address should have a ., not a ,
- The footnote in the Registration Help section said ibm.com instead
of ibm.net
*** Help panel V236Panel ***
- The Toolbar
- A quick way to most common functions
- click Plus Button to Add a new Job.
- click Trash Button to Delete the selected Job.
- click Note Button to Edit the selected Job.
- click Checkmark Button to Copy the selected Job.
- click Funeral Button to Cancel the selected Job.
- click Plane Button to Launch the selected Job.
- click Questionmark Button to View the online help.
- click Door Button to Exit RoboJob.
- 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.
indicates a PM program.
indicates an OS/2 Rexx program.
indicates an OS/2 Windowed session.
indicates an OS/2 Fullscreen session.
indicates a Dos Windowed session.
indicates a Dos Fullscreen session.
indicates a Windows session.
The program type could not be identified.
- Commandline arguments:
- Starting RoboJob
- Command Line Arguments
- click
to Add a new Job
- click
to Delete the selected Job.
- click
to Edit the selected Job.
- click
to Copy the selected Job.
- click
to Cancel the selected Job.
- click
to terminate RoboJob.
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
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.
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.
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.
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.
- You must have saved a font in OS/2 with the Font Size dialog
of a windowed session.
- Look at Frequently Asked Questions for an
explanation.
- The Job must be either a DOS or OS/2 windowed program.
- 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
Select the desired font size and click on Done or click on Cancel to
abort the selection.
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
- 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:
- Returning the string NoLaunch will prohibit the start of the
current Job with an error of "NoLaunch"
- Returning the string Skip will mark the Job as finished.
- Returning the string Comment will copy the remainder of the
string to the log with a key of "C"
Note : In case of NoLaunch this condition will
prevent any further scheduling of this Job until it is edited by the
user.
Any extra characters after NoLaunch and Skip will be used as a
comment and will be shown in the Log with a key of "c".
- Returning the string ProgParm will replace the %PROGPARM% in
the commandline of the corresponding program
Note : An example progparm.cmd can be found in the
RoboJob folder.
- 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.
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.
Job Parameters
Note : All parameters must be uppercase.
- General Parameters for all programs
- %JOBNAME% The name you have given the Job.
- %LASTRUN% Date/time of the last run of this Job or
NA/NA if there was no previous run.
- %LASTRC% Returncode from previous run or NA
- %COUNT% Number of executions for repeated daily
Jobs
- %YEAR% Current year as yyyy
- %MONTH% Current month as mm
- %DAY% Current day as dd
- %DATE% Current date as yyyy.mm.dd
- %TIME% Current time as hh:mm:ss
- %HOUR% Current hour as hh
- %MINUTE% Current minute as mm
- %SECOND% Current second as ss
- %DAYOFWEEK% Day of week in the range 0 to 6 where 0
is Sunday, 1 Monday etc.
- %DAYOFYEAR% Current day of year (ddd). January 1st
1, February 1st is 32, etc.
- %ISHOLIDAY% Substitutes to Yes for a holiday or No
if not
- %STARTCOUNT% The number of starts of RoboJob since
last OS/2 start.
- %APPHAN(progname)% The Window
Handle of a running program
- %APPPID(progname)% The PID of a
running program
- %PROGPARM% This parameter will be substituted for
the corresponding return value of a Rexx script on startup.
Caution : You must supply the required program
name!
If it can't be found in the tasklist, ??? is returned as parameter.
- Parameters special for Dependent Jobs
- %PROG% The Job Title of the offending Program when
a returncode conditions triggers execution or the specified program was
not running.
- %NOPROG% The specified program was found to be
running.
- %FILE% The specified file was not found.
- %NOFILE% The specified file was found.
- %RC% The returncode which triggered execution of
the dependent Job.
- %HANDLE% The window handle of the program which
triggered execution of the dependent Job.
- %PID% The process id of the program which
triggered execution of the dependent Job.
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.
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
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.
Key to log entries
Except for the "sign on and off" messages every log entry consists of
three parts.
- Identification character
- I and i are RoboJob log entries with informational character.
- ! denotes a severe action like cancelling a Job.
- ? denotes a situation like a condition not met when trying to start
a Job or resuming logging.
- X and x denote all external activities.
- D and d denote debug information which can be toggled via the
Options Menu.
- N and n denote network related information. Options Enable Debug.
- C and c denote a comment returned by a Rexx
Exit procedure.
- E denotes a severe error condition.
- P denotes a comment added by the RoboCmd
com("text") command.
- $ denotes the time left for evaluation in the unregistered version
only.
- Timestamp
- Exact time the log entry has been generated
- Message text
- Plain English message text.
- Log organization
- The latest message is always shown on top of the display.
- When saving the log to disk it is written in chronological order.
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.
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.
- 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.
- 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
- Script filename
- Optional. Name of a log file for debugging.
- The RBScan script format
- The script consists of blocks
of 4 lines.
- line: Label. Must start with a :
- 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.
|
- line: Action to perform when line 2 evaluates to TRUE
- 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
- GO :label [delay in seconds]
- QUIT [rc]
- 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.
- 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.
The ScanMon Utility
- This program has its own help. Please use the provided icon in the
RoboJob folder.
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
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.
The Object Selector Utility
- This program has its own help. Please use the provided icon in the
RoboJob folder.
This utility is located in the RoboJob folder and comes with its
own help.
- The Hotkey Alt+V has been added to start the RoboGraph
utility from RoboJob.
- With Ctrl+O control the log to show RoboGraph connections
made.
- For updates have a look at the RoboGraph online help
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.
- Ordering fast and easy
- The following companies are
pleased to accept your orders
- BMT Micro (Worldwide)
Note : BMT order applet.
To place an online order you must be connected to the Web. TCP/IP
must be installed.
Applet used with permission of BMT Micro Inc.
BMT Micro, Inc.
PO Box 15016
Wilmington, NC 28408
USA
800-414-4268 (Voice - USA/Canada)
800-346-1672 (Fax - USA/Canada)
910-791-7052 (Voice)
910-350-2937 (Fax)
bmt@bmtmicro.com (Inquires, general info)
orders@bmtmicro.com (orders)
bmtmicro (AOL, America Online)
74031,307 (Compuserve)
bmtmicro (MSN, Microsoft Network)
HNGP66D (Prodigy)
http://www.bmtmicro.com
ftp.bmtmicro.com/bmtmicro
- BMT Micro - Australasia (Australia, New Zealand, Japan, Indonesia)
Franklin Information Management aka BMT Micro Australasia
PO Box 980
Artarmon, NSW 2064
Australia
bmtaust@frankson.aus.net
+61-(02) 9988-3385 (Voice)
+61-(02) 9988-3081 (Fax)
- Deckarm & Co
OS/2 SoftwareShop
Maxplatz 10
66386 St Ingbert
Deutschland
Telefon +49 68 94/92 93 0
Telefax +49 68 94/92 93 94
Web http://www.dco.net
eMail: adeckarm@dco.net
- Indelible Blue - (via Web, Worldwide)
http://www.indelible-blue.com/
- Mensys (Netherlands)
Crayenestersingel 65
2012 PG Haarlem
The Netherlands
31-(0)23-548-2020 (Voice)
31-(0)23-548-2030 (Fax)
mensys@euronet.nl
http://www.mensys.nl
- Minzloff Data (Switzerland)
16 Leonhardsberg
CH-4051 Basel
Switzerland
41-61-261-4459 (Voice)
41-61-261-4451 (Fax)
minzloff@minzdat.ch
http://www.minzdat.ch
- OS/2 Supersite (Worldwide)
http://www.os2ss.com/
- TooSoft HB
Box 4052
183 04 Taby
Sweden
46-(0)8 732-3522 (Phone/Fax)
toosoft@toosoft.se
http://www.toosoft.se
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.
- 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 ","
Use "if Address() = "ROB" then do .... end" to check for the correct
environment in your Rexx procedure.
To change fonts open the Font Dialog in the System Folder and drop a
font on these areas.
The following states are defined:
- Active
- Dependent
- This Job depends on the state of other Jobs or files or programs.
There is no fixed scheduled date or time.
- Excluded
- This Job is a dependent Job for which exclusion times are in effect.
- Suspended
- Scheduling for this Job is suspended. Use Resume to return this Job
to Active state.
- Missed
- Execution time for this Job has been missed. Automatic rescheduling
will select the next possible execution time.
- Finished
- This Job has finished. Next state will be Delayed.
- Delayed
- Denotes the process of rescheduling. Next state will be Active.
- Running
- This Job is running right now.
- Error starting
- This Job couldn't be started. Have a look at the log for the reason
why.
- eMail
- Internet: benno.sauer@chello.at
- Phone