Hello Everyone,

Welcome to the technical series of the SAP Transportation Management where we are aiming to learn basic codes that are used in SAP TM.

In this blog post, we will learn how to get Default Route details from freight unit. The system considers default routes as possible routes for a shipment between two locations.

Request you all to check part1 of the series to understand how to retrieve freight unit details from outbound delivery.

Transportation Management : Read Freight documents from Delivery | SAP Blogs

  • So, delivery numbers are stored in an internal table LT_DELIVERY_NUMBER
  • Create list of Label from the delivery number using below code as Delivery number is stored as label in the freight unit.
    DATA(lt_torlabel_uc) = VALUE /scmtms/t_tor_label
                          ( FOR ls_del IN lt_delivery_number
                          ( |{ ls_del ALPHA = OUT }| )
                           ).
  • Now retrieve the list of Freight units by passing Label as alternate Key to get the data using below code
    DATA: lt_freightunit_keys  TYPE /bobf/t_frw_key.
    CALL METHOD go_srv_mgr_fo->convert_altern_key
      EXPORTING
        iv_node_key   = /scmtms/if_tor_c=>sc_node-root
        iv_altkey_key = /scmtms/if_tor_c=>sc_alternative_key-root-labeltxt
        it_key        = lt_torlabel_uc
      IMPORTING
        et_key        = lt_freightunit_keys.
  • Next step is to get the stop data of freight units since default route is maintained in the stop data of the freight unit
    DATA : lt_d_stop_fu TYPE /scmtms/t_tor_stop_k.
    
    CALL METHOD go_srv_mgr_fo->retrieve_by_association(
      EXPORTING
        it_key         = lt_freightunit_keys
        iv_association = /scmtms/if_tor_c=>sc_association-root-stop
        iv_node_key    = /scmtms/if_tor_c=>sc_node-root
        iv_fill_data   = abap_true
      IMPORTING
        et_data        = lt_d_stop_fu
        et_target_key  = DATA(lt_target_key_stop) ).
  • Now we need to get the Route key from Stop data and store it into different internal table that will store only the keys of Default route.
    DATA(lt_def_route_key) = VALUE  /bobf/t_frw_key
                                    ( FOR ls_stop_data IN lt_d_stop_fu
                                    ( key = ls_stop_data-route_root_key ) ).
  • Now create an instance of service manager of type Schedule using below code
    DATA(lob_srv_mgr) = /bobf/cl_tra_serv_mgr_factory=>get_service_manager( 
                                     /scmtms/if_fo_schedule_c=>sc_bo_key ).
  • Last step is to retrieve the Route( schedule ) header data using route keys and above service manager object.
    CALL METHOD lob_srv_mgr->retrieve(
      EXPORTING
        it_key      = lt_def_route_key
        iv_node_key = /scmtms/if_fo_schedule_c=>sc_node-root
      IMPORTING
        eo_message  = DATA(lo_message)
        et_data     = lt_schedule_data ). " This will have Route data​
  • After passing the required delivery as input, we will get  output as below for schedule data ( which is nothing but header details of default route)OutputPlease note this is very big structure however, for display purpose , have showed only few fields.
Sara Sampaio

Sara Sampaio

Author Since: March 10, 2022

0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x