Skip to Content
avatar image
Former Member

Worklist for confirm goods using BBPCF02

Hi Gurus,

In our requirement BBPCF02 will display the PO which are based on the document type "ECDP" and "ECPO" i want to add one more document type "EB" ..so when ever i enter this tcode in ITS it should disply the POs which are based on document types as "ECDP" "ECPO" and "EB".

I have heard about BADI BBP_WF_LIST in this which methos i need to implement how to procedd further ..

please help

THnak you

Message was edited by:

joseph Prashanth

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

6 Answers

  • avatar image
    Former Member
    Feb 23, 2007 at 08:42 AM

    Hi

    <b>For BBPCF02 / BBPCF03 Internet Services,</b>

    <u>You need to implement the BADI - BBP_WF_LIST for the filter type - BUS2203 for doing this job.</u>

    <b>Here is the documetation of this BADI</b>

    BBP_WF_LIST
    ____________________________________________________
    Short Text
    Display Worklists and Search Results Lists
    
    With the Business Add-In BBP_WF_LIST , you can tailor the
    
    display of worklists and search results lists for purchase order documents (and Sourcing applications) in SRM Server according to your own criteria.
    
    Standard settings
    
    The following methods are available:
    BBP_WF_LIST for purchasing documents
    BBP_WF_LIST_SOCO for the Sourcing application
    In the standard version, the following differences exist between the display of worklists and search results lists:
    Normal employees see only their own requirements and documents
    The purchaser's worklist in Sourcing and in the application for processing purchase orders is dependent on assignment to an organizational unit.
    The goods recipient and invoicing party can find all purchase orders, confirmations, and invoices.
    As standard, the system sorts the purchasing documents in ascending order by the last date of processing.
    To distinguish between the worklists and search results lists of the SRM Server applications, the BAdI is implemented dependent on the following filters:
    BUS2201
    Filter value for the worklist in purchase order processing in SAP Enterprise Buyer 
    BUS2203
    Filter value for the worklist in confirmation processing in SAP Enterprise Buyer 
    BUS2205
    Filter value for the search results list in invoice processing in SAP Enterprise Buyer 
    BUS2121
    Filter value for the worklist in shopping cart status check in SAP Enterprise Buyer
    BUS2200
    Filter value for the search results list in bid invitation processing in SAP Bidding Engine
    BUS2202
    Filter value for the search results list in bid processing in SAP Bidding Engine
    BUS2000113
    Filter value for the search results list in contract processing in SAP Enterprise Buyer 
    Activities
    
    Implement and activate the BAdI if you wish to adapt worklists and search results lists.
    
    Note that the filter value Object type (field OBJECT_TYPE) determines for which application the BAdI implementation is active.
    
    Example
    
    Using the BadI BBP_WF_LIST you can sort the worklist by document number, for example, or remove documents belonging to a particular user from the worklist.
    
    The implementation of the BadI using Business object type BUS2205 allows you to change the list of invoices and the purchase orders associated with these invoices independently of one another. For example, you could sort the purchase orders by purchase order number and the invoices by the name of the user who created them.
    
    You can exclude bid invitations from a certain product category, for example, from the purchaser's search results list in SAP Bidding Engine.
    You can exclude contracts from a certain purchasing organization or purchasing group, for example, from the purchaser's search results list in SAP Enterprise Buyer.
    Further notes
    
    If the BadI is used for confirmations and purchase orders, it always accesses the list of the actual document and its purchase orders.
    
    The purchaser's worklist contains only requirements that, according to Customizing, are to be processed in the Sourcing application. See the IMG activity Define Sourcing for Product Categories.
    
    *--------------------------------*
    
    Change Output List Purchasing Documents
    Functionality
    With method BBP_WF_LIST in SAP Enterprise Buyer, you can adapt the display list of the worklist for purchasing documents and search results lists according to your own criteria.
    
    
    
    Parameters
    Importing
    FLT_VAL
    Filter value
    I_PDLIST_NEW
    Entry list of worklist or the search results list and additional information
    Changing
    E_PDLIST
    Output list of worklist or the search results list (contains only GUIDs)
    
    
    See also
    BAdI BBP_WF_LIST
    Method BBP_WF_LIST_SOCO
    Implementation

    Incase you need the Method Implemenatation part, as well, do let me know.

    Hope this will help.

    Please reward suitable points.

    Regards

    - Atul

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Ramakrishna Potluri

      Thanks for u reply!

      One more thing when i keep break-point in the BADI BBP_WF_LIST it is not stopping when i click on confirm goods/services in ITS or when i goto tcode BBPCF02..can u explain why it is not stopping i have used BUS2203.

  • avatar image
    Former Member
    Feb 24, 2007 at 07:43 PM

    Hi

    <b>As promised to you, here is the sample Code for the BADI Implementation...</b>

    <u>You need to make few changes to the code base o the RFC function call and update the e_pdlist table of this BADI, which holds the final data ( all the POS / Confirmations to be displayed on ITS Web page, once the BBPCF02 or BBPCF03 Service is called)</u>

    Let me know incase you need any further help.

    METHOD if_ex_bbp_wf_list~bbp_wf_list.
    
      DATA: t_header_guids     TYPE TABLE OF bbp_guid_tab,
            t_pdlist           TYPE TABLE OF bbp_pds_pdlist,
            t_messages         TYPE TABLE OF bbp_pds_messages,
            t_sc_guids         TYPE TABLE OF bbp_guid_tab,
            t_ref_doc          TYPE TABLE OF bbps_sc_refdata,
            t_itemlist         TYPE TABLE OF bbp_pds_sc_itemlist,
            t_conf_pdlist      TYPE TABLE OF bbp_pds_pdlist.
    
      DATA: wa_sc_guids        TYPE bbp_guid_tab,
            wa_pdlist          TYPE bbp_pds_pdlist,
            wa_ref_doc         TYPE bbps_sc_refdata,
            wa_itemlist        TYPE bbp_pds_sc_itemlist,
            wa_conf_pdlist     TYPE bbp_pds_pdlist.
    
    
    
        IF sy-tcode EQ   'BBPCF02'.    
    
    *--- First Get all the Reference documents 
    
    *--- Get all the Shopping Carts
          CALL FUNCTION 'BBP_PD_SC_GETLIST'
            TABLES
              i_header_guids = t_header_guids
              e_pdlist       = t_pdlist
              e_messages     = t_messages.
    
    *--- Sort the SC based on SC number
          SORT t_pdlist BY object_id.
    
    *--- Get all the Header Guids
          LOOP AT t_pdlist INTO wa_pdlist.
            wa_sc_guids-guid = wa_pdlist-guid.
            APPEND wa_sc_guids TO t_sc_guids.
          ENDLOOP.
    
    
    *--- Get all the Reference Document for the Header Guids
          CALL FUNCTION 'BBP_PD_SC_REF_GETLIST'
            EXPORTING
              i_item_not_deleted = 'X'
            TABLES
              it_header_guids    = t_sc_guids
              et_refdata         = t_ref_doc
              it_logical_systems = 'R3BACKENDSYSTEM' -> Give he R/3 backend system RFC Destination name here 
            EXCEPTIONS
              nothing_found      = 1
              OTHERS             = 2.
    
    
    *--- Retain only the PO (Business Object 2012)
            DELETE t_ref_doc WHERE ( be_object_type NE 'BUS2012' AND
                                     be_object_type NE 'BUS2012001' ).
    
    *--- Sort all reference documents based on be_object_id - Purchase Order numbers.
          SORT t_ref_doc BY be_object_id.
    
    *--- Loop on all remaianing POs 
    *---  Use SC Guid (Header)
          LOOP AT t_ref_doc INTO wa_ref_doc.
              DELETE e_pdlist WHERE object_id = wa_ref_doc-be_object_id.
          ENDLOOP.
    
    *--- Here make a call to the R/3 system by using your RFC Function module
    *---- and update e_pdlist [] table which finally will contain all the 
    *--- detialed confirmations starting with Document type - "EB"
    
    
    *---- based on the document type "ECDP" and "ECPO" - Add one more document type "EB" ..
    *---- so when ever BBPCF02 is called in ITS it should disply the POs 
    *--- which are based on document types as "ECDP" "ECPO" and "EB".
    
    
    
        ELSEIF sy-tcode EQ 'BBPCF03'. " Display All PO/Confirmations
    
    *--- Similar code as above
    
        ENDIF. "if sy-tcode eq 'BBPCF02'.
    
    
    ENDMETHOD.

    Hope this will help.

    Please reward suitable points.

    Regards

    - Atul

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      We are using EBP : 4.0

      The back-end documents are created in R3 system only..they are not created in SRM.

      Confirmations and Good receipts are getting created in R3 only not in SRM.

  • Feb 24, 2007 at 09:39 AM

    Hi,

    I would rather use BBPCF03 (confirm centrally) to be able to receive your EB backend documents : it is standard behaviour

    Then use BADI already mentionned to restrict the list to what you want .

    Kind regards,

    Yann

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Feb 24, 2007 at 07:40 PM

    Hi

    <b>As promised to you, here is the sample Code for the BADI Implementation...</b>

    <u>You need to make few changes to the code base o the RFC function call and update the e_pdlist table of this BADI, which holds the final data ( all the POS / Confirmations to be displayed on ITS Web page, once the BBPCF02 or BBPCF03 Service is called)</u>

    Let me know incase you need any further help.

    METHOD if_ex_bbp_wf_list~bbp_wf_list.
    
      DATA: t_header_guids     TYPE TABLE OF bbp_guid_tab,
            t_pdlist           TYPE TABLE OF bbp_pds_pdlist,
            t_messages         TYPE TABLE OF bbp_pds_messages,
            t_sc_guids         TYPE TABLE OF bbp_guid_tab,
            t_ref_doc          TYPE TABLE OF bbps_sc_refdata,
            t_itemlist         TYPE TABLE OF bbp_pds_sc_itemlist,
            t_conf_pdlist      TYPE TABLE OF bbp_pds_pdlist.
    
      DATA: wa_sc_guids        TYPE bbp_guid_tab,
            wa_pdlist          TYPE bbp_pds_pdlist,
            wa_ref_doc         TYPE bbps_sc_refdata,
            wa_itemlist        TYPE bbp_pds_sc_itemlist,
            wa_conf_pdlist     TYPE bbp_pds_pdlist.
    
    
    
        IF sy-tcode EQ   'BBPCF02'.    
    
    *--- First Get all the Reference documents 
    
    *--- Get all the Shopping Carts
          CALL FUNCTION 'BBP_PD_SC_GETLIST'
            TABLES
              i_header_guids = t_header_guids
              e_pdlist       = t_pdlist
              e_messages     = t_messages.
    
    *--- Sort the SC based on SC number
          SORT t_pdlist BY object_id.
    
    *--- Get all the Header Guids
          LOOP AT t_pdlist INTO wa_pdlist.
            wa_sc_guids-guid = wa_pdlist-guid.
            APPEND wa_sc_guids TO t_sc_guids.
          ENDLOOP.
    
    
    *--- Get all the Reference Document for the Header Guids
          CALL FUNCTION 'BBP_PD_SC_REF_GETLIST'
            EXPORTING
              i_item_not_deleted = 'X'
            TABLES
              it_header_guids    = t_sc_guids
              et_refdata         = t_ref_doc
              it_logical_systems = 'R3BACKENDSYSTEM' -> Give he R/3 backend system RFC Destination name here 
            EXCEPTIONS
              nothing_found      = 1
              OTHERS             = 2.
    
    
    *--- Retain only the PO (Business Object 2012)
            DELETE t_ref_doc WHERE ( be_object_type NE 'BUS2012' AND
                                     be_object_type NE 'BUS2012001' ).
    
    *--- Sort all reference documents based on be_object_id - Purchase Order numbers.
          SORT t_ref_doc BY be_object_id.
    
    *--- Loop on all remaianing POs 
    *---  Use SC Guid (Header)
          LOOP AT t_ref_doc INTO wa_ref_doc.
              DELETE e_pdlist WHERE object_id = wa_ref_doc-be_object_id.
          ENDLOOP.
    
    *--- Here make a call to the R/3 system by using your RFC Function module
    *---- and update e_pdlist [] table which finally will contain all the 
    *--- detialed confirmations starting with Document type - "EB"
    
    
    *---- based on the document type "ECDP" and "ECPO" - Add one more document type "EB" ..
    *---- so when ever BBPCF02 is called in ITS it should disply the POs 
    *--- which are based on document types as "ECDP" "ECPO" and "EB".
    
    
    
        ELSEIF sy-tcode EQ 'BBPCF03'. " Display All PO/Confirmations
    
    *--- Similar code as above
    
        ENDIF. "if sy-tcode eq 'BBPCF02'.
    
    
    ENDMETHOD.

    Hope this will help.

    Please reward suitable points.

    Regards

    - Atul

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Feb 24, 2007 at 07:41 PM

    Hi

    <b>As promised to you, here is the sample Code for the BADI Implementation...</b>

    <u>You need to make few changes to the code base o the RFC function call and update the e_pdlist table of this BADI, which holds the final data ( all the POS / Confirmations to be displayed on ITS Web page, once the BBPCF02 or BBPCF03 Service is called)</u>

    Let me know incase you need any further help.

    METHOD if_ex_bbp_wf_list~bbp_wf_list.
    
      DATA: t_header_guids     TYPE TABLE OF bbp_guid_tab,
            t_pdlist           TYPE TABLE OF bbp_pds_pdlist,
            t_messages         TYPE TABLE OF bbp_pds_messages,
            t_sc_guids         TYPE TABLE OF bbp_guid_tab,
            t_ref_doc          TYPE TABLE OF bbps_sc_refdata,
            t_itemlist         TYPE TABLE OF bbp_pds_sc_itemlist,
            t_conf_pdlist      TYPE TABLE OF bbp_pds_pdlist.
    
      DATA: wa_sc_guids        TYPE bbp_guid_tab,
            wa_pdlist          TYPE bbp_pds_pdlist,
            wa_ref_doc         TYPE bbps_sc_refdata,
            wa_itemlist        TYPE bbp_pds_sc_itemlist,
            wa_conf_pdlist     TYPE bbp_pds_pdlist.
    
    
    
        IF sy-tcode EQ   'BBPCF02'.    
    
    *--- First Get all the Reference documents 
    
    *--- Get all the Shopping Carts
          CALL FUNCTION 'BBP_PD_SC_GETLIST'
            TABLES
              i_header_guids = t_header_guids
              e_pdlist       = t_pdlist
              e_messages     = t_messages.
    
    *--- Sort the SC based on SC number
          SORT t_pdlist BY object_id.
    
    *--- Get all the Header Guids
          LOOP AT t_pdlist INTO wa_pdlist.
            wa_sc_guids-guid = wa_pdlist-guid.
            APPEND wa_sc_guids TO t_sc_guids.
          ENDLOOP.
    
    
    *--- Get all the Reference Document for the Header Guids
          CALL FUNCTION 'BBP_PD_SC_REF_GETLIST'
            EXPORTING
              i_item_not_deleted = 'X'
            TABLES
              it_header_guids    = t_sc_guids
              et_refdata         = t_ref_doc
              it_logical_systems = 'R3BACKENDSYSTEM' -> Give he R/3 backend system RFC Destination name here 
            EXCEPTIONS
              nothing_found      = 1
              OTHERS             = 2.
    
    
    *--- Retain only the PO (Business Object 2012)
            DELETE t_ref_doc WHERE ( be_object_type NE 'BUS2012' AND
                                     be_object_type NE 'BUS2012001' ).
    
    *--- Sort all reference documents based on be_object_id - Purchase Order numbers.
          SORT t_ref_doc BY be_object_id.
    
    *--- Loop on all remaianing POs 
    *---  Use SC Guid (Header)
          LOOP AT t_ref_doc INTO wa_ref_doc.
              DELETE e_pdlist WHERE object_id = wa_ref_doc-be_object_id.
          ENDLOOP.
    
    *--- Here make a call to the R/3 system by using your RFC Function module
    *---- and update e_pdlist [] table which finally will contain all the 
    *--- detialed confirmations starting with Document type - "EB"
    
    
    *---- based on the document type "ECDP" and "ECPO" - Add one more document type "EB" ..
    *---- so when ever BBPCF02 is called in ITS it should disply the POs 
    *--- which are based on document types as "ECDP" "ECPO" and "EB".
    
    
    
        ELSEIF sy-tcode EQ 'BBPCF03'. " Display All PO/Confirmations
    
    *--- Similar code as above
    
        ENDIF. "if sy-tcode eq 'BBPCF02'.
    
    
    ENDMETHOD.

    Hope this will help.

    Please reward suitable points.

    Regards

    - Atul

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Feb 24, 2007 at 07:41 PM

    Hi

    <b>As promised to you, here is the sample Code for the BADI Implementation...</b>

    <u>You need to make few changes to the code base o the RFC function call and update the e_pdlist table of this BADI, which holds the final data ( all the POS / Confirmations to be displayed on ITS Web page, once the BBPCF02 or BBPCF03 Service is called)</u>

    Let me know incase you need any further help.

    METHOD if_ex_bbp_wf_list~bbp_wf_list.
    
      DATA: t_header_guids     TYPE TABLE OF bbp_guid_tab,
            t_pdlist           TYPE TABLE OF bbp_pds_pdlist,
            t_messages         TYPE TABLE OF bbp_pds_messages,
            t_sc_guids         TYPE TABLE OF bbp_guid_tab,
            t_ref_doc          TYPE TABLE OF bbps_sc_refdata,
            t_itemlist         TYPE TABLE OF bbp_pds_sc_itemlist,
            t_conf_pdlist      TYPE TABLE OF bbp_pds_pdlist.
    
      DATA: wa_sc_guids        TYPE bbp_guid_tab,
            wa_pdlist          TYPE bbp_pds_pdlist,
            wa_ref_doc         TYPE bbps_sc_refdata,
            wa_itemlist        TYPE bbp_pds_sc_itemlist,
            wa_conf_pdlist     TYPE bbp_pds_pdlist.
    
    
    
        IF sy-tcode EQ   'BBPCF02'.    
    
    *--- First Get all the Reference documents 
    
    *--- Get all the Shopping Carts
          CALL FUNCTION 'BBP_PD_SC_GETLIST'
            TABLES
              i_header_guids = t_header_guids
              e_pdlist       = t_pdlist
              e_messages     = t_messages.
    
    *--- Sort the SC based on SC number
          SORT t_pdlist BY object_id.
    
    *--- Get all the Header Guids
          LOOP AT t_pdlist INTO wa_pdlist.
            wa_sc_guids-guid = wa_pdlist-guid.
            APPEND wa_sc_guids TO t_sc_guids.
          ENDLOOP.
    
    
    *--- Get all the Reference Document for the Header Guids
          CALL FUNCTION 'BBP_PD_SC_REF_GETLIST'
            EXPORTING
              i_item_not_deleted = 'X'
            TABLES
              it_header_guids    = t_sc_guids
              et_refdata         = t_ref_doc
              it_logical_systems = 'R3BACKENDSYSTEM' -> Give he R/3 backend system RFC Destination name here 
            EXCEPTIONS
              nothing_found      = 1
              OTHERS             = 2.
    
    
    *--- Retain only the PO (Business Object 2012)
            DELETE t_ref_doc WHERE ( be_object_type NE 'BUS2012' AND
                                     be_object_type NE 'BUS2012001' ).
    
    *--- Sort all reference documents based on be_object_id - Purchase Order numbers.
          SORT t_ref_doc BY be_object_id.
    
    *--- Loop on all remaianing POs 
    *---  Use SC Guid (Header)
          LOOP AT t_ref_doc INTO wa_ref_doc.
              DELETE e_pdlist WHERE object_id = wa_ref_doc-be_object_id.
          ENDLOOP.
    
    *--- Here make a call to the R/3 system by using your RFC Function module
    *---- and update e_pdlist [] table which finally will contain all the 
    *--- detialed confirmations starting with Document type - "EB"
    
    
    *---- based on the document type "ECDP" and "ECPO" - Add one more document type "EB" ..
    *---- so when ever BBPCF02 is called in ITS it should disply the POs 
    *--- which are based on document types as "ECDP" "ECPO" and "EB".
    
    
    
        ELSEIF sy-tcode EQ 'BBPCF03'. " Display All PO/Confirmations
    
    *--- Similar code as above
    
        ENDIF. "if sy-tcode eq 'BBPCF02'.
    
    
    ENDMETHOD.

    Hope this will help.

    Please reward suitable points.

    Regards

    - Atul

    Add comment
    10|10000 characters needed characters exceeded