Hello,

Sign up to join our community!

Welcome Back,

Please sign in to your account!

Forgot Password,

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

You must login to ask a question.

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

SAP EWM Help Latest Questions

  • 0
  • 0
admin

Update Route in TU SAP EWM using Monitor method

Update Route in Transportation Unit in SAP EWM – Using Monitor Node TU

Create New FM with following Importing Parameter

IV_LGNUM	TYPE	/SCWM/LGNUM
IT_DATA	        TYPE	STANDARD TABLE
*Veraible Decleration
  DATA: lv_route    TYPE /scmb/de_route_id,
        ls_act_chg  TYPE /scwm/tu_sr_act,
        lt_act_chg  TYPE TABLE OF /scwm/tu_sr_act,
        lt_act_chgg TYPE /scwm/tt_tu_sr_activity,
        ls_flds     TYPE sval,
        lt_flds     TYPE TABLE OF sval.

*Constant Decleration
  CONSTANTS: lc_rflag  TYPE kzroute VALUE 'X',
             lc_title  TYPE cua_tit_tx VALUE 'Update Route',
             lc_status TYPE char5 VALUE 'DGI',
             lc_rno    TYPE char10 VALUE 'ROUTE',
             lc_msg    TYPE char1 VALUE 'I',
             lc_msge   TYPE char1 VALUE 'E',
             lc_msgw   TYPE char1 VALUE 'W',
             lc_tab    TYPE char5 VALUE 'LIKP',
             lc_0      TYPE /scdl/dl_status_value VALUE '0',
             lc_1      TYPE /scdl/dl_status_value VALUE '1',
             lc_9      TYPE /scdl/dl_status_value VALUE '9',
             lc_2      TYPE /scdl/dl_status_value VALUE '2'.
  DATA: lr_status_value TYPE RANGE OF   /scdl/dl_status_value,
        ls_status_value LIKE LINE OF  lr_status_value.

  APPEND INITIAL LINE TO lt_flds ASSIGNING FIELD-SYMBOL(<lf_fldst>).
  <lf_fldst>-tabname = lc_tab.
  <lf_fldst>-fieldname = lc_rno.

*FM to trigger pop-up and capture value
  CALL FUNCTION 'POPUP_GET_VALUES'
    EXPORTING
      popup_title     = lc_title
    TABLES
      fields          = lt_flds[]
    EXCEPTIONS
      error_in_fields = 1
      OTHERS          = 2.

  CHECK sy-subrc EQ 0.

  IF sy-subrc EQ 0.
    LOOP AT lt_flds ASSIGNING FIELD-SYMBOL(<lf_flds>).
      lv_route = <lf_flds>-value.
    ENDLOOP.
  ENDIF.

  IF lv_route is NOT INITIAL.
    SELECT SINGLE ROUTE
      FROM TVRO
      INTO lv_route
    WHERE route = lv_route.
    IF sy-subrc ne 0.
      MESSAGE S305(ZLG001) WITH lv_route DISPLAY LIKE wmegc_severity_err.
      RETURN.
    ENDIF.
  ELSE.
    MESSAGE S306(ZLG001) DISPLAY LIKE wmegc_severity_err.
    RETURN.
  ENDIF.

  IF it_data IS NOT INITIAL AND lv_route IS NOT INITIAL.
    LOOP AT it_data ASSIGNING FIELD-SYMBOL(<lf_data>) .
      MOVE-CORRESPONDING <lf_data> TO ls_act_chg.

*Select query for capturing DOCID.
      SELECT tu_num,
            docid,
            docno
        FROM /scwm/tu_dlv
        INTO TABLE @DATA(lt_docid)
       WHERE tu_num = @ls_act_chg-tu_num.

      IF lt_docid IS NOT INITIAL.
*Select query for capturing satus of DOCID
        SELECT docid,
               doccat,
               status_value,
               status_type
          FROM /scdl/db_status
          FOR ALL ENTRIES IN @lt_docid
         WHERE status_type = @lc_status AND
               docid       = @lt_docid-docid
          INTO TABLE @DATA(lt_status).
      ENDIF.

*Checking status of document
      IF sy-subrc = 0.
        ls_status_value-sign   = 'I' .
        ls_status_value-option = 'EQ' .
        ls_status_value-low    =  lc_0 .

        APPEND ls_status_value TO lr_status_value .
        ls_status_value-sign   = 'I' .
        ls_status_value-option = 'EQ' .
        ls_status_value-low    =  lc_9 .

        APPEND ls_status_value TO lr_status_value .

        LOOP AT lt_status INTO DATA(ls_status) WHERE status_value NOT IN lr_status_value .
          DATA(lv_flag) = abap_true .
          CLEAR lr_status_value .
        ENDLOOP .
        IF lv_flag = abap_true .

*Select query for route capture data
          SELECT  *
            FROM /scwm/tu_sr_act
            INTO @DATA(ls_tu)
            UP TO 1 ROWS
           WHERE tu_num = @ls_act_chg-tu_num.
          ENDSELECT.

          IF sy-subrc = 0.
            ls_tu-route_curr = lv_route.
            APPEND ls_tu TO lt_act_chg.
            CLEAR ls_tu.
            lt_act_chgg = lt_act_chg.
          ENDIF.

*FM to update route data against TU.
          CALL FUNCTION '/SCWM/SR_DB_TU_ACT'
            EXPORTING
              it_act_chg = lt_act_chgg.

          IF lt_act_chgg IS NOT INITIAL.
            CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
          ENDIF.

        ELSE.

          DATA(ls_satus) = VALUE #( lt_status[ status_value = lc_9 ] OPTIONAL ).
          DATA(lv_deliv) = VALUE #( lt_docid[ docid = ls_satus-docid ]-docno  OPTIONAL ).
          MESSAGE i162(zlg001)  WITH lv_deliv     . "# TEXT-002
          CLEAR ls_satus.
        ENDIF.
        CLEAR:lt_act_chgg,ls_act_chg,ls_satus.

      ENDIF.

    ENDLOOP.
  ELSE.
    MESSAGE I163(zlg001) DISPLAY LIKE lc_msgw .
  ENDIF.

Related Questions

Leave an answer

Leave an answer