Production Architectural Blueprint

SAP S/4HANA CVI & Business Partner Architecture Guide

Domain: Master Data Synchronization & Harmonization Standard: Customer-Vendor Integration (CVI) Clean Core Tier: Tier-1 Master Data

1. The Mandatory Transition: Why S/4HANA Enforces Business Partner

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.

2. The CVI Synchronization Architecture

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)

3. Number Assignment Architecture: Same Numbers vs Distinct Ranges

During brownfield S/4HANA migrations, the primary design decision is the numbering relationship:

4. Clean Core ABAP Cloud Master Data Consumption

🚫 Zero KNA1 / LFA1 Direct SQL Access

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:

5. Creating Business Partners via RAP EML

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.

Architect Your CVI Synchronization

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)