Application Development 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: 

How to find which Badi Implementation is causing Short Dump

VenuAnumayam
Participant
0 Kudos
1,834

Hi Experts,

We are getting short dump on IW32 transaction when the users hit SAVE button.

The Dump Details:

Runtime Errors SYNTAX_ERROR

Short text

Syntax error in program "WORKORDER_UPDATE==============CP ".

What happened?

Error in the ABAP Application Program

The current ABAP program "CL_EX_WORKORDER_UPDATE========CP" had

terminated because it has

come across a statement that unfortunately cannot be executed.

The following syntax error occurred in program

"WORKORDER_UPDATE==============CP " in include

"WORKORDER_UPDATE==============CM000 " in

line 12:

"The specified type cannot be converted into the target variable

" "

" "

" "

The current ABAP program "CL_EX_WORKORDER_UPDATE========CP" had to be

terminated because it has

come across a statement that unfortunately cannot be executed.

Error analysis

The following syntax error was found in the program

WORKORDER_UPDATE==============CP :

"The specified type cannot be converted into the target variables."

" "

" "

" "

Information on where terminated

Termination occurred in the ABAP program "CL_EX_WORKORDER_UPDATE========CP" -

in "IF_EX_WORKORDER_UPDATE~AT_SAVE".

The main program was "SAPLCOIH ".

After going through the dump analysis, I found that there are around 25 BADI Implementations got created on Enhancement Spot "WORKORDER_UPDATE".

How to find out which BADI Implementations is causing this dump?

Please let me know.

Thanks.

Edited by: ravi kumar on Feb 22, 2011 1:12 PM

1 ACCEPTED SOLUTION

krishnendu_laha
Active Contributor
0 Kudos
343

Can you please try to re-activate in SBX system each class and BADI implementation itself and try again?

Sometime it is purely an activation problem.

11 REPLIES 11

Former Member
0 Kudos
343

I am pretty sure that dump would tell you at least the code where the syntax error is?

You have 25 implementations and you also know the method 'AT_SAVE'.. You can go to SE19 for those implementation (or drill down from where used list for the BADI) and double click on implementing class (by expanding the tree node on the left side) and then doube click on the AT_SAVE method to find the "guilty" code... I would start with Z implementations first...

shouldn't take you more than 25 minutes (generous estimate of 1 minute a implementation)

0 Kudos
343

Thanks for the response.

I am pretty sure that dump would tell you at least the code where the syntax error is?

The dump is pointing to line#1 of the Code:

method IF_EX_WORKORDER_UPDATE~AT_SAVE.
  CLASS CL_EXIT_MASTER DEFINITION LOAD.

  DATA l_badi TYPE REF TO WORKORDER_UPDATE.

  TRY.

    GET BADI l_badi
     CONTEXT me.

    CALL BADI l_badi->AT_SAVE
     EXPORTING
       IS_HEADER_DIALOG = IS_HEADER_DIALOG
     EXCEPTIONS
       ERROR_WITH_MESSAGE =  1.

    case sy-subrc.
       when  1. raise ERROR_WITH_MESSAGE.
    endcase.

    CATCH CX_BADI_NOT_IMPLEMENTED CX_BADI_INITIAL_REFERENCE.
  ENDTRY.
endmethod.

So how to find out the issue? What do you mean by the "Guilty" Code - when it is pointing to the Standard Program?

krishnendu_laha
Active Contributor
0 Kudos
343

below the short dump information, you will find a sequence in which different program was called still short dump generated

(you have to scroll down a bit)

also from the short dump itlsef you can go to the line number where it is giving dump, you can put a break-point and change the value to bypass the dump to see BADI implementation name

Thanks

0 Kudos
343

Here's the Source Code Extracation:

Source Code Extract

Line  SourceCde

>>>>> method IF_EX_WORKORDER_UPDATE~AT_SAVE.
    2   CLASS CL_EXIT_MASTER DEFINITION LOAD.
    3
    4   DATA l_badi TYPE REF TO WORKORDER_UPDATE.
    5
    6
    7
    8
    9
   10   TRY.
   11
   12     GET BADI l_badi
   13      CONTEXT me.
   14
   15     CALL BADI l_badi->AT_SAVE
   16      EXPORTING
   17        IS_HEADER_DIALOG = IS_HEADER_DIALOG
   18      EXCEPTIONS
   19        ERROR_WITH_MESSAGE =  1.
   20

Thanks.

0 Kudos
343

Did you try the ACTIVE CALLS stack in the dump as suggested by Krishnendu? or put a breakpoint ? I would also check to see if there were changes to any of Custom BADI implementations that were transported recently...

0 Kudos
343

Yes, I tried the Active Calls Stack also. The Short Dump is occuring exactly at the line :-

method IF_EX_WORKORDER_UPDATE~AT_SAVE.

in Class:-

CL_EX_WORKORDER_UPDATE

.

I was informedby the user that this is working perfectly fine in DEV System. The Short Dump is occuring in SBX System.

When I executed the Class "CL_EX_WORKORDER_UPDATE" and Method "IF_EX_WORKORDER_UPDATE~AT_SAVE" via SE24 in SBX, I got the same dump. However it worked fine in DEV System.

I am wondering if the issue is with the Standard Program itself?

Any ideas?

Thanks a lot again.

Another thing is: It is short dumping even before calling any of the BADI Implementations.

Wanted to give some more info on this: I put a break point in Function "CO_ZV_ORDER_POST" after the CALL FUNCTION 'CO_BADI_GET_BUSINESS_ADD_IN'.

And the program dumps right after that when it calls the: CALL METHOD lp_badi_if->at_save.

Thanks.

Edited by: ravi kumar on Feb 22, 2011 1:51 PM

Edited by: ravi kumar on Feb 22, 2011 2:11 PM

0 Kudos
343

What difference you see between DEV and SBX Systems when you debug FM "CO_ZV_ORDER_POST"?

0 Kudos
343

When I was debugging the FM in DEV System, as soon as it calls the Method "lp_badi_if->at_save", it goes to the "CL_BADI_CACHE_HANDLER=>GET_INSTANCE" method and then returns to method CL_EX_WORKORDER_UPDATE-IF_EX_WORKORDER_UPDATE~AT_SAVE".

However in SBX System, as soon as it calls the Method "lp_badi_if->at_save", it short dumps.

Thanks.

krishnendu_laha
Active Contributor
0 Kudos
344

Can you please try to re-activate in SBX system each class and BADI implementation itself and try again?

Sometime it is purely an activation problem.

Former Member
0 Kudos
343

Hi Ravi, How did U resolve this coz Iam seeing the same problem with one of my Badi implementations..

0 Kudos
343

Sorry, it's a late response. But my issue was because one of the Implementations was "Inactive. So I activated that and it resolved the issue. Thought anybody with the same issue would benefit from this.