Showing results for 
Search instead for 
Did you mean: 

Communication between PO check BADI (ZBBP_CHECK_PO) and workflow

Former Member
0 Kudos

Running SRM 4.0

I'm facing a problem to communicate between a BADI executed when entering PO Change mode and the Workflow that is started when the changed PO is saved.

1. I have identified a BADI that determines the "old" account assignments (cost centers) when the PO is put into change mode.

2. The old account assignments (cost centers) are exported to memory:

EXPORT lt_costcenters = lt_costcenters TO MEMORY ID 'OldCostCenters'.

3.The problem occurs when I try to import the old cost centers in a ZBUS2201 attribute that is called/read from a workflow that is triggered after PO save.

I simply cannot use IMPORT lt_costcenters = lt_costcenters FROM MEMORY ID 'OldCostCenters'. anymore (probably because the workflow is triggered indirectly)

This problem can of course be solved by creating tables that temporarly holds the values, but I would like to avoid that.

I have also tried to use the function module BBP_CHANGE_DOC_GENERAL to access cost center changes, but when having multiple cost assignments (multiple cost centers) the "Display Change Documents" does not show old/new cost centers. This only works when having a single cost center.

Thanks in advance!



Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos


Try this ->

1) If you have activated versioning on PO, you can get modifications with BBP_PD_PO_GET_DIFF, using the different version GUIDs.

Otherwise you can read usual change documents (see FM BBPCHANGE_DOC_GENERAL called when you display SC or PO changes)._

You can also look for implementing the BADI "BBPVERSION_CONTROL"_

2) Use the FM "BBPPROCDOC_GETDETAIL" which gives the value of the details entered in PO / SC which are already there in Database._

3) You can use the function module BBPPD_PO_GET_DIFF_ , but any way you should have different guids for the original purchase order and changed purchase order.

Some related pointers to go through ->

Hope this will help. Do let me know.


- Atul

Answers (0)