Skip to Content
Author's profile photo Stephanie Bourgault-Mongeau

Automate Employee Data Changes Using Off Cycle Event Batch in SuccessFactors Employee Central

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

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 🙂

Assigned Tags

      16 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Vasiliy Baranovskiy
      Vasiliy Baranovskiy

      Thanks for sharing Stephanie!

      Do you know if Alert rules (and other rules) are triggered for records created by Event Batch?

       

      Author's profile photo Stephanie Bourgault-Mongeau
      Stephanie Bourgault-Mongeau
      Blog Post Author

       

      Hi Vasily,

      I just ran a quick test and yes, the alert Schedule Job did create an alert for the job info record created by the OEB Schedule Job.

      Cheers,

      Stéphanie

      Author's profile photo Former Member
      Former Member

      This is awesome content Stephanie, thanks for sharing!

      Author's profile photo Stephanie Bourgault-Mongeau
      Stephanie Bourgault-Mongeau
      Blog Post Author

      Yes, it is pretty cool. Thanks for the comment!

      Author's profile photo Johanna Söderman
      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.

       

      Author's profile photo Stephanie Bourgault-Mongeau
      Stephanie Bourgault-Mongeau
      Blog 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

       

      Author's profile photo Former Member
      Former Member

      thanks Stephanie for sharing your invaluable knowledge. great job as usual!.

      Francisco

      Author's profile photo Stephanie Bourgault-Mongeau
      Stephanie Bourgault-Mongeau
      Blog Post Author

      Thanks for the feedback Francisco.

      Author's profile photo Monika Dierker
      Monika Dierker

      Many thanks for sharing Stephanie!

      Author's profile photo Stephanie Bourgault-Mongeau
      Stephanie Bourgault-Mongeau
      Blog Post Author

      Welcome, thank you for your comment!

      Author's profile photo Sean Liu
      Sean 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?

      Author's profile photo Jonathan Parker
      Jonathan Parker

      Hi Stephanie,

      Really good blog, thanks for sharing.

      We are trying to use this to propagate a new field in jobinfo from an old field, we need to update current and historical records without creating a new event?  Is this possible?

      Do you have any examples?

      We want to avoid mass uploads.

      Thanks,

      Jonathan

      Author's profile photo Sudarsan Sampathkumar
      Sudarsan Sampathkumar

      Thanks Stephanie. Very well articulated. Cheers...!!!

       

      Regards

      Sudarsan

      Author's profile photo Aditya Sai Karuturi
      Aditya Sai Karuturi

      Hi Stephanie,

      Thanks for a fantastic article. It is really useful. Could there be cases where job shows successful in provisioning but log shows nothing about which employees are modified? In my case, employee record is unchanged, no update happened.

      Author's profile photo Trina Page
      Trina Page

      Great job! Thank you for sharing the helpful blog, Stephanie!

      Author's profile photo Ashwini Singh
      Ashwini Singh

      Hi Stephanie,

      I had a query regarding the OEB logs mentioned by you. How can we check them? Please share.

      Thanks,

      Ashwini