Adding Custom fields to Zone wise Picking Status Under Outbound.

 Step 1: Run the T-code SPRO to check the FM.

Step 2: Click on SAP ref IMG. Expand  SCM Extended Warehouse Management - Extended Warehouse Management - Monitoring - Warehouse Management Monitor.

Step 3: Execute Customize Monitor Tree. Expand Outbound and double click on Zone wise Picking Status.

Step 4: In This case FM - Z575F_MON_OUTB_ZONE_PICK_STAT, TT- Z575TT_ZONEWISE_PICK_STATUS, Structure - Z575S_ZONEWISE_PICK_STATUS, Function Group- SAPLZ575_MON_OUTB_ZONE_PICK_ST.

Step 5: I need to add 3 fields - Price, Ship to party, Ship to party description for Delivery.

Step 6: Price should be fetched from table /SCWM/T_VALUATE multiplied by Source Target quantity BUOM, Delivery Ship to part and Description should be fetched from BUT000 use field NAME_ORG1 .

Step 7: Change the structure to add 3 fields  and activate the structure.


Step 8: Change the FM.


 " Start of change AVARIKA | 09.12.2025 | EWM Dubai changes
  TYPESBEGIN OF ls_matnr ,
           matnr TYPE /scwm/de_matid,
         END OF ls_matnr,
         BEGIN OF ls_valuate,
           lgnum TYPE /scwm/lgnum,
           matid TYPE /scwm/de_matnr,
           vprsv TYPE vprsv,
           verpr TYPE verpr,
           stprs TYPE stprs,
         END OF ls_valuate,
         BEGIN OF ls_partner,
           docno    TYPE /scdl/dl_docno_int,
           sh_party TYPE /scdl/dl_partyno,
         END OF ls_partner.
  DATAl_r_partner TYPE ls_partner,
        l_t_partner TYPE TABLE OF ls_partner,
        lt_partner1 TYPE /scdl/dl_partyloc_tab,
        lr_partner1 TYPE /scdl/dl_partyloc_str..
  DATAl_f_matnr    TYPE /scwm/de_matid,
        l_t_matnr    TYPE TABLE OF ls_matnr,
        l_r_matnr    TYPE ls_matnr,
        l_t_valuate1 TYPE TABLE OF ls_valuate,
        l_r_valuate1 TYPE ls_valuate.
  CONSTANTSl_c_stprt TYPE char6 VALUE 'STPRT',
             l_c_db01  TYPE char4 VALUE 'DB01'.
  " End of change AVARIKA | 09.12.2025 | EWM Dubai changes

"Start of change AVARIKA | 09.12.2025 |EWM Dubai changes
  LOOP AT et_data INTO DATA(lr_data).               " Start total price
    CALL FUNCTION 'CONVERSION_EXIT_MDLPD_INPUT'
      EXPORTING
        input  lr_data-matnr
      IMPORTING
        output l_f_matnr.
    IF l_f_matnr IS NOT INITIAL.
      l_r_matnr-matnr l_f_matnr.
      APPEND l_r_matnr TO l_t_matnr.
    ENDIF.
    CLEARl_r_matnrl_f_matnr.
  ENDLOOP.
  SELECT lgnum,
         matid,
         vprsv,
         verpr,
         stprs
    FROM /scwm/t_valuate
    INTO TABLE @DATA(l_t_valuate)
    FOR ALL ENTRIES IN @l_t_matnr
    WHERE lgnum EQ @l_c_db01
    AND matid EQ @l_t_matnr-matnr.
  IF sy-subrc 0.
    SORT l_t_valuate BY matid.
    LOOP AT l_t_valuate ASSIGNING FIELD-SYMBOL(<fs_valuate>).
      CALL FUNCTION 'CONVERSION_EXIT_MDLPD_OUTPUT'
        EXPORTING
          input  <fs_valuate>-matid
        IMPORTING
          output l_r_valuate1-matid.
      l_r_valuate1-lgnum <fs_valuate>-lgnum.
      l_r_valuate1-stprs <fs_valuate>-stprs.
      l_r_valuate1-verpr <fs_valuate>-verpr.
      l_r_valuate1-vprsv <fs_valuate>-vprsv.
      APPEND l_r_valuate1 TO l_t_valuate1.
      CLEARl_r_valuate1.
    ENDLOOP.
  ENDIF.
  LOOP AT et_data ASSIGNING FIELD-SYMBOL(<lr_data1>).
    READ TABLE l_t_valuate1 INTO DATA(l_r_valuate2WITH KEY matid <lr_data1>-matnr.
    IF sy-subrc AND l_r_valuate2-vprsv 'S'.
      <lr_data1>-total_price <lr_data1>-vsolm * l_r_valuate2-stprs * 100.
    ELSEIF l_r_valuate2-vprsv 'V'.
      <lr_data1>-total_price <lr_data1>-vsolm * l_r_valuate2-verpr * 100.
    ENDIF.
    CLEARl_r_valuate2.
  ENDLOOP.
  UNASSIGN <lr_data1>.        " End total price

  DATA(lo_prd1/scwm/cl_dlv_management_prd=>get_instance).  "Start Ship to party
  TRY.
      CALL METHOD lo_prd1->query
        EXPORTING
          it_selection    lt_selection
          iv_doccat       /scdl/if_dl_doc_c=>sc_doccat_out_prd
          is_read_options ls_read_options
        IMPORTING
          et_headers      DATA(lt_headers).
    CATCH /scdl/cx_delivery .
  ENDTRY.
  LOOP AT lt_headers INTO DATA(lr_headers).
    REFRESH lt_partner1CLEARlr_partner1.
    lt_partner1 lr_headers-partyloc.
    IF lt_partner1 IS NOT INITIAL.
      READ TABLE lt_partner1 INTO lr_partner1 WITH KEY party_role l_c_stprt.
      IF sy-subrc 0.
        l_r_partner-docno lr_headers-docno.
        l_r_partner-sh_party lr_partner1-partyno.
        APPEND l_r_partner TO l_t_partner.
        CLEAR l_r_partner.
      ENDIF.
    ENDIF.
  ENDLOOP.
  SELECT partner,name_org1
    FROM but000
    INTO TABLE @DATA(l_t_but000)
    FOR ALL ENTRIES IN @l_t_partner
    WHERE partner EQ @l_t_partner-sh_party.
  "END of change AVARIKA | 09.12.2025 |EWM Dubai changes

"Start of change AVARIKA | 09.12.2025 | EWM Dubai changes
    READ TABLE l_t_partner INTO l_r_partner WITH KEY docno <fs_data>-docno.
    IF sy-subrc 0.
      READ TABLE l_t_but000 INTO  DATA(l_r_but000WITH KEY partner l_r_partner-sh_party.
      IF sy-subrc 0.
        <fs_data>-ship_to_party l_r_but000-partner.
        <fs_data>-ship_description l_r_but000-name_org1.
      ENDIF.
    ENDIF.
    CLEARl_r_but000,l_r_partner.
    "END of change AVARIKA | 09.12.2025 | EWM Dubai changes


Testing: 

    * Run the T-code /SCWM/MON.

    * Give Warehouse number and monitor.

    * Expand Outbound and Double click on Zone Wise Picking Status.

    * Execute.




******************************Thank you*******************************

Comments

Popular posts from this blog

New syntax for append- VALUE (new syntax 7.4+) in ABAP

Read statement new syntax in ABAP. (7.4+).

Concatenation new syntax( 7.4+ ).