| Status | Approved |
|---|---|
| Owner | AROKIARAJAN-ext, Francis |
| Stakeholders | HOWES, Jamie |
| Jira Request ID | ERP-640 |
| Jira Development ID | ERP-640 Outbound Delivery Distribution (LE to EWM) |
High- Level Specification
| Parameter | Value |
|---|---|
| Application System | S/4Hana ROW, S/4Hana China, S/4Hana CUI |
| Business Process Reference | 06.10.03.01. Manage Outbound Deliveries |
Functional Overview
Outbound Delivery creation will be happened through background job, which will be run periodically to automatically determine the suitable batch. At the time of outbound delivery creation, system will try to allocate the batch based on the predefined rules.
- If any one of the line item batches not available during outbound delivery creation then Outbound delivery need to update (LIKP-VLSTK as ““) When the delivery is saved.
- Once all Line item batches are updated/determine during outbound delivery change then Outbound delivery need to update (LIKP-VLSTK as “A“) When the delivery is saved.
Distribute Outbound Delivery:
Once all the batches have been allocated to outbound delivery, distribute the outbound delivery to EWM (Report: WS_MONITOR_OUTB_DEL_DIST).
Note: the distribution is for the whole outbound delivery, not for the individual delivery item.
Scope and Objectives
Objective
To Implement an automated check during Outbound Delivery processing that inspects all line items. If no item has a batch (LIPS-CHARG is initial for all relevant items), update the delivery header field LIKP-VLSTK to blank (“ ”).
- In scope: Outbound deliveries (document category
LF), across all shipping points unless otherwise restricted. - Out of scope: Inbound deliveries, returns, shipments, stock transport deliveries unless explicitly included.
- Organizational scope: Global unless restricted via customizing.
Step | Description | Comment |
|---|---|---|
Assumptions
Dependencies
Security, Integrity and Controls
Configuration Requirements
Language Requirements
Special Requirements
Design Rationale
Functional Requirements
To Implement an automated check during Outbound Delivery processing that inspects all line items. If no item has a batch (LIPS-CHARG is initial for all relevant items), update the delivery header field LIKP-VLSTK to blank (“ ”).
Proposed Technology to Use
User Exit (Classic):
- Include:
MV50AFZ1 - Exit:
USEREXIT_SAVE_DOCUMENT_PREPARE - Pros: Simple and widely used for delivery save logic.
- Cons: Procedural; ensure no conflict with other enhancements.
- Include:
BAdI (Preferred Modern):
- BAdI:
LE_SHP_DELIVERY_PROC - Method(s):
CHANGE_DELIVERY_HEADERorSAVE_DOCUMENT_PREPARE(depending on exact need) - Pros: Object-oriented, multiple implementations, filter capability (e.g., shipping point).
- BAdI:
Implicit enhancement / Exit in
SAPMV50Aflow:- Only if prior options are constrained.
Recommendation: Use LE_SHP_DELIVERY_PROC with method SAVE_DOCUMENT_PREPARE to evaluate items and set header before commit.
Data Source Considerations
| Table | Field Name | Comments/Calculation/Field Manipulation |
|---|---|---|
LIKP | VLSTK | delivery header (Status) |
LIPS | CHARG | delivery items (Batch) |
LIPS | MATNR | delivery items (Material) |
Data Validation Considerations
| Table | Field Name | Comments/Calculation/Field Manipulation |
|---|---|---|
Custom Tables
Master Data
| Field | Description | Data Type/Length | Validation rule/ Value Help |
|---|---|---|---|
Configuration Table
| Field | Description | Data Type/Length | Validation rule/ Value Help |
|---|---|---|---|
Selection Screen Enhancement
| Field Name | Description | Select: | Data Type/Length | Default Value/ Validation rule/ Value Help | Selection Logic |
|---|---|---|---|---|---|
Processing Logic
Volumetrics
Performance Considerations
- Use in-memory item tables where possible.
- Single
SELECTforMARA-XCHPFwithFOR ALL ENTRIES. - Early exit as soon as one batch is found.
Error Handling
- Info message (optional):
- “No batch allocated in any batch-relevant item; header status set to blank.”
- No hard error. Do not block save unless explicitly required.
- Logging: Add to application log (
BAL) with objectLEand sub objectDELIVERY.
Testing
How to Test
All items batch-relevant, none with batch:
- Expect:
LIKP-VLSTK = ' 'set on save.
- Expect:
Mixed: batch-relevant + non-relevant items; none of the relevant have batch:
- Expect:
LIKP-VLSTK = ' 'set.
- Expect:
At least one batch-relevant item has
CHARGset:- Expect:
LIKP-VLSTKunchanged.
- Expect:
All items non-batch-relevant:
- Expect:
LIKP-VLSTKunchanged (business can choose to still set blank—confirm).
- Expect:
After PGI:
- Ensure enhancement does not reset the field post-PGI (confirm trigger points).
Mass change / background job:
- Batch job processing should apply same logic.
Test Conditions and Expected Results
| ID | Condition | Expected Result |
|---|---|---|
Test Considerations/Dependencies
Other Information
Development Details
Package
| Package Name | Parent Package |
|---|---|
Enhancement Implementation
| Enhancement Type | Standard Definition Name | Custom Implementation Name | Design Rationale Reference |
|---|---|---|---|
Other Development Objects
| Object Type | Object Name | Purpose/High Level Logic | Design Rationale Reference |
|---|---|---|---|
Appendix
Custom Authorization Group Naming Convention
This table is based on the Syensqo development standards document. It provides the naming conventions for authorization groups to associated with custom reports and tables to comply with security requirements.
ABAP | ZFI | ZMM | ZPS | ZCO | ZSD | ZBC | ZFI | ZCA |
|---|---|---|---|---|---|---|---|---|
| TABLES | ZFIT | ZMMT | ZPST | ZCOT | ZSDT | ZBCT | ZFIT | ZCAT |
