Hi
I'm quite new to SRM and am having some trouble implementing BAdI BBP_WF_LIST. I'm hoping someone on SDN can just give me a nudge in the right direction...
I am trying to filter the content of the worklist a user sees in the transaction BBPCF03, Confirmation Goods/Services Centrally. Within the BAdI BBP_WF_LIST, I have set the object filter to BUS2203 to restrict the content filter to confirmations.
I have then written some code (see below) to get some information about the user, and I want to remove the confirmations where the purchasing organisation of the user does not match the purchasing organisation of the confirmation. However, when I debug the code, these fields within table i_pdlist are blank.
I guess I am missing something somewhere, but basically I need your help in getting the purchasing organisation for each item. Do I need to go and get the relevant purchase order for this? If anyone can point me in the right direction, you'd be a great help. I've pasted my code below so hopefully someone can see what I'm doing wrong!
Thanks again, from your SRM newbie, James.
METHOD if_ex_bbp_wf_list~bbp_wf_list. * add details of implementation ************************************************************************ * DATA DECLERATIONS * ************************************************************************ DATA: wa_pdlist TYPE bbp_pds_pdlist, t_pdlist TYPE bbp_pdt_doc_key_badi, s_pdlist TYPE bbp_pdt_doc_key_badi, wa_s_pdlist TYPE bbp_pds_doc_key_badi, wa_e_pdlist TYPE bbp_pds_doc_key_badi, w_es_purch_data TYPE bbps_om_purch_data. ************************************************************************ * BEGIN OF PROCESSING * ************************************************************************ * Check transaction code IF sy-tcode = 'BBPCF03'. * Break point for debugging in DEV * break-point. * Call a function module to determine the users purchasing group CALL FUNCTION 'BBP_OM_DETERMINE_RESP_PGRP' EXPORTING * IS_OBJECT = iv_user = sy-uname * IV_ORGUNIT = * IS_CTLG_PORG = * IS_RESP_ITEM_DATA = * IV_PREFETCH_ID = IMPORTING es_purch_data = w_es_purch_data * ET_PURCH_DATA = EXCEPTIONS cat_not_found = 1 no_resp_pgrp = 2 no_pgrp = 3 src_sys_ambiguous = 4 OTHERS = 5. * If function module fails, raise error message IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. * Copy the contents of the table from SAP to our internal table t_pdlist[] = e_pdlist[]. * Loop through the POs LOOP AT i_pdlist INTO wa_pdlist. * When the object type is confirmation IF wa_pdlist-object_type = 'BUS2203'. * If the purchasing org of the confirmation is different to the * users purchasing org IF NOT wa_pdlist-proc_org = w_es_purch_data-proc_org. * Delete the record from our internal table DELETE t_pdlist WHERE guid = wa_pdlist-guid. ENDIF. ENDIF. ENDLOOP. * Copy our modified table of confirmations ready for export e_pdlist[] = t_pdlist[]. ENDIF. ENDMETHOD.