How to use TM Loading Appointment interface with 3rd party warehouses

Despite several shortcomings, direct TM<->EWM integration based on EWM transportation units (TU) brings a lot of benefits:

 

  • It can be used with decentralized EWM instances, whereas Advanced Shipping and Receiving requires embedded TM and EWM in the same S/4HANA system
  • TM can plan packing and loading based on sales orders well ahead of actual delivery loading date.
  • TM plan is transferred to EWM in the form of transportation units (loading plan) and planned shipping handling units (packing plan)
  • Yard activities, packing and loading execution in EWM is transferred back to TM and update the freight order execution data

 

See SAP Help Integration Based on EWM Transportation Units for details of the integration scenario and the note 3018355 – Supported functional scope and restrictions of the TU-based TM EWM Integration for shippers for functional limitations.

 

The loading appointment integration requires EWM managed warehouse, either embedded or decentralized one.

 

So what if a 3rd party warehouse management system is used that is integrated with S/4HANA with e.g. LE-IDW interface? Can the TU based integration still be used and its benefits be reaped?

 

Officially it cannot, as the interface has to talk to SAP EWM system and EWM relevancy is checked before a Loading Appointment Notification message is sent from TM.

 

Still, let’s have a closer look at the implementation of the SEND_LOADING_APPOINTMENT action of the /SCMTMS/TOR object in the BOBF transaction. The action is defined in the ROOT node of the object

 

 

SEND_LOADING_APPOINTMENT action of /SCMTMS/TOR object

 

The actions accepts import parameters defined with the /SCMTMS/S_TOR_ROOT_A_SEND_LDAP structure:

 

 

Import parameters of the SEND_LOADING_APPOINTMENT action

 

As it happens, it is enough to trigger the action with NO_CHECK_SENDING = X to force loading appointment notification sending, even if EWM system is not used.

 

Now the question is how to set this parameter.

 

Let’s look at the /SCMTMS/CL_TOR_A_SEND_REQ_LDAP that implements the action.

 

 

/SCMTMS/CL_TOR_A_SEND_REQ_LDAP class

 

The action is executed with the /BOBF/IF_FRW_ACTION~EXECUTE method, that takes the action parameters in IS_PARAMETERS:

 

 

The signature of the /BOBF/IF_FRW_ACTION~EXECUTE method

 

The following code snipped inserted right at the beginning of the /BOBF/IF_FRW_ACTION~EXECUTE methods allows Loading Appointment Notifications even for non EWM warehouses:

 

    FIELD-SYMBOLS:
    <parameters> TYPE /scmtms/s_tor_root_a_send_ldap.

* Add your custom logic here to decide whether to send or not

    ASSIGN is_parameters->* TO <parameters>.
    <parameters>-no_check_sending = abap_true.

 

It can be inserted in to the method with Pre-Exit enhancement – see SAP Help for details Enhancing the Components of Global Classes or Interfaces

 

Naturally, that is just a proof of concept. The snipped should be enhanced with additional logic to decide whether the loading appointment notification needs to be sent or not. That can be implemented for instance based on the warehouse number from which deliveries assigned to the freight order are picked.