{"id":8097,"date":"2026-01-12T21:43:07","date_gmt":"2026-01-12T16:13:07","guid":{"rendered":"https:\/\/www.sapewmhelp.com\/?post_type=question&#038;p=8097"},"modified":"2026-01-12T21:49:13","modified_gmt":"2026-01-12T16:19:13","slug":"update-route-in-ewm-delivery-abap-sample-code-using-monitor","status":"publish","type":"question","link":"https:\/\/www.sapewmhelp.com\/?question=update-route-in-ewm-delivery-abap-sample-code-using-monitor","title":{"rendered":"Update Route in EWM Delivery &#8211; ABAP Sample code using Monitor"},"content":{"rendered":"\n<p>Create a Function module with following code, use following parameter in FM<\/p>\n\n\n\n<p>Use Node WHRO (Outbound delivery Header Node<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>IV_LGNUM    TYPE     \/SCWM\/LGNUM\nIT_DATA     TYPE     STANDARD TABLE<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>*Decleartion of variable\n  DATA: lv_route          TYPE \/scmb\/de_route_id,\n        lv_output         TYPE vbeln_vl,\n        ls_proch_o        TYPE \/scdl\/dl_proch_o_upd_str,\n        ls_transs         TYPE \/scdl\/dl_trans_upd_str,\n        ls_header_control TYPE bapiobdlvhdrctrlchg,\n        ls_heder_data     TYPE bapiobdlvhdrchg,\n        lt_proch_o        TYPE \/scdl\/dl_proch_o_upd_tab,\n        lt_transs         TYPE \/scdl\/dl_trans_upd_tab,\n        lt_prochh         TYPE TABLE OF \/scdl\/dl_proch_o_upd_str,\n        lt_trans          TYPE TABLE OF \/scdl\/dl_trans_upd_str,\n        lt_return         TYPE TABLE OF bapiret2,\n        ls_flds           TYPE sval,\n        lt_flds           TYPE TABLE OF sval,\n        lv_status         TYPE char30,\n        lv_docno          TYPE \/scwm\/sp_docno_int.\n\n*Decleartion of constant\n  CONSTANTS: lc_rflag  TYPE kzroute  VALUE 'X',\n             lc_title  TYPE sy-title VALUE 'Update Route',\n             lc_update TYPE char1 VALUE 'U',\n             lc_staus  TYPE char30 VALUE 'Not Started',\n             lc_rno    TYPE char10 VALUE 'ROUTE',\n             lc_msg    TYPE char1 VALUE 'I',\n             lc_msge   TYPE char1 VALUE 'E',\n             lc_tab    TYPE char20 VALUE 'LIKP',\n             lc_msgs   TYPE char1 VALUE 'S',\n             lc_gistat TYPE char30 VALUE 'Completed',\n\t     lc_not_started  TYPE char30 VALUE '<a target=\"_blank\" href=\"https:\/\/www.sapewmhelp.com\/?wpqa_user_id=17\">34848088591<\/a>\\QGoods',\n             lc_not_started1 TYPE char30 VALUE '@0A\\QGoods Issue Not Posted@'.\n\n*To update route at ODO on TU level\n  TYPES : BEGIN OF lty_data_del,\n            status_gi TYPE char30,\n            docno_h   TYPE \/scwm\/sp_docno_int,\n            docid     TYPE \/scdl\/dl_docid,\n          END OF lty_data_del.\n\n  TYPES : BEGIN OF lty_data_tu,\n            status_gm TYPE char30,\n            docno     TYPE \/scwm\/sp_docno_int,\n            docid     TYPE \/scdl\/dl_docid,\n          END OF lty_data_tu.\n\n  DATA : lt_data1 TYPE TABLE OF lty_data_tu,\n         lt_data  TYPE TABLE OF lty_data_del.\n\n  lt_data = CORRESPONDING #( it_data ).\n\n\n  DATA(ls_data) = VALUE #( lt_data&#91; 1 ] ).\n  IF ls_data-docno_h IS INITIAL.\n    lt_data1 = CORRESPONDING #( it_data ).\n  ENDIF.\n\n  CLEAR lt_flds.\n  APPEND INITIAL LINE TO lt_flds ASSIGNING FIELD-SYMBOL(&lt;lf_fldst>).\n  &lt;lf_fldst>-tabname = lc_tab.\n  &lt;lf_fldst>-fieldname = lc_rno.\n\n*FM to trigger pop-up and capture value\n  CALL FUNCTION 'POPUP_GET_VALUES'\n    EXPORTING\n      popup_title     = lc_title\n    TABLES\n      fields          = lt_flds&#91;]\n    EXCEPTIONS\n      error_in_fields = 1\n      OTHERS          = 2.\n\n  IF sy-subrc EQ 0.\n    LOOP AT lt_flds ASSIGNING FIELD-SYMBOL(&lt;lf_flds>).\n      lv_route = &lt;lf_flds>-value.\n    ENDLOOP.\n  ENDIF.\n\n\n*Validate the Route\n  IF lv_route IS NOT INITIAL.\n    SELECT SINGLE route\n      FROM tvro\n      INTO lv_route\n    WHERE route = lv_route.\n    IF sy-subrc NE 0.\n      MESSAGE s305(zlg001) WITH lv_route DISPLAY LIKE wmegc_severity_err.\n      RETURN.\n    ENDIF.\n  ELSE.\n    MESSAGE s306(zlg001) DISPLAY LIKE wmegc_severity_err.\n    RETURN.\n  ENDIF.\n\n  IF lt_data IS NOT INITIAL.\n\n    LOOP AT lt_data ASSIGNING FIELD-SYMBOL(&lt;lf_data>).\n      IF &lt;lf_data>-status_gi IS NOT INITIAL.\n        lv_status = &lt;lf_data>-status_gi.\n        lv_docno = &lt;lf_data>-docno_h.\n      ELSE.\n        DATA(ls_data_tu) = VALUE #( lt_data1&#91; docid = &lt;lf_data>-docid ] OPTIONAL ).\n        lv_docno = ls_data_tu-docno.\n        IF ( ls_data_tu-status_gm = icon_red_light ) OR ( ls_data_tu-status_gm = lc_not_started )\n            OR ( ls_data_tu-status_gm = lc_not_started1 ).\n          lv_status = lc_staus.\n        ENDIF.\n      ENDIF.\n\n*Check if delivery GI status is not completed\n\n      IF lv_status NE lc_gistat.\n\n*FM to reomve leading zero\n        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'\n          EXPORTING\n            input  = lv_docno\n          IMPORTING\n            output = lv_output.\n\n        IF lv_output IS NOT INITIAL.\n          ls_heder_data-deliv_numb = lv_output.\n          ls_heder_data-route = lv_route.\n          ls_header_control-deliv_numb = lv_output.\n          ls_header_control-route_flg = lc_rflag.\n        ENDIF.\n\n*FM to update route on delivery VL03N\n        CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'\n          EXPORTING\n            header_data    = ls_heder_data\n            header_control = ls_header_control\n            delivery       = ls_heder_data-deliv_numb\n          TABLES\n            return         = lt_return.\n\n        IF sy-subrc = 0.\n          SELECT a~*,\n                 b~*\n            INTO @DATA(ls_std) FROM \/scdl\/db_proch_o AS a\n            INNER JOIN \/scdl\/db_trans AS b ON\n            a~docid = b~docid WHERE a~docid = @&lt;lf_data>-docid.\n          ENDSELECT.\n\n          ls_std-a-route_id = lv_route.\n          ls_std-b-route_id = lv_route.\n\n        ENDIF.\n\n        ls_proch_o = ls_std-a.\n        ls_transs = ls_std-b.\n        CLEAR:ls_std-b,ls_std-a.\n\n        ls_proch_o-objchg = lc_update.\n        APPEND INITIAL LINE TO lt_prochh ASSIGNING FIELD-SYMBOL(&lt;lf_proch>).\n        &lt;lf_proch> = ls_proch_o.\n        CLEAR ls_proch_o.\n\n        ls_transs-objchg = lc_update.\n        APPEND INITIAL LINE TO lt_trans ASSIGNING FIELD-SYMBOL(&lt;lf_trans>).\n        &lt;lf_trans> = ls_transs.\n        CLEAR ls_transs.\n\n        lt_proch_o = lt_prochh.\n        lt_transs = lt_trans.\n\n*FM to update route against ODO\n        CALL FUNCTION '\/SCDL\/DBAL_DB_UPDATE'\n          EXPORTING\n            it_proch_o          = lt_proch_o\n            it_trans            = lt_transs\n          EXCEPTIONS\n            \/scdl\/cx_dl_dbal_db = 1\n            OTHERS              = 2.\n\n        IF sy-subrc = 0.\n          CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.\n          MESSAGE TEXT-004 TYPE lc_msgs.\n        ENDIF.\n\n      ELSE.\n        MESSAGE TEXT-002 TYPE lc_msg.\n      ENDIF.\n      CLEAR: lv_output,ls_heder_data,ls_header_control,lt_proch_o.\n    ENDLOOP.\n  ELSE.\n    MESSAGE TEXT-003 TYPE lc_msge.\n  ENDIF.<\/code><\/pre>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","question-category":[158,157],"question_tags":[465,463,462,464,466],"class_list":["post-8097","question","type-question","status-publish","hentry","question-category-abap","question-category-ewm","question_tags-monitor-method-to-update-route","question_tags-route-update-in-sap","question_tags-sap-ewm-route-update","question_tags-update-route-using-ewm-monitor","question_tags-whro-node-in-sap-ewm-monitor"],"_links":{"self":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/question\/8097","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/question"}],"about":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/types\/question"}],"author":[{"embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8097"}],"wp:attachment":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8097"}],"wp:term":[{"taxonomy":"question-category","embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fquestion-category&post=8097"},{"taxonomy":"question_tags","embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fquestion_tags&post=8097"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}