Status

OwnerAROKIARAJAN-ext, Francis 
StakeholdersHOWES, Jamie 
Jira Request IDERP-640
Jira Development IDERP-640    Outbound Delivery Distribution (LE to EWM)

High- Level Specification

ParameterValue
Application SystemS/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.


Process Flow Diagram



Step

Description

Comment











Assumptions

Describe any assumptions that have been made in the process of completing this design. What functionality is expected of configuration or other developments that pass information to this development and/ or retrieve the information processed by it (performance, triggers, exceptions, etc.)

Dependencies

Indicate any dependencies or constraints that may impact this development, in terms of requirements from internal or external applications, other work streams, time constraints, data or system access restrictions. Also, please specify scheduling or process dependencies, e.g. interface/batch job that must run beforehand or process steps that need to be completed prior to executing this development.

Security, Integrity and Controls

To detail the security requirements for processing this enhancement, any data integrity issues associated with the object and the teams that will be responsible for processing the object, i.e. authorization/roles required to who can execute the enhancements, etc.

- Custom Tables, enhancement, transaction codes, programs, Web Dynpro Application, Code Data Services (CDS), Open Data Protocol (OData), BI reports, and Functional Modules need to have at least one authority check either standard or custom. (custom should be an exception)

- All custom tables will be maintained in a certain Authorization Group (example: ZFIN, etc.)

- In the case of transaction codes an additional check other than the object S_TCODE is required. You can use SU24 to find the related authorization objects to check.

All other WRICEFs

- If the authorization check is already performed in the calling Programs, this section can be filled as “Follow calling programs authorization check” (example : BADI to redirect DMS to OpenText, in which the calling Manage Purchase requisition Fiori App already performed authorization check)

- If the authorization check is not checked in any of the development, this section should be filled with the proposed authorization check. You can refer to SU24 to see the standard authorization objects. (example: full custom Fiori App to enable user to download/upload the project plan)


Configuration Requirements

Specify the configuration requirements for this object. Like in case of substitution/ routine specify the configuration needed

Language Requirements

Specify the language requirements for this object. Specify the required language and type of translation, like labels, data.

Special Requirements

Specify any special requirements or considerations that may impact the enhancement based on specific locations, regulatory compliance or system limitations. Clearly outline requirements e.g. localization rules for countries like China

If the enhancement interacts with third-party systems such as Icertis, describe any additional integration, security or authentication considerations that must be taken into account.


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

  1. 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.
  2. BAdI (Preferred Modern):

    • BAdI: LE_SHP_DELIVERY_PROC
    • Method(s): CHANGE_DELIVERY_HEADER or SAVE_DOCUMENT_PREPARE (depending on exact need)
    • Pros: Object-oriented, multiple implementations, filter capability (e.g., shipping point).
  3. Implicit enhancement / Exit in SAPMV50A flow:

    • 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

Include an overview of the source. Can be deleted if not needed.

TableField NameComments/Calculation/Field Manipulation
LIKPVLSTKdelivery header (Status)
LIPSCHARGdelivery items (Batch)
LIPSMATNRdelivery items (Material)





Data Validation Considerations

Include an overview of the data validation requirement. Can be deleted if not needed.

TableField NameComments/Calculation/Field Manipulation













Custom Tables

If any custom configuration tables are required, which will be read by the enhancement logic, then specify them here. Can be deleted if not needed.

Master Data

<Title Custom Table 1>

<Include an overview of the table and what it’s used for>

FieldDescriptionData Type/LengthValidation rule/ Value Help









Configuration Table

Title Configuration Table 1

Include an overview of the table and what it’s used for

FieldDescriptionData Type/LengthValidation rule/ Value Help








Selection Screen Enhancement

This section will give the details on the selection screen parameters, parameter type and whether it’s obligatory or not. This section can be used to define the Import Export parameters for Function Module or User Exit or Screens. Can be deleted if not needed.

Field NameDescription

Select:

Option or Parameter

Check box or Radio button

Import or Export

Data Type/LengthDefault Value/ Validation rule/ Value HelpSelection Logic













Processing Logic

This section defines the detailed step-by-step logic implemented within the BAdI/User Exit to process the data received from the standard SAP program and database retrieval. It explains the operations performed on the data, the expected outcomes in different scenarios and how the system should behave in response to specific conditions.



Volumetrics

Provide volumetrics details: Initial load volumes, Number of Records, Expected Frequency, Expected Long term Growth)


Performance Considerations

  • Use in-memory item tables where possible.
  • Single SELECT for MARA-XCHPF with FOR 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 object LE and sub object DELIVERY.


Testing

How to Test

  1. All items batch-relevant, none with batch:

    • Expect: LIKP-VLSTK = ' ' set on save.
  2. Mixed: batch-relevant + non-relevant items; none of the relevant have batch:

    • Expect: LIKP-VLSTK = ' ' set.
  3. At least one batch-relevant item has CHARG set:

    • Expect: LIKP-VLSTK unchanged.
  4. All items non-batch-relevant:

    • Expect: LIKP-VLSTK unchanged (business can choose to still set blank—confirm).
  5. After PGI:

    • Ensure enhancement does not reset the field post-PGI (confirm trigger points).
  6. Mass change / background job:

    • Batch job processing should apply same logic.

Test Conditions and Expected Results

IDConditionExpected Result










Test Considerations/Dependencies

List any considerations essential for application test planning (e.g., test this before ABC along with DEF separate from GHI). If the development encompasses a user interface, explain how to test it. List any insights as to how this component could be tested the most efficiently.


Other Information


Development Details

Package

Package NameParent Package




Enhancement Implementation

Enhancement TypeStandard Definition NameCustom Implementation NameDesign Rationale Reference









Other Development Objects

Object TypeObject NamePurpose/High Level LogicDesign 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

ZFIZMMZPSZCOZSDZBCZFIZCA
TABLESZFITZMMTZPSTZCOTZSDTZBCTZFITZCAT

See also

Insert links and references to other documents which are relevant when trying to understand this decision and its implications. Other decisions are often impacted, so it's good to list them here with links. Attachments are also possible but dangerous as they are static documents and not updated by their authors.


Change log