- 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
- weekdays, months, years in advance
- certain days or months
- New! 1st, 2nd, 3rd, 4th, 5th and last weekday of month
- New! depending on Returncode of other Job(s)
- Update! depending on existence or nonexistence of files
- Update! depending on other programs running or not
- New! Substitution for selected parameters
- User definable holidays
- public holidays
- religious holidays depending on Easter Date
- Missed (overdue) Jobs may be run on startup
- User specified delay for overdue Jobs
- Cancel Option for running Jobs
- Update! Batch Interface provided
- 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
- RBNotify Utility
- Update! ObjSel Utility for easy access to
Object ID's and persistent Object Handles included.
- ObjStart Utility to start customized
sessions
- Fonts and Colors user defineable
- Update! Main Job Display may be customized
- Extensive Logging
- New! Debugging option to the log for complex dependent Jobs.
- Automatic maintenance for logfiles
- Online Help
- Keyboard shortcuts for nearly all
commands
- Automatic conversion from previous versions
- 30 day Evaluation Version not crippled, no "nag screens"
- Support by author via Internet, CompuServe or Fido Mail
- RoboJob Registration via
Compuserve (GO SWREG, ID 11819)
- Object Select Registration via
Compuserve (GO SWREG, ID 13817)
- New! Registration via BMT
Micro available
What's new in Version 2.0
- 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.
- New Commandline Switches in Version 2.01
- Tow
new parameters are available.
- /min to start RoboJob minimized
- /max to start RoboJob maximized
- Registration made easier
- A new
Registration dialog was added. Electronic
registration is now available, no need to wait for the diskette.
- What's fixed since Version 1.60
- Some bugfixes
- Required quotes around HPFS filenames in programs generated a
useless error message
- Job count 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 sayed ibm.com instead
of ibm.net
- Version 2.01: shutdown when minimized or maximized couldn't restore
previous size on next start
- Version 2.01.1: problems with Warp 4 on some machines when
specifying a startupdirectory solved
- Version 2.02: RBinst fixed when user profile was not OS2.INI
Commandline arguments:
Note : No special order is required and they are
independent.
/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.
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.
Job Parameters
Note : All parameters must be uppercase.
- General Parameters for all programs
- %LASTRUN% Date/time of the last run of this Job or NA/NA
if there was no previous run.
- %LASTRC% Returncode from previos run or NA
- %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. January 1st 1, February
1st is 32, etc.
- 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.
Tips and tricks
- Saving the queue
- Use robocmd for this task. Generate a Job, program
is robocmd, parameters \pipe\robojob sav(robojob.que) and schedule it as
often as you like.
- 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.
- Starting .cmd files
- Enter the name of the .cmd
file as program. No more need for quotes around names containing
spaces.
- Dependent Jobs
- You can use any program or
batch file. Use the substitution parameters to
get the infos you need. If you have a program capable of calling a pager
you can be notified when something goes wrong.
- 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.
- 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.
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.
Note : Your selections are preserved when Save
Options is checked.
- 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 dayly 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.
- 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.
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.
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
Most of the commands have keyboard shortcuts
assigned.
- Alt R
- Presents the Registration dialog.
- 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 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 Y
- Presents the Holiday Definition Dialog.
- 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 programm execution. Only if
confirmation is on you may abort this command.
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
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.
delete(jname)
Deletes the Job with title jname if it exists.
run(jname)
Runs the Job with title jname if it exists. Behaves like Ctlr U within RoboJob.
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.
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
successfull.
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.
The RBNotify utility
This small program shows all Parameters in a Messagebox and accepts
up to 800 charcters to display.
RBNotify Syntax
RBNotify param1 param2 .... paramn
Note : to force a linebreak in the resulting
messagebox use "\n"
Example
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
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
statetments 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.
Specifying the Job properties
- Job title
- 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 redirections.
- 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 dayly run or multiple runs a day.
Note : When selecting dependent Job, the
Criterias Dialog will pop up when you
press OK
- Limit
- For multiple dayly runs you may enter a
limit. The Job runs only up to this limit times.
- 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.
- 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 Holdiday Definition Dialog is presented.
- Overdue
- If checked this Job will be executed
on startup if the real execution time has been missed.
- Files exist
- Optional: specify the file or
files (seperated by ; ) which must exist
- Files don't exist
- Optional: specify the file
or files (seperated by ; ) which may not exist
- Programs running
- Optional: specify the program
or programs (seperated 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 (seperated by ; ) which may not be running.
Note : These are the Job Titles or the entries from
the tasklist.
Specifying the dependent Job properties
- 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) that must exist to start the dependent Job.
- File that may not exist
- A list of files
(separated by semicolons) that may not exist to start the dependent Job.
- Programs that must be running
- A list of
program titles (separated by semicolons) that must be running to start
the dependent Job.
- Programs that may not be running
- A list of
program titles (separated by semicolons) that may not be running to
start the dependent Job.
Key to log entries
Except for the "sign on" message 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.
- X and x denote all external activities.
- D and d denote debug information which can be toggled via
Options Enable Debug.
- E denotes a severe error condition.
- $ 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 organisation
- 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
- Job Name
- Show 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.
- 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 empty if never.
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.
Ordering via BMT Micro is available now. Just click
on the icon in the RoboJob Folder for the BMT order form.
Prices
RoboJob single license (valid for one machine): USD 49.00
RoboJob additional license per machine: USD 29.00
For volume discounts please contact me at one of these
addresses.
If you want to order via Compuserve: GO SWREG, ID is
11819
Object Select standalone via Compuserve: GO SWREG,
ID is 13817
Shipping & Handling: Europe USD 2.00, elsewhere USD 3.00
American Express Creditcards welcome.
Note : Customers residing within the EC must
include their VAT ID or will be charged an additional 20 % VAT.
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.
To change fonts open the Font Dialog in the System Folder and drop a
font on these areas.
- Single returncode
- Either a number or the
words CF, CFN, CP, CPN
- 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 ","
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.
- 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 sauer@ibm.net
- Compuserve 100142.3133@compuserve.com
- Fidonet 2:310/24
- Phone
- Fax & BBS: +43 1 294 1014