# RoboJob V 2.35c Features

- 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

# 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:

  - 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.

## 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

- 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.

## 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

- 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.

## RoboJob V 2.10

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

## 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.

- 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 for HelpPanel1

*** Help panel V236Panel ***

# Icons used by RoboJob

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.

# Command Line Arguments

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

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.
  - 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

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:

- 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.

# 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.

- 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.

# 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.

- 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.

# 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
  - 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.

# 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

- This program has its own help. Please use the provided icon in the RoboJob folder.

# 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

- This program has its own help. Please use the provided icon in the RoboJob folder.

# External Utility - RoboGraph

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

# 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

- 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

# 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:

- Active
  - ready to run
- 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.

# FootNote 6

- eMail
  - Internet: benno.sauer@chello.at
- Phone
  - Fax: +43 1 203 5931