SD Copy Control Part 5: Architecting Copy Control for Governed Order-to-Cash Landscapes
Architect's view of copy control: a documented flow matrix per document type, pricing-type policy per flow, controlled use of custom routines, dependency on document types and item categories, testing and configuration comparison in a global template, and migration impact.
Explanation
📌 KEY POINTS
✅ Copy control is the wiring of order-to-cash; a template needs a documented flow matrix (source → target, levels, pricing type, quantity rule, routines).
✅ A pricing-type policy per flow (e.g. quotation → order C, delivery → invoice G, invoice → credit memo D) prevents inconsistent price behavior across countries.
✅ Custom VOFM routines are code: register, review, test and minimize them.
✅ Every new document type or item category must be accompanied by its copy control entries — part of the definition of done.
⚠️ Copy control drift between countries or clients causes "works here, fails there" incidents that are hard to diagnose.
━━━━━━━━━━━━━━━━━━━━
▶ WHERE WE ARE
Parts 1–4 covered flows, configuration, routines and troubleshooting. This part is the template view.
━━━━━━━━━━━━━━━━━━━━
▶ 1. FLOW MATRIX
- Rows: source type/item category; columns: target type; cells: requirement, data transfer, pricing type, quantity rules.
- Owned by the solution architect; versioned with the template.
━━━━━━━━━━━━━━━━━━━━
▶ 2. PRICING-TYPE POLICY
- Business rules decided once: price at order date vs billing date, negotiated prices kept, credit memos copy unchanged.
- Exceptions documented with owner.
━━━━━━━━━━━━━━━━━━━━
▶ 3. ROUTINE GOVERNANCE
- Register of 9xx routines: purpose, assignments, owner.
- Code review, unit tests, performance checks.
- Prefer standard routines; retire unused customs.
━━━━━━━━━━━━━━━━━━━━
▶ 4. DEPENDENCIES AND DEFINITION OF DONE
- New document type: VTAA/VTLA/VTFA/VTFL/VTFF/VTAF entries.
- New item category: item-level entries in all relevant flows.
- Regression tests across the full chain.
━━━━━━━━━━━━━━━━━━━━
▶ 5. CONSISTENCY AND MIGRATION
- Automated configuration comparison between template and country clients.
- Migration: map legacy types/categories to canonical ones, then rebuild copy control from the matrix — don't copy legacy tables blindly.
- Open documents: verify follow-on steps work after migration.
━━━━━━━━━━━━━━━━━━━━
▶ STEP BY STEP
- Build the flow matrix for all canonical types and categories.
- Define the pricing-type policy with sales and finance.
- Register and review custom routines.
- Add copy control to the definition of done for new types/categories.
- Compare configuration regularly across systems.
✅ CHECKPOINT: any flow in any country can be explained from the matrix without opening the system.
Code example
===== STEP 1: flow matrix excerpt =====Source | Target | Level | Requirement | Data transfer | Pricing | Qty ruleQT/AGN | OR/TAN | item | 303 | 151 | C | + (consume quotation)CQ/KMN | OR/TAN | item | 301 | 151 | D | + (consume contract)LF/TAN | F2 | item | 004 | std | G | billing qty = delivered less invoiced, price source orderF2/TAN | G2 | item | std | std | D | – ===== STEP 2: custom routine register =====Routine | Type | Purpose | Assigned in | Owner | Last review901 | Copy req. | reference must have cust. PO | VTAA QT→ZOR header | SD | 2026-Q2 ===== STEP 3: definition of done for a new document type =====[ ] VOV8 [ ] VOV4 [ ] VTAA [ ] VTLA [ ] VTFA/VTFL [ ] VTFF/VTAF [ ] OVKK [ ] output [ ] chain regression testReal project scenario
A multinational retailer running 12 countries found that copy control had drifted: the same QT → OR pair used pricing type C in eight countries, B in three and D in one, because local teams had "fixed" issues. Customers of the same group received different price behavior by country. The architect introduced a flow matrix with a pricing-type policy, reset all countries to the matrix, moved legitimate differences into condition settings, and added automated configuration comparison to the release process.
Common mistakes
- No documented flow matrix.
- Local changes to pricing types without policy.
- Custom routines without register or review.
- New types/categories released without copy control.
- Copying legacy copy control tables in migration without rationalization.
Best practices
- Maintain a versioned flow matrix.
- Agree a pricing-type policy per flow.
- Govern custom routines as code.
- Include copy control in the definition of done.
- Compare configuration across clients regularly.
Interview angle
Questions: "How do you govern copy control in a global template?", "How would you decide pricing types?", "How do you handle copy control in a migration?"
Strong answer: flow matrix owned by the architect, pricing-type policy decided with sales/finance, routine register with review/tests, copy control as part of definition of done for new types/categories, automated comparison, and rebuilding copy control from the matrix during migration rather than copying legacy tables.
Practice this lesson
Quick check
1. What should be part of the definition of done for every new sales document type in a template?
2. During a migration, what is the recommended approach for copy control configuration?
3. Countries use different pricing types for the same quotation → order flow, causing inconsistent prices. What is the architect's fix?
Interview questions
1. As solution architect, you must design copy control between a contract and a release order in a lead-to-order scenario where pricing must be redetermined but quantities and reference data must remain traceable. What copy control design decisions would you make?
Answer it in your own words first, then compare.
2. A multinational retailer in 12 countries finds that copy control settings for the same flows differ between countries, causing inconsistent prices and failures. How do you restore and keep consistency?
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 Copy Control Part 1: How Data Flows Between Sales, Delivery and Billing Documents
- SD Copy Control Part 2: Configuring Header, Item and Schedule Line Controls
- SD Copy Control Part 3: Copy Requirements and Data Transfer Routines (VOFM)
- SD Copy Control Part 4: Troubleshooting Copy Control and Document Chains