SAP Knowledge Base Article - Public

3077585 - How to filter some employments / pernrs during BIB integration

Symptom

Concurrent employment is used on the SF EC side, but during BIB integration, it is only expected to integrate one or some of all the employments.

Please note the topic in this KBA is a consulting topic about how to fulfill the specific requirement recorded in title. All the information in this KBA is just for customer reference in purpose of providing hints and lights on how it can be fulfilled and what may happen relevantly.

Environment

  • SAP SuccessFactors Employee Central Integration to SAP Business Suite

Resolution

Implement the Note 2540591 - Filter PERNR in multiple employments in BIB, and then it is needed to enhance the method SET_PERNR_FILTER_DATA of class CL_ECPAO_IN_EMPLOYEE_TRANSFORM, so that the parameter IS_PERNR_FILTERED should be set to 'X' if the employment/pernr is to be filtered out.

But there might be following up problems if you enhance the method SET_PERNR_FILTER_DATA alone.

  1. The first time of integration works fine, but there is error "No Data Exists for Infotype 0001 for Personnel Number * A" (ECPAO_IN_PROCESSING 055) from the second time of integration on.
    • Reason:
      The relevant employment / pernr is filtered out during the creation of the pernr on the ERP side, but the mapping table ECPAO_EE_KMAP is still updated with entry for the unwanted employment / pernr.
      Hence in the second round of integration and on, the system will try to get relevant data from DB for this mapped but unwanted pernr.
      However such pernr does not really exist, hence the error is raised.
      •  
    • Solution:
      Enhance class CL_ECPAO_IN_EE_KMAP with a new method (public, instance). As an import parameter you may use PERNR, and in the implementation you can delete the entry with this PERNR from table a_write_buffer_ee_keymap_tab.
      Then in the enhancement of method CL_ECPAO_IN_EMPLOYEE_TRANSFORM-> SET_PERNR_FILTER_DATA() you call this new method as soon as you know that the PERNR should be skipped.
       
  2. There is error "Employee * has more than one position assignments -> not supported" (SFIOM_PROCESSING 020) during updating the DB from staging area.
    • Reason
      Because the ECPAO_EE_KMAP table is not updated with the entry for the unwanted employment / pernr when solving the problem in point 1, in the step of reading data from staging area and updating DB, method SET_FILTERED_PERNR of class CL_ECPAO_EE_MD_ORGAS_TO_STAG cannot add the unwanted employment/pernr into mt_pernr_filtered table.
      This is because this method inserts only the employment / pernr that exists in the ECPAO_EE_KMAP table. As a result of the empty mt_pernr_filtered table, method WRITE_EE_TO_STAG_AREA_BUFFER of class CL_ECPAO_EE_MD_ORGAS_TO_STAG cannot confirm any employment / pernr to be filterd out, hence all the employments are added to the staging area for updating to the DB.
      But it is not allowed to have multiple positions assigned to one employee at the same time. Thus the error.
      •  
    • Solution:
      • Either implement an implicit enhancement at the end of method WRITE_EE_TO_STAG_AREA_BUFFER of class CL_ECPAO_EE_MD_ORGAS_TO_STAG to make sure table mt_org_ass_requests only contains the data for the wanted employment.

      • Or implement BAdI EX_SFIOM_ADAPT_EE_ORG_ASSGNMNT of enhancement spot ES_SFIOM_PROCESSING to skip the unwanted employments during processing of staging area.

Keywords

filter, skip, employment, main, secondary, staging area, sfiom_view_requests, bib , KBA , LOD-EC-INT-EE , Employee Integration EC to ERP On Premise , LOD-EC-INT-ORG , Org Integration EC to ERP On Premise , How To

Product

SAP SuccessFactors HXM Core 2105