High- Level Specification
| Implementing System | S4 HANA |
|---|---|
| Invoked by/Invokes | |
| 06.10.01.01. Manage 3PL Warehouse Interfaces |
Functional Overview
This Functional Specification describes the Outbound Delivery Interface between SAP S/4HANA and CPI using SAP standard OData API API_OUTBOUND_DELIVERY_SRV_0002.
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
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 |
3.2 | System checks the DELIVERIES_3PL table | To determine if the delivery type, shipping point and event is relevant for transmission |
4 | 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 | for the Ack received |
Assumptions
Dependencies
ERP-865 - Getting issue details... STATUS For tracing the transmission in the monitoring table
ERP-845 - Getting issue details... STATUS The table defined in this development should be included in the configuration Dashboard for 3PLs.
ERP-845 - Getting issue details... STATUS 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)
Outbound deliveries will be relevant for transmission only for specific shipping points (the ones related to a 3PL), delivery types and at certain event.
This criteria may change between 3PLs so a custom table is needed to save this parameters and should be checked by Event Mesh before publishing the event for consumption.
Parameter table structure:
| Field | Data Type | Description | Mandatory | KEY |
|---|---|---|---|---|
| VSTEL | like LIKP-VSTEL | Shipping point | X | X |
| LFART | like LIKP-LFART | Delivery type | X | X |
| EVENT | CHAR 10 | Event | X | |
| API | CHAR 50 | API to be used | ||
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
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.
API Use
The following information should be retrieved for the document (LIKP-VBELN) using the following services:
- 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/API_CUSTOMER_RETURNS_DELIVERY_SRV;v=2/A_ReturnsDeliveryHeader(DeliveryDocument='84000001')?$expand=to_DeliveryDocumentItem HTTP/1.1Data Structure
The following fields will be used to provide the required data structure of the interface:
| Parent | Field | Description | Mandatory (Y/N) | Data Type |
|---|---|---|---|---|
Processing Logic
1) Every time a new event is raised from a Delivery document, 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 ERP-845 - Getting issue details... STATUS with ORG_TYPE = VSTEL, ORG_VALUE=LIKP-VSTEL and DOC_TYPE="DELIVERY". If there is an entry, and the field INTERFACE_ACT = 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.
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 ERP-865 - Getting issue details... STATUS .
DOC_TYPE=DELIVERY
DOC_ID= LIKP-VBELN
DATE_SENT = System date
TIME_SENT = System time
If an entry exists for the DOC_TYPE, it should be updated with the current DATE_SENT and TIME_SENT.
Interface Alert & Monitoring
Monitoring will be handled by ERP-865 - Getting issue details... STATUS and ERP-844 - Getting issue details... STATUS
Language Requirements
N/A
User Interface Requirements
DELIVERIES_3PL table should be included in the Configuration Dashboard
ERP-845
-
Getting issue details...
STATUS
and should be visible by business users.
Sequencing
Volumetrics
Performance Consideration
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.
Testing
How to Test
Test Conditions and Expected Results
| ID | Condition | Expected Results |
|---|---|---|
| 1 | Create different delivery types (Customer returns, Outbound delivery) | Send at the defined Event with the API retrieved from the Custom table |
| 2 | Change delivery documents | Information is sent according to the set up in the custom table |
| 3 | Deletion of documents | Notification is sent to CPI through an event |
Test Considerations/Dependencies
Other Information
Development Details
Package
| Package Name | Parent Package |
|---|---|
Other Development Objects
| Object Type | Object Name | Purpose/High Level Logic | Design Rationale Reference |
|---|---|---|---|
