cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with BBP_PD_PO_UPDATE and BADI BBP_DOC_CHANGE_BADI

Former Member
0 Kudos

Hello,

I've found out the following issue in SRM 7.0: during the run-time of the FM BBP_PD_PO_UPDATE in the program or BAdI something strange happens instead of the standard change of the DB:

- the updated data appear as a result after the running of the FM BBP_PD_PO_GETDETAIL in the program

- the old, pre-updated data appear as a result after the running of the FM BBP_PD_PO_GETDETAIL in the TA SE37.

It looks like an issue in the SAP code, but I've found no OSS-Note.

Could you please give me an advice regarding the difference in the program's behaviour depending the way of running (in background or dialog mode).

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi DAV,

Please, let me know which program you are running. Is it a custom program? If so are you trying to update the PO and then calling the getdetail?

One thing is, during the execution of a program, the getdetail FM will get the PO details from the buffer data available because in this case the PO data would have been already once during the update FM call.

For e.g., if I call the update FM to update the PO value to from say 200 USD to 300 USD, this 300USD will be updated to PO in the buffer data. It is not yet saved in the DB. Now, after the update FM, if in the program the getdetail FM is called it will read the buffer and give you the value as 300 USD. Getdetail will always check the buffer for data first. If it finds the data there, then DB call will not be done.

If I run getdetail FM in SE37, there is no buffer data here. It will read from the DB directly. If the SAVE Fm has been called in the program then the DB should also have 300 USD and SE37 run will give you 300 USD.

I hope I am not confusing you.

Regards

Saravanan.

Former Member
0 Kudos

the program ZPROGRAMM has the following logic:

.........

As BBP_PO_GETDETAIL and BBP_PO_UPDATE are calling in different sessions, I suppose that the buffer should be empty. At the first run of the program the data are reading in BBP_PO_GETDETAIL and updating in BBP_PO_UPDATE, at the second run the updated data are reading in BBP_PO_GETDETAIL (the same behaviour is if log-out/log-in happens happens between the first and second run)