SAP MDG · DATA MODEL UI

How do I map an employee vendor to Business Partner person category in SAP CVI?

Use the CVI mapping BAdIs: set the BP category to Person in `CVI_MAP_TITLE` when the vendor account group is `ZEMP`, and derive the BP number/grouping in `CVI_CUSTOM_MAPPER` method `MAP_VENDOR_TO_BP` from the employee personnel number (`LFB1-PERNR` / company data).

Use the CVI mapping BAdIs: set the BP category to Person in `CVI_MAP_TITLE` when the vendor account group is `ZEMP`, and derive the BP number/grouping in `CVI_CUSTOM_MAPPER` method `MAP_VENDOR_TO_BP` from the employee personnel number (`LFB1-PERNR` / company data).

For employee vendors, the cookbook pattern uses two CVI enhancements: `CVI_MAP_TITLE` to force the BP category to Person, and `CVI_CUSTOM_MAPPER` method `MAP_VENDOR_TO_BP` to derive the partner number and grouping from employee data. In the example, the vendor account group `ZEMP` is the trigger, and the BP grouping `BPAB` is assigned for the mapped Business Partner.

Process flow

  1. Identify employee vendors by account group `ZEMP` in vendor master data (`LFA1`).
  2. Implement `CVI_MAP_TITLE` and set `c_partner_category = bp_as_person` when the vendor is an employee vendor.
  3. Implement `CVI_CUSTOM_MAPPER~MAP_VENDOR_TO_BP` to read company data (`VMDS_EI_COMPANY_T` / `VMDS_EI_COMPANY`).
  4. Derive the BP key from the employee personnel number and assign `C_PARTNER-HEADER-OBJECT_INSTANCE-BPARTNER`.
  5. Assign BP grouping `BPAB` in `C_PARTNER-CENTRAL_DATA-COMMON-DATA-BP_CONTROL-GROUPING`.
  6. Check for blank personnel number and handle duplicates or already-existing BPs.
  7. Validate BP number range / external number assignment and account-group mapping in CVI customizing.
  8. Test end-to-end vendor-to-BP synchronization in the CVI process.

Referenced tables

ObjectPurpose
LFA1Vendor general data used to detect employee vendors by account group.
LFB1Vendor company-code data; the example references `LFB1-PERNR` for the personnel number.
VMDS_EI_COMPANY_TCVI vendor company data table type used in `MAP_VENDOR_TO_BP`.
VMDS_EI_COMPANYCVI vendor company data structure used to read personnel number data.

ILLUSTRATIVE ABAP SAMPLE

Source ABAP example

Exact relevant implementation excerpt from the knowledge document.

1*---------------------------------------------------------------------* 2* Title : SAP S4HANA Customer Vendore Integration Cookbook 3*---------------------------------------------------------------------* 4* TAGS 5* SAP S/4HANA 6* CVI 7* CUSTOMER VENDOR INTEGRATION 8* BUSINESS PARTNER 9* HCM EMPLOYEE 10* EMPLOYEE VENDOR 11* CVI_MAP_TITLE 12* CVI_MAP_BP_CATEGORY 13* CVI_CUSTOM_MAPPER 14* MAP_VENDOR_TO_BP 15* BP CATEGORY PERSON 16* BP NUMBER ASSIGNMENT 17* EXTERNAL NUMBER RANGE 18* ACCOUNT GROUP ZEMP 19* BP GROUPING BPAB 20* LFA1 21* LFB1-PERNR 22* VMDS_EI_COMPANY_T 23* VMDS_EI_COMPANY 24*---------------------------------------------------------------------* 25 26*---------------------------------------------------------------------* 27* SOURCE EXAMPLE 1 28* BAdI: CVI_MAP_TITLE 29* Purpose: Set employee Vendor Business Partner category to Person 30*---------------------------------------------------------------------* 31data: lv_ktokk type ktokk. 32 33select single ktokk into lv_ktokk 34 from lfa1 35 where lifnr = i_vendor_id. 36if sy-subrc = 0 and lv_ktokk = ‘ZEMP’. 37 c_partner_category = bp_as_person. 38endif. 39 40*---------------------------------------------------------------------* 41* SOURCE EXAMPLE 2 42* BAdI: CVI_CUSTOM_MAPPER 43* Method: MAP_VENDOR_TO_BP 44* Purpose: Derive BP number from employee personnel number 45*---------------------------------------------------------------------* 46MAP_VENDOR_TO_BP 47 48 data: lt_company type VMDS_EI_COMPANY_T, 49 ls_company type VMDS_EI_COMPANY. 50 51 if I_VENDOR-CENTRAL_DATA-CENTRAL-DATA-KTOKK = 'ZEMP'. 52 lt_company = I_VENDOR-COMPANY_DATA-COMPANY. 53 loop at lt_company into ls_company where data- 54pernr ne space. "What if more than one Company Code? 55 concatenate 'EN' ls_company-data-pernr into C_PARTNER-HEADER- 56OBJECT_INSTANCE-BPARTNER. "What BP already exists? 57 C_PARTNER-CENTRAL_DATA-COMMON-DATA-BP_CONTROL-GROUPING = 'BPAB'. 58 exit. 59 endloop. 60 endif.

The remaining configuration, implementation details, and testing guidance continue from this answer more…

Related questions and keywords

Alternative questions

  • How can I derive BP category Person for employee vendors during CVI synchronization?
  • Which BAdI should I use to map employee vendor data to a person BP in SAP S/4HANA?
  • How do I default BP number assignment and grouping for employee vendors in CVI?

Possible questions

  • How do I map an employee vendor to Business Partner person category in SAP CVI?
  • Which BAdI should I use to map employee vendor data to a person BP in SAP S/4HANA?
  • How do I default BP number assignment and grouping for employee vendors in CVI?
  • How do I implement MAP_VENDOR_TO_BP for employee vendors?
  • How do I set BP category Person from vendor account group ZEMP?

Keywords

SAP S/4HANACVICustomer Vendor IntegrationBusiness PartnerBP category personemployee vendorCVI_MAP_TITLECVI_CUSTOM_MAPPERMAP_VENDOR_TO_BPLFA1LFB1-PERNRVMDS_EI_COMPANY_TVMDS_EI_COMPANYBPABZEMPexternal number rangeperson BPnumber assignment