Skip to end of metadata
Go to start of metadata

Purpose:

  • You can check the transfer errors for SRM Purchaser Orders (coming from your ECC system)
  • Content of the LT_BAPI_RETURN local table can be added to your OSS message before you send it for SAP Support
  • Extended Classic is the most common scenario based on the amount of customer messages

Overview:

  • Extended Classic Scenario's Function Module (FM): BBP_PD_PO_TRANSFER_EXEC
  • Important FM-s and BADI-s you can check
  • Debugging steps with a Purchase Order example

Content:

Extended Classic Scenario's Function Module: BBP_PD_PO_TRANSFER_EXEC
 

From the SRM Shopping Cart a local SRM Purchase Order created and replicated to the ERP Back End system. As a consequence you can find the PO in the transaction BBP_PD on the SRM side.

Important FM-s and BADI-s you can check

SRM 550:

  • BBP_PD_PO_TRANSFER_EXEC
  • B46B_DPO_TRANSFER
  • BBP_PO_INBOUND (ECC)
  • BAPI_PO_CREATE1 (ECC)
  • BAPI_PO_CHANGE (ECC)

SRM 700:

  • BBP_PD_PO_CREATE
  • BBP_PD_PO_UPDATE
  • BBP_PD_PO_GETDETAIL
  • BBP_PD_PO_TRANSFER_EXEC
  • B46B_DPO_TRANSFER
  • BBP_PO_INBOUND (ECC)
  • BAPI_PO_CREATE1 (ECC)
  • BAPI_PO_CHANGE (ECC)

BAdIs which may affect the transfer process of the PO:

PO transfer:

  • BBP_ECS_PO_OUT_BADI

Within R/3 Plug-ins:

  • BBP_MAP_BEFORE_BAPI
  • BBP_MAP_AFTER_BAPI
It is important to know, that only RFC transfer is developed for this scenario, no XML transfer is foreseen in SAP standard.

Please find following KBA about this topic:  2487433 - Purchase Order transfer method in Extended Classic scenario

Debugging steps with an example
  1. Check the PO’s GUID in BBP_PD and take a note from it. As you can see this PO has been created automatically from a Shopping Cart. Confirmation and Invoice from the vendor are expected:
  2. Set a session breakpoint in META_BAPI_DISPATCH or META_DPO_TRANSFER (SE37):
  3. Start SE37 again and enter the FM-s name (BBP_PD_PO_TRANSFER_EXEC). Enter the PO’s GUID as the parameter of the Function Module. Hit Execute (F8). Debugging session starts:
  4. Relevant FM is selected from the table BBP_FUNCTION_MAP based on the Back End system release. In our example this is B46B_DPO_TRANSFER. Please consider that BAdI's can be called before accessing the Back End system (for example: BBP_ECS_PO_OUT_BADI):

     
  5. Navigate in the relevant FM (in our case B46B_DPO_TRANSFER) to the function BBP_PO_INBOUND:

    CALL FUNCTION ‘BBP_PO_INBOUND’
    

    Please make sure that you have dialog connection and user, so that you can access the Back End and check the source code in the ECC system. You can directly set another breakpoint at the relevant part (B46B_DPO_TRANSFER -> CALL FUNCTION ‘BBP_PO_INBOUND’). If you have done that before starting the debugger session, just press F8 (Continue)  and the debugger will directly jump to this part:
      

  6. On the screenshot you can see that we have entered the BBP_PO_INBOUND function and with the help of an RFC call we are in the ECC system:
      
  7. BAPI_PO_GETDETAIL is called in the ECC system, it checks whether this is a PO change or not. If this is not a change process, the PO will be created with a BAPI (BAPI_PO_CREATE1 will be called in the FM CREATE_PO):
      
  8. After the BAPI has been called and processed, possible error messages are returned in the local table LT_BAPI_RETURN. Please take a screenshot from it or copy the content of the table and attach it to your OSS message before sending it to SAP:

Remark:

You can debug the Classic Scenario this way as well by the FM: BBP_PD_SC_TRANSFER. The parameter is here the number (GUID) of the Shopping Cart of course.

Related Content

Related SAP Notes/KBAs

2487433 - Purchase Order transfer method in Extended Classic scenario

2445609 - Items Not transferred Correctly

2463255 - Error "no update of references in PLAN system"

 

2 Comments

  1. Former Member

    Good explanation!!

  2. Hi Viktor,

    The article is very well authored. Thanks for all your efforts.

    Regards

    Venkat