The purpose of this page is to bring information on how the user can set up the table BBPV_COMP_FIELDS to avoid a new Purchase Order Output to the supplier.
In the standard behavior of SAP SRM, the Purchase Order Output is sent again to the supplier when a relevant field is changed in the document and it is re-ordered.
The new version of the document is compared to the previous version (in FM BBP_PD_ALL_GET_DIFF). The new output is only issued, if relevant fields are found in this difference check.
This comparison can be controlled using the table BBPV_COMP_FIELDS.
You can exclude fields from the comparison, that are not important in Your purchasing process. If You exclude a field from comparison, the output will not be generated, if this field changes.
Also You can include fields, that the standard solution would not consider. This way, You can make the system generate output even in the cases, when SAP standard SRM would not do this.
It is important to know, that not all of the fields can be excluded from the comparison. For some fields the entries in table BBPV_COMP_FIELDS are ignored and output is produced independently.
Table Fields and Values
- COMPARE_METHOD - Value “POO” (Purchase Order Output)
- STRUCTURENAME -
- Value “BBP_PDS_HEADER” when field belongs to the PO Header
- Value “BBP_PDS_ITEM” when field belongs to PO item
- Value “BBP_PDS_LONGTEXT” for longtext fields
- Value “BBP_PDS_ACC” for accounting fields
- Value "BBP_PDS_TAX" for tax related fields
- FIELDNAME - Name of the field to be excluded from comparison.
- COMPARE_KIND - Value “E” for exclusion, when you want to keep this field out of the comparison check, or value "I" if you want to force this field in the comparison check
This is an example how the table BBPV_COMP_FIELDS can be maintained:
Finding out the field that triggered new PO Output
When a Purchase Order Output is issued again when the user did not intended to do it, the first step is to find out what is the changed field that triggered output again. This can happen when the user changes an already ordered PO or else a follow on document (like Invoice or Confirmation) triggers a change in the leading PO.
We have two tools to help us to find this:
- Change Document in transaction BBP_PD
Open the Purchase Order in transaction BBP_PD and press the link "Read Change Document (sorted by time)" . Find the date and time of the latest change and check the sorted fields. Not every changed field is relevant in the POO comparison, but this can give you a good starting point.
In the example screen below you can see that field DELIV_DATE changed by the user. BE_PUR_ORG and BE_PUR_GROUP fields can be ignored as the final value of both does not change. INACT field is not relevant for PO output.
- Executing FM BBP_PD_ALL_GET_DIFF
Execute this FM in transaction SE37. Fill both GUIDs with the GUIDs obtained from two different versions in trx BBP_PD (usually the last two Change Versions will do), Compare Method as "POO" and fill all the READ_FLAGS as "X" .
If a Item field was changed in the later version, the field name will be available in table ET_DIFF_FIELDS
If a Header field was changed in the later version, the flag EV_OBJECTS_DIFFER will be checked. The field name is not available in this FM result, but you can try to find it in the Change Document as detailed in the steps above.
The same way You might find a couple of similar fields, that You might consider irrelevant for the output. You have to include these fields into table BBPV_COMP_FIELDS with compare_kind E for excluded.
Changed fields not displayed BBP_PD
Transaction BBP_PD is not displaying all the changed fields. For the case, that You want to avoid output for the changed PO, please make tests with these fields excluded:
POO BBP_PDS_ITEM BE_LOG_SYSTEM E
POO BBP_PDS_ITEM BE_OBJECT_ID E
POO BBP_PDS_ITEM BE_OBJECT_TYPE E
POO BBP_PDS_ITEM BE_OBJ_ITEM E
POO BBP_PDS_ITEM BE_PO_PRICE E
POO BBP_PDS_ITEM FINAL_ENTRY E
POO BBP_PDS_ITEM FINAL_INV E
Entries for all fields of the structure
For removing all fields of a structure from the POO comparison maintain FIELDNAME with blank value. For example, to keep all changes in accounting assignment from generating a new output to the supplier, add this record in the table:
Some fields are always considered relevant to release a new output to the supplier, and as such are always excluded from these settings.
For example, changes to the "Price" field cannot prevent the output to be generated again when changing it. It is obvious why when you change price in the Purchase Order, this change has to be informed to the vendor.
All these notes contain some relevant fields to be added to table BBPV_COMP_FIELDS:
- SAP Note 881650 Duplicate transfer/output of the purchase order
- SAP Note 1421363 Duplicate outputs for mail
- SAP Note 1489195 PO output is generated when confirmation is created