In SAP ERP 6.0 (ECC), customers (KNA1) and vendors (LFA1) were completely segregated data models. If a company operated with an entity that was both a customer and a vendor (e.g. a trading partner or subcontractor), duplicate records had to be manually maintained across different number ranges and banking master records.
In SAP S/4HANA, the Business Partner (BP) is the mandatory leading master data object. The Customer-Vendor Integration (CVI) framework provides bi-directional, real-time synchronization between the central Business Partner (BUT000) and the sub-ledger customer/supplier tables.
| Master Data Level | Central Object (Leading) | Customer Sub-Ledger | Vendor / Supplier Sub-Ledger |
|---|---|---|---|
| General / Header | BUT000 (Name, Address, Tax IDs) |
KNA1 (General Data) |
LFA1 (General Data) |
| Company Code (FI) | Role FLCU00 / FLVN00 |
KNB1 (Reconciliation Acct) |
LFB1 (Reconciliation Acct) |
| Sales / Purchasing | Role FLCU01 / FLVN01 |
KNVV (Sales Area Data) |
LFM1 (Purchasing Org Data) |
| Banking Data | BUT020 / BUT0BK |
KNBK (Bank Details) |
LFBK (Bank Details) |
During brownfield S/4HANA migrations, the primary design decision is the numbering relationship:
100010 → BP 100010). Requires setting the BP Grouping number range to External and enabling the "Same Numbers" checkbox in table TBD001.
1000 and Vendor 1000 represent totally different companies). The BP receives a new internal number range, and the link is persisted in cross-reference tables CVI_CUST_LINK and CVI_VEND_LINK.
In ABAP Cloud (Language Version 5), direct SELECT FROM KNA1 or SELECT FROM LFA1 is non-compliant and blocked by the ABAP Test Cockpit. Custom code must consume released CDS view entities:
I_BusinessPartner: Central party data.I_Customer: Customer general and sales details.I_Supplier: Supplier and purchasing details.
Legacy BAPIs (BAPI_BUPA_CREATE_FROM_DATA) are replaced by the released RAP transactional business object I_BusinessPartnerTP:
MODIFY ENTITIES OF I_BusinessPartnerTP
ENTITY BusinessPartner
CREATE FIELDS ( BusinessPartnerCategory BusinessPartnerGrouping FirstLastName )
WITH VALUE #( (
%cid = 'CID_BP'
BusinessPartnerCategory = '2'
BusinessPartnerGrouping = 'BP01'
FirstLastName = 'Enterprise Client Corp'
) )
CREATE BY \_BusinessPartnerRole
FIELDS ( BusinessPartnerRole )
WITH VALUE #( (
%cid_ref = 'CID_BP'
%target = VALUE #( ( %cid = 'CID_ROLE' BusinessPartnerRole = 'FLCU01' ) )
) ).
COMMIT ENTITIES.
Generate CVI customizing mappings, custom field BAdI extensions, and RAP EML mutators with our interactive tool.
Launch CVI Architect Tool âš¡ Get Architecture Suite (80% Off)