One of the delights of being a technical professional is getting to test the software products of other developers. Even better is finding a product that is easy to install and that integrates well into your environment. With Robot/SCHEDULE from Help/Systems Inc., developers can delight in having both.
Robot/SCHEDULE is a much-enhanced replacement for the IBM Advanced Job Scheduler for the iSeries. With Version 8.0, Help/Systems has introduced improvements that should keep the product at the top of its game for the iSeries.
Getting Robot/SCHEDULE up and running is about as difficult as eating ice cream. Place the installation CD-ROM in your iSeries optical drive, type LODRUN *OPT on the command line, and press Enter. The instructions are so intuitive, even a Luddite could understand them without the manual. And the client GUI side of Robot/SCHEDULE is just as easy. Place the same CD-ROM in your PC's CD-ROM drive, and at the Run prompt, type the following (where x: is the letter for your CD-ROM drive):
Then press Enter. The next step could be the hardest part of the GUI installation process. Do you know the TCP/IP alias of your AS/400? If so, Robot/SCHEDULE will grab the IP address for you when you press Tab. If not, then either ask your iSeries security administrator or type GO CFGTCP on the OS/400 command line and take option 10 to discover your system's IP address.
Now you've installed Robot/SCHEDULE. That was easy enough to do, so the configuration of this product must be incredibly perturbing, right? Wrong! Start Robot/SCHEDULE by typing the following two commands:
• ADDLIBLE ROBOTLIB • RBM
Figure 1: Robot/ SCHEDULE Main Menu (click figure to enlarge)
The menu shown in Figure 1 will come up. You will use option 4, System Setup Menu, to set up the application defaults, as shown in Figure 2. If any of the options on this display are unclear, you can check the manual or simply press the F1 key to see all options explained in their entirety.
Figure 2: Setting Up Robot/SCHEDULE System Defaults (click figure to enlarge)
The only options that may require greater explanation are those referring to Robot/SCHEDULE functions. Delay ROBOT startup refers to how many minutes you want Robot/SCHEDULE to wait for processing after the subsystem is brought online. As you can imagine, this would be good for those times the system goes down and a few moments are needed for tasks such as cleanup processing. ROBOT security and submit-delay refer to overriding OS/400's security and job delay by using the functions available within the Robot/SCHEDULE product.
Let's Get Started
Now that the application defaults are set, go back to Figure 1 and take menu option 1 to get to the list of jobs to be scheduled. Robot/SCHEDULE ships with a number of pre-set jobs that are initially set to hold status. Pressing F6 will take you to the Initial Job Setup screen. For the purposes of this article, a job named BDBCKUP has been described and defined as a deliberate bad backup program that will run on Sunday at 14:00 (2:00 p.m.). This part of the Robot/SCHEDULE setup and program creation took less than six minutes.
Figure 3: Advanced Scheduling Options for BDBCKUP (click figure to enlarge)
Figure 3 shows the Advanced Scheduling menu you can reach by pressing F10 from the Initial Job Setup screen. The Advanced Scheduling screen allows you to select numerous options for further tailoring of your Robot/SCHEDULE job run. In this case, BDBCKUP will start running on 7/01/01 and will run every seven days thereafter as long as the run date has been deemed a "Non-working" day. Robot/SCHEDULE has an internal calendar where you can define these various day types.
Will this process work? The answer is yes and no. The job will bomb off. A T (terminated) code in the status column for Sunday will indicate this within the job schedule list of Robot/SCHEDULE. This status also happens to be the status of the last job run. But, as stated previously, this job was not supposed to work, so we got what we wanted. After BDBCKUP was fixed and 14:05 was set as the next scheduled run time, the job processed once more. The scheduled run time will revert to 14:00 again after the job correctly completes its run, as will be denoted by a completion code of C under the SN column on the Job Status screen.
Multiple Commands in Robot/SCHEDULE
One helpful feature that Robot/SCHEDULE has that the native IBM Advanced Job Scheduler does not is the ability to run multiple commands within a particular job. Figure 4 shows a Job Type of C, which means that this Robot job will execute a number of commands instead of a program call (type P) as used in the BDBCKUP example. The job called QCKANZ will run a series of commands beginning at 14:15 on Sunday. For the purposes of testing, the commands that were run in this mock-up example are:
• WRKACTJOB OUTPUT(*PRINT) CPUPCTLMT(.1) • WRKJOBQ OUTPUT(*PRINT) • WRKOUTQ QPRINT
To insert more commands, place a 7 in the Opt column to the right of a command line.
Figure 4: Defining a Robot/SCHEDULE Commands Job (click figure to enlarge)
Reactive Programs in Robot/SCHEDULE
The reactive program feature saved my neck earlier in my career when I was a computer operator. At that time, my company had a constantly evolving system backup process for its new AS/400. As we learned more about the system, the backup process became more reliable, but early on, arrival at the office meant some fierce stares when the backup process had terminated and the system was not up. Having a program that reacted to a terminated backup with recovery procedures really saved face!
Scheduling a reactive job is easy. As Figure 5 shows, a reactive job is scheduled just like the previous examples, except you leave the time and the day blank and press F10 to get to the Advanced Scheduling screen. At the Advanced Scheduling screen, mark the REACT line with an X and follow the instructions to specify which job process to react to. In this case, the DPNDNCY process will react to the BDBCKUP process termination (denoted by a T status).
Figure 5: Defining a Robot/SCHEDULE Reactive Job (click figure to enlarge)
The Robot/SCHEDULE job DPNDNCY will start running with a status of R when BDBCKUP terminates. In a real shop, the DPNDNCY process could perform some file reorganizations, a system power-down with a restart, and perhaps some other company-specific functions. Or perhaps it would simply bring subsystems QINTER, QSPL, and QBATCH back up. The variety of uses for reactive jobs can be as varied as the creativity of the programmer.
But That's Not All!
Robot/SCHEDULE has many other powerful features. One feature that I will mention only briefly here is a fourth-generation language called OPAL (Operator Assisted Language) that ships with Robot/SCHEDULE. OPAL is a scripting language that allows the user to build a conditional script for operations to be performed under certain conditions. As noted in the OPAL Reference Guide, the scripting features are generally used for six tasks:
- Checking for conditions that can cause a failure and fixing them
- Skipping or delaying a job
- Reading or changing a job setup
- Reading or changing a job environment
- Reading or changing a data area
- Checking the current status of objects or resources
OPAL scripts can assist the operator by automatically addressing some operation problems during the off-hours.
Who Said GUI?
Yes, Robot/SCHEDULE has a Windows client with a GUI, as I mentioned earlier. All of the features described previously are available in the Windows client GUI version. You like pull-downs? Robot/SCHEDULE GUI has them! You like to click on the Apply button? Robot/SCHEDULE GUI has that too! And best of all, if some of your staff members prefer 5250 and some prefer the Windows environment, you can have both!
All in all, Robot/SCHEDULE is a powerful, mature replacement for the native job scheduler on the IBM iSeries platform. Its rich feature set and advanced scheduling features can enable iSeries shops to automate many routine processes, improving efficiency and reliability. Robot/SCHEDULE pricing varies by processor and platform.
Vincent B. Goldsby has been a programmer analyst on the System/38 and AS/400 for over 15 years. Currently, he is a senior programmer analyst specializing in RPG IV, VisualAge RPG, and Java. Vincent also is a Certified IBM Specialist/RPG Programmer who independently teaches courses in RPG IV, ILE, and Begininng Java. He can be contacted at Vincent_Goldsby@msn.com.
Robot/SCHEDULE ($3,030 to $21,735)
6101 Baker Road
Minnetonka, MN 55345