Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8584

Re: SRM - PO Item - set flag indicators

$
0
0

Hi,

There is an include with name SAPLBBP_PDIGP.

In this find for the implicit enhancement and implement the code as given below.

 

You can refer to the below code for your reference.

 

ENHANCEMENT ZPO_GRIRFLAG.    "active version
     DATA: lt_doc TYPE TABLE OF zts_related_docs.
     DATA: ls_doc TYPE zts_related_docs.
     DATA: ls_order TYPE crmd_orderadm_h.
     DATA: ls_po_header TYPE bbp_pds_po_header_d.
     DATA: lt_item TYPE BBPT_PO_ITEM_BADI.
     DATA: ls_item TYPE BBP_PO_ITEM_BADI.
     CLEAR: ls_order.
     REFRESH: lt_item.
     DATA: lv_x(1) TYPE c.

DATA: lv_ind(1) TYPE c.
DATA: lt_crmdh TYPE TABLE OF crmd_orderadm_h.
DATA: ls_crmdh TYPE crmd_orderadm_h.
DATA: lt_crmdi TYPE TABLE OF crmd_orderadm_i.
DATA: ls_crmdi TYPE crmd_orderadm_i.

   IF IV_OBJECT_TYPE = 'BUS2201'.
    IF IS_IGP_ICOM-HEADER IS NOT INITIAL AND IS_IGP_ICOM-number_int IS NOT INITIAL.
      CLEAR: lv_ind, ls_crmdi, ls_crmdh.
      REFRESH: lt_crmdh, lt_crmdi.
      SELECT * FROM crmd_orderadm_h INTO TABLE lt_crmdh WHERE object_id = IS_IGP_ICOM-BE_OBJECT_ID.
      IF lt_crmdh IS NOT INITIAL.
        SELECT * FROM crmd_orderadm_i INTO TABLE lt_crmdi FOR ALL ENTRIES IN lt_crmdh
                                               WHERE header = lt_crmdh-guid AND NUMBER_INT = IS_IGP_ICOM-number_int.
      ENDIF.
      IF lt_crmdi IS INITIAL.
       SELECT SINGLE * FROM zts_related_docs INTO ls_doc WHERE zzdoc_type = IS_IGP_ICOM-ITEM_PROCESS_TYP.
       IF sy-subrc EQ 0.
         CALL METHOD zcl_po_partner=>po_item_out
           IMPORTING
            item_out = lt_item .

      CLEAR: ls_item.
      READ TABLE lt_item INTO ls_item WITH KEY number_int = IS_IGP_ICOM-number_int del_ind = ' '.
      IF sy-subrc EQ 0 AND IS_IGP_ICOM-ITEM_PROCESS_TYP EQ 'ZC' AND ls_item-ordered_prod IS NOT INITIAL AND ls_item-subtype EQ 'DP'.
        lv_ind = 'X'.
      ENDIF.

      IF lv_ind EQ ' '.
        cs_new_itmpset-gr_ind     = ls_doc-zzgr_ind.
        cs_new_itmpset-gr_basediv = ls_doc-zzir_ind.
        cs_new_itmpset-ir_ind     = ls_doc-zzgr_basediv.
      ENDIF.
     ELSEIF is_igp_icom-header IS NOT INITIAL.
      CALL FUNCTION 'BBP_PD_PO_GETDETAIL'
       EXPORTING
         i_guid   = is_igp_icom-header
       IMPORTING
         e_header = ls_po_header.

       CALL METHOD zcl_po_partner=>po_item_out
         IMPORTING
           item_out = lt_item .

        IF lt_item IS INITIAL.
          lv_ind = 'X'.
        ELSE.
          CLEAR: ls_item.

         IF ls_po_header-process_type EQ 'ZC'.
           LOOP AT lt_item INTO ls_item WHERE del_ind = ' ' AND ordered_prod IS NOT INITIAL
                                              AND subtype EQ 'DP' AND number_int = IS_IGP_ICOM-number_int.
             lv_ind = 'X'.
           ENDLOOP.
         ENDIF.
*    REFRESH: lt_item.
*    CALL METHOD zcl_po_partner=>po_item_in
*      EXPORTING
*        item_in = lt_item.

*         READ TABLE lt_item INTO ls_item WITH KEY number_int = IS_IGP_ICOM-number_int del_ind = ' '.
*        IF sy-subrc EQ 0 AND ls_po_header-process_type EQ 'ZC' AND ls_item-ordered_prod IS NOT INITIAL AND ls_item-subtype EQ 'DP'.
*          lv_ind = 'X'.
*        ENDIF.
******* End of Correction
        ENDIF.
     IF ls_po_header-process_type IS NOT INITIAL AND lv_ind EQ ' '.
                 SELECT SINGLE * FROM zts_related_docs
                                 INTO ls_doc
                                 WHERE zzdoc_type = ls_po_header-process_type.
      IF sy-subrc EQ 0.
         cs_new_itmpset-gr_ind        = ls_doc-zzgr_ind.
         cs_new_itmpset-ir_ind        = ls_doc-zzir_ind.
         cs_new_itmpset-gr_basediv    = ls_doc-zzgr_basediv.

*                     READ TABLE lt_item INTO ls_item WITH KEY number_int = IS_IGP_ICOM-number_int del_ind = ' '.
*                     IF sy-subrc EQ 0 AND ls_po_header-process_type EQ 'ZC' AND ls_item-ordered_prod IS NOT INITIAL.
*                       cs_new_itmpset-gr_ind = 'X'.
*                       cs_new_itmpset-gr_basediv    = 'X'.
*                     ENDIF.
       ENDIF.
      ENDIF.
      ENDIF.
     ENDIF.
    ENDIF.
   ENDIF.
ENDENHANCEMENT



Regards,

Rafi


Viewing all articles
Browse latest Browse all 8584

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>