Hi all expert,
I'm creating a report that must update a PO stored in SRM on the basis of the master that has been modified on the R/3 backend.
In order to do so, the report does as follows:
1 - get the PO from the backend (using BAPI_PO_GETDETAIL destination backend);
2 - get the same PO from SRM (using BBP_PD_PO_GETDETAIL);
3 - since no position can be added, I wrote a simple routine that maps every SRM item into the corrispective one in R3; then update some field of SRM items according to the values that are on the backend.
4 - BBP_PD_PO_UPDATE to update the PO on SRM, creating a new version (in park mode).
It works flawlessy, but the prerequisite is that the SRM PO is in a "closed" state; the update procedure must not be executed if there's a modify version of the PO in SRM.
Now, I'm assuming that my report will be used more than once for a PO. The first time it will work without problems, the second time - and more generally, every subsequent try - it will not because of my checks on the SRM's PO state (the first update process will put the PO in a modify, parked version).
I'd like to extend the report in this way: add a 'brute force mode' that OVERWRITES the current modify version of the PO in SRM. I did some try but without success, can anybody help me / suggest a way to overwrite the last parked version of a PO ? Thanks in advance
EDIT: I read that the method BBP_PDHGP_DB_DIRECT_UPDATE could be used to unlock the currently modified active version ... Can anyone help me uderstanding how to proceed in modifying a change version? Thanks