Material Ledger Cutover: SAP ECC to S/4HANA — Part 1: Brownfield System Conversion
Executive Summary
Section titled “Executive Summary”SAP S/4HANA mandates the Material Ledger for every system using Materials Management. There is no opt-out, no deferral, and no workaround. For organizations executing a brownfield in-place system conversion — the most common S/4HANA adoption path for large enterprises — this means the Material Ledger migration is not a workstream within the project. It is the critical path of the project.
This whitepaper covers every technical dimension of that migration: the data model transformation from MBEW/COEP/COSS to ACDOCA, the four-step FINS_MIG_STATUS execution sequence (M10/M11/M20/M21), the pre-cutover period-end close dependency chain, the SP-level note correction burden from SAP Note 2345739, the product costing scenarios that must be resolved before M10 runs, and the post-migration governance framework that determines whether go-live is operationally stable or audit-sensitive from day one.
The document is structured as a complete execution reference for SAP FI/CO consultants, enterprise architects, and project leads. It covers twelve sections from migration overview through closing recommendations, including a full risk register, a six-phase execution playbook, and a fifteen-point sign-off checklist.
Three findings dominate: first, the X-matrix in SAP Note 2345739 is non-negotiable — every marked note must be implemented before M10 regardless of perceived relevance. Second, four configuration decisions (OMXW currency types, COGS Split activation, OMX1 price determination, OMWC split valuation) are irreversible after M10 and must be made, documented, and frozen before the migration window opens. Third, a zero-difference MB5L vs FS10N reconciliation is the only acceptable entry condition for M10 — any delta carried into the migration window becomes a permanent ACDOCA opening balance error.
This is Part 1 of a three-part series. Part 2 covers greenfield new implementations using SAP Rapid Data Migration (RDM) and SAP Data Services 4.3. Part 3 covers bluefield and Selective Data Transition (SDT) scenarios combining RDM, FINS_MIG_STATUS, and third-party SDT tools.
Context
Section titled “Context”The Three-Part Series
Section titled “The Three-Part Series”| Part | Archetype | Primary Tool |
|---|---|---|
| Part 1 (this document) | Brownfield — In-Place System Conversion | FINS_MIG_STATUS (M10/M11/M20/M21) |
| Part 2 | Greenfield — New Implementation | SAP Rapid Data Migration / SAP Data Services 4.3 |
| Part 3 | Bluefield / Selective Data Transition | RDM + FINS_MIG_STATUS + Third-Party SDT Tools |
This whitepaper is bounded to three functional domains:
- Materials Management (MM): Inventory valuation tables (MBEW, EBEW, QBEW, OBEW), goods movement history, purchase order history (EKBE/EKBZ)
- Material Ledger (ML): Mandatory in S/4HANA from release 1511 onward; migration orchestrated by
FINS_MIG_STATUS - Product Costing (CO-PC): Standard costing, actual costing (CKMLCP), mixed costing, COGS Split, WIP settlement
Reference Notes
Section titled “Reference Notes”SAP Note 2345739 is the master coordination note for all Material Ledger migration corrections. It contains a version- and SP-gated correction matrix — an X-marked table identifying which OSS notes are absent from each S/4HANA release at each Service Pack level and must therefore be manually implemented via SNOTE before M10 can safely execute. Every project team executing a brownfield ML migration must treat this note as a living checklist.
SAP Note 2239701 delivers the SAP Rapid Data Migration (RDM) toolset for S/4HANA On-Premise. In a brownfield context, RDM is supplementary — FINS_MIG_STATUS is the primary migration engine — but RDM objects remain relevant for supplementary master data loads and for business partner migration completeness verification.
Analysis
Section titled “Analysis”Section 1 — Brownfield Migration Overview
Section titled “Section 1 — Brownfield Migration Overview”1.1 What Brownfield Means Technically
Section titled “1.1 What Brownfield Means Technically”Brownfield conversion executes via SUM/DMO (Software Update Manager / Data Migration Option). The process:
- SUM applies the software update (ECC → S/4HANA stack)
- The ABAP-based Data Migration framework (
FINS_MIG_STATUS) runs finance follow-up activities post-technical-upgrade - The data model migrates in-place: MBEW/COEP/COSS → ACDOCA; ML tables → MLDOC/CKMLHD/CKMLPR
No data is extracted and reloaded. The migration is a structural transformation of the existing dataset. The existing client, Customizing, transactional history, and data model are all carried forward.
1.2 Why Material Ledger Migration Is Mandatory
Section titled “1.2 Why Material Ledger Migration Is Mandatory”The Material Ledger is obligatory in SAP S/4HANA for all systems using Materials Management. Migration is required in two scenarios:
- Migration from SAP ERP to SAP S/4HANA 1610 or higher
- Migration from SAP Simple Finance to SAP S/4HANA 1610 or higher
Critically: the Material Ledger must be migrated even if it was not active in the source ECC system.
1.3 Material Ledger vs. Actual Costing: The Critical Distinction
Section titled “1.3 Material Ledger vs. Actual Costing: The Critical Distinction”| Dimension | Material Ledger | Actual Costing |
|---|---|---|
| S/4HANA status | Mandatory | Optional |
| Function | Inventory subledger — multi-currency valuation | Periodic unit price (PUP) calculation; revaluation of inventory at actual cost |
| Key transaction | MMPV/MMRV (period open/close) | CKMLCP (actual costing run) |
| Activation | Automatic via M10 | Explicit customer decision; separate activation |
| Data volume impact | High — all goods movements in ACDOCA | Very high — ML documents per movement |
1.4 Universal Journal (ACDOCA) as Target Data Model
Section titled “1.4 Universal Journal (ACDOCA) as Target Data Model”In SAP S/4HANA, all accounting postings — FI, CO, ML, AA — converge into table ACDOCA (the Universal Journal). The Material Ledger migration writes inventory valuation history into ACDOCA with balance carryforward records (BSTAT = ‘C’, MIG_SOURCE = ‘N’). From go-live, all goods movements post directly to ACDOCA rather than to MBEW/COEP/COSS.
1.5 FINS_MIG_STATUS: The ML Migration Orchestrator
Section titled “1.5 FINS_MIG_STATUS: The ML Migration Orchestrator”FINS_MIG_STATUS is the IMG activity Start and Monitor Data Migration under Migration to SAP S/4HANA Finance → Data Migration. It manages four ML-specific steps:
| Step | Name | Scope |
|---|---|---|
| M10 | Migrate Material Ledger Master Data | Activates ML for all valuation areas; migrates MBEW/EBEW/QBEW/OBEW to ACDOCA; creates CKMLHD/CKMLPR/CKMLPP/CKMLCR |
| M11 | Migrate Material Ledger Transaction Data | Converts EKBE/EKBZ/MLAUFCR purchase order and process order history |
| M20 | Check Material Ledger Master Data | Compares ACDOCA vs MLDOC_EXTRACT; validates migration completeness |
| M21 | Check Material Ledger Transaction Data | Verifies PO and production order history integrity |
Section 2 — ML-Critical Material Attributes for Brownfield Cutover
Section titled “Section 2 — ML-Critical Material Attributes for Brownfield Cutover”2.1 ML-Critical Material Master Fields
Section titled “2.1 ML-Critical Material Master Fields”| Field | Table.Field | Description | ML Migration Impact |
|---|---|---|---|
| Valuation Class | MBEW-BKLAS | Links material to G/L account determination | Drives OMWB account determination; changes during cutover block M10 |
| Price Control | MBEW-VPRSV | S = Standard Price; V = Moving Average | Determines how PUP is calculated; S-materials lose statistical MAP post-migration |
| Moving Average Price | MBEW-VERPR | Current MAP for V-materials | Migrated to ACDOCA as opening balance; must equal stock value / quantity |
| Standard Price | MBEW-STPRS | Released standard cost | Must be current-period released before M10; CK11N/CK40N prerequisite |
| ML Activity Indicator | MBEW-MLAST | Indicates ML is active for this record | Set by M10; must not be pre-set manually |
| Price Unit | MBEW-PEINH | Quantity base for price | Mismatch between price unit and stock quantity triggers M10 errors |
| Valuation Category | MBEW-BWTTY | Blank = no split; populated = split valuation | Split valuation requires all valuation types migrated; incomplete MBEW splits block M10 |
| Special Stock Indicator | MBEW-SOBKZ | E=Sales Order, Q=Project, O=Vendor consignment | Each special stock type has separate valuation tables (EBEW, QBEW, OBEW) requiring separate M10 migration records |
2.2 Split Valuation: Brownfield Rules
Section titled “2.2 Split Valuation: Brownfield Rules”Split valuation is configured via OMWC (valuation category / valuation type). For brownfield:
- All valuation types within a valuation category must have consistent MBEW records before M10
- Gaps in MBEW records (valuation type exists in Customizing but has no MBEW record) are a hard M10 blocker
- The valuation category field (
MBEW-BWTTY) drives the PUP-per-valuation-type logic in actual costing —CKMLPRrecords are created per valuation type - Configuration freeze on OMWC must be enforced from the pre-M10 gate through go-live
2.3 Mixed Costing
Section titled “2.3 Mixed Costing”Mixed costing uses multiple procurement alternatives with weighted allocation percentages. Key brownfield impacts:
- Price determination setting = 3 (single-level/multilevel) must be configured in OMX1 before M10
- All procurement alternative cost estimates must be marked and released before M10
- Incomplete or unreleased procurement alternatives produce M10 validation errors
- The cost rollup for mixed costing relies on
CKMLPRrecords created during M10 — missing procurement alternative records cannot be retroactively created post-M10
2.4 Valuation Class Changes During Cutover
Section titled “2.4 Valuation Class Changes During Cutover”Any change to MBEW-BKLAS affects G/L account determination (OMWB). Valuation class changes must not occur during the migration window because a changed valuation class alters the G/L account that M10 writes balance carryforward records to. Post-migration, the balance in ACDOCA would be on a different account than the FI balance in FS10N. All valuation class changes must be executed and reconciled (MB5L vs FS10N) before the period-close freeze.
2.5 Material Ledger Type and Currency Assignment (OMXW)
Section titled “2.5 Material Ledger Type and Currency Assignment (OMXW)”The Material Ledger type assigns currency types to valuation areas. This configuration is non-reversible — it cannot be changed after M10 runs.
| Currency Type | Name | Mandatory? |
|---|---|---|
| 10 | Company Code Currency | Yes |
| 30 | Group Currency | Yes |
| 31 | Group Currency, Group Valuation | Optional — required for group valuation |
| 32 | Group Currency, Profit Center Valuation | Optional — required for transfer pricing / EC-PCA replacement |
The selection in OMXW must be finalized and approved before the pre-M10 configuration gate is closed. Any currency type added after M10 requires a full re-run of M10.
Section 3 — Pre-Cutover Activities: Period-End Close Dependencies
Section titled “Section 3 — Pre-Cutover Activities: Period-End Close Dependencies”3.1 Period-End Close Activity Table
Section titled “3.1 Period-End Close Activity Table”Every item below is a hard blocker for M10. M10 will either error or produce incorrect results if any of these steps have not completed.
| # | Activity | Transaction | Why It Blocks M10 |
|---|---|---|---|
| 1 | Actual Costing Run — all steps including revaluation posting | CKMLCP | Open ML periods cannot be migrated; partial CKMLCP leaves CKMLPP/CKMLCR in intermediate state |
| 2 | Production/Process Order Settlement — all orders | CO88 / COHV | Unsettled orders leave WIP balances that M10 cannot cleanly migrate to ACDOCA |
| 3 | WIP Calculation and Cancellation | KKAO / KKAJ | WIP on CO objects must be zeroed or settled; residual WIP in COEP blocks M10 |
| 4 | Sales Order Cost Object Settlement | VA88 | Open sales order cost objects with unsettled WIP block M11 as well as M10 |
| 5 | CO Assessment Cycles | KSU5 | Unexecuted assessment leaves COEP/COSS in open state; ML migration reads these as source |
| 6 | CO Distribution Cycles | KSV5 | Unexecuted distribution leaves open CO period |
| 7 | GR/IR Clearing | MR11 / F.13 | EKBZ records from uncleared GR/IR are migrated by M11; mismatches produce Note 2385542 errors |
| 8 | Inventory Revaluation | MR21 | Unrevalued stock produces MAP/standard price mismatches in M10 |
| 9 | EC-PCA Period Close | 2KES | Open PCA periods block FI/ML period close prerequisite |
| 10 | FI Period Close | OB52 | FI must be closed for the migrating period before M10 |
| 11 | MM Period Close / Open | MMPV / MMRV | MM period must be aligned with FI period; mismatch is a known M10 error trigger |
| 12 | MB5L vs FS10N Reconciliation | MB5L / FS10N | Zero difference between stock value (MB5L) and FI balance (FS10N) is a go/no-go gate |
| 13 | Standard Cost Release for Current Period | CK40N / MR21 | Unreleased cost estimates for current period produce M10 validation errors for S-materials |
| 14 | Balance Carryforward for GL | FAGLGVTR | Prior-year carry-forward must be complete for ACDOCA opening balance integrity |
3.2 Period-End Close Dependency Chain
Section titled “3.2 Period-End Close Dependency Chain”flowchart TD classDef source fill:#fff3e0,stroke:#e65100,color:#000 classDef integration fill:#e8f5e9,stroke:#2e7d32,color:#000 classDef target fill:#e3f2fd,stroke:#1565c0,color:#000 classDef reporting fill:#f3e5f5,stroke:#6a1b9a,color:#000
A["CO Assessment &<br>Distribution Cycles"]:::source B["WIP Calculation"]:::source C["Prod/Process Order<br>Settlement"]:::source D["Sales Order Settlement"]:::source E["Actual Costing Run"]:::source F["GR/IR Clearing"]:::source G["Inventory Revaluation"]:::source H["EC-PCA Period Close"]:::source I["FI Period Close"]:::integration J["MM Period Close/Open"]:::integration K["Standard Cost Release"]:::source L["GL Balance Carryforward"]:::integration M["MB5L vs FS10N<br>Reconciliation — Zero Diff"]:::reporting N["M10 GO / NO-GO GATE"]:::target
A --> I B --> C C --> I D --> I E --> I F --> J G --> I H --> I I --> M J --> M K --> M L --> M M --> N| Node | Activity | Transactions |
|---|---|---|
| A | CO Assessment & Distribution Cycles | KSU5 / KSV5 |
| B | WIP Calculation | KKAO |
| C | Prod/Process Order Settlement | CO88 / COHV |
| D | Sales Order Settlement | VA88 |
| E | Actual Costing Run (all steps) | CKMLCP |
| F | GR/IR Clearing | MR11 / F.13 |
| G | Inventory Revaluation | MR21 |
| H | EC-PCA Period Close | 2KES |
| I | FI Period Close | OB52 |
| J | MM Period Close/Open | MMPV / MMRV |
| K | Standard Cost Release | CK40N |
| L | GL Balance Carryforward | FAGLGVTR |
| M | MB5L vs FS10N Reconciliation — Zero Difference | MB5L / FS10N |
| N | M10 GO / NO-GO GATE | — |
Section 4 — Brownfield Architecture Map
Section titled “Section 4 — Brownfield Architecture Map”flowchart TD classDef source fill:#fff3e0,stroke:#e65100,color:#000 classDef integration fill:#e8f5e9,stroke:#2e7d32,color:#000 classDef target fill:#e3f2fd,stroke:#1565c0,color:#000 classDef reporting fill:#f3e5f5,stroke:#6a1b9a,color:#000
subgraph SRC["ECC Source Layer"] S1["Inventory Valuation"]:::source S2["ML Period / Currency Records"]:::source S3["PO History / Delivery Costs"]:::source S4["ML Order Currency Records"]:::source S5["CO Line Items / Totals"]:::source S6["Profit Center Accounting"]:::source end
subgraph CFG["Pre-Migration Configuration Gate"] C1["ML Type / Currency Types"]:::integration C2["Price Determination"]:::integration C3["Split Valuation Config"]:::integration C4["Valuation Class / G-L Determination"]:::integration C5["COGS Split Activation"]:::integration C6["SP-Level Corrections"]:::integration end
subgraph MIG["Migration Engine — FINS_MIG_STATUS"] M10["Migrate ML Master Data"]:::integration M11["Migrate ML Transaction Data"]:::integration M20["Check ML Master Data"]:::integration M21["Check ML Transaction Data"]:::integration M10 --> M11 M11 --> M20 M20 --> M21 end
subgraph TGT["S/4HANA Target Layer"] T1["Universal Journal — Opening Balances"]:::target T2["ML Documents"]:::target T3["ML Header / Price Records"]:::target T4["Balance Carryforward Records"]:::target end
subgraph PC["Product Costing Layer"] P1["Standard Cost Estimate"]:::target P2["Actual Costing Run"]:::target P3["WIP Settlement"]:::target P4["COGS Split Posting"]:::target end
subgraph VAL["Post-Migration Validation Layer"] V1["Stock Value Report"]:::reporting V2["G-L Balance"]:::reporting V3["GR/IR Clearing"]:::reporting V4["ML Actual Cost Analysis"]:::reporting V5["MM Period Open/Close"]:::reporting end
subgraph RPT["Reporting Layer"] R1["Inventory Valuation Analytics"]:::reporting R2["COGS Split Report"]:::reporting R3["Profit Center Report"]:::reporting R4["Group Valuation Report"]:::reporting end
SRC --> CFG CFG --> MIG MIG --> TGT TGT --> PC TGT --> VAL VAL --> RPT PC --> VAL| Node | Detail | Transactions / Tables |
|---|---|---|
| S1 | Inventory Valuation | MBEW / EBEW / QBEW / OBEW |
| S2 | ML Period / Currency Records | CKMLPP / CKMLCR |
| S3 | PO History / Delivery Costs | EKBE / EKBZ |
| S4 | ML Order Currency Records | MLAUFCR |
| S5 | CO Line Items / Totals | COEP / COSS / COSP |
| S6 | Profit Center Accounting | EC-PCA |
| C1 | ML Type / Currency Types | OMXW (10 / 30 / 31 / 32) |
| C2 | Price Determination | OMX1 (Setting = 3) |
| C3 | Split Valuation Config | OMWC |
| C4 | Valuation Class / G-L Account Determination | OMWB |
| C5 | COGS Split Activation | — |
| C6 | SP-Level Corrections via SNOTE | SAP Note 2345739 |
| M10 | Migrate ML Master Data | M10 |
| M11 | Migrate ML Transaction Data | M11 |
| M20 | Check ML Master Data | M20 |
| M21 | Check ML Transaction Data | M21 |
| T1 | Universal Journal — Opening Balances | ACDOCA |
| T2 | ML Documents | MLDOC / MLDOC_EXTRACT |
| T3 | ML Header / Price Records | CKMLHD / CKMLPR |
| T4 | Balance Carryforward Records | BSTAT=C |
| P1 | Standard Cost Estimate | CK11N / CK40N |
| P2 | Actual Costing Run | CKMLCP |
| P3 | WIP Settlement | KKAO / CO88 |
| P4 | COGS Split Posting | — |
| V1 | Stock Value Report | MB5L |
| V2 | G-L Balance | FS10N |
| V3 | GR/IR Clearing | MR11 |
| V4 | ML Actual Cost Analysis | CKM3N |
| V5 | MM Period Open/Close | MMPV / MMRV |
| R1 | Inventory Valuation Analytics | Fiori Embedded Analytics |
| R2 | COGS Split Report | — |
| R3 | Profit Center Report | Currency Type 32 |
| R4 | Group Valuation Report | Currency Types 30/31 |
Section 5 — SAP Note 2345739 Analysis for Brownfield
Section titled “Section 5 — SAP Note 2345739 Analysis for Brownfield”5.1 Note Structure
Section titled “5.1 Note Structure”SAP Note 2345739 is a living coordination note containing correction tables organized by S/4HANA target version and Service Pack level. Each cell in the matrix is either blank (note already included in that SP) or marked X (note is missing from that SP and must be manually implemented via SNOTE).
5.2 How to Read and Implement the X-Matrix
Section titled “5.2 How to Read and Implement the X-Matrix”- Identify the S/4HANA target version: 2021 (S4CORE 106), 2022 (S4CORE 107), 2023 (S4CORE 108), or 2025 (S4CORE 109)
- Identify the Service Pack level (SP00 through SP08)
- Find the version table in Note 2345739
- Every note marked X in the SP column is not included in the system and must be implemented manually via transaction
SNOTE - Implement all X-marked notes before M10 execution — do not selectively implement based on perceived relevance
“Not all notes are relevant for all customers. Some are specific for NZDT/DOC conversion. Some also contain manual steps for specific scenarios (don’t execute those steps). Still, by implementing all of the mentioned notes, you can prevent a large amount of issues from occurring.” — SAP Note 2345739
5.3 SP-Level Risk Table: Note Volume by Version at SP00
Section titled “5.3 SP-Level Risk Table: Note Volume by Version at SP00”At SP00 — the highest-risk entry point — the X-matrix is fully populated. The table below summarizes the correction note volume at SP00 versus SP08 (counts derived from the X-matrix in the attached note; exact counts vary by customer scenario):
| S/4HANA Version | SP00 Notes to Implement Manually | SP08 Notes to Implement Manually | Risk at SP00 |
|---|---|---|---|
| 2021 (106) | ~25+ | ~0–2 | Critical |
| 2022 (107) | ~18+ | ~0–2 | High |
| 2023 (108) | ~12+ | ~0–2 | High |
| 2025 (109) | ~8+ | ~0–2 | Medium |
Recommendation: Target SP05 or higher for the S/4HANA target version to materially reduce the manual SNOTE implementation burden before M10.
5.4 NZDT/DOC Conversion — Specific Note Applicability
Section titled “5.4 NZDT/DOC Conversion — Specific Note Applicability”Near-Zero Downtime (NZDT) and Downtime-Optimized Conversion (DOC) are SUM execution modes that perform preparatory steps in the background while the system is still online. Notes marked as NZDT/DOC-specific in Note 2345739 apply only to these execution modes and should not be executed for standard downtime conversions. Review each X-marked note’s description before implementing to confirm applicability.
5.5 Manual Steps Warning
Section titled “5.5 Manual Steps Warning”Several notes in the 2345739 matrix contain mandatory manual pre- or post-steps that SNOTE implementation alone does not execute. These may include:
- Database table entries that must be inserted manually before M10
- Report programs that must be run before or after M10 to remediate specific data scenarios
- Configuration switches that must be set in the IMG
For every X-marked note, read the full note text in SAP ONE Support Launchpad before implementing. SNOTE import is not sufficient for every note.
5.6 Cross-Referenced Notes: Key Items
Section titled “5.6 Cross-Referenced Notes: Key Items”| SAP Note | Component | Issue Addressed | Brownfield Relevance |
|---|---|---|---|
| 2927214 | FIN-MIG-ML | TSV_TNEW_PAGE_ALLOC_FAILED or BL001 or SQL-4 memory shortage during M10 | Critical — HANA sizing must account for ML migration working set |
| 2408065 | CO-PC-ACT | Error FINS_ML_MIG 080 CREATE_CCS_2 during M10 | High — CCS creation failure; check actual costing configuration |
| 2416066 | FIN-MIG | Set next activity for resettable steps shall not delete packages | Medium — relevant when M10 must be reset and re-run |
| 2414482 | CO-PC-ACT | Adaption of M20 error messages | Medium — M20 error message clarity improvement |
| 2413401 | CO-PC-ACT | No CKMLCT / FMLT_CURT_ML entries exist for valuation area | High — missing currency table entries block M10 |
| 2387172 | CO-PC-ACT | ML Migration Corrections for Actual Costing (WIP, CCS) | High — WIP and CCS-specific M10 corrections |
| 2385542 | CO-PC-ACT | Sum of quantities is 0, but sum of values is not 0 for EKBZ | Critical — produces hard M10/M11 errors |
| 2381743 | CO-PC-ACT | ML migration corrections (1610 SP00) | Medium — foundational corrections; verify SP applicability |
| 2364977 | CO-PC-ACT | ML Migration Corrections for Actual Costing | Medium — actual costing specific |
5.7 Memory and Performance: M10 Parallel Processing
Section titled “5.7 Memory and Performance: M10 Parallel Processing”M10 processes all valuation areas and material records. For large systems (>500K material-plant combinations), M10 can take many hours on a single process.
- Use the background job configuration within
FINS_MIG_STATUSto set the number of parallel work processes for M10 - Note 2927214 specifically addresses memory shortage (
TSV_TNEW_PAGE_ALLOC_FAILED) during M10 parallel execution - HANA memory sizing for the migration window must account for the M10 working set — do not run M10 on a HANA system sized only for production steady-state
- Monitor M10 execution via
SM37andFINS_MIG_STATUSstatus screen; intermediate restart is possible using Note 2416066 package protection
Section 6 — SAP Note 2239701 Analysis for Brownfield
Section titled “Section 6 — SAP Note 2239701 Analysis for Brownfield”6.1 Role of RDM in Brownfield Context
Section titled “6.1 Role of RDM in Brownfield Context”SAP Rapid Data Migration (RDM), delivered via Note 2239701, is built on SAP Data Services 4.3. In a brownfield conversion, RDM is supplementary — not primary. The primary migration engine is FINS_MIG_STATUS. RDM becomes relevant where:
- Supplementary master data loads are required alongside the conversion
- Business Partner migration completeness must be verified before M11
- Data quality tooling is needed to clean the source before conversion
6.2 RDM Objects Relevant to Brownfield ML Cutover
Section titled “6.2 RDM Objects Relevant to Brownfield ML Cutover”| RDM Object | Brownfield Relevance |
|---|---|
| Material Master | Supplementary plant extensions or new materials added during project |
| Inventory Balances | Relevant only for new plants added during conversion; existing balances migrate via M10 |
| Production Orders | Relevant only if new production orders are loaded post-conversion for testing |
| Purchase Orders | New POs for new organizational units; existing POs migrate via M11 |
| Cost Centers | New cost centers for restructured org; existing migrate via standard conversion |
| Activity Types | New activity types for new plants/cost centers |
| Activity Prices | Must be loaded for new activity types before CKMLCP runs post go-live |
| Bill of Materials | New BOM structures added during project scope |
| Routing | New routings for new production scope |
6.3 INFREC IDoc Warning and Impact on EKBZ/M11
Section titled “6.3 INFREC IDoc Warning and Impact on EKBZ/M11”Note 2239701 contains an explicit warning: the INFREC IDoc is not supported for data transfer and SAP will provide no support for it in that context. If a project team attempts to use INFREC to load or repair Purchase Info Records during the migration window, this can corrupt EKBZ records that M11 subsequently reads. Any EKBZ corruption produces the Note 2385542 error pattern (sum of quantities = 0, sum of values ≠ 0).
6.4 Business Partner Migration: Vendor/Customer Completeness
Section titled “6.4 Business Partner Migration: Vendor/Customer Completeness”M11 migrates purchase order and process order history tied to vendor records. If vendor master records have not been fully synchronized to Business Partner (BP) format before M11 runs, M11 can produce FK violations or incomplete ACDOCA records. The CVI (Customer-Vendor Integration) synchronization must complete before M11 execution.
6.5 Secondary Cost Element Elimination
Section titled “6.5 Secondary Cost Element Elimination”Note 2239701 explicitly states: “Secondary Cost Element (It is not supported by SAP S/4HANA).” In S/4HANA, secondary cost elements are replaced by primary G/L accounts in the chart of accounts. For brownfield, this affects:
- Assessment cycles (KSU5): Sender cost elements must be mapped to G/L accounts in S/4HANA; configuration must be updated before go-live
- COGS Reporting: Secondary CElem-based COGS splits must be reconfigured to use G/L account-based COGS Split activated pre-M10
- Costing Sheets: Secondary cost elements in overhead costing sheets must be replaced with primary accounts
- Data migration: The RDM object for Secondary Cost Elements has no migration path. They are replaced by G/L accounts that must be created in the S/4HANA chart of accounts before go-live. Any custom reporting referencing secondary cost element ranges must be reconfigured to reference G/L account ranges
6.6 LSMW Deprecation Reference
Section titled “6.6 LSMW Deprecation Reference”SAP Note 2287723 (referenced by Note 2239701) confirms that LSMW is deprecated in SAP S/4HANA On-Premise and Private Cloud. Any brownfield project that relied on LSMW for supplementary master data loads must migrate those processes to:
- SAP Migration Cockpit (
LTMC) — preferred for standard objects - SAP Data Services via RDM content (Note 2239701) — preferred for high-volume or complex transformations
- Direct BAPI/IDoc calls — for custom integration scenarios
Section 7 — Migration Steps: M10/M11/M20/M21 Deep Dive
Section titled “Section 7 — Migration Steps: M10/M11/M20/M21 Deep Dive”7.1 M10 — Migrate Material Ledger Master Data
Section titled “7.1 M10 — Migrate Material Ledger Master Data”M10 is the foundational ML migration step. It activates the Material Ledger for all valuation areas in scope and migrates inventory valuation master data into the S/4HANA data model.
Tables read (source):
| Table | Content |
|---|---|
MBEW | Material valuation — company code / plant level |
EBEW | Sales order stock valuation |
QBEW | Project stock valuation |
OBEW | Vendor consignment stock valuation |
CKMLPP | ML period records |
CKMLCR | ML currency records |
T001K | Valuation areas |
T001 | Company codes |
OMXW | ML type / currency type assignment |
Tables written (target):
| Table | Content |
|---|---|
ACDOCA | Universal Journal — opening balance carryforward records |
CKMLHD | ML header records per material/plant |
CKMLPR | ML price records per valuation type |
CKMLPP | ML period records (updated/created) |
CKMLCR | ML currency records (updated/created) |
MLDOC | ML documents for opening balances |
Parallel processing: M10 supports parallel processing via package-based distribution across work processes. Configure the number of parallel jobs in FINS_MIG_STATUS before execution. For systems with >200K material-plant records, a minimum of 8 parallel work processes is recommended. Monitor via SM37.
Hard prerequisites for M10:
- All period-end close activities from Section 3 complete
- All X-marked notes from Note 2345739 implemented via SNOTE
- OMXW currency type assignment finalized and frozen
- MB5L vs FS10N reconciliation = zero difference
- FI and MM periods aligned
7.2 M11 — Migrate Material Ledger Transaction Data
Section titled “7.2 M11 — Migrate Material Ledger Transaction Data”M11 converts purchase order history, delivery cost records, and ML order currency records from ECC format to the S/4HANA ACDOCA-based format.
Tables read (source):
| Table | Content |
|---|---|
EKBE | PO history — goods receipts, invoice receipts |
EKBZ | PO history — delivery costs |
MLAUFCR | ML order currency records (process/production orders) |
MSEG | Material document segments |
Tables written (target):
| Table | Content |
|---|---|
ACDOCA | PO history line items in Universal Journal format |
MLDOC | ML documents for historical PO movements |
CKMLMVSP | ML movement split records |
Dependency: M11 requires M10 to be in COMPLETED status. M11 reads the CKMLHD and CKMLPR records created by M10 as foreign key references.
Key risk: EKBZ quantity/value mismatch (Note 2385542). If the sum of quantities across EKBZ records for a PO item is zero but the sum of values is not zero, M11 produces a hard error. This must be remediated in the source system before M11 execution.
7.3 M20 — Check Material Ledger Master Data
Section titled “7.3 M20 — Check Material Ledger Master Data”M20 is a validation step, not a data migration step. It compares the migrated ACDOCA records against MLDOC_EXTRACT to verify that all inventory valuation balances migrated correctly.
Check logic:
- For each material/plant/valuation type/currency type combination: ACDOCA balance = MBEW-derived expected value
- Price control consistency: S-materials have standard price in ACDOCA; V-materials have MAP
- Currency type completeness: all currency types defined in OMXW have corresponding ACDOCA records
- Special stock completeness: EBEW, QBEW, OBEW records verified in ACDOCA
Error resolution:
- Run M20 in simulation mode first (
FINS_MIG_STATUS→ M20 → Test Run) - Review error log in
SLG1(object:FINS_MIG, subobject:ML_MIGRATION) - For each error category, apply the relevant note from the 2345739 matrix or execute the documented manual correction
- Re-run M20 until zero errors
- Proceed to M21 only after M20 is error-free
7.4 M21 — Check Material Ledger Transaction Data
Section titled “7.4 M21 — Check Material Ledger Transaction Data”M21 validates the M11 migration output. It verifies that PO history and production order history records in ACDOCA are consistent with the source EKBE/EKBZ/MLAUFCR records.
Check logic:
- PO quantity and value totals in ACDOCA match EKBE totals per PO item
- Delivery cost totals in ACDOCA match EKBZ totals per PO item
- ML order currency records in ACDOCA match MLAUFCR totals
- Business Partner existence verified for all vendor-linked records
Completion gate: When M20 and M21 both reach status COMPLETED in FINS_MIG_STATUS, the ML migration is complete and the system is unlocked for go-live processing.
7.5 FINS_MIG_STATUS Full Execution Sequence
Section titled “7.5 FINS_MIG_STATUS Full Execution Sequence”flowchart TD classDef source fill:#fff3e0,stroke:#e65100,color:#000 classDef integration fill:#e8f5e9,stroke:#2e7d32,color:#000 classDef target fill:#e3f2fd,stroke:#1565c0,color:#000 classDef reporting fill:#f3e5f5,stroke:#6a1b9a,color:#000
A["Period-End Close Complete"]:::source B["MB5L = FS10N Zero Diff"]:::source C["Note 2345739 X-Notes Done"]:::source D["Configuration Frozen"]:::source
E["FINS_MIG_STATUS Pre-Check"]:::integration F{"Pre-Check<br>Errors?"} G["Resolve Pre-Check Errors"]:::integration
H["M10 — Migrate ML Master Data"]:::integration I{"M10<br>Status?"} J["M10 Error Resolution"]:::integration
K["M11 — Migrate ML Transaction Data"]:::integration L{"M11<br>Status?"} M["M11 Error Resolution"]:::integration
N["M20 — Check ML Master Data"]:::integration O{"M20<br>Status?"} P["M20 Error Resolution"]:::integration
Q["M21 — Check ML Transaction Data"]:::integration R{"M21<br>Status?"} S["M21 Error Resolution"]:::integration
T["FINS_MIG_STATUS = ALL COMPLETED"]:::target U["Go-Live Unlocked"]:::target
A --> E B --> E C --> E D --> E E --> F F -->|Yes| G G --> E F -->|No| H H --> I I -->|Error| J J --> H I -->|Completed| K K --> L L -->|Error| M M --> K L -->|Completed| N N --> O O -->|Error| P P --> N O -->|Completed| Q Q --> R R -->|Error| S S --> Q R -->|Completed| T T --> U| Node | Step | Transactions / Tables / Notes |
|---|---|---|
| A | Period-End Close Complete — All Steps | — |
| B | MB5L = FS10N Zero Difference Confirmed | MB5L / FS10N |
| C | Note 2345739 All X-Notes Implemented | Note 2345739 |
| D | OMXW / OMX1 / OMWC Configuration Frozen | OMXW / OMX1 / OMWC |
| E | FINS_MIG_STATUS Pre-Check / Simulation | FINS_MIG_STATUS |
| G | Resolve Errors | SNOTE / Data Fix / Config Correction |
| H | M10 — Migrate ML Master Data (Parallel Background Jobs) | M10 |
| J | M10 Error Resolution | SLG1 / SM37 / Note 2345739 |
| K | M11 — Migrate ML Transaction Data | EKBE / EKBZ / MLAUFCR |
| M | M11 Error Resolution | Note 2385542 / BP Sync / INFREC check |
| N | M20 — Check ML Master Data | ACDOCA vs MLDOC_EXTRACT |
| P | M20 Error Resolution | SLG1 / Note 2414482 / Manual Corrections |
| Q | M21 — Check ML Transaction Data | PO / Order History |
| S | M21 Error Resolution | EKBE/EKBZ Mismatch / BP Completeness |
| T | FINS_MIG_STATUS ALL STEPS = COMPLETED | FINS_MIG_STATUS |
| U | Go-Live Unlocked — Post-Migration Validation Can Begin | — |
7.6 Common Error Patterns and Resolution Steps
Section titled “7.6 Common Error Patterns and Resolution Steps”| Error Pattern | Likely Step | Root Cause | Resolution |
|---|---|---|---|
TSV_TNEW_PAGE_ALLOC_FAILED | M10 | HANA memory insufficient for M10 working set | Apply Note 2927214; increase HANA memory allocation; reduce parallel job count |
FINS_ML_MIG 080 CREATE_CCS_2 | M10 | Cost Component Split creation failure | Apply Note 2408065; verify actual costing CCS configuration in OMX1 |
| Sum of quantities = 0, values ≠ 0 for EKBZ | M11 | EKBZ data quality — delivery cost record mismatch | Apply Note 2385542; execute EKBZ correction program before M11 |
| No CKMLCT / FMLT_CURT_ML entries | M10 | Missing currency table entries for valuation area | Apply Note 2413401; verify OMXW currency type assignment |
FINS_ML_MIG 080 — WIP/CCS errors | M10 | Open WIP or incomplete CCS in source | Apply Note 2387172; complete CO88/KKAO before M10 |
| M20 balance mismatch | M20 | Rounding or currency conversion delta | Review SLG1; apply relevant 2345739 matrix note; check MB5L vs ACDOCA directly |
| BP FK violation | M11 | Vendor not synchronized to Business Partner | Complete CVI synchronization; verify via BP transaction |
| Resettable step deletes packages | M10 reset | M10 reset deletes partially processed packages | Apply Note 2416066 before any M10 reset attempt |
Section 8 — Product Costing Scenarios: Brownfield Impact Assessment
Section titled “Section 8 — Product Costing Scenarios: Brownfield Impact Assessment”8.1 Standard Costing (Price Control = S)
Section titled “8.1 Standard Costing (Price Control = S)”- A current-period released standard cost estimate must exist for every S-material in every plant before M10 runs
- In ECC, S-materials carry a statistical moving average price alongside the standard price. In S/4HANA, the statistical MAP is eliminated. Reports relying on
MBEW-VERPRfor S-materials will break post-migration and must be redesigned to use ACDOCA-based price variance reporting - Execute
CK40N(mass costing) and ensure all cost estimates are in Released status before M10
8.2 Actual Costing (CKM3 / CKMLCP)
Section titled “8.2 Actual Costing (CKM3 / CKMLCP)”- Actual costing is optional. If active in ECC, source CKMLPP/CKMLCR data is fully migrated by M10
- If actual costing was not active in ECC and is to be activated in S/4HANA, activation must occur before M10 with the correct configuration in OMX1 (price determination = 3)
- Post-M10, CKMLCP runs in S/4HANA follow the same sequence as ECC: preliminary costing → actual price determination → revaluation posting → WIP revaluation → balance sheet revaluation
- ML documents are created per goods movement in ACDOCA from go-live onward; historical ML documents from ECC are migrated via M10/M11
8.3 Mixed Costing
Section titled “8.3 Mixed Costing”- Requires price determination = 3 in OMX1 and correctly configured procurement alternatives before M10
- The multilevel cost rollup in S/4HANA uses
CKMLPRrecords (created by M10) as the basis for mixed price calculation - All procurement alternative cost estimates must be marked and released before M10; incomplete procurement alternatives produce M10 errors that cannot be resolved post-migration without a full M10 reset
8.4 Split Valuation + Actual Costing Interaction
Section titled “8.4 Split Valuation + Actual Costing Interaction”- When split valuation is active, actual costing creates a separate
CKMLPRrecord per valuation type within the valuation category - The Periodic Unit Price (PUP) is calculated per valuation type, not at the aggregate material/plant level
- All valuation types must have complete MBEW records before M10; missing valuation type records cause M10 to create incomplete
CKMLPRrecords, resulting in M20 errors
8.5 COGS Split
Section titled “8.5 COGS Split”COGS Split enables disaggregation of Cost of Goods Sold into cost components posted to separate G/L accounts on the goods issue.
- Activation requirement: COGS Split must be activated and configured before M10. Activating COGS Split after M10 requires a partial ML migration reset and is not supported in a live system
- Cost component to G/L mapping: Each cost component structure element must be mapped to a specific G/L account in the COGS Split configuration
- Day 1 configuration: The mapping must be complete before the first goods issue posting in S/4HANA. Any goods issue posted before the mapping is complete posts COGS to the default account without disaggregation — this cannot be retroactively split
8.6 Parallel COGM (Cost of Goods Manufactured)
Section titled “8.6 Parallel COGM (Cost of Goods Manufactured)”Parallel COGM is available in the cloud edition of SAP S/4HANA only via Universal Parallel Accounting. For S/4HANA On-Premise (the target in scope for this whitepaper), parallel COGM is not available as a standard feature. Currency types 30/31/32 provide parallel valuation for inventory and COGS but do not provide a full parallel COGM calculation.
8.7 Profit Center Valuation
Section titled “8.7 Profit Center Valuation”- Currency type 32 in ACDOCA carries the profit center valuation (transfer price valuation), replacing EC-PCA
- EC-PCA data (tables
GLPCA,GLPCT) is migrated to ACDOCA currency type 32 records during the FI migration steps (F-series steps inFINS_MIG_STATUS) - The
2KESEC-PCA period close must complete before M10; any open EC-PCA period leaves currency type 32 records in an indeterminate state - Post-migration, profit center reports are driven directly from ACDOCA filtered by currency type 32 — the separate EC-PCA ledger no longer exists
- Transfer pricing configuration must be reconfigured in the S/4HANA Profit Center Valuation framework before go-live
8.8 Group Valuation
Section titled “8.8 Group Valuation”- Currency types 30 (group currency, legal valuation) and 31 (group currency, group valuation) in ACDOCA carry group valuation, replacing the parallel ledger approach for group reporting in ECC
- Currency types 30/31 must be assigned in OMXW before M10 — they cannot be added post-M10 without a full migration reset
- Group valuation requires that intercompany elimination entries and transfer price adjustments be configured in the S/4HANA Group Valuation framework before go-live
8.9 WIP: Settlement Requirements and ACDOCA Verification
Section titled “8.9 WIP: Settlement Requirements and ACDOCA Verification”- WIP must be fully settled or zeroed via
KKAO/CO88before M10 - Any residual WIP in
COEP/COSSat M10 execution time is migrated to ACDOCA as a WIP balance carryforward record — if unintentional, this produces incorrect opening balances that are difficult to correct post-go-live - Post-migration WIP verification: run
KKAOin display mode and cross-check WIP balances in ACDOCA (filterRWTYPE = 'WIP') against the expected zero or settled position - Note 2387172 addresses specific WIP and CCS migration corrections relevant to this scenario
Section 9 — Risk Register: Brownfield
Section titled “Section 9 — Risk Register: Brownfield”| Risk ID | Description | Probability | Impact | Source | Mitigation |
|---|---|---|---|---|---|
| R01 | Open Actual Costing Run at M10 execution — CKMLCP not fully completed including revaluation posting | High | Critical | CKMLCP / M10 pre-check | Mandate CKMLCP full completion as period-close gate sign-off; verify CKMLPP status = 70 (closed) for all periods |
| R02 | Missing SAP notes from Note 2345739 X-matrix — SNOTE implementation incomplete before M10 | High | Critical | Note 2345739 | Build SNOTE implementation checklist from the version/SP matrix; verify via SNOTE status report before M10 window opens |
| R03 | Currency type gap in OMXW — required currency type not assigned before M10; non-reversible after M10 | Medium | Critical | OMXW configuration | Conduct OMXW configuration review in Assess phase; obtain business sign-off on currency types 10/30/31/32 before configuration freeze |
| R04 | Custom ABAP code writing directly to xBEW tables (MBEW/EBEW/QBEW/OBEW) — bypasses ML document creation post-go-live | High | High | Custom code / ATC | Execute SAP ATC custom code check pre-migration; replace direct table writes with standard MM API calls |
| R05 | Split valuation MBEW gaps — valuation type exists in OMWC but has no MBEW record for one or more plants | Medium | Critical | OMWC / MBEW data quality | Run MBEW completeness check for all valuation categories/types across all plants before M10; create missing records via MR21/MB1C |
| R06 | EKBZ quantity/value mismatch — Note 2385542 scenario; M11 hard error | High | High | Note 2385542 | Execute EKBZ data quality check program from Note 2385542 in pre-migration phase; remediate all mismatches before M11 |
| R07 | Unsettled WIP at M10 — residual WIP in COEP migrated as incorrect opening balance | Medium | High | CO88 / KKAO / M10 | Mandate CO88/KKAO completion as hard gate before M10; verify COEP open items = zero for all relevant order categories |
| R08 | M10 memory shortage — TSV_TNEW_PAGE_ALLOC_FAILED during parallel M10 execution | Medium | High | Note 2927214 | Apply Note 2927214 before M10; size HANA memory for migration working set; pre-test parallel job configuration in mock cutover |
| R09 | COGS Split not pre-configured before M10 — cannot be activated retroactively without ML reset | Medium | Critical | COGS Split activation | Confirm COGS Split activation decision in Assess phase; complete cost component to G/L mapping before configuration freeze |
| R10 | INFREC IDoc misuse during migration window — corrupts EKBZ records before M11 | Low | High | Note 2239701 | Issue explicit project-wide instruction prohibiting INFREC IDoc use during migration window; monitor via RFC/IDoc audit log |
| R11 | Assessment cycle secondary cost element references — KSU5 cycles reference CE accounts that no longer exist in S/4HANA | High | High | Secondary CElem elimination / Note 2239701 | Complete secondary cost element to G/L account mapping before go-live; retest all assessment cycles in sandbox/mock cutover |
| R12 | MM/FI period misalignment — MM period and FI period not synchronized at M10 execution | Medium | High | MMPV / OB52 | Verify MM and FI period alignment as part of period-close gate sign-off; include in MB5L vs FS10N checklist |
| R13 | Statistical MAP report breakage — custom or standard reports using MBEW-VERPR for S-materials fail post-migration | High | Medium | MBEW-VERPR elimination | Inventory all reports using statistical MAP; redesign to ACDOCA price variance fields before go-live |
| R14 | Transfer pricing reconfiguration incomplete — currency type 32 profit center valuation not configured before go-live | Medium | High | OMXW / EC-PCA replacement | Include transfer pricing configuration in scope sign-off; test profit center valuation reports against ACDOCA currency type 32 in mock cutover |
Section 10 — Execution Playbook: Brownfield
Section titled “Section 10 — Execution Playbook: Brownfield”Phase 1 — Assess and Prepare (8–12 Weeks)
Section titled “Phase 1 — Assess and Prepare (8–12 Weeks)”| # | Activity | Owner | Transaction / Tool | SAP Note Reference |
|---|---|---|---|---|
| 1.1 | Confirm S/4HANA target version and SP level | Project Lead | SAP Maintenance Planner | — |
| 1.2 | Download and analyze Note 2345739 X-matrix for target version/SP | Basis / FI-CO Lead | SAP ONE Support Launchpad | Note 2345739 |
| 1.3 | Build SNOTE implementation checklist from X-matrix | Basis Lead | SNOTE | Note 2345739 |
| 1.4 | Execute SAP ATC custom code scan for xBEW direct writes | ABAP Lead | ATC / SCI | — |
| 1.5 | Inventory all reports using MBEW-VERPR statistical MAP | FI-CO / BI Lead | SE16N / report inventory | — |
| 1.6 | Confirm actual costing activation decision | FI-CO Lead / Business | OMX1 | — |
| 1.7 | Confirm COGS Split activation and cost component mapping | FI-CO Lead / Business | COGS Split config | — |
| 1.8 | Confirm currency types 10/30/31/32 requirement | CFO / FI-CO Lead | OMXW | — |
| 1.9 | Confirm split valuation scope and OMWC configuration | MM Lead | OMWC | — |
| 1.10 | Confirm mixed costing scope and procurement alternative configuration | CO-PC Lead | OMX1 | — |
| 1.11 | Execute MBEW completeness check for split valuation | MM Lead | SE16N / custom report | Note 2345739 |
| 1.12 | Execute EKBZ data quality check for Note 2385542 scenario | FI-CO Lead | Custom check / Note 2385542 | Note 2385542 |
| 1.13 | Verify Business Partner / CVI synchronization completeness | FI Lead | BP / CVI config | Note 2239701 |
| 1.14 | Map secondary cost elements to S/4HANA G/L accounts | CO Lead | KA01 / FS00 | Note 2239701 |
| 1.15 | Inventory assessment and distribution cycles for CE references | CO Lead | KSU5 / KSV5 | — |
| 1.16 | Confirm transfer pricing / profit center valuation requirements | CFO / CO Lead | OMXW / EC-PCA config | — |
| 1.17 | Size HANA memory for M10 migration working set | Basis Lead | HANA Studio / sizing guide | Note 2927214 |
| 1.18 | Establish MB5L vs FS10N reconciliation baseline | FI Lead | MB5L / FS10N | — |
Phase 2 — Configure and Remediate (4–8 Weeks)
Section titled “Phase 2 — Configure and Remediate (4–8 Weeks)”| # | Activity | Owner | Transaction / Tool | SAP Note Reference |
|---|---|---|---|---|
| 2.1 | Implement all X-marked notes from 2345739 matrix via SNOTE | Basis Lead | SNOTE | Note 2345739 |
| 2.2 | Apply Note 2927214 (M10 memory shortage) | Basis Lead | SNOTE | Note 2927214 |
| 2.3 | Apply Note 2416066 (resettable step package protection) | Basis Lead | SNOTE | Note 2416066 |
| 2.4 | Apply Note 2408065 (FINS_ML_MIG 080 CREATE_CCS_2) | Basis Lead | SNOTE | Note 2408065 |
| 2.5 | Apply Note 2385542 (EKBZ mismatch correction) | Basis / FI-CO Lead | SNOTE + manual steps | Note 2385542 |
| 2.6 | Finalize and freeze OMXW currency type assignment | FI-CO Lead | OMXW | — |
| 2.7 | Finalize and freeze OMX1 price determination setting | CO-PC Lead | OMX1 | — |
| 2.8 | Finalize and freeze OMWC split valuation configuration | MM Lead | OMWC | — |
| 2.9 | Complete COGS Split activation and G/L mapping | FI-CO Lead | COGS Split IMG | — |
| 2.10 | Complete secondary cost element to G/L account migration | CO Lead | FS00 / KA06 | Note 2239701 |
| 2.11 | Remediate all custom ABAP code flagged in ATC scan | ABAP Lead | SE80 / ATC | — |
| 2.12 | Remediate MBEW gaps for split valuation | MM Lead | MR21 / MB1C | — |
| 2.13 | Remediate EKBZ mismatches identified in Phase 1 | FI-CO Lead | Manual / correction program | Note 2385542 |
| 2.14 | Complete CVI synchronization for all vendors/customers | FI Lead | BP / CVI | Note 2239701 |
| 2.15 | Reconfigure assessment/distribution cycles for G/L accounts | CO Lead | KSU5 / KSV5 | — |
| 2.16 | Configure transfer pricing / profit center valuation | CO Lead | PC valuation IMG | — |
| 2.17 | Complete standard cost release for all S-materials | CO-PC Lead | CK40N | — |
Phase 3 — Mock Cutovers (2–4 Weeks)
Section titled “Phase 3 — Mock Cutovers (2–4 Weeks)”| # | Activity | Owner | Transaction / Tool | SAP Note Reference |
|---|---|---|---|---|
| 3.1 | Execute full period-end close sequence in mock system | FI-CO Lead | Full close sequence | — |
| 3.2 | Verify MB5L vs FS10N = zero difference in mock | FI Lead | MB5L / FS10N | — |
| 3.3 | Execute FINS_MIG_STATUS pre-check simulation in mock | Basis / FI-CO Lead | FINS_MIG_STATUS | Note 2345739 |
| 3.4 | Execute M10 in mock — measure elapsed time and memory | Basis Lead | FINS_MIG_STATUS / SM37 | Note 2927214 |
| 3.5 | Execute M11 in mock — verify EKBE/EKBZ completeness | FI-CO Lead | FINS_MIG_STATUS | Note 2385542 |
| 3.6 | Execute M20 in mock — resolve all check errors | FI-CO Lead | FINS_MIG_STATUS / SLG1 | Note 2345739 |
| 3.7 | Execute M21 in mock — resolve all check errors | FI-CO Lead | FINS_MIG_STATUS / SLG1 | Note 2345739 |
| 3.8 | Validate ACDOCA opening balances vs MB5L/FS10N | FI Lead | ACDOCA / MB5L / FS10N | — |
| 3.9 | Test CKMLCP first run in S/4HANA mock environment | CO-PC Lead | CKMLCP | — |
| 3.10 | Test COGS Split posting on first goods issue | CO-PC Lead | MIGO / COGS Split report | — |
| 3.11 | Test profit center valuation report (currency type 32) | CO Lead | Fiori / S_ALR_* | — |
| 3.12 | Test group valuation report (currency types 30/31) | CO Lead | Fiori / group valuation report | — |
| 3.13 | Test assessment/distribution cycles with new G/L accounts | CO Lead | KSU5 / KSV5 | — |
| 3.14 | Document mock cutover elapsed time for migration window planning | Project Lead | Cutover plan | — |
| 3.15 | Execute second mock cutover incorporating all Phase 3 findings | All | Full sequence | — |
Phase 4 — Period Close and Freeze (Final Week)
Section titled “Phase 4 — Period Close and Freeze (Final Week)”| # | Activity | Owner | Transaction / Tool | SAP Note Reference |
|---|---|---|---|---|
| 4.1 | Execute CO assessment and distribution cycles | CO Lead | KSU5 / KSV5 | — |
| 4.2 | Execute WIP calculation and cancellation | CO-PC Lead | KKAO / KKAJ | — |
| 4.3 | Execute production/process order settlement | CO-PC Lead | CO88 / COHV | — |
| 4.4 | Execute sales order cost object settlement | SD/CO Lead | VA88 | — |
| 4.5 | Execute full Actual Costing Run including revaluation | CO-PC Lead | CKMLCP | — |
| 4.6 | Execute GR/IR clearing | FI Lead | MR11 / F.13 | Note 2385542 |
| 4.7 | Execute inventory revaluation for any MAP corrections | MM / FI Lead | MR21 | — |
| 4.8 | Execute EC-PCA period close | CO Lead | 2KES | — |
| 4.9 | Execute FI period close | FI Lead | OB52 | — |
| 4.10 | Execute MM period close / open next period | MM Lead | MMPV / MMRV | — |
| 4.11 | Execute GL balance carryforward | FI Lead | FAGLGVTR | — |
| 4.12 | Execute MB5L vs FS10N final reconciliation — zero difference required | FI Lead | MB5L / FS10N | — |
| 4.13 | Confirm standard cost release for all S-materials current period | CO-PC Lead | CK40N | — |
| 4.14 | Enforce configuration freeze: OMXW / OMX1 / OMWC / COGS Split | FI-CO Lead | Change management lock | Note 2345739 |
| 4.15 | Enforce transaction freeze: no postings in ECC from this point | Project Lead | SU01 / system message | — |
| 4.16 | Final SNOTE implementation verification — all X-notes confirmed applied | Basis Lead | SNOTE status report | Note 2345739 |
| 4.17 | Final HANA memory check — confirm sizing for M10 parallel processing | Basis Lead | HANA Studio | Note 2927214 |
| 4.18 | Go/No-Go sign-off — all Phase 4 gates confirmed by workstream leads | Project Lead | Sign-off document | — |
Phase 5 — Cutover Execution (Migration Window)
Section titled “Phase 5 — Cutover Execution (Migration Window)”| # | Activity | Owner | Transaction / Tool | Dependency | SAP Note Reference |
|---|---|---|---|---|---|
| 5.1 | System downtime begins — ECC locked for all users | Basis Lead | SM01 / system message | Phase 4 complete | — |
| 5.2 | SUM/DMO technical upgrade execution begins | Basis Lead | SUM tool | 5.1 complete | — |
| 5.3 | Technical upgrade complete — S/4HANA kernel running | Basis Lead | SUM tool | 5.2 complete | — |
| 5.4 | Verify all SNOTE corrections survive upgrade — re-check SNOTE status | Basis Lead | SNOTE | 5.3 complete | Note 2345739 |
| 5.5 | Execute FINS_MIG_STATUS pre-check in production | Basis / FI-CO Lead | FINS_MIG_STATUS | 5.4 complete | Note 2345739 |
| 5.6 | Resolve any pre-check errors | FI-CO Lead | SLG1 / FINS_MIG_STATUS | 5.5 complete | Note 2345739 |
| 5.7 | Execute M10 — Migrate ML Master Data (parallel background jobs) | Basis / FI-CO Lead | FINS_MIG_STATUS / SM37 | 5.5 errors resolved | Note 2927214 |
| 5.8 | Monitor M10 progress via SM37 — intervene on any job failure | Basis Lead | SM37 | 5.7 running | Note 2345739 |
| 5.9 | M10 COMPLETED — verify status in FINS_MIG_STATUS | FI-CO Lead | FINS_MIG_STATUS | 5.7 complete | — |
| 5.10 | Execute M11 — Migrate ML Transaction Data | FI-CO Lead | FINS_MIG_STATUS | 5.9 complete | Note 2385542 |
| 5.11 | M11 COMPLETED — verify status in FINS_MIG_STATUS | FI-CO Lead | FINS_MIG_STATUS | 5.10 complete | — |
| 5.12 | Execute M20 — Check ML Master Data | FI-CO Lead | FINS_MIG_STATUS | 5.11 complete | Note 2414482 |
| 5.13 | M20 COMPLETED — zero errors confirmed | FI-CO Lead | FINS_MIG_STATUS / SLG1 | 5.12 complete | — |
| 5.14 | Execute M21 — Check ML Transaction Data | FI-CO Lead | FINS_MIG_STATUS | 5.13 complete | — |
| 5.15 | M21 COMPLETED — zero errors confirmed | FI-CO Lead | FINS_MIG_STATUS / SLG1 | 5.14 complete | — |
| 5.16 | All FINS_MIG_STATUS steps = COMPLETED | Project Lead | FINS_MIG_STATUS | 5.15 complete | Note 2345739 |
| 5.17 | Post-migration MB5L vs FS10N reconciliation — ACDOCA vs FI | FI Lead | MB5L / FS10N / ACDOCA | 5.16 complete | — |
| 5.18 | Verify CKMLHD / CKMLPR records created for all material/plant combinations | CO-PC Lead | SE16N — CKMLHD/CKMLPR | 5.16 complete | — |
| 5.19 | Verify COGS Split configuration active — test goods issue posting | CO-PC Lead | MIGO / COGS Split report | 5.16 complete | — |
| 5.20 | Verify MM period open in S/4HANA — correct period active | MM Lead | MMPV / MMRV | 5.16 complete | — |
| 5.21 | Verify FI posting periods open for go-live period | FI Lead | OB52 | 5.16 complete | — |
| 5.22 | Execute smoke test transactions: CKM3N, MB52, FS10N, CKMLCP simulation | FI-CO Lead | Multiple | 5.16 complete | — |
| 5.23 | Go-live authorization — Project Lead and CFO sign-off | Project Lead / CFO | Sign-off document | 5.22 complete | — |
| 5.24 | System opened to end users — S/4HANA go-live | Basis Lead | SM01 | 5.23 complete | — |
Phase 6 — Hypercare and Validation (4 Weeks Post Go-Live)
Section titled “Phase 6 — Hypercare and Validation (4 Weeks Post Go-Live)”| # | Activity | Owner | Transaction / Tool | SAP Note Reference |
|---|---|---|---|---|
| 6.1 | Daily MB5L vs FS10N reconciliation — weeks 1 and 2 | FI Lead | MB5L / FS10N | — |
| 6.2 | Monitor SLG1 for ML migration or posting errors | FI-CO Lead | SLG1 — object FINS_MIG | Note 2345739 |
| 6.3 | Monitor SM37 for failed background ML jobs | Basis Lead | SM37 | — |
| 6.4 | Verify first goods movement ML document creation in ACDOCA | CO-PC Lead | ACDOCA / CKM3N | — |
| 6.5 | Verify first invoice receipt ML document in ACDOCA | FI Lead | ACDOCA / MIR4 | — |
| 6.6 | Verify assessment/distribution cycle execution with new G/L accounts | CO Lead | KSU5 / KSV5 | — |
| 6.7 | Verify profit center valuation postings in ACDOCA (currency type 32) | CO Lead | ACDOCA / Fiori | — |
| 6.8 | Verify group valuation postings in ACDOCA (currency types 30/31) | CO Lead | ACDOCA / Fiori | — |
| 6.9 | Execute first CKMLCP run in S/4HANA — monitor all steps | CO-PC Lead | CKMLCP | — |
| 6.10 | Verify COGS Split posting disaggregation on first period-end close | CO-PC Lead | COGS Split report / ACDOCA | — |
| 6.11 | Execute CKM3N review for high-value materials — verify PUP calculation | CO-PC Lead | CKM3N | — |
| 6.12 | Execute custom code regression tests for all remediated programs | ABAP Lead | SE38 / unit test | — |
| 6.13 | Verify all Fiori embedded analytics inventory / costing apps | BI Lead | Fiori Launchpad | — |
| 6.14 | Hypercare sign-off — all validation gates passed | Project Lead | Sign-off document | — |
Master Cutover Sequence Diagram
Section titled “Master Cutover Sequence Diagram”flowchart TD classDef source fill:#fff3e0,stroke:#e65100,color:#000 classDef integration fill:#e8f5e9,stroke:#2e7d32,color:#000 classDef target fill:#e3f2fd,stroke:#1565c0,color:#000 classDef reporting fill:#f3e5f5,stroke:#6a1b9a,color:#000
subgraph P1["Phase 1 — Assess & Prepare (8–12 wks)"] A1["Version / SP Confirm"]:::source A2["Note 2345739 X-Matrix Analysis"]:::source A3["ATC Custom Code Scan"]:::source A4["OMXW / OMX1 / OMWC Decisions"]:::source A5["EKBZ / MBEW Data Quality Checks"]:::source A6["Secondary CElem Mapping"]:::source end
subgraph P2["Phase 2 — Configure & Remediate (4–8 wks)"] B1["SNOTE Implementation"]:::integration B2["Config Freeze"]:::integration B3["COGS Split Activation"]:::integration B4["EKBZ / MBEW Remediation"]:::integration B5["CVI / BP Sync Complete"]:::integration B6["Secondary CElem to G-L Migration"]:::integration end
subgraph P3["Phase 3 — Mock Cutovers (2–4 wks)"] C1["Full Period Close in Mock"]:::integration C2["FINS_MIG_STATUS Mock Run"]:::integration C3["ACDOCA Validation in Mock"]:::integration C4["First CKMLCP in Mock"]:::integration C5["Elapsed Time Measurement"]:::integration end
subgraph P4["Phase 4 — Period Close & Freeze (Final Week)"] D1["Full Period Close Sequence"]:::source D2["MB5L = FS10N Zero Difference"]:::source D3["Transaction Freeze"]:::source D4["Go / No-Go Sign-Off"]:::source end
subgraph P5["Phase 5 — Cutover Execution (Migration Window)"] E1["SUM / DMO Technical Upgrade"]:::integration E2["SNOTE Re-Verification"]:::integration E3["M10 Execute & Monitor"]:::integration E4["M11 Execute & Monitor"]:::integration E5["M20 Execute — Zero Errors"]:::integration E6["M21 Execute — Zero Errors"]:::integration E7["FINS_MIG_STATUS = ALL COMPLETED"]:::target E8["Post-Migration Reconciliation"]:::target E9["Go-Live Authorization"]:::target end
subgraph P6["Phase 6 — Hypercare & Validation (4 wks)"] F1["Daily MB5L vs FS10N"]:::reporting F2["SLG1 / SM37 Monitoring"]:::reporting F3["First CKMLCP Run"]:::reporting F4["COGS Split Verification"]:::reporting F5["Custom Code Regression"]:::reporting F6["Hypercare Sign-Off"]:::reporting end
P1 --> P2 P2 --> P3 P3 --> P4 P4 --> P5 E1 --> E2 E2 --> E3 E3 --> E4 E4 --> E5 E5 --> E6 E6 --> E7 E7 --> E8 E8 --> E9 P5 --> P6| Node | Activity | Transactions / Steps |
|---|---|---|
| B1 | SNOTE Implementation | All X-Notes |
| B2 | Config Freeze | OMXW / OMX1 / OMWC |
| C2 | FINS_MIG_STATUS Mock Run | M10 / M11 / M20 / M21 |
| D1 | Full Period Close Sequence | KSU5 / CO88 / CKMLCP / MR11 |
| D2 | MB5L = FS10N | Zero Difference |
| D3 | Transaction Freeze | No ECC Postings |
| E8 | Post-Migration Reconciliation | MB5L / FS10N / ACDOCA |
Section 11 — Post-Migration Governance: Brownfield
Section titled “Section 11 — Post-Migration Governance: Brownfield”11.1 First Period-End Close Sequence in S/4HANA
Section titled “11.1 First Period-End Close Sequence in S/4HANA”The first period-end close in S/4HANA is operationally higher risk than any subsequent close. Execute every step below in sequence; do not parallelize CO and FI close until the second period.
| # | Step | Transaction | Validation Check |
|---|---|---|---|
| 1 | Verify MM period is correct | MMPV / MMRV | MM period = go-live period |
| 2 | Verify FI posting periods open | OB52 | Correct periods open for FI and MM |
| 3 | Execute CO assessment cycles | KSU5 | Sender cost centers fully distributed |
| 4 | Execute CO distribution cycles | KSV5 | All distribution rules executed |
| 5 | Execute WIP calculation | KKAO | WIP balances match open orders |
| 6 | Execute production order settlement | CO88 / COHV | All settleable orders settled |
| 7 | Execute sales order cost object settlement | VA88 | SD cost objects settled |
| 8 | Execute Actual Costing Run — preliminary costing | CKMLCP Step 1 | No errors in preliminary costing |
| 9 | Execute Actual Costing Run — actual price determination | CKMLCP Step 2 | PUP calculated for all ML materials |
| 10 | Execute Actual Costing Run — revaluation posting | CKMLCP Step 3 | Revaluation documents posted to ACDOCA |
| 11 | Execute Actual Costing Run — WIP revaluation | CKMLCP Step 4 | WIP revalued at actual cost |
| 12 | Execute Actual Costing Run — balance sheet revaluation | CKMLCP Step 5 | Balance sheet accounts updated |
| 13 | Execute GR/IR clearing | MR11 / F.13 | GR/IR cleared for closed PO items |
| 14 | Execute profit center period close | S/4HANA PC equivalent | PC valuation records complete |
| 15 | Execute FI period close | OB52 | FI period locked |
| 16 | Execute MM period close | MMPV | MM period advanced |
| 17 | MB5L vs FS10N reconciliation | MB5L / FS10N | Zero difference required |
| 18 | CKM3N review for high-value materials | CKM3N | PUP reasonable; no unexplained variances |
11.2 Ongoing MB5L vs FS10N Reconciliation Framework
Section titled “11.2 Ongoing MB5L vs FS10N Reconciliation Framework”| Dimension | Detail |
|---|---|
| Frequency | Daily — weeks 1–4 post go-live; monthly — every period-end close thereafter |
| Tool | MB5L (stock value by valuation area) vs FS10N (G/L balance by account) |
| Expected result | Zero difference between MB5L total stock value and FS10N balance on inventory G/L accounts |
| Tolerance | Zero. Any non-zero difference requires immediate investigation — do not carry forward to next period |
| Common causes of delta | Backdated goods movements posted to a closed MM period; custom ABAP direct xBEW writes bypassing ML document creation; incorrect valuation class on a new material; GR/IR timing differences |
| Escalation path | Delta > zero → FI-CO Lead investigates within 24 hours → if not resolved within 48 hours → escalate to SAP Support with ACDOCA extract and MB5L output |
| ACDOCA supplement | For split valuation or multi-currency scenarios, supplement MB5L/FS10N with direct ACDOCA query filtered by RBUKRS, RACCT, PRCTR, and CURTYPE |
| Archiving consideration | Do not archive ACDOCA records for the first two fiscal years post go-live; reconciliation drill-down depends on full document availability |
11.3 Actual Costing Run Operating Model
Section titled “11.3 Actual Costing Run Operating Model”| Dimension | Detail |
|---|---|
| When to run | Once per ML period, after all goods movements and invoice receipts for the period are posted and before MM period close |
| Prerequisites | All production/process orders settled (CO88); all WIP calculations complete (KKAO); all GR/IR cleared where applicable (MR11); no open posting periods in CO |
| Execution sequence | Preliminary costing → Actual price determination → Revaluation posting → WIP revaluation → Balance sheet revaluation — all five steps must complete in order |
| Monitoring | CKMLCP job log; SLG1 (object: MLCCS); background job monitor SM37 for large runs |
| Failure handling | If any CKMLCP step fails, do not advance the MM period. Investigate via SLG1, resolve the root cause, restart the failed step. Never skip a step and advance the period — this leaves ML period records in an intermediate state that blocks the next period’s CKMLCP |
| Performance | For large material volumes, CKMLCP can take several hours. Schedule in the period-close window with adequate buffer. SAP HANA-optimized CKMLCP parallel processing is available from S/4HANA 2021 onward |
| First-run specific | The first CKMLCP in S/4HANA reads opening balances from ACDOCA written by M10. Verify that preliminary costing prices are consistent with the migrated standard costs before proceeding to actual price determination |
11.4 ML Document Monitoring: CKM3N and SLG1
Section titled “11.4 ML Document Monitoring: CKM3N and SLG1”CKM3N — Material Ledger Actual Costing Document:
| Use Case | Detail |
|---|---|
| PUP verification | For each V-material or actual costing material, verify the Periodic Unit Price calculated by CKMLCP is within expected range. Flag outliers (>±10% vs standard price) for business review |
| Price component drill-down | CKM3N shows cost components feeding the PUP: material costs, activity costs, overhead, price differences. Use this to explain COGS variances to business |
| Multilevel actual costing | For manufactured materials, verify that lower-level PUPs have been correctly rolled up. The multilevel sequence in CKMLCP determines the order of roll-up; verify it matches the BOM structure |
| Historical comparison | After the first two periods in S/4HANA, use CKM3N to compare current vs prior period PUP. Significant unexplained movements indicate a data or configuration issue |
SLG1 — Application Log:
| Object | Subobject | What to Monitor |
|---|---|---|
FINS_MIG | ML_MIGRATION | Residual migration errors post go-live; should be zero after M21 COMPLETED |
MLCCS | — | CKMLCP execution errors; review after every actual costing run |
FINS_ACDOC | — | Universal Journal posting errors; flag any ML-related posting failures |
CK | — | Product costing errors; relevant for CK11N/CK40N standard cost estimate errors |
Review SLG1 for the above objects after every period-end close during the first three months post go-live. Reduce to quarterly review after stable operation is confirmed.
11.5 Custom Code Monitoring: Post-Migration ABAP Regression Testing
Section titled “11.5 Custom Code Monitoring: Post-Migration ABAP Regression Testing”| Activity | Frequency | Owner | Tool |
|---|---|---|---|
| Re-execute ATC scan on all custom programs flagged in Phase 1 | Once — week 1 post go-live | ABAP Lead | ATC / SCI |
| Verify no direct writes to MBEW/EBEW/QBEW/OBEW occurring in production | Weekly — weeks 1–4 | ABAP Lead / Basis | ST05 / STAD database trace |
| Monitor custom reports using MBEW-VERPR for runtime errors | Daily — weeks 1–2 | BI Lead | ST22 / SM21 |
| Regression test all custom CO-PC reports against ACDOCA | Once — week 1 post go-live | FI-CO Lead | Manual / automated test |
| Regression test all custom MM valuation reports | Once — week 1 post go-live | MM Lead | Manual / automated test |
| Regression test all custom assessment/distribution cycle enhancements | Before first period-end close | CO Lead | Manual test |
| Establish permanent custom code change control for xBEW-adjacent programs | Ongoing | ABAP Lead | Transport management / code review gate |
Recommendations and Conclusion
Section titled “Recommendations and Conclusion”Section 12 — Brownfield Closing Recommendations
Section titled “Section 12 — Brownfield Closing Recommendations”12.1 Five Non-Negotiables for Brownfield ML Cutover
Section titled “12.1 Five Non-Negotiables for Brownfield ML Cutover”1. Implement every X-marked note from SAP Note 2345739 before M10 — no exceptions. The X-matrix is the product of years of accumulated field issues across thousands of brownfield conversions. Selective implementation based on perceived relevance is the single most common cause of M10/M11 failures in the field. Implement all notes, read the manual steps for each, and verify via SNOTE status before the migration window opens.
2. Freeze OMXW currency type assignment before M10 and treat it as irreversible. Currency types 10/30/31/32 in OMXW cannot be changed after M10 runs without a full ML migration reset — which in a production system is effectively impossible. The business decision on group valuation (types 30/31) and profit center valuation (type 32) must be made, documented, and signed off before the configuration freeze date, not during the migration window.
3. Achieve zero MB5L vs FS10N difference before entering the migration window. Any non-zero reconciliation difference at M10 entry produces ACDOCA opening balances that do not tie to FI. This cannot be corrected post-M10 without manual ACDOCA journal entries, which are auditor-sensitive and operationally disruptive. Resolve every reconciliation difference in the source system before period-close freeze.
4. Complete COGS Split activation and cost component G/L mapping before M10. COGS Split cannot be activated after go-live without a migration reset. The first goods issue in S/4HANA must post to disaggregated COGS G/L accounts. Any delay in the COGS Split decision means the first period of S/4HANA operations produces COGS data that cannot be split retroactively — a permanent reporting gap.
5. Size HANA memory for the M10 migration working set, not steady-state production.
M10 parallel processing loads all MBEW/EBEW/QBEW/OBEW records and CKMLPP/CKMLCR data into memory simultaneously across multiple work processes. Systems sized for production steady-state will encounter TSV_TNEW_PAGE_ALLOC_FAILED (Note 2927214) during M10. Test the memory profile during mock cutovers and provision additional HANA memory for the migration window if needed.
12.2 Three Highest-Value Opportunities Specific to Brownfield
Section titled “12.2 Three Highest-Value Opportunities Specific to Brownfield”1. Activate actual costing if it was not active in ECC.
Brownfield conversion is the lowest-friction point to activate actual costing. M10 creates the full CKMLHD/CKMLPR infrastructure regardless of whether actual costing was active in ECC. Activating it at go-live adds marginal incremental cost to the project while delivering periodic unit price visibility, multilevel actual cost rollup, and COGS at actual cost — capabilities that require a full reimplementation to add post-go-live.
2. Eliminate secondary cost elements and redesign allocation architecture. The forced elimination of secondary cost elements is an operational disruption only if treated reactively. Treated proactively, it is an opportunity to rationalize the CO allocation architecture: consolidate redundant assessment cycles, redesign cost component structures, and align COGS Split G/L accounts with management reporting requirements. Projects that complete this work in Phase 2 emerge with a materially cleaner CO-PC landscape than they entered with.
3. Establish ACDOCA as the single source of truth for inventory and cost reporting. Post-migration, MBEW, COEP, COSS, and GLPCA no longer exist as operative tables. All inventory valuation, cost object accounting, and profit center accounting reads from ACDOCA. Projects that redesign their reporting layer — Fiori embedded analytics, custom ABAP reports, BW extractors — to read directly from ACDOCA during the brownfield project avoid a second wave of report remediation post go-live. The investment in ACDOCA-native reporting during the project pays dividends across every subsequent reporting cycle.
12.3 Success Criteria and Sign-Off Checklist
Section titled “12.3 Success Criteria and Sign-Off Checklist”| # | Success Criterion | Verified By | Sign-Off Owner |
|---|---|---|---|
| SC-01 | All X-marked notes from Note 2345739 implemented and verified via SNOTE | SNOTE status report | Basis Lead |
| SC-02 | MB5L vs FS10N = zero difference at period-close freeze | MB5L / FS10N output | FI Lead |
| SC-03 | FINS_MIG_STATUS all steps = COMPLETED (M10 / M11 / M20 / M21) | FINS_MIG_STATUS screen | FI-CO Lead |
| SC-04 | ACDOCA opening balances tie to pre-migration MB5L/FS10N | ACDOCA query vs MB5L | FI Lead |
| SC-05 | CKMLHD / CKMLPR records exist for all material/plant/valuation type combinations | SE16N count | CO-PC Lead |
| SC-06 | COGS Split activated and first goods issue posts disaggregated COGS | MIGO + COGS Split report | CO-PC Lead |
| SC-07 | OMXW currency types confirmed and frozen — business sign-off documented | Configuration review | CFO / FI-CO Lead |
| SC-08 | All custom ABAP programs remediated — no direct xBEW writes in production | ATC scan + ST05 trace | ABAP Lead |
| SC-09 | Secondary cost elements replaced by G/L accounts — all allocation cycles tested | KSU5 / KSV5 test run | CO Lead |
| SC-10 | First CKMLCP run in S/4HANA completed without errors | CKMLCP job log / SLG1 | CO-PC Lead |
| SC-11 | CKM3N PUP values reviewed and approved for high-value materials | CKM3N output | CO-PC Lead / Business |
| SC-12 | Profit center valuation (currency type 32) verified in ACDOCA | ACDOCA query | CO Lead |
| SC-13 | Group valuation (currency types 30/31) verified in ACDOCA | ACDOCA query | CO Lead |
| SC-14 | All Fiori embedded analytics inventory and costing apps validated | Fiori Launchpad | BI Lead |
| SC-15 | Hypercare sign-off by all workstream leads — no open critical issues | Sign-off document | Project Lead / CFO |