Business Partner and customer-vendor integration (CVI)
Why one Business Partner becomes a customer and a supplier, which tables are written, and how CVI keeps them in step.
One object instead of two
In ECC a partner that was both customer and supplier existed twice (XD01 and XK01). In S/4HANA the Business Partner (BP) is the single entry point: transaction BP or the Fiori apps replace XD01/XK01, and the old transactions redirect to BP.
The BP tables
Central data is stored once, however many roles the partner has. Query it through CDS views (I_BusinessPartner and friends) where you can.
Roles and the tables they create
Assigning a role makes CVI write classic tables. FI roles bring company-code data; FLCU01 and FLVN01 bring sales-area or purchasing-org data. A 'missing sales area' is almost always a missing FLCU01 role or org data, not a CVI bug.
Try it: roles to tables
Match each BP role to the organisational-level data it adds.
How CVI synchronises
In S/4HANA the leading direction is BP to customer/supplier, in the same unit of work as the BP save. The pairing lives in CVI_CUST_LINK and CVI_VEND_LINK: without a link row, the BP has no customer even if a matching KNA1 row exists.
Number ranges and groupings
In the CVI IMG you assign each BP grouping to a customer and vendor account group and decide whether numbers are the same. Same numbers need aligned external ranges and get hard when an existing customer also becomes a supplier. Decide before the first mock load; changing it later means reloading.
Where CVI breaks
Conversion tools: CVI_COCKPIT for the phases, MDS_LOAD_COCKPIT for mass synchronisation, MDS_PPO2 for failed records, and report CVI_FS_CHECK_CUSTOMIZING for customising gaps.
Try it: a mock load fails
Mock load 2: about 4% of customers fail with 'number already exists'; the other 96% load fine. What do you check first?
The conversion journey
On brownfield, every customer and vendor needs a BP before conversion, so CVI starts months early. On greenfield, the Migration Cockpit Customer and Supplier objects create BPs and CVI writes the classic tables, so the same configuration matters.
BP in the MDG replication flow
In co-deployed MDG, activation writes the BP and CVI writes KNA1/LFA1. DRF then replicates the BP (typically BusinessPartnerSUITEBulkReplicateRequest, or DEBMAS/CREMAS IDocs), and the receiver runs CVI again. Its configuration must match the hub's.
Try it: order the replication
Put the steps of an MDG BP change, from request to receiver, in order.
- 1CVI in the hub writes KNA1 / LFA1
- 2Receiver's inbound processing runs CVI
- 3MDG activates the BP in the hub
- 4DRF sends the BP message to the receiver
- 5Steward submits the change request
- 6Workflow routes it for approval
Remember
- BP is the only entry point; customer and supplier are roles of a BP.
- CVI maps BP to KNA1/LFA1 and dependent tables, linked in CVI_CUST_LINK / CVI_VEND_LINK.
- Fix the number strategy before the first mock load; CVI runs again in every receiver.