Skip to Content
0
Former Member
Aug 31, 2007 at 05:07 PM

BADI: SD_COND_SAVE_A

684 Views

Hi Experts - We are using the BADI SD_COND_SAVE_A to validate condition records being entered in MEK1. Whenever we issue a message the validation works fine. But upon hittng Enter the program just abruptly terminates with message "<b>$$00000001 in function group</b>". Upon investigation we found that this is due to a Number range issue.

During our trace in debug mode, we noticed that a change document was generated (in subroutine ‘NUMBERN_VERGABE’) and added to internal table NUMBER_CHANGE during the initial save of the pricing condition, but due to the failure of the validation check placed in BADI implementation ‘SD_COND_SAVE_A’, the actual save did not take place. Then, when user pressed enter key or back key, the PAI event of the transaction VK11 was triggered and the routine NUMMERN_VERGABE’ was called again to generate a new change document. This time, in the routine ‘NUMMERN_VERGABE’, the statement READ TABLE NUMBER_CHANGE WITH KEY NUMBER_CHANGE-OLD NUMBER BINARY SERACH this time has return code ‘0’ because the internal table NUMBER_CHANGE still keeps the record previously stored during the initial save. As a result, the transaction terminated and all data was lost.

The table is <b>NUMBER_CHANGE</b> in program SAPMV13A.

I am able to see and delete these values from the shared memory in debugging if I use the prefix SAPMV13A in the debugger from the BADI.

<b>

(SAPMV13A)NUMBER_CHANGE</b> if I use this in the debugger I am able to delete the entries in the table. <b>Is it possible to do this programatically?</b>

Thanks.

Sam.