Skip to Content

In most of the employee data interfaces there are  requirements  where the downstream application(specially Payroll systems) require employees termination details. Also it is a common scenario, where employee withdraw his/her resignation for whatever reason.

In this blog i will explain

  1. Logic to find out terminated employees
  2. Logic to find out employees whose termination record has been deleted

Terminated employee

Once a termination action is initiated the data in successfactor will look like below.

Job Information data looks like below

Employee is always terminated in Home Employment.And only once the employee is terminated ( does not matter past dated,current dated or future dated) the field end date is populated.

However it is NOT recommended to use the employment information end date ( i.e /person/employment_information/end_date) to determine if the employee is current terminated or Not. The employment Information portlet is NOT effective dated and hence if there is a future re-hire record the end_date is overwritten ( blank) eventhough the employee is currently terminated/inactive.

So in this example employee is active till 15th Dec 2017, however from 16th Dec employee will be in inactive status.The CompoundEmployee API extract will show the latest job information as below

Logic to check if the employee is currently Terminated:

Look for the job where below criteria is matched.

{

  1. /person/employment_information/job_information/start_date<= current_date && /person/employment_information/job_information/end_date>= current_date   AND
  2. /person/employment_information/job_information/emplStatus = T

}

Termination Date/person/employment_information/job_information/start_date – 1 Day.

P.S -This check needs to be performed for the parent employment information where the employee is currently ( i.e either Home or host).

Deletion of termination Record:

Due to various reasons employees termination can be revoked ( e.g employee decides to withdraw resignation). As of today ( as far as i know), the only way to delete a termination record is to go to Job history of the employee and then manually delete the termination record.

The compound Employee *Does Not* report the deleted job. So there is no easy way to find out the deleted termination Job. The latest job record appears as below. The values for the highlighted fields are reverted with values of Job record prior to termination.

(Compound employee need to run in queryMode = Delta or periodDelta)

Also note, the termination deletion event is captured by the node “<job_event_information>”

So now if the Interface need to determine if any termination record has been deleted or not look for “<job_event_information>” where action = DELETE and even = 26

 

To report this post you need to login first.

3 Comments

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

    1. Biplab Das Post author

      Thanks Raghu.

      Change in termination date will be treated like any other data change, so no special handling required for that. API would detect the change and new termination end date can be mapped with the same logic mentioned.

       

      (0) 
  1. Vasily Baranovsky

    Thanks for sharing, Biplab.

    What about the case when termination is created backdated and another record in job info – Rehire or Data Change in the interval TerminationDate..CurrentDate?

    It would be beneficial to have the same guidance for oData.

     

    (0) 

Leave a Reply