SD Customer and Business Partner Part 4: CVI Architecture and Synchronization Troubleshooting
How CVI works under the hood and how to fix it when it fails: synchronization direction, link tables, the MDS load cockpit for mass synchronization, post-processing office for failed records, typical errors (number range, mandatory fields, role mapping, tax numbers) and the brownfield conversion prerequisites.
Explanation
📌 KEY POINTS
✅ CVI links each BP to a customer and/or vendor via link tables CVI_CUST_LINK and CVI_VEND_LINK; missing links = SD cannot find the BP as customer.
✅ Mass synchronization (e.g. brownfield conversion or reloads) runs in MDS_LOAD_COCKPIT; failed records go to the post-processing office (MDS_PPO2).
✅ Most errors are customizing gaps: number range/grouping mapping, required fields in account group field status, missing value mappings, tax number formats.
✅ In brownfield conversion every customer and vendor must be converted to a BP before the S/4HANA conversion — this is a mandatory prerequisite.
⚠️ Fixing data directly in KNA1/KNVV bypasses CVI and leaves BP and customer out of sync.
━━━━━━━━━━━━━━━━━━━━
▶ WHERE WE ARE
Part 2 configured BP and CVI. This part is for when synchronization fails — in daily operations and in conversion projects.
━━━━━━━━━━━━━━━━━━━━
▶ 1. CVI ARCHITECTURE
- BP (BUT000 and related tables) is the leading object.
- CVI maps BP data to customer/vendor structures and calls the classic update.
- Link tables: CVI_CUST_LINK, CVI_VEND_LINK; contact persons CVI_CUST_CT_LINK.
- Direction customer → BP is used for conversion (legacy customers become BPs).
━━━━━━━━━━━━━━━━━━━━
▶ 2. MASS SYNCHRONIZATION
- MDS_LOAD_COCKPIT: select customers/vendors, run synchronization in parallel, monitor.
- Used in brownfield conversion (customer/vendor → BP) and after mass changes.
- Test with a small selection first; review error statistics.
━━━━━━━━━━━━━━━━━━━━
▶ 3. POST-PROCESSING OFFICE
- MDS_PPO2: failed synchronization objects with messages.
- Correct customizing or data, then reprocess from PPO.
- Keep PPO empty before cut-over — every entry is an unsynchronized partner.
━━━━━━━━━━━━━━━━━━━━
▶ 4. TYPICAL ERRORS
- Number already used / not in range: grouping ↔ account group mapping or interval overlap.
- Required field missing: account group field status requires a field the BP did not provide.
- Value mapping missing: industry, form of address, legal form not mapped.
- Tax number check failed: format per country.
- Role category mapping missing: BP role saved but no customer created.
━━━━━━━━━━━━━━━━━━━━
▶ 5. CONVERSION PREREQUISITES
- Run CVI_FS_CHECK_CUSTOMIZING and the pre-check reports of the conversion.
- Clean data first: duplicates, inactive customers, invalid addresses/tax numbers.
- Decide numbering (same numbers) and groupings before synchronization.
━━━━━━━━━━━━━━━━━━━━
▶ STEP BY STEP
- Check the link table for the affected customer.
- Look for the object in MDS_PPO2 and read the message.
- Fix customizing (mapping, field status, number range) or data.
- Reprocess from PPO or rerun MDS_LOAD_COCKPIT for the selection.
- Verify BP and KNA1/KNVV match.
✅ CHECKPOINT: PPO shows no open entries and every active customer has a CVI_CUST_LINK entry.
Code example
===== STEP 1: find the link =====SE16N CVI_CUST_LINK PARTNER_GUID ↔ CUSTOMER (BUT000-PARTNER_GUID ↔ KNA1-KUNNR)SE16N CVI_VEND_LINK PARTNER_GUID ↔ VENDOR ===== STEP 2: mass synchronization =====MDS_LOAD_COCKPIT Synchronization object : CUSTOMER → BP (conversion) or BP → CUSTOMER Selection : customer number range / account group Monitor tab : processed, successful, failed ===== STEP 3: post-processing office =====MDS_PPO2 filter by object type and date → open entry → read message correct cause → "Process" / reprocess entry ===== STEP 4: typical error → fix ====="Number xxxx not in interval" → grouping ↔ account group number assignment, intervals"Field XY is a required field" → account group field status or BP field mapping"No value mapping for industry" → CVI value mapping (Industry keys)"Tax number invalid" → country tax number check / data cleanup ===== STEP 5: customizing check =====CVI_FS_CHECK_CUSTOMIZING checks role, grouping, number and value mappingsReal project scenario
In a brownfield conversion of a system with 480,000 customers, the first MDS_LOAD_COCKPIT run converted 91% and put 43,000 records into the PPO. Analysis grouped the errors: 60% were missing value mappings for industry codes introduced by a legacy interface, 25% invalid tax numbers from old data, the rest duplicates and number range overlaps from a historical account group. The team fixed mappings centrally, archived 18,000 inactive customers instead of converting them, cleaned tax numbers with the business, and re-ran. The final run before conversion had zero open PPO entries.
Common mistakes
- Fixing customer tables directly instead of fixing the BP/CVI cause.
- Running full mass synchronization without a test selection.
- Converting inactive and duplicate customers instead of cleaning up first.
- Ignoring open PPO entries before cut-over.
- Defining numbering after synchronization has started.
Best practices
- Clean and reduce data before conversion (archive inactive, merge duplicates).
- Classify PPO errors and fix causes in customizing, not record by record.
- Run CVI_FS_CHECK_CUSTOMIZING after every CVI change.
- Keep PPO empty as a go-live criterion.
- Monitor link completeness with a regular check.
Interview angle
Questions: "BP saved but no customer created — why?", "How do you convert customers to BP in brownfield?", "What is the PPO?"
Strong answer: explains CVI link tables, role category and number assignment mapping, MDS_LOAD_COCKPIT for mass synchronization and MDS_PPO2 for failed records; lists typical causes (number range, required fields, value mappings, tax numbers) and stresses data cleanup and CVI conversion as a mandatory prerequisite for S/4HANA conversion.
Practice this lesson
Quick check
1. A business partner exists in BP, but it cannot be entered as sold-to in a sales order. Which table shows whether CVI created the customer link?
2. CVI synchronization fails with "field XY is a required field" although the BP was saved without it. What is the typical cause?
3. After a mass CVI synchronization run, 3% of customers were not converted to business partners. Where do you analyse and reprocess them?
Interview questions
1. Users report that a business partner shows the new address in BP, but invoices still print the old address. How do you analyse whether CVI synchronization is the problem?
Answer it in your own words first, then compare.
2. You are preparing a brownfield S/4HANA conversion. Customer/vendor to BP conversion is a prerequisite. How do you plan and run it?
Answer it in your own words first, then compare.
Reference-verified: the steps are checked against official SAP documentation and tutorials, and object and field names in the sample code are checked for consistency. The code has not been compiled or run on an SAP system by ERPClimb. Syntax marked release-dependent varies by SAP release, so check it in your own system.
More lessons in this topic
- SD Customer and Business Partner Part 1: Customer Master Data Structure
- SD Customer and Business Partner Part 2: Business Partner Model and CVI Configuration
- SD Customer and Business Partner Part 3: Partner Functions and Partner Determination
- SD Customer and Business Partner Part 5: BP Governance — Migration Strategy, MDG and Multi-System Consolidation