Skip to Content
Author's profile photo Owen Liu

Root cause for error C+048 – Example for CALL FUNCTION ‘BAPI_GOODSMVT_CREATE’

Error C+048

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.

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.

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo arturo senosain
      arturo senosain

      Hi. Interesting point, most of the abaps dont Loop it_retun in that way.

      Thanks 4 share.

      Author's profile photo Owen Liu
      Owen Liu
      Blog Post Author

      Yes, just a kind of implementation. I got it from material ledger developer.

      Of course, there can be many ways to do the same.

      But the point is to check it_retun 😀