GitHub

Material Ledger Cutover: SAP ECC to S/4HANA — Part 1: Brownfield System Conversion


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.


PartArchetypePrimary Tool
Part 1 (this document)Brownfield — In-Place System ConversionFINS_MIG_STATUS (M10/M11/M20/M21)
Part 2Greenfield — New ImplementationSAP Rapid Data Migration / SAP Data Services 4.3
Part 3Bluefield / Selective Data TransitionRDM + 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

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.


Section 1 — Brownfield Migration Overview

Section titled “Section 1 — Brownfield Migration Overview”

Brownfield conversion executes via SUM/DMO (Software Update Manager / Data Migration Option). The process:

  1. SUM applies the software update (ECC → S/4HANA stack)
  2. The ABAP-based Data Migration framework (FINS_MIG_STATUS) runs finance follow-up activities post-technical-upgrade
  3. 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”
DimensionMaterial LedgerActual Costing
S/4HANA statusMandatoryOptional
FunctionInventory subledger — multi-currency valuationPeriodic unit price (PUP) calculation; revaluation of inventory at actual cost
Key transactionMMPV/MMRV (period open/close)CKMLCP (actual costing run)
ActivationAutomatic via M10Explicit customer decision; separate activation
Data volume impactHigh — all goods movements in ACDOCAVery 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:

StepNameScope
M10Migrate Material Ledger Master DataActivates ML for all valuation areas; migrates MBEW/EBEW/QBEW/OBEW to ACDOCA; creates CKMLHD/CKMLPR/CKMLPP/CKMLCR
M11Migrate Material Ledger Transaction DataConverts EKBE/EKBZ/MLAUFCR purchase order and process order history
M20Check Material Ledger Master DataCompares ACDOCA vs MLDOC_EXTRACT; validates migration completeness
M21Check Material Ledger Transaction DataVerifies 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”
FieldTable.FieldDescriptionML Migration Impact
Valuation ClassMBEW-BKLASLinks material to G/L account determinationDrives OMWB account determination; changes during cutover block M10
Price ControlMBEW-VPRSVS = Standard Price; V = Moving AverageDetermines how PUP is calculated; S-materials lose statistical MAP post-migration
Moving Average PriceMBEW-VERPRCurrent MAP for V-materialsMigrated to ACDOCA as opening balance; must equal stock value / quantity
Standard PriceMBEW-STPRSReleased standard costMust be current-period released before M10; CK11N/CK40N prerequisite
ML Activity IndicatorMBEW-MLASTIndicates ML is active for this recordSet by M10; must not be pre-set manually
Price UnitMBEW-PEINHQuantity base for priceMismatch between price unit and stock quantity triggers M10 errors
Valuation CategoryMBEW-BWTTYBlank = no split; populated = split valuationSplit valuation requires all valuation types migrated; incomplete MBEW splits block M10
Special Stock IndicatorMBEW-SOBKZE=Sales Order, Q=Project, O=Vendor consignmentEach special stock type has separate valuation tables (EBEW, QBEW, OBEW) requiring separate M10 migration records

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 — CKMLPR records are created per valuation type
  • Configuration freeze on OMWC must be enforced from the pre-M10 gate through go-live

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 CKMLPR records 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 TypeNameMandatory?
10Company Code CurrencyYes
30Group CurrencyYes
31Group Currency, Group ValuationOptional — required for group valuation
32Group Currency, Profit Center ValuationOptional — 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”

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.

#ActivityTransactionWhy It Blocks M10
1Actual Costing Run — all steps including revaluation postingCKMLCPOpen ML periods cannot be migrated; partial CKMLCP leaves CKMLPP/CKMLCR in intermediate state
2Production/Process Order Settlement — all ordersCO88 / COHVUnsettled orders leave WIP balances that M10 cannot cleanly migrate to ACDOCA
3WIP Calculation and CancellationKKAO / KKAJWIP on CO objects must be zeroed or settled; residual WIP in COEP blocks M10
4Sales Order Cost Object SettlementVA88Open sales order cost objects with unsettled WIP block M11 as well as M10
5CO Assessment CyclesKSU5Unexecuted assessment leaves COEP/COSS in open state; ML migration reads these as source
6CO Distribution CyclesKSV5Unexecuted distribution leaves open CO period
7GR/IR ClearingMR11 / F.13EKBZ records from uncleared GR/IR are migrated by M11; mismatches produce Note 2385542 errors
8Inventory RevaluationMR21Unrevalued stock produces MAP/standard price mismatches in M10
9EC-PCA Period Close2KESOpen PCA periods block FI/ML period close prerequisite
10FI Period CloseOB52FI must be closed for the migrating period before M10
11MM Period Close / OpenMMPV / MMRVMM period must be aligned with FI period; mismatch is a known M10 error trigger
12MB5L vs FS10N ReconciliationMB5L / FS10NZero difference between stock value (MB5L) and FI balance (FS10N) is a go/no-go gate
13Standard Cost Release for Current PeriodCK40N / MR21Unreleased cost estimates for current period produce M10 validation errors for S-materials
14Balance Carryforward for GLFAGLGVTRPrior-year carry-forward must be complete for ACDOCA opening balance integrity
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
NodeActivityTransactions
ACO Assessment & Distribution CyclesKSU5 / KSV5
BWIP CalculationKKAO
CProd/Process Order SettlementCO88 / COHV
DSales Order SettlementVA88
EActual Costing Run (all steps)CKMLCP
FGR/IR ClearingMR11 / F.13
GInventory RevaluationMR21
HEC-PCA Period Close2KES
IFI Period CloseOB52
JMM Period Close/OpenMMPV / MMRV
KStandard Cost ReleaseCK40N
LGL Balance CarryforwardFAGLGVTR
MMB5L vs FS10N Reconciliation — Zero DifferenceMB5L / FS10N
NM10 GO / NO-GO GATE

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
NodeDetailTransactions / Tables
S1Inventory ValuationMBEW / EBEW / QBEW / OBEW
S2ML Period / Currency RecordsCKMLPP / CKMLCR
S3PO History / Delivery CostsEKBE / EKBZ
S4ML Order Currency RecordsMLAUFCR
S5CO Line Items / TotalsCOEP / COSS / COSP
S6Profit Center AccountingEC-PCA
C1ML Type / Currency TypesOMXW (10 / 30 / 31 / 32)
C2Price DeterminationOMX1 (Setting = 3)
C3Split Valuation ConfigOMWC
C4Valuation Class / G-L Account DeterminationOMWB
C5COGS Split Activation
C6SP-Level Corrections via SNOTESAP Note 2345739
M10Migrate ML Master DataM10
M11Migrate ML Transaction DataM11
M20Check ML Master DataM20
M21Check ML Transaction DataM21
T1Universal Journal — Opening BalancesACDOCA
T2ML DocumentsMLDOC / MLDOC_EXTRACT
T3ML Header / Price RecordsCKMLHD / CKMLPR
T4Balance Carryforward RecordsBSTAT=C
P1Standard Cost EstimateCK11N / CK40N
P2Actual Costing RunCKMLCP
P3WIP SettlementKKAO / CO88
P4COGS Split Posting
V1Stock Value ReportMB5L
V2G-L BalanceFS10N
V3GR/IR ClearingMR11
V4ML Actual Cost AnalysisCKM3N
V5MM Period Open/CloseMMPV / MMRV
R1Inventory Valuation AnalyticsFiori Embedded Analytics
R2COGS Split Report
R3Profit Center ReportCurrency Type 32
R4Group Valuation ReportCurrency Types 30/31

Section 5 — SAP Note 2345739 Analysis for Brownfield

Section titled “Section 5 — SAP Note 2345739 Analysis for Brownfield”

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”
  1. Identify the S/4HANA target version: 2021 (S4CORE 106), 2022 (S4CORE 107), 2023 (S4CORE 108), or 2025 (S4CORE 109)
  2. Identify the Service Pack level (SP00 through SP08)
  3. Find the version table in Note 2345739
  4. Every note marked X in the SP column is not included in the system and must be implemented manually via transaction SNOTE
  5. 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 VersionSP00 Notes to Implement ManuallySP08 Notes to Implement ManuallyRisk at SP00
2021 (106)~25+~0–2Critical
2022 (107)~18+~0–2High
2023 (108)~12+~0–2High
2025 (109)~8+~0–2Medium

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.

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.

SAP NoteComponentIssue AddressedBrownfield Relevance
2927214FIN-MIG-MLTSV_TNEW_PAGE_ALLOC_FAILED or BL001 or SQL-4 memory shortage during M10Critical — HANA sizing must account for ML migration working set
2408065CO-PC-ACTError FINS_ML_MIG 080 CREATE_CCS_2 during M10High — CCS creation failure; check actual costing configuration
2416066FIN-MIGSet next activity for resettable steps shall not delete packagesMedium — relevant when M10 must be reset and re-run
2414482CO-PC-ACTAdaption of M20 error messagesMedium — M20 error message clarity improvement
2413401CO-PC-ACTNo CKMLCT / FMLT_CURT_ML entries exist for valuation areaHigh — missing currency table entries block M10
2387172CO-PC-ACTML Migration Corrections for Actual Costing (WIP, CCS)High — WIP and CCS-specific M10 corrections
2385542CO-PC-ACTSum of quantities is 0, but sum of values is not 0 for EKBZCritical — produces hard M10/M11 errors
2381743CO-PC-ACTML migration corrections (1610 SP00)Medium — foundational corrections; verify SP applicability
2364977CO-PC-ACTML Migration Corrections for Actual CostingMedium — 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_STATUS to 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 SM37 and FINS_MIG_STATUS status 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”

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 ObjectBrownfield Relevance
Material MasterSupplementary plant extensions or new materials added during project
Inventory BalancesRelevant only for new plants added during conversion; existing balances migrate via M10
Production OrdersRelevant only if new production orders are loaded post-conversion for testing
Purchase OrdersNew POs for new organizational units; existing POs migrate via M11
Cost CentersNew cost centers for restructured org; existing migrate via standard conversion
Activity TypesNew activity types for new plants/cost centers
Activity PricesMust be loaded for new activity types before CKMLCP runs post go-live
Bill of MaterialsNew BOM structures added during project scope
RoutingNew 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.

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

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):

TableContent
MBEWMaterial valuation — company code / plant level
EBEWSales order stock valuation
QBEWProject stock valuation
OBEWVendor consignment stock valuation
CKMLPPML period records
CKMLCRML currency records
T001KValuation areas
T001Company codes
OMXWML type / currency type assignment

Tables written (target):

TableContent
ACDOCAUniversal Journal — opening balance carryforward records
CKMLHDML header records per material/plant
CKMLPRML price records per valuation type
CKMLPPML period records (updated/created)
CKMLCRML currency records (updated/created)
MLDOCML 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):

TableContent
EKBEPO history — goods receipts, invoice receipts
EKBZPO history — delivery costs
MLAUFCRML order currency records (process/production orders)
MSEGMaterial document segments

Tables written (target):

TableContent
ACDOCAPO history line items in Universal Journal format
MLDOCML documents for historical PO movements
CKMLMVSPML 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:

  1. Run M20 in simulation mode first (FINS_MIG_STATUS → M20 → Test Run)
  2. Review error log in SLG1 (object: FINS_MIG, subobject: ML_MIGRATION)
  3. For each error category, apply the relevant note from the 2345739 matrix or execute the documented manual correction
  4. Re-run M20 until zero errors
  5. 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
NodeStepTransactions / Tables / Notes
APeriod-End Close Complete — All Steps
BMB5L = FS10N Zero Difference ConfirmedMB5L / FS10N
CNote 2345739 All X-Notes ImplementedNote 2345739
DOMXW / OMX1 / OMWC Configuration FrozenOMXW / OMX1 / OMWC
EFINS_MIG_STATUS Pre-Check / SimulationFINS_MIG_STATUS
GResolve ErrorsSNOTE / Data Fix / Config Correction
HM10 — Migrate ML Master Data (Parallel Background Jobs)M10
JM10 Error ResolutionSLG1 / SM37 / Note 2345739
KM11 — Migrate ML Transaction DataEKBE / EKBZ / MLAUFCR
MM11 Error ResolutionNote 2385542 / BP Sync / INFREC check
NM20 — Check ML Master DataACDOCA vs MLDOC_EXTRACT
PM20 Error ResolutionSLG1 / Note 2414482 / Manual Corrections
QM21 — Check ML Transaction DataPO / Order History
SM21 Error ResolutionEKBE/EKBZ Mismatch / BP Completeness
TFINS_MIG_STATUS ALL STEPS = COMPLETEDFINS_MIG_STATUS
UGo-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 PatternLikely StepRoot CauseResolution
TSV_TNEW_PAGE_ALLOC_FAILEDM10HANA memory insufficient for M10 working setApply Note 2927214; increase HANA memory allocation; reduce parallel job count
FINS_ML_MIG 080 CREATE_CCS_2M10Cost Component Split creation failureApply Note 2408065; verify actual costing CCS configuration in OMX1
Sum of quantities = 0, values ≠ 0 for EKBZM11EKBZ data quality — delivery cost record mismatchApply Note 2385542; execute EKBZ correction program before M11
No CKMLCT / FMLT_CURT_ML entriesM10Missing currency table entries for valuation areaApply Note 2413401; verify OMXW currency type assignment
FINS_ML_MIG 080 — WIP/CCS errorsM10Open WIP or incomplete CCS in sourceApply Note 2387172; complete CO88/KKAO before M10
M20 balance mismatchM20Rounding or currency conversion deltaReview SLG1; apply relevant 2345739 matrix note; check MB5L vs ACDOCA directly
BP FK violationM11Vendor not synchronized to Business PartnerComplete CVI synchronization; verify via BP transaction
Resettable step deletes packagesM10 resetM10 reset deletes partially processed packagesApply 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”
  • 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-VERPR for 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
  • 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
  • Requires price determination = 3 in OMX1 and correctly configured procurement alternatives before M10
  • The multilevel cost rollup in S/4HANA uses CKMLPR records (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 CKMLPR record 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 CKMLPR records, resulting in M20 errors

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.

  • 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 in FINS_MIG_STATUS)
  • The 2KES EC-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
  • 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/CO88 before M10
  • Any residual WIP in COEP/COSS at 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 KKAO in display mode and cross-check WIP balances in ACDOCA (filter RWTYPE = 'WIP') against the expected zero or settled position
  • Note 2387172 addresses specific WIP and CCS migration corrections relevant to this scenario

Risk IDDescriptionProbabilityImpactSourceMitigation
R01Open Actual Costing Run at M10 execution — CKMLCP not fully completed including revaluation postingHighCriticalCKMLCP / M10 pre-checkMandate CKMLCP full completion as period-close gate sign-off; verify CKMLPP status = 70 (closed) for all periods
R02Missing SAP notes from Note 2345739 X-matrix — SNOTE implementation incomplete before M10HighCriticalNote 2345739Build SNOTE implementation checklist from the version/SP matrix; verify via SNOTE status report before M10 window opens
R03Currency type gap in OMXW — required currency type not assigned before M10; non-reversible after M10MediumCriticalOMXW configurationConduct OMXW configuration review in Assess phase; obtain business sign-off on currency types 10/30/31/32 before configuration freeze
R04Custom ABAP code writing directly to xBEW tables (MBEW/EBEW/QBEW/OBEW) — bypasses ML document creation post-go-liveHighHighCustom code / ATCExecute SAP ATC custom code check pre-migration; replace direct table writes with standard MM API calls
R05Split valuation MBEW gaps — valuation type exists in OMWC but has no MBEW record for one or more plantsMediumCriticalOMWC / MBEW data qualityRun MBEW completeness check for all valuation categories/types across all plants before M10; create missing records via MR21/MB1C
R06EKBZ quantity/value mismatch — Note 2385542 scenario; M11 hard errorHighHighNote 2385542Execute EKBZ data quality check program from Note 2385542 in pre-migration phase; remediate all mismatches before M11
R07Unsettled WIP at M10 — residual WIP in COEP migrated as incorrect opening balanceMediumHighCO88 / KKAO / M10Mandate CO88/KKAO completion as hard gate before M10; verify COEP open items = zero for all relevant order categories
R08M10 memory shortage — TSV_TNEW_PAGE_ALLOC_FAILED during parallel M10 executionMediumHighNote 2927214Apply Note 2927214 before M10; size HANA memory for migration working set; pre-test parallel job configuration in mock cutover
R09COGS Split not pre-configured before M10 — cannot be activated retroactively without ML resetMediumCriticalCOGS Split activationConfirm COGS Split activation decision in Assess phase; complete cost component to G/L mapping before configuration freeze
R10INFREC IDoc misuse during migration window — corrupts EKBZ records before M11LowHighNote 2239701Issue explicit project-wide instruction prohibiting INFREC IDoc use during migration window; monitor via RFC/IDoc audit log
R11Assessment cycle secondary cost element references — KSU5 cycles reference CE accounts that no longer exist in S/4HANAHighHighSecondary CElem elimination / Note 2239701Complete secondary cost element to G/L account mapping before go-live; retest all assessment cycles in sandbox/mock cutover
R12MM/FI period misalignment — MM period and FI period not synchronized at M10 executionMediumHighMMPV / OB52Verify MM and FI period alignment as part of period-close gate sign-off; include in MB5L vs FS10N checklist
R13Statistical MAP report breakage — custom or standard reports using MBEW-VERPR for S-materials fail post-migrationHighMediumMBEW-VERPR eliminationInventory all reports using statistical MAP; redesign to ACDOCA price variance fields before go-live
R14Transfer pricing reconfiguration incomplete — currency type 32 profit center valuation not configured before go-liveMediumHighOMXW / EC-PCA replacementInclude 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)”
#ActivityOwnerTransaction / ToolSAP Note Reference
1.1Confirm S/4HANA target version and SP levelProject LeadSAP Maintenance Planner
1.2Download and analyze Note 2345739 X-matrix for target version/SPBasis / FI-CO LeadSAP ONE Support LaunchpadNote 2345739
1.3Build SNOTE implementation checklist from X-matrixBasis LeadSNOTENote 2345739
1.4Execute SAP ATC custom code scan for xBEW direct writesABAP LeadATC / SCI
1.5Inventory all reports using MBEW-VERPR statistical MAPFI-CO / BI LeadSE16N / report inventory
1.6Confirm actual costing activation decisionFI-CO Lead / BusinessOMX1
1.7Confirm COGS Split activation and cost component mappingFI-CO Lead / BusinessCOGS Split config
1.8Confirm currency types 10/30/31/32 requirementCFO / FI-CO LeadOMXW
1.9Confirm split valuation scope and OMWC configurationMM LeadOMWC
1.10Confirm mixed costing scope and procurement alternative configurationCO-PC LeadOMX1
1.11Execute MBEW completeness check for split valuationMM LeadSE16N / custom reportNote 2345739
1.12Execute EKBZ data quality check for Note 2385542 scenarioFI-CO LeadCustom check / Note 2385542Note 2385542
1.13Verify Business Partner / CVI synchronization completenessFI LeadBP / CVI configNote 2239701
1.14Map secondary cost elements to S/4HANA G/L accountsCO LeadKA01 / FS00Note 2239701
1.15Inventory assessment and distribution cycles for CE referencesCO LeadKSU5 / KSV5
1.16Confirm transfer pricing / profit center valuation requirementsCFO / CO LeadOMXW / EC-PCA config
1.17Size HANA memory for M10 migration working setBasis LeadHANA Studio / sizing guideNote 2927214
1.18Establish MB5L vs FS10N reconciliation baselineFI LeadMB5L / FS10N

Phase 2 — Configure and Remediate (4–8 Weeks)

Section titled “Phase 2 — Configure and Remediate (4–8 Weeks)”
#ActivityOwnerTransaction / ToolSAP Note Reference
2.1Implement all X-marked notes from 2345739 matrix via SNOTEBasis LeadSNOTENote 2345739
2.2Apply Note 2927214 (M10 memory shortage)Basis LeadSNOTENote 2927214
2.3Apply Note 2416066 (resettable step package protection)Basis LeadSNOTENote 2416066
2.4Apply Note 2408065 (FINS_ML_MIG 080 CREATE_CCS_2)Basis LeadSNOTENote 2408065
2.5Apply Note 2385542 (EKBZ mismatch correction)Basis / FI-CO LeadSNOTE + manual stepsNote 2385542
2.6Finalize and freeze OMXW currency type assignmentFI-CO LeadOMXW
2.7Finalize and freeze OMX1 price determination settingCO-PC LeadOMX1
2.8Finalize and freeze OMWC split valuation configurationMM LeadOMWC
2.9Complete COGS Split activation and G/L mappingFI-CO LeadCOGS Split IMG
2.10Complete secondary cost element to G/L account migrationCO LeadFS00 / KA06Note 2239701
2.11Remediate all custom ABAP code flagged in ATC scanABAP LeadSE80 / ATC
2.12Remediate MBEW gaps for split valuationMM LeadMR21 / MB1C
2.13Remediate EKBZ mismatches identified in Phase 1FI-CO LeadManual / correction programNote 2385542
2.14Complete CVI synchronization for all vendors/customersFI LeadBP / CVINote 2239701
2.15Reconfigure assessment/distribution cycles for G/L accountsCO LeadKSU5 / KSV5
2.16Configure transfer pricing / profit center valuationCO LeadPC valuation IMG
2.17Complete standard cost release for all S-materialsCO-PC LeadCK40N
#ActivityOwnerTransaction / ToolSAP Note Reference
3.1Execute full period-end close sequence in mock systemFI-CO LeadFull close sequence
3.2Verify MB5L vs FS10N = zero difference in mockFI LeadMB5L / FS10N
3.3Execute FINS_MIG_STATUS pre-check simulation in mockBasis / FI-CO LeadFINS_MIG_STATUSNote 2345739
3.4Execute M10 in mock — measure elapsed time and memoryBasis LeadFINS_MIG_STATUS / SM37Note 2927214
3.5Execute M11 in mock — verify EKBE/EKBZ completenessFI-CO LeadFINS_MIG_STATUSNote 2385542
3.6Execute M20 in mock — resolve all check errorsFI-CO LeadFINS_MIG_STATUS / SLG1Note 2345739
3.7Execute M21 in mock — resolve all check errorsFI-CO LeadFINS_MIG_STATUS / SLG1Note 2345739
3.8Validate ACDOCA opening balances vs MB5L/FS10NFI LeadACDOCA / MB5L / FS10N
3.9Test CKMLCP first run in S/4HANA mock environmentCO-PC LeadCKMLCP
3.10Test COGS Split posting on first goods issueCO-PC LeadMIGO / COGS Split report
3.11Test profit center valuation report (currency type 32)CO LeadFiori / S_ALR_*
3.12Test group valuation report (currency types 30/31)CO LeadFiori / group valuation report
3.13Test assessment/distribution cycles with new G/L accountsCO LeadKSU5 / KSV5
3.14Document mock cutover elapsed time for migration window planningProject LeadCutover plan
3.15Execute second mock cutover incorporating all Phase 3 findingsAllFull sequence

Phase 4 — Period Close and Freeze (Final Week)

Section titled “Phase 4 — Period Close and Freeze (Final Week)”
#ActivityOwnerTransaction / ToolSAP Note Reference
4.1Execute CO assessment and distribution cyclesCO LeadKSU5 / KSV5
4.2Execute WIP calculation and cancellationCO-PC LeadKKAO / KKAJ
4.3Execute production/process order settlementCO-PC LeadCO88 / COHV
4.4Execute sales order cost object settlementSD/CO LeadVA88
4.5Execute full Actual Costing Run including revaluationCO-PC LeadCKMLCP
4.6Execute GR/IR clearingFI LeadMR11 / F.13Note 2385542
4.7Execute inventory revaluation for any MAP correctionsMM / FI LeadMR21
4.8Execute EC-PCA period closeCO Lead2KES
4.9Execute FI period closeFI LeadOB52
4.10Execute MM period close / open next periodMM LeadMMPV / MMRV
4.11Execute GL balance carryforwardFI LeadFAGLGVTR
4.12Execute MB5L vs FS10N final reconciliation — zero difference requiredFI LeadMB5L / FS10N
4.13Confirm standard cost release for all S-materials current periodCO-PC LeadCK40N
4.14Enforce configuration freeze: OMXW / OMX1 / OMWC / COGS SplitFI-CO LeadChange management lockNote 2345739
4.15Enforce transaction freeze: no postings in ECC from this pointProject LeadSU01 / system message
4.16Final SNOTE implementation verification — all X-notes confirmed appliedBasis LeadSNOTE status reportNote 2345739
4.17Final HANA memory check — confirm sizing for M10 parallel processingBasis LeadHANA StudioNote 2927214
4.18Go/No-Go sign-off — all Phase 4 gates confirmed by workstream leadsProject LeadSign-off document

Phase 5 — Cutover Execution (Migration Window)

Section titled “Phase 5 — Cutover Execution (Migration Window)”
#ActivityOwnerTransaction / ToolDependencySAP Note Reference
5.1System downtime begins — ECC locked for all usersBasis LeadSM01 / system messagePhase 4 complete
5.2SUM/DMO technical upgrade execution beginsBasis LeadSUM tool5.1 complete
5.3Technical upgrade complete — S/4HANA kernel runningBasis LeadSUM tool5.2 complete
5.4Verify all SNOTE corrections survive upgrade — re-check SNOTE statusBasis LeadSNOTE5.3 completeNote 2345739
5.5Execute FINS_MIG_STATUS pre-check in productionBasis / FI-CO LeadFINS_MIG_STATUS5.4 completeNote 2345739
5.6Resolve any pre-check errorsFI-CO LeadSLG1 / FINS_MIG_STATUS5.5 completeNote 2345739
5.7Execute M10 — Migrate ML Master Data (parallel background jobs)Basis / FI-CO LeadFINS_MIG_STATUS / SM375.5 errors resolvedNote 2927214
5.8Monitor M10 progress via SM37 — intervene on any job failureBasis LeadSM375.7 runningNote 2345739
5.9M10 COMPLETED — verify status in FINS_MIG_STATUSFI-CO LeadFINS_MIG_STATUS5.7 complete
5.10Execute M11 — Migrate ML Transaction DataFI-CO LeadFINS_MIG_STATUS5.9 completeNote 2385542
5.11M11 COMPLETED — verify status in FINS_MIG_STATUSFI-CO LeadFINS_MIG_STATUS5.10 complete
5.12Execute M20 — Check ML Master DataFI-CO LeadFINS_MIG_STATUS5.11 completeNote 2414482
5.13M20 COMPLETED — zero errors confirmedFI-CO LeadFINS_MIG_STATUS / SLG15.12 complete
5.14Execute M21 — Check ML Transaction DataFI-CO LeadFINS_MIG_STATUS5.13 complete
5.15M21 COMPLETED — zero errors confirmedFI-CO LeadFINS_MIG_STATUS / SLG15.14 complete
5.16All FINS_MIG_STATUS steps = COMPLETEDProject LeadFINS_MIG_STATUS5.15 completeNote 2345739
5.17Post-migration MB5L vs FS10N reconciliation — ACDOCA vs FIFI LeadMB5L / FS10N / ACDOCA5.16 complete
5.18Verify CKMLHD / CKMLPR records created for all material/plant combinationsCO-PC LeadSE16N — CKMLHD/CKMLPR5.16 complete
5.19Verify COGS Split configuration active — test goods issue postingCO-PC LeadMIGO / COGS Split report5.16 complete
5.20Verify MM period open in S/4HANA — correct period activeMM LeadMMPV / MMRV5.16 complete
5.21Verify FI posting periods open for go-live periodFI LeadOB525.16 complete
5.22Execute smoke test transactions: CKM3N, MB52, FS10N, CKMLCP simulationFI-CO LeadMultiple5.16 complete
5.23Go-live authorization — Project Lead and CFO sign-offProject Lead / CFOSign-off document5.22 complete
5.24System opened to end users — S/4HANA go-liveBasis LeadSM015.23 complete

Phase 6 — Hypercare and Validation (4 Weeks Post Go-Live)

Section titled “Phase 6 — Hypercare and Validation (4 Weeks Post Go-Live)”
#ActivityOwnerTransaction / ToolSAP Note Reference
6.1Daily MB5L vs FS10N reconciliation — weeks 1 and 2FI LeadMB5L / FS10N
6.2Monitor SLG1 for ML migration or posting errorsFI-CO LeadSLG1 — object FINS_MIGNote 2345739
6.3Monitor SM37 for failed background ML jobsBasis LeadSM37
6.4Verify first goods movement ML document creation in ACDOCACO-PC LeadACDOCA / CKM3N
6.5Verify first invoice receipt ML document in ACDOCAFI LeadACDOCA / MIR4
6.6Verify assessment/distribution cycle execution with new G/L accountsCO LeadKSU5 / KSV5
6.7Verify profit center valuation postings in ACDOCA (currency type 32)CO LeadACDOCA / Fiori
6.8Verify group valuation postings in ACDOCA (currency types 30/31)CO LeadACDOCA / Fiori
6.9Execute first CKMLCP run in S/4HANA — monitor all stepsCO-PC LeadCKMLCP
6.10Verify COGS Split posting disaggregation on first period-end closeCO-PC LeadCOGS Split report / ACDOCA
6.11Execute CKM3N review for high-value materials — verify PUP calculationCO-PC LeadCKM3N
6.12Execute custom code regression tests for all remediated programsABAP LeadSE38 / unit test
6.13Verify all Fiori embedded analytics inventory / costing appsBI LeadFiori Launchpad
6.14Hypercare sign-off — all validation gates passedProject LeadSign-off document
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
NodeActivityTransactions / Steps
B1SNOTE ImplementationAll X-Notes
B2Config FreezeOMXW / OMX1 / OMWC
C2FINS_MIG_STATUS Mock RunM10 / M11 / M20 / M21
D1Full Period Close SequenceKSU5 / CO88 / CKMLCP / MR11
D2MB5L = FS10NZero Difference
D3Transaction FreezeNo ECC Postings
E8Post-Migration ReconciliationMB5L / 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.

#StepTransactionValidation Check
1Verify MM period is correctMMPV / MMRVMM period = go-live period
2Verify FI posting periods openOB52Correct periods open for FI and MM
3Execute CO assessment cyclesKSU5Sender cost centers fully distributed
4Execute CO distribution cyclesKSV5All distribution rules executed
5Execute WIP calculationKKAOWIP balances match open orders
6Execute production order settlementCO88 / COHVAll settleable orders settled
7Execute sales order cost object settlementVA88SD cost objects settled
8Execute Actual Costing Run — preliminary costingCKMLCP Step 1No errors in preliminary costing
9Execute Actual Costing Run — actual price determinationCKMLCP Step 2PUP calculated for all ML materials
10Execute Actual Costing Run — revaluation postingCKMLCP Step 3Revaluation documents posted to ACDOCA
11Execute Actual Costing Run — WIP revaluationCKMLCP Step 4WIP revalued at actual cost
12Execute Actual Costing Run — balance sheet revaluationCKMLCP Step 5Balance sheet accounts updated
13Execute GR/IR clearingMR11 / F.13GR/IR cleared for closed PO items
14Execute profit center period closeS/4HANA PC equivalentPC valuation records complete
15Execute FI period closeOB52FI period locked
16Execute MM period closeMMPVMM period advanced
17MB5L vs FS10N reconciliationMB5L / FS10NZero difference required
18CKM3N review for high-value materialsCKM3NPUP reasonable; no unexplained variances

11.2 Ongoing MB5L vs FS10N Reconciliation Framework

Section titled “11.2 Ongoing MB5L vs FS10N Reconciliation Framework”
DimensionDetail
FrequencyDaily — weeks 1–4 post go-live; monthly — every period-end close thereafter
ToolMB5L (stock value by valuation area) vs FS10N (G/L balance by account)
Expected resultZero difference between MB5L total stock value and FS10N balance on inventory G/L accounts
ToleranceZero. Any non-zero difference requires immediate investigation — do not carry forward to next period
Common causes of deltaBackdated 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 pathDelta > 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 supplementFor split valuation or multi-currency scenarios, supplement MB5L/FS10N with direct ACDOCA query filtered by RBUKRS, RACCT, PRCTR, and CURTYPE
Archiving considerationDo not archive ACDOCA records for the first two fiscal years post go-live; reconciliation drill-down depends on full document availability
DimensionDetail
When to runOnce per ML period, after all goods movements and invoice receipts for the period are posted and before MM period close
PrerequisitesAll production/process orders settled (CO88); all WIP calculations complete (KKAO); all GR/IR cleared where applicable (MR11); no open posting periods in CO
Execution sequencePreliminary costing → Actual price determination → Revaluation posting → WIP revaluation → Balance sheet revaluation — all five steps must complete in order
MonitoringCKMLCP job log; SLG1 (object: MLCCS); background job monitor SM37 for large runs
Failure handlingIf 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
PerformanceFor 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 specificThe 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 CaseDetail
PUP verificationFor 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-downCKM3N shows cost components feeding the PUP: material costs, activity costs, overhead, price differences. Use this to explain COGS variances to business
Multilevel actual costingFor 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 comparisonAfter 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:

ObjectSubobjectWhat to Monitor
FINS_MIGML_MIGRATIONResidual migration errors post go-live; should be zero after M21 COMPLETED
MLCCSCKMLCP execution errors; review after every actual costing run
FINS_ACDOCUniversal Journal posting errors; flag any ML-related posting failures
CKProduct 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”
ActivityFrequencyOwnerTool
Re-execute ATC scan on all custom programs flagged in Phase 1Once — week 1 post go-liveABAP LeadATC / SCI
Verify no direct writes to MBEW/EBEW/QBEW/OBEW occurring in productionWeekly — weeks 1–4ABAP Lead / BasisST05 / STAD database trace
Monitor custom reports using MBEW-VERPR for runtime errorsDaily — weeks 1–2BI LeadST22 / SM21
Regression test all custom CO-PC reports against ACDOCAOnce — week 1 post go-liveFI-CO LeadManual / automated test
Regression test all custom MM valuation reportsOnce — week 1 post go-liveMM LeadManual / automated test
Regression test all custom assessment/distribution cycle enhancementsBefore first period-end closeCO LeadManual test
Establish permanent custom code change control for xBEW-adjacent programsOngoingABAP LeadTransport management / code review gate

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 CriterionVerified BySign-Off Owner
SC-01All X-marked notes from Note 2345739 implemented and verified via SNOTESNOTE status reportBasis Lead
SC-02MB5L vs FS10N = zero difference at period-close freezeMB5L / FS10N outputFI Lead
SC-03FINS_MIG_STATUS all steps = COMPLETED (M10 / M11 / M20 / M21)FINS_MIG_STATUS screenFI-CO Lead
SC-04ACDOCA opening balances tie to pre-migration MB5L/FS10NACDOCA query vs MB5LFI Lead
SC-05CKMLHD / CKMLPR records exist for all material/plant/valuation type combinationsSE16N countCO-PC Lead
SC-06COGS Split activated and first goods issue posts disaggregated COGSMIGO + COGS Split reportCO-PC Lead
SC-07OMXW currency types confirmed and frozen — business sign-off documentedConfiguration reviewCFO / FI-CO Lead
SC-08All custom ABAP programs remediated — no direct xBEW writes in productionATC scan + ST05 traceABAP Lead
SC-09Secondary cost elements replaced by G/L accounts — all allocation cycles testedKSU5 / KSV5 test runCO Lead
SC-10First CKMLCP run in S/4HANA completed without errorsCKMLCP job log / SLG1CO-PC Lead
SC-11CKM3N PUP values reviewed and approved for high-value materialsCKM3N outputCO-PC Lead / Business
SC-12Profit center valuation (currency type 32) verified in ACDOCAACDOCA queryCO Lead
SC-13Group valuation (currency types 30/31) verified in ACDOCAACDOCA queryCO Lead
SC-14All Fiori embedded analytics inventory and costing apps validatedFiori LaunchpadBI Lead
SC-15Hypercare sign-off by all workstream leads — no open critical issuesSign-off documentProject Lead / CFO