Error C+048 is a famous inconsistency error.
You can get it when making material ledger period end closing (CKMLCP).
You can also get it when posting goods movements.
The cause is that data between material ledger and material master.
Material ledger is a special ledger that will record each goods movements and write them in material ledger tables. It’s assumed that the data between material ledger and material master must be consistent. Or else, error C+048 will raise.
You can check the inconsistency with CKMC.
When you get this error, the only recommended way to solve it is to report an incident to SAP for correction.
The annoying thing is it’s always difficult to reproduce the error and very difficult to identify the root cause.
According to experience, the KBA 2149876 was created to identify the most common root causes.
There, the root cause for “Incorrect implementation of BAPI: BAPI_GOODSMVT_CREATE” is very common.
Many customers are using BAPI_GOODSMVT_CREATE in their Z-program or interfaces to create goods movements.
But the way of using BAPI_GOODSMVT_CREATE is critical. If it’s used in a wrong way, inconsistencies will happen before you know them.
Below I paste 2 examples, one is not good, one is correct example:
Not good: the return table was not checked.
Correct: return table is checked for E, A & X
For the use of BAPI_GOODSMVT_CREATE, you can also check more information in SAP Note 457499 & 520813.