Skip to Content

This blog entry is authored Stéphanie Bourgault-Mongeau (https://people.sap.com/stephanie.bourgault) and reviewed by Gobinder Sandhu  (https://people.sap.com/gobi.sandhu)

Overview

The Off Cycle Event Batch (commonly called OEB by friend and mentor Gobinder Sandhu) allows SuccessFactors to automatically update the Job Information portlet, Employment Details, Employee Time or Work Order portlet without user intervention. The idea is simple, auto run a customized logic in the background for recurring transactions that always results in the same outputs, eliminating manual data entry.   System does it all for the user!

Uses cases for using OEB can be:

  • Automatically process an end of a probation period event
  • Automatically process a change of Pay Scale Level for employee eligible to the next Pay Scale Level on per-specified effective date.
  • Process seniority based compensation updates to the employee master data.
  • Generate Intelligent Services

In my view, this features offers lot of new possibility and takes SuccessFactors to the next level in terms of functionalities. Also, it can reduce manual data entry significantly in your organization reducing mundane workload, improving productivity, maintaining the data integrity and brings back the focus on valued tasks and analytics.

This blog entry illustrates how to set-up some OEB use cases and presents all the related OEB related feature in SuccessFactors

The blog gets bit technical from here on, so keep your implementer by your side!

Implementing OEB in SuccessFactors

Creation of Off Cycle Event Batch is actually quite simple (in terms of steps). The complicated part is building the rules which will support the automatic changes.

  1. Create a Business Rules
  2. Create a new Off Cycle Event Batch object in Manage Data
  3. Set-up a Schedule Job in Provisioning

Let’s see how this works taking an example of End of Probation Period processing. Imagine we have the following business case,

“All employees in Germany complete the probation period in 12 months from the hire date, and are eligible for benefits.  From data change perspective, two things happens in EC Job History

  1. The Probation Period End Date is blanked out.
  2. The Eligibility flag for Benefits turns from No to Yes.
  3. The event reason for job info changes will be Probation Completed. “

Following configurations will be required to meet the scenario:

1. Create a Business Rules

For our example, in the IF statement, select every record for which the probation end date is today (as the OEB job will be executed everyday) and ensure that if there is multiple record already saved today, the  rule will execute only for the last record (with the event date on or before today and end date after today).

In the THEN statement, we specify the changes we want to apply to Job History portlet, with which event-reason and which effective start date.

2. Create a new Off Cycle Event Batch object in Manage Data

The second step is to create the OEB Object. This is configurable via Manage Data.  The screen shot below shows the OEB related to the end of probation period scenario:

Few important pointers:

  • Base Object can only be one of these: Job Information, Employment Details, Employee Time or Work Order. Based on selection of the base object the toFilter section shows the dates in the filter field which is to be selected by the OEB job.

  • It is possible to create employee groups to filter down on which employees the OEB will apply to. It works just like creating Permission Groups and the option to do so is under Employee Files. Once the group is created, it is possible to select in the OEB Object.

  • Carefully consider to select ‘yes’ against the field ‘ include all matched records in every run’ and filter the records in IF statement of Rule.  I’ll be honest here that I had configured, the Include all matched records in every run to No,  prior to 1702 release but after running for some time ,  the rule was erratic and did not select the records correctly.
  • Frequency of the OEB Object can be set to Daily, Weekly or Monthly
  • toFilter makes available the Dates for which the employee records for which the system will check if the rule is met. The system will ignore all employee records that do not match the toFilter and offset criteria. Note that only the standard Entry Date can be used, which is a limitation of the feature.

3. Set-up a Schedule Job in Provisioning

Third step is to set the background job that will process the OEB Object. The job is simple to create the only thing you need to know is to select BizX Daily Rules Processing Batch as the Job Type.

4. Result on an employee

After running the job, we can see that for an eligible employee, the job history is updated. A new record was inserted on this employee with End of Probation event reason and the right effective date, as well the probation end date is blanked out   and Benefit eligibility is set to YES. Mission accomplished!

5. OEB Log file

A log file is created each time the provisioning job is ran, specifying how many records matched  the ofFilter of the OEB statement, how many records where matching matched  the OEB rule, how many record were updated successfully . The log also provides the userID of all the updated employees:

Limitation

As of now, it is only possible to update 1 portlet by OEB Object means cross-portlet updates are not supported at the time this blog was written. This means that it is not possible to update the job history and compensation portlet at the same time using OEB Cycle. Most of the business scenario in fact require updates to more than one portlet for same reason.

The toFilter of the OEB Object applies only to the standard Dates. Custom dates are not part of the toFilter field picklist which can limit the functionality since most of decision making dates are generally custom dates.  One workaround is to use the custom dates in the business rules attached to OEB.

In my last blog entry about Pay Scale Structure, I promised to share how we could upgrade the employee Pay Scale using Off Cycle Event Batch. However, I think that before doing so, I needed to explain Off Cycle Event Batch. Since this feature is very new and there is almost nothing on the subject right now, I hope it was useful to you 🙂

To report this post you need to login first.

11 Comments

You must be Logged on to comment or reply to a post.

  1. Johanna Söderman

    Thanks for posting this Stephanie! 🙂

    I am also wondering about the alerts and workflows (rule-based), whether they can be triggered in these OEB scenarios.

    Let’s also hope the number of possible base objects will increase to include at least compInfo, but also custom MDF objects.

     

    (0) 
    1. Stephanie Bourgault-Mongeau Post author

       

      Hi Johanna,

      Thanks for the feedback. I have the same wish regarding the number of possible base objects and I hope that it will be soon possible to update more than 1 portlet at a time with an OEB.

      From what I noticed, you can’t add an alert to the OEB rule, the OEB job will just not update the job info if you do so. However, if create an alert rule and you schedule the Alert job to run aftert the OEB job you will get the alert needed.

      For workflow, it does not seem possible at the time.

      Cheers,

      Stéphanie

       

      (1) 
  2. YAOFENG LIU

    The Integration Center Successfactors to Successfactors via oData V2 is much useful than Off Cycle Event Batch. Very powerful.

    By the way, when you use off cycle, have you got the conflicts or table locks when front-end and backend both update the same record?

    (2) 

Leave a Reply