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

Trouble implementing BDCP_BEFORE_WRITE for COND_A

Former Member
0 Likes
1,071

I am new to BADIs --

I am creating change pointers for sales and tax condition records using VK11, VK31, VK34 and only want to create change pointers for certain condition types.

I used SE19 to create an implementation of BDCP_BEFORE_WRITE for message type COND_A

I added my code ->

data: kschl type konh-kschl.

break dgreenberg.

IF CHANGE_DOCUMENT_HEADER-OBJECTCLAS EQ 'COND_A'.

select single kschl into kschl

from konh

where knumh = CHANGE_DOCUMENT_HEADER-OBJECTID.

if kschl <> 'PR00'.

CLEAR CHANGE_POINTERS.

endif.

endif.

And change pointers are still being created for non PR00 condition types. I have attempted to debug by adding break sy-uname. And manually adding break points to both CHANGE_POINTERS_CREATE and CHANGE_POINTERS_CREATE_DIRECT and the code is not stopping from VK11.

Am I missing a step in 'implementing' the badi -- I assume the badi calls are made from within the code in the FM above. I also assume that VK11 is calling one of the FM above as CDHDR and CDPOS are being populated with the transactions being processed.

Is my code not being hit?

OR

If my code is being hit (and I just can't get the code to stop) -- it may be that the values are not yet written to the KONH table -- but I need to be able to interrogate the values in the transaction to make my filtering decision -- is there a temporary table that stores those values about to be posted?

Any help would be appreciated --

I am new to BADIs --

I am creating change pointers for sales and tax condition records using VK11, VK31, VK34 and only want to create change pointers for certain condition types.

I used SE19 to create an implementation of BDCP_BEFORE_WRITE for message type COND_A

I added my code ->

data: kschl type konh-kschl.

break dgreenberg.

IF CHANGE_DOCUMENT_HEADER-OBJECTCLAS EQ 'COND_A'.

select single kschl into kschl

from konh

where knumh = CHANGE_DOCUMENT_HEADER-OBJECTID.

if kschl <> 'PR00'.

CLEAR CHANGE_POINTERS.

endif.

endif.

And change pointers are still being created for non PR00 condition types. I have attempted to debug by adding break sy-uname. And manually adding break points to both CHANGE_POINTERS_CREATE and CHANGE_POINTERS_CREATE_DIRECT and the code is not stopping from VK11.

Am I missing a step in 'implementing' the badi -- I assume the badi calls are made from within the code in the FM above. I also assume that VK11 is calling one of the FM above as CDHDR and CDPOS are being populated with the transactions being processed.

Is my code not being hit?

OR

If my code is being hit (and I just can't get the code to stop) -- it may be that the values are not yet written to the KONH table -- but I need to be able to interrogate the values in the transaction to make my filtering decision -- is there a temporary table that stores those values about to be posted?

Any help would be appreciated --

2 REPLIES 2
Read only

Former Member
0 Likes
712

Hi Diana,

Not sure if you have already tried this.

To stop the program at the BADI, go to SE24 and put a breakpoint in the class

CL_EXITHANDLER class's "get instance" method.

Then when u run the transaction; program will stop at all EXIT calls including BADI exits. then you can make sure your code is being hit.

Regards,

Vivek Kute

Read only

Former Member
0 Likes
712

Hi Diana,

I am experimenting same problem but working with Equipments. It seems the code is not going through that BADI.

How did you finally fixed that?

Hi Vivek,

Which SAP Version are you working with...?

Could it be due to that...

Is Note 420562 relevant?

I am working with

SAP_BASIS 620 level 54

SAP_APPL 470 level 22

Message was edited by:

Ivan Vojvodic