Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

LOAD_PROGRAM_CLASS_MISMATCH

Former Member
0 Likes
29,149

Hello,

We have a problem when we launch the BAPI BAPI_SALESORDER_CREATEFROMDAT2, we have a dump LOAD_PROGRAM_CLASS_MISMATCH in BADI :

The section "PUBLIC" of the interface of the class "BADI_SD_SALES_ITEM" was

  changed during

program flow, which caused inconsistencies at runtime.

The program "BADI_SD_SALES_ITEM============CP" uses the interface version

  20130323120636.

The program "CL_EX_BADI_SD_SALES_ITEM======CP" uses the interface version

  20130323120635.

The internal session was started at 20130325113802.

How can i resolve the problem ?

Thanks in advance.

Best regards.

9 REPLIES 9
Read only

Abhijit74
Active Contributor
0 Likes
11,821

Hello,

Please go through below documents.

Note 351695 - LOAD_PROGRAM_CLASS_MISMATCH

Version / Date13      /     2002-07-12
PriorityRecommendations/additional info
CategoryConsulting
Primary ComponentBC-ABA-LA Syntax, Compiler, Runtime
Secondary Components

Symptom


You have for example imported a Support Package or another ABAP change. Now dump LOAD_PROGRAM_CLASS_MISMATCH or LOAD_PROGRAM_INTF_MISMATCH or RUNT_ILLEGAL_SWITCH occurs (displayed in Transaction ST22).

Other terms

LOAD_CLASS_VERSION_MISMATCH, LOAD_INTF_VERSION_MISMATCH
RUNT_ILLEGAL_SWITCH

Reason and Prerequisites

Origin of inconsistency:


Read Note 352480. This kernel patch corrects a major cause for such inconsistencies.
In addition, transports or changes in productive operation can cause these inconsistencies. (Notes 0162166, 0162991, 0356208).
In addition, an error during update of the object list in SE80 leads to missing includes in Table D010INC. Since Table D010INC is used as cross-reference, inconsistencies occur when changing includes affected (-> Note 535969).

Correction and description of inconsistency:


During a transaction or a report, program B is called by program A. (CALL FUNCTION, CALL METHOD ....)

The dump occurs if the system finds out at program runtime that program A uses a different version of class C than program B.
If this inconsistency exists, this is mostly because a transport which changed class C was imported into the running system.
Program A then has processed the new version of class C, but program B is still running with the old version.

Analysis:

    1. In the dump long text you will find the section "Error analysis":


For example:
The section "PUBLIC" of the interface of class "CL_RSO_REPOSITORY" was changed at program runtime so that inconsistencies were created at runtime.
Program "CL_RSO_RENDER_HTML_LIST_TYPE==CP" uses the interface version 20000920150545.
Program "CL_RSO_REPOSITORY=============CP" uses the interface version 20001003135348.

That means: Program "CL_RSO_RENDER_HTML_LIST_TYPE==CP" uses the interface version: 20.09.2000 / 15:05:45.
Program "CL_RSO_REPOSITORY=============CP", on the other hand, uses the more current version: 03.10.2000 / 13:53:48.

    2. Check in ST22 whether the dump only occurs on one server.

Solution


Ad (1)
You must at least generate the program with the outdated interface version.
In the present case you must regenerate:
"CL_RSO_RENDER_HTML_LIST_TYPE==CP"
so that it also uses the newest version of the interface of class "CL_RSO_REPOSITORY".
To be on the safe side, you should also generate the second program as well.
In the present case:
CL_RSO_REPOSITORY=============CP.


Ad (2)

If only one server is affected, then it is most likely that the program version on the database is correct but that the version in the program buffer of the server in question is outdated. In this case, generate the program in question on this server. If there are several programs to be generated, you can also restart the server to empty the buffer.

If several servers are "affected" according to St22, then generate the program on any server. If the problem is not solvedafterwards, start all application servers to delete the buffers.

Thanks,

Abhijit


Read only

Former Member
11,821

I solved it by generating the program A and program B.

SE38 -> Program -> Generate

Regards,

Sergio Pico

Read only

Abhijit74
Active Contributor
0 Likes
11,821

Hello,

Check whether your BADI BADI_SD_SALES_ITEM has been changed or not? And it is properly implemented and transported.

Thanks,

Abhijit

Read only

Former Member
0 Likes
11,821

Hello,

There was no modification in the BADI BADI_SD_SALES_ITEM.

San.

Read only

0 Likes
11,821

Was an object (ddic ?) referenced in the BAdI changed ?

Regards,

Raymond

Read only

RaymondGiuseppi
Active Contributor
0 Likes
11,821

If you changed and reactivated the BAdI, leave the current testing transactions before testing again.

(Apparently you activated the BAdI or its implementing class at 12:06:36 but started your test at 11:38:02, so load was no longer correct, or was a trasnsport imported during execution ?)

Regards,

Raymond

Read only

0 Likes
11,821

Can we use the note OSS 1563925 ?

Thanks in advance.

Read only

0 Likes
11,821

Only for class CL_ST_CRYPTO_SCT13, not for your BAdI implementation, even if TOUCHSRC seems not very dangerous to test. Else try to execute SGEN on your system for existing loads, only invalidated loads.

Regards,

Raymond

Read only

former_member226999
Contributor
0 Likes
11,821

We had similar issue getting short dump message ABAP programming error - LOAD_PROGRAM_CLASS_MISMATCH.

The issue was with the servers. The program buffers on the servers were not in synch. A stop start of the server resolved the issue. We have two servers and one of the server was only taken down in a routine stop start of the PRE_PROD system for refresh. The other server was not taken down in the routine. we restarted the second server (which was not taken down) and it resolved the issue as the buffers were reset. Hope this helps.