Skip to Content
Technical Articles
Author's profile photo Ishani Goel

PART3 – Transportation Management : Get Route details from freight Unit

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.

Hope you enjoyed reading.

Thank you

Ishani

 

Assigned Tags

      3 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Michael Torres
      Michael Torres

      I'm especially stayed aware of the article and I will get many benefits from it. Subsequently, thank you for sharing it.

       

      MyFordBenefits Login

      Author's profile photo Ajit Routray
      Ajit Routray

      Hi Ishani Goel

      Your blogs are helping me!

      Many Thanks!

      Kind Regards,

      Ajit

      Author's profile photo Ishani Goel
      Ishani Goel
      Blog Post Author

      Hello Ajit,

      Am glad to know this 🙂

      Thank You

      Ishani