Monday 3 July 2017

A better scheduler for JD Edwards EnterpriseOne

The Cantara Integration Platform provides a powerful solution for creating RESTful services for Oracle JD Edwards EnterpriseOne as well as a comprehensive platform of mobile applications and client software development kits for mobile and desktop applications.

What you may not know is that the solution also incorporates a powerful batch scheduling tool at no extra cost. The scheduling platform overcomes a number of key deficiencies in the standard JD Edwards EnterpriseOne batch scheduler and at a price point that makes deployment an easy decision.

So, what are the key pain points of the JD Edwards EnterpriseOne batch scheduler and how does the Cantara Advanced Job Scheduler overcome these?

Dependency Management

There are only two ways to deal with inter-job dependencies with the standard JD Edwards scheduler and neither of them are very appealing. The first, not so safe way, is to just make sure that jobs are scheduled far enough apart that the first job is finished before the second one starts. Of course, there is no guarantee that the first job will not be held up unexpectedly and the second job will just kick off any way.

The second, more common method, is to schedule all dependent jobs in a single threaded queue. Unfortunately, this is a very inefficient method and leads to extended batch processing windows, especially when there are multiple jobs involved.

The Cantara Advanced Job Scheduler has a very clever way of overcoming this problem and making the overall batch schedule much easier to manage. The first element is to enable batch jobs to be scheduled in groups with dependency definition within the group. The second element to the solution is the ability to define dependencies between groups. Let’s look at these two elements in more detail.

Group Scheduling

Generally, day end processing incorporates several closely related batch jobs that must be appropriately sequenced. A good example of this the manufacturing day end batch jobs. Within the Cantara scheduler can you can define a manufacturing day end group and place within this the manufacturing accounting and work order commitments repost batch jobs. You can define the group as being sequential on success, which basically means that each job within the group must complete before the next job is submitted in the order specified. What this means that rather than having to schedule 5 batch jobs independently, the user only needs to schedule the group. If any of the jobs fails then the group will stop processing and a notification email will be sent to the designated monitor for that group. Cantara also supports parallel submission within a group if dependency is not an issue.

Group Dependencies

On top of group scheduling, Cantara then allows the definition of inter-group dependencies. So, to use the manufacturing account group example, you can also define a GL batch post group and make this dependent on the completion of the manufacturing accounting group. Cantara supports multiple dependency types include submit on success, submit on completion (even in the prior group has errored) or submit on start which means that group b won’t start before group a but can run in parallel.

The added benefit of inter-group dependencies is that a single group can be dependent on the completion of an unlimited number of other groups. In the case of GL batch post, we may require that manufacturing accounting, sales day end and AR/AP processing have been completed before the GL batch post is submitted. This enables users to schedule the three prior groups to run in parallel thus maximizing system utilization and minimizing the window within which the day end processing must run.

Schedule Monitoring

The JD Edwards schedule does not contain any effective method of schedule monitoring and thus organizations generally must revert to third party tools that monitor the JD Edwards database. This approach is complicated and not easily repeatable as the parameters that constitute failure tends to differ between jobs.

The Cantara Advanced Job Scheduler has a simple monitoring and notification system that allows users to define notification triggers and to incorporate standard enterprise system monitoring tools if required. Not only does Cantara monitor the state of the submitted batch job but it also tracks the run time of the scheduling group. Users can define a minimum, target and maximum run time for each group and can decide if a group executing outside of these tolerances constitutes a failure. The maximum run time is an easy metric and generally indicates that a batch job has encountered a problem either through incorrect data selection, invalid processing logic that has caused an infinite loop or system performance problems. As soon as the maximum run time is exceeded a notification is sent the group monitor informing of the issue and Cantara can also cease execution of the group in this instance based on group configuration. The minimum run time threshold is utilized to ensure that a scheduled group has completed some data processing. There’s nothing worse that assuming the batch job has processed successfully only to find that all the report displays is a message stating “No Data Selected”.

In addition to this, enterprise monitoring tools can interrogate the state of the batch scheduler and check for failed groups either through REST services published by Cantara or direct access to the Cantara scheduler database if preferred.

Job Output from Cantara Console or via notification

Cantara allows access to the PDF or CSV output of JD Edwards batch jobs directly from the Cantara Administration Console. In addition, you can choose to have these outputs emailed to one or more subscribers automatically on job completion.

Restarting the Scheduler

How many times has an organization stop their batch scheduler for a period of time, forgotten to purge the missed jobs, restarted the scheduler and then seen their batch queue fill with jobs that are not required. The Cantara Advanced Job Scheduler provides a simple method to deal with this situation. There are two options for each scheduled group. The first is to just skip the execution until the next scheduled trigger point and the second is to submit the group once immediately before then resuming the normal schedule. As Cantara still maintains dependencies between groups it makes stopping and starting the scheduler a painless experience.

Exclusion periods

One common requirement for organizations is to prevent jobs like GL batch post from running whilst month end processing is being carried out. For most, this requires the schedule to be manually adjusted to disable the jobs and then another adjustment to reenable them which can be a tedious process. The Cantara scheduler allows for exclusion calendars to be defined and applied to multiple scheduling groups. In simple terms, you may choose to have a batch post job run every 15 minutes and then exclude execution for three days during month end processing so that it can be run manually as required.

Processing Option overrides and Variables

A common headache for users of the JD Edwards scheduler is the requirement to actively maintain processing options and data selection that incorporates things like processing date, current financial period, or multiple changing business units. The Cantara scheduler overcomes this limitation with a couple of powerful features. The first is that the Cantara scheduler can override processing options and data selection on report submission. This allows users to define a single version within JD Edwards and then reuse that version multiple times, with different processing options and data selection, within the Cantara scheduler. So, when changes are required, especially to data selection, it is no longer a requirement for the version to be promoted through multiple environments and for a JD Edwards package to be built and deployed for those change to take effect.

The second feature is the use of variables within processing options, report interconnects and data selection. Let’s say for example that you have multiple reports which all require the current financial period to be defined. Within Cantara you would define a variable that equates to the current financial period and then apply this variable to each of the reports that requires it. Now a change to the variable value is automatically applied to all reports that utilize that variable making period close and changes a simple task. In addition, Cantara variables support basically calendar arithmetic. This allows users to define data selection and processing option dates that are calculated from today’s date. This means you can now set a report processing date to be Today minus or plus any number of days.

Complex Scheduling Patterns

With the Cantara scheduler, a wide range of scheduling patterns can be achieved. No longer are you limited to a static interval based of a start time. You can choose simple patterns like run every 10 minutes or 24 hours up to far more complex patterns such as run at 5:30pm every Mon, Wed and Fri and only in the months of October to December. In addition, Cantara is JD Edwards date pattern aware which means jobs can be scheduled based on the financial date pattern of any company. You may wish to schedule jobs to run on the last day of the period or the first weekday of the period or the last Friday of every quarter. All of these options are possible with the Cantara scheduler and, combined with the advanced dependency management, an extremely efficient and robust job schedule can be defined for any organization.

High Availability and Load Balancing

A major pain point for organizations that are required to meet strict service level agreements and availability targets is the fragility of the JD Edwards scheduler. The Cantara Advanced Job Scheduler overcomes this issue in two ways. Firstly, the Cantara Integration Platform supports horizontal scaling which means that multiple Cantara instances can run the same schedule at the same time. Thus, if a single Cantara instance fails the schedule will continue to run as expected. Secondly, the Cantara Integration Platform supports load balancing and fail over between JD Edwards batch servers. No longer is the JD Edwards schedule required to run on a single JD Edwards enterprise server and the processing can be spread across multiple servers. If any single batch server fails, Cantara automatically removes it from the group and continues processing on the remaining servers. In addition, Cantara batch server groups are self-healing so if it detects that the batch server has resumed operation it will be automatically included back in the group.

Multiple Environments

The Cantara scheduler allows scheduling across multiple JD Edwards environments. For example, you may choose to define a full job schedule against the CRP environment before changing over to the UAT and then finally the production environment. Alternatively, you may choose to have a mixed schedule with some jobs running in production and other running in non-production. All of these options are available with the Cantara scheduler.

Non-JD Edwards Scheduling

Cantara provides a flexible extension framework which can be included in the job schedule. This means that jobs that are not part of JD Edwards can be incorporated into the schedule, including dependencies. Out of the box Cantara comes with extensions for script execution (for all platforms) and AIS service execution. An example of where this is useful would be to kick of ETL jobs that extract data into a data warehouse once the day end processing has completed. Another option would be to populate Z Tables within JDE prior to executing the import batch job. Extensions can be written for any number of different applications and situations and therefore greatly extend the reach and flexibility of the Cantara Advanced Job Scheduler.

In summary, the Cantara Advanced Job Scheduler is everything that the standard JD Edwards batch scheduler is not. Combine this with Oracle Validated Integration and all of the integration and mobility features of the Cantara Integration Platform and you have a powerful tool to greatly improve the performance of your ERP platform. If you would like further details on how the Cantara Advanced Job Scheduler can be utilized within your business, please contact us at Rinami.

Monday 10 April 2017

Work Order Activity Rules OK?

Setting up your work order activity rules for equipment or service management work orders is a critical piece of the puzzle. This is a quick guide on how it's done and what to consider for different types of orders.

Tip #1: Do not use numeric work order statuses for equipment and service work orders if you can avoid it. The reason being is that manufacturing work orders require numeric status values and mixing the two together can cause all sorts of head aches. And don't fall into the trap of thinking you'll never use manufacturing work orders because chances are you will, especially if you assemble kits or have rotable items.

For this post we'll use a corrective maintenance work order for the example. Order activity rules are defined by the combination of document type and work order type so in this example we will use WM for our maintenance orders with a type 1 which indicates are corrective as opposed to say a preventative activity.

Work order activity rules are defined by application P4826. Here are the rules we have set for this order type:

The first line item shown is the default status for this work order type. Because this is a corrective work order we are creating the order at effectively an unapproved status. Now you can have workflow kick in for the process of approvals but that is outside of the scope of this post. The Next Status field defines the default next status for the work order. The fields Allowed Status 1 through 5 define alternative allowed statuses.

So for a corrective work order at status M the options are to either approve the work by moving it to status MA or alternatively to reject the work request by moving it to status MM which is cancelled.

The other columns in the grid are as follows:

  • Subledger Inactive - when set to I this prevents any financial transactions being created or updated on a work order at this status. So it in effect locks the subledger.
  • Maint. Status - if this work order is linked to a PM Schedule record a move to this status will cause the PM Schedule item to change status.
  • Alert Status - if this work order is linked to a Condition Based Maintenance alert then moving to the selected status will update the associated alert to the defined status in this column.
  • Lock Flag - this determines whether changes can be made to the work order at this status. There are multiple options which will cover further in this post.
  • Edit Authority - this indicates the role that can make changes to claims at each status within Warranty Management. This is outside of the scope of this post.
So coming back to the first line, you can see that the subledger is inactive but the work order is open to being updated. The inactive flag is set at this status because we do not want users performing any transactions against an unapproved order. This includes being able to raise either requisitions or purchase orders against this work order.

You'll note the last line on this status flow is MM and there are no alternative statuses available. So if a user changes the work order status to cancelled then they will be unable to change the status.

With the subsequent lines we then define a default status plus a number of alternative statuses. Overall these rules should follow your business process flow for work orders. In this example the important points to note are:

  1. Once the order is approved there is still no ability to raise requisitions or purchase orders against it. The order must be moved to W/O in PLanning or higher status. You can also still choose to cancel the order at this point.
  2. W/O in Planning allows subledger transactions. Whilst this is required as the planner may need to raise orders against it, this does mean that one of the key controls to prevent actual financial transactions from being executed has been removed. That is, a user may be able to book time against a work order still in a planning state.
  3. The MH status is effectively the status where the work starts. All statuses up to this point are different states of planning.
  4. In this example, a work order at MH status can still be cancelled. This may not be appropriate as it is not recommended that a work order with costs already booked to it is cancelled. You may wish to introduce an alternative status for orders that are closed without the work being successfully completed.
  5. MJ status indicates that the all work order the order has been completed. We cannot lock the subledger at this status because there will still be financial transactions to complete. One of the main pain points for this is the processing of accounts payable. Without an unlocked subledger you will be unable to match vouchers. You'll notice at MJ status we set the locked flag to 3. This means that the work order can still be modified but when this status change occurs the completed date will be automatically populated.
  6. MK is the closed status of the work order where all financial activities have been completed. The lock flag is now changed to 4 to prevent any changes to the order. We still allow the status to move back to MJ as there may be a requirement to book further costs to the order.
Tip #2: If you are using PM schedules or Condition Based Maintenance alerts then MJ would be the status where you update the related record status. So in the case of the PM Schedule you would set the status 99 to indicate that the work has been completed and the PM task can be scheduled again. With the CBM alert you would set it to work completed so that it can be closed out.

Obviously you can make your work order status flows as complex or as simple as you wish. As minimum it is recommended that you have at least the following statuses:
  1. Work order ready
  2. Work in progress
  3. Work completed
  4. Work order closed
  5. Work order cancelled

Friday 31 March 2017

See you at Collaborate 17

THE WORD IS OUT. There is ONE event that delivers the full spectrum of Oracle Technology and Applications education that you need to boost results all year long. Produced by three independent users groups, IOUG, OAUG and Quest, COLLABORATE 17: Technology and Applications Forum 
for the Oracle Community delivers:

  • 1,250+ sessions and panels packed with first-hand experiences, case studies and practical “how-to” content
  • Education and training for functional users, technical users and the hybrid user
  • Breaking product news and insider information from Oracle executive 
  • management and developers
  • Ample opportunities to build your personal and professional networks, including special interest group (SIG) meetings, geographic networking events and receptions
  • An Exhibitor Showcase packed with products and solutions providers who can help you solve your specific challenges
  • Unique events such as the Women in Technology Forum connect with key women who are examples of success in a fast-changing environment

Rinami will again be attending and presenting at Collaborate 2017 in Las Vegas on April 2 - 6. 

We have sessions:

Venti, Double-Caffeinated, Mobile Field Service Solution where you can see how Espresso Mechanics, a division of Cerebos Foods, was able to leverage the Cantara platform to deliver a modern field service management solution to both their internal technicians as well as sub-contract resources.
9:45AM - 10:45AM Monday Apr 3, 2017
South Pacific H

Modernize your existing JDE with mobility and integration to how you can extend the life of your existing Oracle JD Edwards EnterpriseOne system through the strategic deployment of integrations and mobile solutions with Cantara.
1:30PM - 2:30PM Tuesday Apr 4, 2017
South Pacific A

And please come along to booth 328 to see a number of IoT and mobile solutions and have a chat to us about how Rinami can support your business.