One of the most popular ERP (Enterprise Resource Planning) packages running on IBM i is Oracle’s JD Edwards EnterpriseOne. This package has deep roots on IBM i and developed as a new offering with a GUI interface from the JD Edwards World product which used a 5250 text interface.
Like so many software packages, there have been multiple owners of this tool—PeopleSoft purchased JD Edwards (who renamed the package EnterpriseOne) then Oracle purchased PeopleSoft and they continue to sell and support the EnterpriseOne package—but the one consistent factor with this ERP package is the continued and loyal install base on IBM i.
There are, however, several challenges when it comes to automating this ERP tool. There are two options for job scheduling when you are involved with EnterpriseOne: use the scheduler built into EnterpriseOne or use an external schedule.
The internal scheduler is optimized for EnterpriseOne tasks but its design is very simple and does not allow for much flexibility or notification if things go wrong. Additionally, much of its terminology is foreign to IBM i administrators and programmers and it also does not allow for integrating with jobs outside of the EnterpriseOne package.
An external scheduler gives you the ability to take advantage of the feature-rich options that can also integrate with your other applications outside of EnterpriseOne and the enterprise. Communicating to the EnterpriseOne application requires use of the “RUNUBE” command. A UBE is the EnterpriseOne “universal batch engine” used to run updates and reports in the product rather than a direct call to a program.
Unfortunately, if you use the RUNUBE command alone, you may not have a true completion code returned to your IBM i batch job; it may have completed normally, abnormally, or it may still be running! And you are passing user ID and password information in clear text back to EnterpriseOne as well!
- True job completion status
- Variable parameters
- Secure user ID and password
React to True EnterpriseOne Job Completion
With the Robot Schedule “reactive job” feature, you can implement job- and event-based dependencies for sequential or concurrent processes that react immediately or at a planned time. The EnterpriseOne interface interrogates the EnterpriseOne job tables for the actual completion status. Using the job history in EnterpriseOne, the EnterpriseOne interface checks for the true completion status so jobs can run in reaction to the completion of an EnterpriseOne job or EnterpriseOne jobs can run in reaction to external jobs.
Figure 1: Reactive job flow
Flexible Data Selection
The EnterpriseOne interface manages data selection to your UBE reports and updates. It does this by allowing you to create a “data selection object” that can contain Robot Schedule reserved command variables (dynamic values) or static values (see figure 2). The EnterpriseOne interface knows the parameters in your UBEs as defined by EnterpriseOne. UBEs can then be changed based on user-defined criteria, reducing the number of UBEs to create in the EnterpriseOne product and adding flexibility to your scheduling. Simply schedule the RBJRUNUBE command in Robot Schedule and run unattended.
Figure 2: Data selection object with variable data
The RBJRUNUBE Command
The RUNUBE command is replaced with the Robot version, the RBJRUNUBE command. This command must run inside a Robot Schedule job and has several parameters that are similar to the RUNUBE command but has an additional parameter for the data selection object and logging (see figure 3).
Figure 3: The RBJRUNUBE command
Reporting and Security
Running the RUNUBE command can expose systems to security threats. RUNUBE requires a profile and password that are passed along and ultimately display in the job log of the process—visible to any user on the system. The EnterpriseOne interface encrypts the EnterpriseOne password used to run a job so jobs are secure and auditors can rest assured that EnterpriseOne business data is safe. The user profile object contains the credentials that will be passed into EnterpriseOne to run the UBE. If the password changes in EnterpriseOne or on a remote IBM i system, you only have one place to maintain the password rather than on every RUNUBE command scheduled.
Figure 4: User profile objects
The EnterpriseOne interface also has a security feature that restricts the rights to work with and change the EnterpriseOne objects and setup within the interface. Plus, the EnterpriseOne logs can also be copied to IBM i spooled files—making it easy to display or print them to help identify a problem—simply by specifying the need to create a comma-separated values (CSV) file as output when running an EnterpriseOne job.
Robust Scheduling and Beyond
In addition to handling all EnterpriseOne scheduling needs, Robot Schedule can run jobs on specific days of the month, a specific date, at specified intervals, or based on exceptions that override the regular schedule, automatically skipping holidays for example. Robot Schedule can group jobs into a job stream, with each job reacting to the completion of the previous job(s). Other exceptions can be incorporated so that manually overriding jobs is not necessary.
If an EnterpriseOne job ends abnormally, takes too long, or doesn’t get started on time, you can use Robot Alert to send an email or text message to the appropriate person, ensuring that the problem is resolved quickly. Plus, manage interactive, batch, even Windows or UNIX/Linux jobs across partitions or servers from a central location by incorporating Robot Network, and add Robot Schedule Enterprise for event-based scheduling between EnterpriseOne jobs and Windows, UNIX, or Linux tasks or file dependencies.
If you are spending too much time and effort managing and coordinating your schedules, see how Cascade Corporation uses the EnterpriseOne interface to ensure true completion codes, reliable inter-process dependencies, and fewer UBEs to maintain.