Skip to Content
Author's profile photo Former Member

HR_INFOTYPE_OPERATION : Synchronous Employee Data Update


Most often we come across requirement to update employee master data, with synchronously update / modify multiple info type in one transaction.

Intent of given document to brief about approach to update multiple info type by using standard functional module HR_INFOTYPE_OPERATION.


To explain more, we’ll take following illustrating example:

Business needs to created new records automatically in info type 033 as and when records got changed or created for Organizational Assignment (info type 0001).

Thus during updating of info type 0001, simultaneously info type 033 three sub type new records should be created in background.

Trouble Area:

During such type of requirement  we need to give leverage on Dynamic Action i.e. SPRO->Personnel Management->Personnel Administration->Customizing Procedures->Dynamic Actions. But there is lot of challenges with Dynamic action esp. when we need to Create/Update / Delete record with certain validations or substitute some values where integration with legacy system involved.

From ABAP side we do face lot of challenges while using HR_INFOTYPE_OPERATION, primary one will be employee locking issue along with inconsistent commit transaction as internally given functional module called PA40 through means of BDC – Batch Data Communication.

Addition of info group will be another approach but it will involve manual intervention. Thus most of the user will discard that approach.


Step 1: As a first step, we’ll create / change in employee master data for Organizational Assignment i.e. 0001 Info Type through transaction code PA40.

Step 2:  With “SAVE” action of the above, Update task will be triggered .We’ll implement standard BADI HRPAD00INFTY, Method IN_UPDATE, which will be called during update task. As required, we’ll lock employee to create other info type data synchronously in background.

Afterwards,we’ll call our custom functional module ZHR_FM_UPDATE. So, all required business logic will be encapsulated in custom

functional module ZHR_FM_UPDATE.All import / export parameters can be custom adjusted as per requirement.

Step 3: In this functional module ZHR_FM_UPDATE, we’ll create new LUW, with unique identifier w.r.t Info type + Date + Time for background task.       

Step 4: As we need to trigger HR_INFOTYPE_OPERATION in new background task, we must to have RFC enable functional module. But

HR_INFOTYPE_OPERATION is not RFC enabled thus we need to create wrapper for the same.

Thus we’ll create new wrapper functional module ZHR_FM_UPDATE_LUW, containing below given flow logic to create info type data for 33 i.e. Statistics records will be created.

Good part we can have re-usability to implement any custom logic in case if needed before updating of records . 🙂

As needed, we can create multiple LUW (Task) to update different info type one after another.

Step 5: Last but not least, employee needs to be unlock through  BAPI_EMPLOYEE_DEUEUE and HR_PSBUFFER_INITIALIZE. Afterwards execution will be back to update info type 001 – Org. Assignment records. Thus in one transaction, multiple records created for given employee.

Hope document will be helpful to cater synchronous employee details update.

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Sushil Bharani
      Sushil Bharani

      Very useful piece of information.

      Author's profile photo Former Member
      Former Member

      good going

      Author's profile photo Haribabu Muppaneni
      Haribabu Muppaneni

      Hi Pranav,

      Really it is very good informative and useful.

      Keep posting more such information.


      Haribabu M.

      Author's profile photo Former Member
      Former Member

      Nice article & it's informative & valuable.

      Author's profile photo SACHIN JADHAV

      Pranav, This is really a very useful information.

      Author's profile photo Former Member
      Former Member

      Thanks Pranav for information....Keep contributing to SCN.....!!!

      Author's profile photo Former Member
      Former Member

      Уou can use another method:

      PERFORM insert_infotyp IN PROGRAM sapfp50p USING ls_p0033 insert_check no space error_flag no.

      PERFORM update_buffer IN PROGRAM sapup50r.

      PERFORM put_infotyp_buffer IN PROGRAM sapfp50p.

      Author's profile photo Former Member
      Former Member
      Blog Post Author


      Thanks for sharing additional detials but I'm not sure we can update multiple info type in a synchronous call.



      Author's profile photo Former Member
      Former Member

      Hi, Pravan.

      To update infotype records need to use PERFORM update_infotyp(sapfp50p) USING lp2001.

      If multiple entries:

            LOOP AT lp2001.

              PERFORM update_infotyp (sapfp50p) USING lp2001. "XLCK110968


      Example of use can be seen in MP200140 line 1274.

      For OO use PERFORM update_infotyp IN PROGRAM sapfp50p USING lp2001.

      Author's profile photo Praveer Kumar Sen
      Praveer Kumar Sen

      good one..

      Author's profile photo Sneha Jadhav
      Sneha Jadhav

      well explained blog..

      Author's profile photo Former Member
      Former Member

      Hi Pranav Satpute

      thank you for sharing.

      You use FORM  f_receive_result ON END OF TASK ??