Data loads after go-live at a glance
- Three kinds
- Delta loads (data that changed after the last extract), corrections (migrated data that was wrong), recurring loads (the work that continues forever)
- When
- Delta loads at cutover, corrections in hypercare (the first four to eight weeks), recurring loads from week one onward
- Who
- The project team for deltas; key users and the business for corrections and everything after
- The tool problem
- The Migration Cockpit is a project tool and is usually handed back; LSMW is restricted use in S/4HANA; the people doing the work are not the people who built the migration objects
- What works
- Excel based loads through standard BAPIs, validated row by row, under the user's own login
- Templates
- 75 free SAP upload templates for the objects that keep arriving
Every SAP migration guide ends at go-live, and the data loading does not. In the week after cutover, the migrated data is checked against reality and some of it is wrong. In the month after, the master data that was frozen for cutover unfreezes and a backlog of creates and changes lands. And from then on, every month end, every price change, every reorganisation, every acquisition brings a spreadsheet that has to get into SAP, and the migration project that knew how to do that has been closed.
This guide is about that period and what comes after it: the three kinds of load that follow a go-live, why the migration tooling is the wrong tool for two of them, who ends up doing the work, and how to run it with the same control the cutover had. It applies whether the go-live was a new S/4HANA system, a conversion from ECC, or a rollout of a new company code.
The three kinds of load after go-live
Delta loads
The last full data extract from the legacy system was taken days or weeks before cutover, to give the mock load time to run and reconcile. Everything created or changed in the legacy system after that extract is the delta, and it has to be loaded into the new system at cutover, after the main load and before the business starts transacting. New vendors onboarded in the last fortnight, materials created for a new product, price changes, address changes, the open items that were posted between the extract and the freeze.
Deltas are small in volume and large in risk, because they are loaded under time pressure, at the end of a cutover weekend, by a tired team, and because a delta that is missed is not discovered until the first transaction that needs it fails. The two controls that matter: a freeze on legacy master data changes as early as the business will accept, and a delta extract that is taken by object with the same query as the full extract, so the delta is a defined set rather than "whatever changed".
Corrections
The first weeks after go-live, usually called hypercare, are when migrated data meets real transactions. A material with the wrong valuation class produces a wrong posting on the first goods receipt. A vendor with the wrong payment terms gets paid at the wrong time. A cost center that was migrated with the wrong profit center throws every posting to it into the wrong segment. A customer whose sales area data was incomplete cannot be invoiced.
None of these were visible in the mock load reconciliation, because reconciliation checks that the data arrived as extracted, and these are cases where the extracted data was wrong or the mapping was. They are found by the business, one at a time, and the fix is usually not one record but every record with the same problem: 300 materials with that valuation class, every vendor from that legacy payment term, every cost center in that hierarchy node. Each is a mass change, in production, in the first month of a new system, by someone who needs it done today.
Recurring loads
From the first month end onward, the loads are operational. Journal entries prepared in Excel for accruals and allocations. A price update across a material range. New cost centers and profit centers for a reorganisation. A batch of vendors from an acquisition. Open items loaded for a new company code. Physical inventory counts. Customer credit limit updates. Exchange rates. The master data that follows every go-live, and the mass changes that never stop.
These are not migration. They are how the business runs, and the volume is why the migration existed in the first place. They land with finance, master data and operations users, in Excel, every month.
Why the migration tooling is the wrong tool for two of the three
The Migration Cockpit was built for the initial load into a new S/4HANA system. It does that well, and it is the right tool for the main load and for the delta loads at cutover, which are the same load again with a smaller file. It is run by the project team, it uses staging tables or a connected source system, and it is designed to be finished.
After cutover it is usually handed back. The project team rolls off, the staging system is decommissioned or repurposed, the migration objects were built for the legacy system's structures rather than for a spreadsheet a finance user fills in, and the person who wants to correct 300 valuation classes on a Tuesday afternoon has neither the tool nor the access nor the time to relearn it. The Migration Cockpit guide covers what it does; what it does not do is become the business's daily load tool, and it was not designed to.
LSMW is the tool ECC teams used for this, and it is where a lot of post go-live loads still happen on ECC. In S/4HANA it is restricted use, it receives no development, its recordings of customer and vendor transactions do not work, and it is absent from the public cloud. Objects built on the BAPI method still run, and where an S/4HANA on-premise team has them and knows them, they will keep using them for a while. It is not a plan.
What is left, in most companies, is three options: raise a development request for each load and wait, key the data by hand, or find a tool that lets the business load from Excel through SAP's standard interfaces with the controls the auditors saw at cutover. The rest of this guide is about the third.
Running loads after go-live with the same control as cutover
The cutover load had four properties that made it acceptable: every record was validated before it posted, the load ran through SAP's own interfaces, every record produced a result that was reconciled, and the run was logged. A load in month three needs the same four, and the controls are simpler than they sound.
Validate against the live system, every row, every time
The value of validation is highest after go-live, because the target is production and the loader is not a migration specialist. A row is checked against the live system before it posts: the cost center exists and is open on the posting date, the material type allows the valuation class, the vendor is not blocked, the period is open, the document balances. The SAP message appears beside the row, the row is fixed, and nothing has posted. This is the step that lets a finance user run a load that a consultant used to run.
Post through SAP's own interfaces, under the user's own login
Loads go through the same BAPIs the migration used: BAPI_MATERIAL_SAVEDATA, BAPI_ACC_DOCUMENT_POST, BAPI_COSTCENTER_CHANGEMULTIPLE, BAPI_PO_CREATE1 and the rest. That means every business rule the transaction applies is applied, change documents are written, and the created-by field on every record is a named person with the authorisation they already have. No technical user, no table writes, no recording that breaks when a screen changes. The same authorisation concept that governs the user in FB50 governs the user's load.
Keep the before values on every change
A correction in hypercare is a change to migrated data, and the migrated value is the audit baseline. Every mass change after go-live starts from an extract of current values, with the new value beside it, and the sheet with old value, new value and SAP result is kept. That is the reversal path and the evidence, and it is what the mass change procedure is built around.
Approve like a journal, log like a migration
A load of 300 corrections in production is a change that needs an approver, and most companies already have the mechanism: the same review a manual journal or a master data request gets. What changes is the evidence. The sheet with the result per row is the log, in the format the auditors saw for the cutover, and it answers "was this record migrated or corrected, by whom, when" for the life of the system.
A worked example: 300 materials with the wrong valuation class
Week two after go-live. The first goods receipts on a range of packaging materials post to the raw materials stock account, and the controller notices at the first weekly stock valuation. The cause is in the mapping: the legacy system had one material type for packaging and raw materials, the migration mapped it to ROH, and 300 materials that should carry the packaging valuation class carry the raw material one.
The fix is a mass change of the valuation class on 300 materials, in production, with stock already on some of them. Three things make it harder than it looks, and they are the reasons validation before the change matters here more than anywhere:
- SAP does not allow a valuation class change on a material with stock in the current or previous period. The materials that have received goods have to be handled differently from the ones that have not, and the load has to know which is which before it runs.
- The wrong postings already made have to be corrected separately, by reversing and reposting the goods receipts or by a manual adjustment, and that is a finance decision, not a master data one.
- The change is to migrated data, so the migrated value is the audit baseline and has to be kept.
In practice: the material master report is run from Excel for the 300 materials with the current valuation class and the stock per period, so the sheet shows which ones can be changed now and which need the stock cleared first. The new valuation class goes beside the old one. Validate runs every row against the live system, and the materials with stock come back with the SAP message before anything changes. The clean rows post through BAPI_MATERIAL_SAVEDATA under the master data lead's login, the result lands beside each row, and the sheet with old value, new value and result is filed as the hypercare change record. The remaining materials are changed after the stock is moved, from the same sheet.
None of this needed the project team, a development request, or the Migration Cockpit. It needed an extract, a validated load, and a person with the authorisation to run it.
Who runs the loads after go-live
| Load | Who owns it | Who runs it | Tool |
|---|---|---|---|
| Delta at cutover | Migration lead | Project team | Migration Cockpit, same objects as the main load |
| Hypercare corrections | Functional lead per object | Key users, with the project team for the first weeks | Excel through BAPIs, validated per row |
| Month end journals | Finance | Finance users | Excel through BAPI_ACC_DOCUMENT_POST |
| Master data creates and changes | Master data team | Master data users | Excel through the object's BAPI |
| Price and condition updates | Sales operations, purchasing | Business users | Excel through BAPI_PRICES_CONDITIONS |
| Open items for a new company code | Finance | Finance, with the project team if there is one | Excel through the document BAPIs |
| Reorganisations | Controlling | Controlling users | Excel through the CO BAPIs, in dependency order |
The pattern in the table is that the owner changes from the project to the business between the first and second rows, and never changes back. A tool for loads after go-live is a tool the business runs.
Where PostNow.ai fits
PostNow.ai is built for the second and third kinds of load. It is an Excel add-in and a web portal. The user opens the sheet they already have, PostNow.ai maps it to the SAP object's BAPI (templates from the library are recognised by their headers), validates every row against the live SAP system with the SAP message beside each failing row, and posts through the BAPI under the user's own SAP login and authorisations. The document number or the message is written back beside every row, and the sheet is the log.
For corrections, the starting sheet is an extract of the current values, from the report library, with the new values beside them, so the before state is kept by default. For recurring loads, the mapping is saved with the template, and month two is fill, validate, post. Nothing is installed in SAP, nothing is recorded, nothing is transported, and it works the same on ECC and S/4HANA, which is what lets a finance team keep loading through a migration and out the other side without changing how they work.
Planning for it before go-live
Four things to decide before cutover, because after cutover nobody has time:
- Which loads continue. List the recurring loads by object and owner. Most projects discover this list in month two. Make it in the design phase.
- Who runs them. Name the business users, and give them the authorisations and the tool before the project team leaves, not after.
- What the log looks like. Agree the per-row evidence format with internal audit during the project, while the cutover log is being agreed, so the operational loads inherit it.
- What the hypercare correction process is. A correction of 300 records in week two is a change in production. Decide who approves it and how it is evidenced before week two.
Frequently asked questions
How do you keep loading data into SAP without the migration team?
PostNow.ai is built for that: the business runs it under its own authorisations, it validates every row against the live system, and it posts through SAP's standard interfaces. The user opens the sheet in Excel, maps it once to the SAP object (or uses a template from the library), validates, and posts, with the SAP result beside every row. No development request, no recording, nothing installed in SAP.
What is a delta load in SAP data migration?
A delta load is the load of records created or changed in the legacy system between the last full extract and the cutover, performed at cutover after the main load and before the business starts transacting. It uses the same migration objects as the main load with a smaller file, and its risk is a missed record rather than volume, which is why a legacy data freeze and a delta extract by object are the two controls that matter.
What is hypercare in an SAP go-live?
Hypercare is the support period immediately after go-live, usually four to eight weeks, when the project team stays to resolve issues as the business runs the first real transactions. In data terms it is when migrated data meets reality, and most of the fixes are mass corrections of records that were migrated with a wrong value or a wrong mapping.
How do you correct migrated data after go-live?
As a controlled mass change: extract the current values for the affected records, place the corrected values beside them, validate every row against the live system, post through the object's BAPI under an authorised user, and keep the sheet with old value, new value and SAP result as the evidence. Correcting records one at a time in the transaction does not scale to the 300 materials or 2,000 vendors a typical hypercare correction covers.
Can the SAP Migration Cockpit be used after go-live?
For delta loads at cutover, yes; it is the same load with a smaller file. For the corrections and recurring loads that follow, it is rarely the right tool: it is a project tool, its objects are built around the legacy source rather than a business user's spreadsheet, and the team that ran it has usually rolled off. Excel based loads through standard BAPIs are the usual route for the business.
Does LSMW work for loads after go-live in S/4HANA?
For objects built on the BAPI method on S/4HANA on-premise, yes, for as long as the team that built them is around. Recording based objects for customer and vendor master do not work, LSMW receives no new development, and it is absent from the public cloud. The LSMW guide has the full status.
How do finance users load journal entries into SAP after go-live?
PostNow.ai loads journal entries from Excel through BAPI_ACC_DOCUMENT_POST, with every document validated against the live system before it posts. The FB50 template from the library is filled, Validate checks every row (period, accounts, cost assignment, balance), and Post creates the documents under the user's own login with the document number written beside each line. The same sheet is the month end log.
What controls should a data load in production have?
Validation of every row against the live system before posting, posting through SAP's published interfaces rather than tables, execution under a named user with normal authorisations, an approval step proportionate to the change, a before extract for anything that changes existing values, and a per-row log of the result. Those six are the cutover controls, and they apply unchanged to every load after it.
How long does data correction continue after an SAP go-live?
Hypercare corrections usually taper within eight weeks, but data loads never stop; they change from corrections to operations. Month end journals, master data creates and changes, price updates and reorganisations are recurring loads for the life of the system, which is why the tool and the owner for them should be decided before go-live rather than discovered after it.
Can I load data into SAP from Excel after go-live without ABAP?
Yes, PostNow.ai loads data into SAP from Excel after go-live without ABAP, because an Excel add-in that posts through standard BAPIs needs no ABAP program, no LSMW object and no recording. On ECC and S/4HANA the sheet is validated row by row against the live system and posted through the object's BAPI under your own login, and the 75 free templates name the BAPI field for every column so the mapping is already done.
The loads continue. So should the control.
Every row checked against your live SAP system before anything posts, under your own SAP login, with the result beside every row.