Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Status

Page Status

Owner
Stakeholders
Jira Request ID

Jira
serverSyensqo's Jira
serverIdd8efc1ef-48bd-3b4e-8714-ad827f4f059b
keyERP-611

Jira Development ID

Jira
serverSyensqo's Jira
serverIdd8efc1ef-48bd-3b4e-8714-ad827f4f059b
keyERP-984

High- Level Specification

Implementing SystemS4 HANA
Invoked by/InvokesInvoked by outbound delivery events
Business Process Reference06.10.01.01. Manage 3PL Warehouse Interfaces


Functional Overview

This Functional Specification describes the

Outbound Delivery Interface

outbound delivery interface between SAP S/4HANA and

CPI

Third-Party Logistics providers (3PLs), using SAP Integration Suite (CPI) and the standard OData service API

API

_OUTBOUND_DELIVERY_SRV_0002.

 

The purpose of this interface is to transmit outbound delivery data from SAP S/4HANA to external 3PL systems to support warehouse execution activities such as picking, packing, and goods issue processing.


Not all outbound deliveries are transmitted; only deliveries that meet specific business criteria are in scope. These criteria are defined through configuration and business rules, such as shipping point, delivery type, and 3PL assignment.

Outbound deliveries may be transmitted to the 3PL even if they are not yet ready for picking. In scenarios where batch determination has not been completed, the outbound delivery is sent with a shipment block indicator. This allows the 3PL to receive early visibility of the delivery while clearly indicating that the delivery is not yet released for picking activities.

Once batch assignment is completed in SAP S/4HANA, the shipment block is removed. A subsequent update of the outbound delivery is then transmitted to the 3PL, informing that the delivery is now released and can be processed for picking. This approach ensures alignment between SAP and the 3PL on delivery readiness while enabling early planning and coordination.

Scope and Objectives

The interface covers all outbound deliveries created or updated in S/4HANA that are relevant for transmission to 3PL systems.

Process Flow Diagram

Image Added

Step

Description

Comment

1

Delivery created/updated in S/4HANA


2

S/4 raises an internal event.


3

The standard business event will be consumed in S/4HANA through business event consumption and the following checks will be performed accordingly


3.1

System checks the 3PL assignment table

To determine if the interface is active and retrieve the 3PL assigned

43.2

System checks the DELIVERIES_3PL table

To determine if the delivery type, shipping point and event is relevant for transmission

54

Relevant custom event is published to SAP Event Mesh

If previous steps are successful

5

S/4 updates Monitoring Table 

Using System date and time

6

CPI consumes the event and retrieves full delivery using API

CPI will also get the 3PL partner from the 3PL assignment table for routing purposes

7

3PL consumes and send an Ack back


8

S/4 updates Monitoring Table 

Using System date and time

8

3PL consumes and executes warehouse processes.

Assumptions

Table

for the Ack received

Assumptions

N/A

Dependencies

Jira
serverSyensqo's Jira
serverIdd8efc1ef-48bd-3b4e-8714-ad827f4f059b
keyERP-865
For tracing the transmission in the monitoring table

Jira
serverSyensqo's Jira
serverIdd8efc1ef-48bd-3b4e-8714-ad827f4f059b
keyERP-845
The table defined in this development should be included in the configuration Dashboard for 3PLs.

Jira
serverSyensqo's Jira
serverIdd8efc1ef-48bd-3b4e-8714-ad827f4f059b
keyERP-845
3PL assignment and activation table

Security, Integrity and Controls

Configuration Requirements

Special Requirements

Design Rationale

APIs  to be consumed: 

  • API_OUTBOUND_DELIVERY_SRV_0002 – Outbound Delivery (OData service)
  • API_CUSTOMER_RETURNS_DELIVERY_SRV_0002 - Customer returns Deliveries (OData service)


    Security, Integrity and Controls

    Outbound interface triggered by a standard SAP event. The process that triggers the interface will take care of access control.

    Configuration Requirements

    The following custom configuration tables are required for this interface. Both tables are maintained exclusively by the technical team via transport requests.

    Business users have read-only visibility through SAP Custom Business Configuration.

    Table 1 — 3PL Interface Activation and Assignment

    This table determines whether the delivery interface is active for a given shipping point and identifies the assigned 3PL. It is evaluated prior to event publication to ensure that the transmission is relevant and authorized.

    FieldData TypeDescriptionMandatoryKey
    VSTELlike LIKP-VSTELShipping PointXX
    VSTEL_DESCHARDescription (auto-populated from TVST)

    DOC_TYPECHAR 30Document type. Possible values: DELIVERY, FREIGHT_ORDERXX
    3PLCHAR 303PL assigned to the shipping pointX
    ActivationCHAR 1Interface activated. Value: X or blankX

    Table 2 — DELIVERIES_3PL

    This table defines the delivery types, events, and APIs relevant for transmission per shipping point.

    FieldData TypeDescriptionMandatoryKey
    VSTELlike LIKP-VSTELShipping pointXX
    LFARTlike LIKP-LFARTDelivery typeXX
    EVENTCHAR 10EventX
    APICHAR 50API to be used

    Special Requirements

    N/A



    Design Rationale

    Outbound deliveries will be relevant for transmission only for specific shipping points (the ones related to a 3PL), delivery types and at certain eventeventsThis criteria may change between 3PLs so a custom table is configuration tables are needed to save this store these parameters and should be checked by Event Mesh before publishing the event for consumption.

    Parameter table structure:

    FieldData TypeDescriptionMandatoryKEYVSTELlike LIKP-VSTELShipping pointXXLFARTlike LIKP-LFARTDelivery typeXXEVENTCHAR 10Event XAPICHAR 50API to be used

    API Use

    API_OUTBOUND_DELIVERY_SRV_0002 or

    The table structures are defined in the Configuration Requirements section.


    The following standard events are triggered whenever there are changes in Outbound Delivery as documented in Event References:

    • Outbound delivery created

    • Outbound delivery changed

    • Outbound delivery deleted

    • Outbound delivery block changed

    • Outbound delivery picking status changed

    • Outbound delivery packing status changed

    • Outbound delivery GI status changed

    • Outbound delivery Item Created

    • Outbound delivery Item Changed

    • Outbound delivery Item Deleted

    For customer returns (API_CUSTOMER_RETURNS_DELIVERY_SRV_0002

    will be con

    ) the following events are triggered:


    • Customer returns delivery created

    • Customer returns delivery changed

    • Customer returns delivery deleted


    Since derived events and metadata extension is either not possible or not useful for the requirement, the following events will be consumed in S/4HANA through Business Event Consumption with the custom filter logic and a custom event will be published to Event Mesh with additional information. 

    The event triggering the interface should be included in the data sent to the 3PL. 

    The event triggering the interface should be included in the data sent to the 3PL. The event is included at header level. If the event is triggered by an item-level change, the event is also included at item level for the affected item.

    API Use

    The API to be consumed for each delivery is determined by the configuration table DELIVERIES_3PL (see Configuration Requirements). The API field in the table specifies which OData service is used to extract the delivery data.

    sumed if the criteria described in the Processing logic section is met

    The following information should be retrieved for the document (LIKP-VBELN) using the following services:

    The following information shall be retrieved from S/4HANA for the outbound delivery document using

    API_OUTBOUND_DELIVERY_SRV_0002:

    Retrieve Single Outbound Delivery Including All Outbound Delivery Items 

    Example:

    GET <host>/sap/opu/odata/sap/API_OUTBOUND_DELIVERY_SRV;v=2/A_OutbDeliveryHeader(DeliveryDocument='80000001')?$expand=to_DeliveryDocumentItem HTTP/1.1
    • API_CUSTOMER_RETURNS_DELIVERY_SRV_0002: Retrieve a single customer returns delivery including all customer returns delivery items:

    Example: 

    GET <host>/sap/opu/odata/sap

    Structure

    Description

    A_OutbDeliveryHeader

    Delivery header

    A_OutbDeliveryPartner

    Header partners (sold-to, ship-to, carrier, etc.)

    A_OutbDeliveryAddress

    Partner address detail (street, city, postal code, country)

    A_OutbDeliveryHeaderText

    Header texts

    A_OutbDeliveryItem

    Delivery items

    A_OutbDeliveryItemText

    Item texts

    A_HandlingUnitHeaderDelivery

    Handling unit headers

    A_HandlingUnitItemDelivery

    Handling unit items

    /

    The following information shall be retrieved from S/4HANA for the customer returns delivery document using

    API_CUSTOMER_RETURNS_DELIVERY_SRV

    ;v=2/

    _0002:

    Structure

    Description

    A_ReturnsDeliveryHeader

    (DeliveryDocument='84000001')?$expand=to_DeliveryDocumentItem HTTP/1.1

    Delivery header

    A_ReturnsDeliveryPartner

    Header partners

    A_ReturnsDeliveryAddress

    Partner address detail (street, city, postal code, country)

    A_ReturnsDeliveryHeaderText

    Header texts

    A_ReturnsDeliveryItem

    Delivery items

    A_ReturnsDeliveryItemText

    Item texts

    A_HandlingUnitHeaderDelivery

    Handling unit headers

    A_HandlingUnitItemDelivery

    Handling unit items

    Data Structure

    Fields from the standard API will be used.

    The event triggering the interface should be included in the data sent to the 3PL. The event is included at header level. If the event is triggered by an item-level change, the event is also included at item level for the affected item.

    Processing Logic

    1) Relevance and activation checks

    For each outbound delivery considered for transmission, the system evaluates whether the delivery is relevant for a 3PL interface based on configuration and business rules.

    The following checks are performed sequentially:

    Data Structure

    The following fields will be used to provide the required data structure of the interface:

    ParentFieldDescriptionMandatory (Y/N)Data Type

    Processing Logic

    1) Every time a new event is raised from a Delivery document, it the event is consumed via business event consumption and a subsequence event should be published for transmission if the following criteria is met:

        • Interface

          is activated: Check 3PL assignment table included in
          Jira
          serverSyensqo's Jira
          serverIdd8efc1ef-48bd-3b4e-8714-ad827f4f059b
          keyERP-845
          with ORG_TYPE = VSTEL, ORG_VALUE

          activation and 3PL assignment: The system checks the 3PL Interface Activation and Assignment table (see Configuration Requirements) with VSTEL = LIKP-VSTEL and DOC_TYPE =

          "

          'DELIVERY

          "

          '.

    If

    there is

    an entry

    ,

    exists and the field

    INTERFACE_ACT

    Activation = 'X

    , retrieve the 3PL assigned and continue to next check, otherwise the delivery is Not relevant for transmission.
  • Check the custom table DELIVERIES_3PL with LIKP-VSTEL, LIKP-LFART and the event raised. If there is an entry the event should be published for consumption and the API detailed in that entry should be used to extract the data. 
  • ', the delivery is considered relevant for transmission and the assigned 3PL is determined.
    If no active entry is found, the delivery is considered not relevant for transmission and no further processing is performed.

        • Delivery type and event validation: The configuration table DELIVERIES_3PL (see Configuration Requirements) is validated using: Shipping point (LIKP-VSTEL), Delivery type (LIKP-LFART), Event type.

    If a matching entry exists, the delivery is eligible for transmission and the API specified in the configuration entry is used to extract the outbound delivery data.

    If no entry is found, the delivery is not transmitted.

    2) Monitoring and traceability

    If the delivery is successfully identified as relevant for transmission, an entry is created or updated in the outbound monitoring table to ensure traceability of the transmission to the 3PL. The monitoring table structure is defined 2) If previous step is successful, an entry should be logged into the monitoring table to trace the correct transmission to the 3PL. This table is detailed in

    Jira
    serverSyensqo's Jira
    serverIdd8efc1ef-48bd-3b4e-8714-ad827f4f059b
    keyERP-865
    .

    DOC_TYPE=DELIVERY

    DOC_ID= LIKP-VBELN

    DATE_SENT = System date

    TIME_SENT = System time

    If an entry already exists for the same DOC_TYPE , it should be and DOC_ID, the record is updated with the current DATE_SENT and TIME_SENT to reflect the latest transmission.


    Interface Alert & Monitoring

    DELIVERIES_3PL table should be included in the Configuration Dashboard Monitoring will be handled by

    Jira
    serverSyensqo's Jira
    serverIdd8efc1ef-48bd-3b4e-8714-ad827f4f059b
    keyERP-
    591

    Language Requirements

    N/A

    User Interface Requirements

    865
    and
    Jira
    serverSyensqo's Jira
    serverIdd8efc1ef-48bd-3b4e-8714-ad827f4f059b
    keyERP-
    845 and should be visible by business users. 
    844

    Language Requirements

    Document texts will be in the language of the source document.

    User Interface Requirements

    Users should be able to display the configuration tables defined in the Configuration Requirements section through SAP Custom Business Configuration. Modification of table entries is restricted to the technical team via transport requests.
     

    Sequencing

    N/A


    Volumetrics

    Average: 85 documents per day


    Performance Consideration

    N/A

    Error Handling

    Error handling

    should be don at AIF level, if there is an error sending the data to the 3PL, the interface should be retriggered

    is managed through SAP Application Interface Framework (AIF) and SAP Integration Suite (CPI) to ensure reliable transmission of outbound delivery data to the 3PL.

    If an error occurs during data extraction or transmission to CPI or the 3PL, the interface execution is marked as failed and the error is visible in AIF and/or CPI monitoring. The interface must support retriggering.

    Configuration or relevance errors result in the delivery being treated as not relevant for transmission and no message being sent.


    Retransmission requirement (dependency):
    Where the 3PL rejects a message due to functional reasons on the 3PL side (e.g. missing/invalid master data), a controlled mechanism must exist to retransmit the inbound delivery after correction (either via AIF retriggering and/or CPI reprocessing, depending on the operational design). The chosen approach and responsibilities (SAP vs CPI vs 3PL) must be confirmed with the technical team.


    Testing

    How to Test

    Test Conditions and Expected Results

    IDConditionExpected Results
    1Different delivery types (Customer returns, Outbound delivery)Send at the defined Event with the API retrieved from the Custom table
    Test Considerations/Dependencies
    Create an outbound delivery for a relevant Shipping Point (VSTEL) where interface is active (ERP-845: DOC_TYPE=DELIVERY, INTERFACE_ACT=X) and DELIVERIES_3PL has an entry for (VSTEL, LFART, Event=CREATE)Event is published for transmission. CPI extracts data using the API specified in DELIVERIES_3PL. Monitoring entry is created/updated with DOC_TYPE=DELIVERY, DOC_ID=VBELN, DATE_SENT/TIME_SENT.
    2Create a delivery for a Shipping Point (VSTEL) with no active interface (ERP-845 missing or INTERFACE_ACT ≠ X)Delivery is not relevant. No transmission event is published.
    3Create a delivery for an active Shipping Point but no matching DELIVERIES_3PL rule (missing LFART and/or Event configuration)No transmission event is published. Delivery is not sent.
    3Create different delivery types (e.g., Outbound Delivery, Customer Returns) where each type has a different DELIVERIES_3PL configuration/APIFor each delivery type, the correct event is published and CPI uses the correct API as per DELIVERIES_3PL. Monitoring entry created/updated accordingly.
    4Change an existing relevant outbound delivery (Event=CHANGE), with matching DELIVERIES_3PL ruleUpdate event is published. CPI sends updated payload using configured API. Monitoring entry for same DOC_ID is updated with latest DATE_SENT/TIME_SENT.
    5Shipment block scenario – initial send: Create/Change delivery where batches are not assigned yet and shipment block indicator is setDelivery is transmitted with shipment block indicator. 3PL receives it as not released for picking. Monitoring updated.
    6Shipment block scenario – release: Assign batches in SAP and shipment block is removed; trigger subsequent updateUpdate event is transmitted reflecting released status. 3PL can proceed with picking. Monitoring updated with new DATE_SENT/TIME_SENT.
    7Deletion of delivery document (or delivery cancelled in SAP as per process)A deletion/cancellation notification event is published to CPI (as designed). 3PL receives the deletion/cancellation signal. Monitoring updated.
    8Multi-3PL routing: create deliveries for two different relevant shipping points assigned to different 3PLsEach delivery is routed to the correct assigned 3PL as per ERP-845 configuration. Monitoring shows correct DOC_ID and timestamps.

    Test Considerations/Dependencies

    The solution must be tested in conjunction with the developments listed in the Dependencies section.

    End-to-end validation will include the participation of the relevant 3PL partners to ensure the completeness of the outbound delivery transmission flow across ERP, middleware, and target logistics platforms.


    Other Information


    Development Details

    Package

    Package NameParent Package




    Other Development Objects

    Object TypeObject NamePurpose/High Level LogicDesign Rationale Reference









    Appendix

    See also


    Attachments
    previewfalse
    patterns^(?!.*\.(png|jpg|jpeg|svg)$).*
    sortOrderdescending

    Change log

    Change History
    limit10