Automate Employee Data Changes Using Off Cycle Event Batch in SuccessFactors Employee Central
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.
- Create a Business Rules
- Create a new Off Cycle Event Batch object in Manage Data
- 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
- The Probation Period End Date is blanked out.
- The Eligibility flag for Benefits turns from No to Yes.
- 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:
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 🙂