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
The actions accepts import parameters defined with the /SCMTMS/S_TOR_ROOT_A_SEND_LDAP structure:
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.
The action is executed with the /BOBF/IF_FRW_ACTION~EXECUTE method, that takes the action parameters in IS_PARAMETERS:
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.