Status

OwnerABOLAJI-ext, Luqman 
Stakeholders
Jira Request ID

Jira Development ID

High- Level Specification

Implementing SystemSAP S/4HANA
Invoked by/InvokesERP-2325 OrderChange Message from Elemica - Integration Process
Business Process Reference02.04.02.01. Manage Standard Sales Order


Functional Overview

The functional design of the system interface defines the API to be provided or consumed. 

EDI customers sends their Sales Order change message through Elemica to Syensqo. Elemica sends the OrderChange XML to SAP CPI which a custom API which compares the OrderChange fields (or a subset of) with the existing Sales Order fields (or a subset of) and identifies the fields that the OrderChange message is requesting to change. The Sales Order and the fields where new values are sent in the OrderChange message are then sent to the Order Modification Fiori App for CSR review and approval / rejection.  A notification is also sent to the CSR on the sales order with the changes requested by the customer. 

The purpose of this functional specification is to create the custom API for the identification of the changes to a sales order requested by the customer and sending notification of the changes to the CSR. This will be done by using

  1. data directly available in the Elemica XML
  2. data derived from S/4HANA based on data in the Elemica XML (e.g. using the Purchase Order Number in Elemica XML to find the Sales Order Number in S/4HANA)
  3. data directly pulled from S/4HANA (e.g. Sales Order Number and specific sales order fields)

Scope and Objectives

This System Interface, a custom implementation in SAP S/4HANA,

  • consumes the OrderChange data from SAP CPI
  • maps this data into a structure to compare with existing sales order in SAP S/4HANA
  • transform some data OrderChange message from SAP CPI into the Sales Order structure in S/4HANA
  • performs lookup of specified data (as applicable) in S/4HANA
  • stage certain data from OrderChange message from SAP CPI into a S/4HANA custom table

The standard SAP Sales Order Change API is unable to support the above functions, hence the need for a custom API.

Process Flow Diagram

Insert the flowchart and fill in the steps

Step

Description

Comment

1

Elemica sends OrderChange message to SAP CPI via API Management

  1. No system interface functional specification is required for Elemica as the approach is to keep as-is the process on the Elemica side for the SyWay project. 
  2. API Management is for security/routing and do not change the message structure or format

2

SAP CPI receives the OrderChange XML message from Elemica and maps to SAP Sales Order in S/4HANA. To identify the fields on the sales order the OrderChange message wants to make, SAP CPI calls the custom API 

This is covered in Integration Process functional specification  ERP-2325 OrderChange Message from Elemica - Integration Process

3

The Sales Order to be changed in SAP S/4HANA is identified based on the custom API calling SAP S/4HANA. The API also collates the fields in the sales order than needs to be changed and sends this to both the Order Modification Fiori App and as a Fiori Launchpad notification to the CSR

Order Modification Fiori App to be built in ERP 2326 - New Order Modification Fiori App

Assumptions

  1. The custom Sales Order Change API will be called from SAP CPI and be able to lookup data from SAP S/4HANA to feed the target structure of the sales order
  2. The source object and S/4HANA System target field mappings, including custom fields, will be updated based on mapping requirements in S/4HANA System.
  3. The Custom API should be able to map all source and target mappings to successfully create a sales order
  4. The custom API should be able to send Fiori launchpad notifications to CSR identified on the sales order

Dependencies

  1. All configurations in S/4HANA from where the custom API should look up values should already be implemented before the interface is deployed.
  2. Connection between SAP CPI and S/4HANA already set up
  3. Required master data in S/4HANA already loaded

Security, Integrity and Controls

  • Required authorisations to execute the custom API need to be defined.
  • Existing secure connectivity for communication between SAP S/4HANA and SAP CPI will be applied.

Configuration Requirements

N/A

Special Requirements

N/A

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


Design Rationale

This template section may be used to specify the custom API design. The requirement can be for an API provider which means the API will be designed in the system or can be for an API consumer which means that an API will be consumed in the system.

API Use

Custom API based on API_SALES_ORDER_SRV_0001 

Data Structure

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

A_SalesOrderHeader1





DocumentIdentifier
NString


DocumentIdentifierDateTime
NDateTime


RequestingDocumentIdentifier
NString


RequestingDocumentDateTime
NDateTime


SenderPartnerName
YString


SenderDUNS
YString


SenderContactName
NString


SenderContactDescription
NString


SenderTelephoneNumberTelecomCountryCode
NString


SenderTelephoneNumberTelecomAreaCode
NString

 SenderTelephoneNumberPhoneNumber
NString

 SenderFaxNumberTelecomCountryCode
NString


SenderFaxNumberTelecomAreaCode
NString


SenderFaxNumberPhoneNumber
NString


SenderEmailAddress
NString


SenderAlternativeCommunicationMethod
NString


SenderAddressLine
NString


SenderCityName
NString


SenderStateProvince
NString


SenderPostalCode
NString


SenderPostalCountry
NString


SenderLocationCode
NString


SenderTaxIdentifierNumber
NString


SenderJurisdiction
NString


SenderTaxCertificateType
NString


SenderTaxCertificateNumber
Nstring


SenderTaxBasis
Nstring


SenderTaxRate
Nstring


SenderSenderURL
Nstring


ReceiverPartnerName
Ystring


ReceiverDUNS
YString


ReceiverContactName
NString


ReceiverContactDescription
NString


ReceiverTelephoneNumberTelecomCountryCode
NString


ReceiverTelephoneNumberTelecomAreaCode
NString


ReceiverTelephoneNumberPhoneNumber
NString


ReceiverFaxNumberTelecomCountryCode
NString


ReceiverFaxNumberTelecomAreaCode
NString


ReceiverFaxNumberPhoneNumber
NString


ReceiverEmailAddress
NString


ReceiverAlternativeCommunicationMethod
NString


ReceiverAddressLine
NString


ReceiverCityName
NString


ReceiverStateProvince
NString


ReceiverPostalCode
NString


ReceiverPostalCountry
NString


ReceiverLocationCode
NString


ReceiverTaxIdentifierNumber
NString


ReceiverJurisdiction
NString


ReceiverTaxCertificateType
NString


ReceiverTaxCertificateNumber
NString


ReceiverTaxBasis
NString


ReceiverTaxRate
NString


ReceiverSenderURL
NString


PurchaseOrderTypeCode
YString


CustomerPurchaseOrderCustomer reference number that the customer uses to uniquely identify a purchasing document (for example, a sales inquiry or a purchase order)YString


CustomerPurchaseOrderDate
YDateTime


TransactionCurrencyThe currency that applies to the sales order

N

String


ContractNumberCustomer reference number that the customer uses to uniquely identify a purchasing document (for example, a sales inquiry or a purchase order)NString


LanguageCode

N

String


RevisionNumber

N

String


ReleaseNumber

N

String


IncotermsClassificationCommonly used trading terms that comply with the standards established by the International Chamber of Commerce (ICC)

N

String


IncotermsLocation1Provides additional information for the primary Incoterm

N

String


CustomerPaymentTerms

N

String


DiscountPercentage

N

String


DiscountAmount

N

String


DiscountDaysDue

N

String


DiscountsDueDate

N

DateTime


DeferredAmount

N

String


DeferedDueDate

N

DateTime


PercentDeferredPayable

N

String


Penalty

N

String


ShipWithPurchaseOrder

N

String


CountryOfFinalDestination

N

String


MarketPlaceIdentifier

N

String


MarketPlaceDocumentIdentifier

N

String


MarketPlaceReferenceItem

N

String


MarketPlaceSellerIdentifier

N

String


InvoiceCommunicationMode

N

String


BillingScheduleCode

N

String


BuyerPartnerNameThe customer who orders the goods or services. The sold-to party is contractually responsible for sales orders.

Y

String


BuyerPartnerCode

Y

String


BuyerContactName
NString


BuyerContactDescription

N

String


SellerPartnerName
NString


SellerPartnerCode

Y

String


SellerContactName
NString


SellerContactDescription
NString


ShiptoPartnerName
NString


ShipToPartnerCode

Y

String


PayerPartnerName
NString


PayerPartnerCode

N

String


BilltoPartnerName
NString


BillToPartnerCode

N

String


ShipperPartnerName
NString


ShipperPartnerCode

N

String


ShipFromPartnerName
NString


ShipFromPartnerCode

N

String


CarrierPartnerName
NString


CarrierPartnerCode

N

String


BuyerTelephoneNumberTelecomCountryCode
NString


BuyerTelephoneNumberTelecomAreaCode
NString


BuyerTelephoneNumberPhoneNumber
NString


BuyerFaxNumberTelecomCountryCode
NString


BuyerFaxNumberTelecomAreaCode
NString


BuyerFaxNumberPhoneNumber
NString


BuyerEmailAddress
NString


BuyerAlternativeCommunicationMethod
NString


BuyerAddressLine
NString


BuyerCityName
NString


BuyerStateProvince
NString


BuyerPostalCode
NString


BuyerPostalCountry
NString


BuyerLocationCode
NString


BuyerExternalReference
NString


BuyerTaxIdentifierNumber
NString


BuyerJurisdiction
NString


BuyerTaxCertificateType
NString


BuyerTaxCertificateNumber
NString


BuyerTaxBasis
NString


BuyerTaxRate
NString


BuyerSenderURL
NString


ShipToTelephoneNumberTelecomCountryCode
NString


ShipToTelephoneNumberTelecomAreaCode
NString


ShipToTelephoneNumberPhoneNumber
NString


ShipToFaxNumberTelecomCountryCode
NString


ShipToFaxNumberTelecomAreaCode
NString


ShipToFaxNumberPhoneNumber
NString


ShipToEmailAddress
NString


ShipToAlternativeCommunicationMethod
NString


ShipToAddressLine
NString


ShipToCityName
NString


ShipToStateProvince
NString


ShipToPostalCode
NString


ShipToPostalCountry
NString


ShipToLocationCode
NString
 
ShipToExternalReference
NString
 
ShipToTaxIdentifierNumber
NString


ShipToJurisdiction
NString


ShipToTaxCertificateType
NString


ShipToTaxCertificateNumber
NString


ShipToTaxBasis
NString


ShipToTaxRate
NString


ShipToSenderURL
NString


PayerTelephoneNumberTelecomCountryCode
NString


PayerTelephoneNumberTelecomAreaCode
NString


PayerTelephoneNumberPhoneNumber
NString


PayerFaxNumberTelecomCountryCode
NString


PayerFaxNumberTelecomAreaCode
NString


PayerFaxNumberPhoneNumber
NString


PayerEmailAddress
NString


PayerAlternativeCommunicationMethod
NString


PayerAddressLine
NString


PayerCityName
NString


PayerStateProvince
NString


PayerPostalCode
NString


PayerPostalCountry
NString


PayerLocationCode
NString


PayerExternalReference
NString


PayerTaxIdentifierNumber
NString


PayerJurisdiction
NString


PayerToTaxCertificateType
NString


PayerTaxCertificateNumber
NString


PayerTaxBasis
NString


PayerTaxRate
NString
 
PayerSenderURL
NString


AccountHolderName
NString


AccountNumber
NString


FinancialInstitution
NString


FinancialInstitutionDFINumber
NString


CreditCardNumber
NString


CreditCardType
NString


CreditCardExpirationDate
NDateTime


BillToTelephoneNumberTelecomCountryCode
NString


BillToTelephoneNumberTelecomAreaCode
NString


BillToTelephoneNumberPhoneNumber
NString


BillToFaxNumberTelecomCountryCode
NString


BillToFaxNumberTelecomAreaCode
NString
 
BillToFaxNumberPhoneNumber
NString


BillToEmailAddress
NString


BillToAlternativeCommunicationMethod
NString


BillToAddressLine
NString


BillToCityName
NString


BillToStateProvince
NString


BillToPostalCode
NString


BillToPostalCountry
NString


BillToLocationCode
NString


BillToExternalReference
NString


BillToTaxIdentifierNumber
NString
 
BillToJurisdiction
NString
 
BillToTaxCertificateType
NString
 
BillToTaxCertificateNumber
NString
 
BillToTaxBasis
NString
 
BillToTaxRate
NString
 
BillToSenderURL
NString


ShipFromTelephoneNumberTelecomCountryCode
NString


ShipFromTelephoneNumberTelecomAreaCode
NString


ShipFromTelephoneNumberPhoneNumber
NString


ShipFromFaxNumberTelecomCountryCode
NString


ShipFromFaxNumberTelecomAreaCode
NString
 
ShipFromFaxNumberPhoneNumber
NString


ShipFromEmailAddress
NString


ShipFromAlternativeCommunicationMethod
NString


ShipFromAddressLine
NString


ShipFromCityName
NString


ShipFromStateProvince
NString


ShipFromPostalCode
NString


ShipFromPostalCountry
NString


ShipFromLocationCode
NString


ShipFromExternalReference
NString


ShipFromTaxIdentifierNumber
NString
 
ShipFromJurisdiction
NString
 
ShipFromTaxCertificateType
NString
 
ShipFromTaxCertificateNumber
NString
 
ShipFromTaxBasis
NString
 
ShipFromTaxRate
NString
 
ShipFromSenderURL
NString


CarrierTelephoneNumberTelecomCountryCode
NString


CarrierTelephoneNumberTelecomAreaCode
NString


CarrierTelephoneNumberPhoneNumber
NString


CarrierFaxNumberTelecomCountryCode
NString


CarrierFaxNumberTelecomAreaCode
NString
 
CarrierFaxNumberPhoneNumber
NString


CarrierEmailAddress
NString


CarrierAlternativeCommunicationMethod
NString


CarrierAddressLine
NString


CarrierCityName
NString


CarrierStateProvince
NString


CarrierPostalCode
NString


CarrierPostalCountry
NString


CarrierLocationCode
NString


CarrierExternalReference
NString


CarrierTaxIdentifierNumber
NString
 
CarrierJurisdiction
NString
 
CarrierTaxCertificateType
NString
 
CarrierTaxCertificateNumber
NString
 
CarrierTaxBasis
NString
 
CarrierTaxRate
NString
 
CarrierSenderURL
NString


ShipperTelephoneNumberTelecomCountryCode
NString


ShipperTelephoneNumberTelecomAreaCode
NString


ShipperTelephoneNumberPhoneNumber
NString


ShipperFaxNumberTelecomCountryCode
NString


ShipperFaxNumberTelecomAreaCode
NString
 
ShipperFaxNumberPhoneNumber
NString


ShipperEmailAddress
NString


ShipperAlternativeCommunicationMethod
NString


ShipperAddressLine
NString


ShipperCityName
NString


ShipperStateProvince
NString


ShipperPostalCode
NString


ShipperPostalCountry
NString


ShipperLocationCode
NString


ShipperExternalReference
NString


ShipperTaxIdentifierNumber
NString
 
ShipperJurisdiction
NString
 
ShipperTaxCertificateType
NString
 
ShipperTaxCertificateNumber
NString
 
ShipperTaxBasis
NString
 
ShipperTaxRate
NString
 
ShipperSenderURL
NString
A_SalesOrderText1 to many
 



CustomerRequiredInstructions NString


ShipperInstructions
NString


ConsigneeInstructions
NString

 CarrierInstructions
NString


ImportInstruction NString


CustomerServiceInstructions NString


RoutingInstruction
NString
A_SalesOrderItem1 


  LineItemNumber
NString


PurchaseOrderLineItemNumber
NString

 LineItemHandlingInstruction
NString

 MaterialByCustomer

YString

 MaterialByCustomerDescription
NString
  ProductDescription
NString
  ProductGradeDescription
NString
  Material
MString
  MaterialDescription
NString
  ProductDescription
NString
  ProductGradeDescription
NString
  CustomerPurchaseOrderNumber
NString
  ReferenceItem
NString
  RequestedQuantityThe number or volume of materials specified for an itemNString
 
RequestedQuantityISOUnit
NString
 
PackagingQuantity
NString
 
PackagingQuantityISOUnit
NString
 
EngineeringChangeOrderIdentifier
NString
 
BatchNumber
NString
 
CountryOfOriginCode
NString
 
IncotermsClassification
NString
 
IncotermsLocation1
NString
 
TransportMethodCode
NString
 
LineItemPurposeCode
NString
 
BalanceItemFlag
NString
 
DeliveryTolerancesLowerLimit
NString
 
DeliveryTolerancesUpperLimit
NString
 
DeliveryTolerancesUnitofMeasure
NString


ItemShiptoPartnerName
NString


ItemShipToPartnerCode

Y

String


ItemBilltoPartnerName
NString


ItemBillToPartnerCode

N

String


ItemShipperPartnerName
NString


ItemShipperPartnerCode

N

String


ItemShipFromPartnerName
NString
 
ItemShipFromPartnerCode

N

String
 
ItemCarrierPartnerName
NString
 
ItemCarrierPartnerCode

N

String


ItemShipToTelephoneNumberTelecomCountryCode
NString


ItemShipToTelephoneNumberTelecomAreaCode
NString


ItemShipToTelephoneNumberPhoneNumber
NString


ItemShipToFaxNumberTelecomCountryCode
NString


ItemShipToFaxNumberTelecomAreaCode
NString


ItemShipToFaxNumberPhoneNumber
NString


ItemShipToEmailAddress
NString


ItemShipToAlternativeCommunicationMethod
NString


ItemShipToAddressLine
NString


ItemShipToCityName
NString


ItemShipToStateProvince
NString


ItemShipToPostalCode
NString


ItemShipToPostalCountry
NString


ItemShipToLocationCode
NString
 
ItemShipToExternalReference
NString
 
ItemShipToTaxIdentifierNumber
NString


ItemShipToJurisdiction
NString


ItemShipToTaxCertificateType
NString


ItemShipToTaxCertificateNumber
NString


ItemShipToTaxBasis
NString


ItemShipToTaxRate
NString


ItemShipToSenderURL
NString


ItemBillToTelephoneNumberTelecomCountryCode
NString


ItemBillToTelephoneNumberTelecomAreaCode
NString


ItemBillToTelephoneNumberPhoneNumber
NString


ItemBillToFaxNumberTelecomCountryCode
NString


ItemBillToFaxNumberTelecomAreaCode
NString
 
ItemBillToFaxNumberPhoneNumber
NString


ItemBillToEmailAddress
NString


ItemBillToAlternativeCommunicationMethod
NString


ItemBillToAddressLine
NString


ItemBillToCityName
NString


ItemBillToStateProvince
NString


ItemBillToPostalCode
NString


ItemBillToPostalCountry
NString


ItemBillToLocationCode
NString


ItemBillToExternalReference
NString


ItemBillToTaxIdentifierNumber
NString
 
ItemBillToJurisdiction
NString
 
ItemBillToTaxCertificateType
NString
 
ItemBillToTaxCertificateNumber
NString
 
ItemBillToTaxBasis
NString
 
ItemBillToTaxRate
NString
 
ItemBillToSenderURL
NString


ItemShipFromTelephoneNumberTelecomCountryCode
NString


ItemShipFromTelephoneNumberTelecomAreaCode
NString


ItemShipFromTelephoneNumberPhoneNumber
NString


ItemShipFromFaxNumberTelecomCountryCode
NString


ItemShipFromFaxNumberTelecomAreaCode
NString
 
ItemShipFromFaxNumberPhoneNumber
NString


ItemShipFromEmailAddress
NString


ItemShipFromAlternativeCommunicationMethod
NString


ItemShipFromAddressLine
NString


ItemShipFromCityName
NString


ItemShipFromStateProvince
NString


ItemShipFromPostalCode
NString


ItemShipFromPostalCountry
NString


ItemShipFromLocationCode
NString


ItemShipFromExternalReference
NString


ItemShipFromTaxIdentifierNumber
NString
 
ItemShipFromJurisdiction
NString
 
ItemShipFromTaxCertificateType
NString
 
ItemShipFromTaxCertificateNumber
NString
 
ItemShipFromTaxBasis
NString
 
ItemShipFromTaxRate
NString
 
ItemShipFromSenderURL
NString


ItemCarrierTelephoneNumberTelecomCountryCode
NString


ItemCarrierTelephoneNumberTelecomAreaCode
NString


ItemCarrierTelephoneNumberPhoneNumber
NString


ItemCarrierFaxNumberTelecomCountryCode
NString


ItemCarrierFaxNumberTelecomAreaCode
NString
 
ItemCarrierFaxNumberPhoneNumber
NString


ItemCarrierEmailAddress
NString


ItemCarrierAlternativeCommunicationMethod
NString


ItemCarrierAddressLine
NString


ItemCarrierCityName
NString


ItemCarrierStateProvince
NString


ItemCarrierPostalCode
NString


ItemCarrierPostalCountry
NString


ItemCarrierLocationCode
NString


ItemCarrierExternalReference
NString


ItemCarrierTaxIdentifierNumber
NString
 
ItemCarrierJurisdiction
NString
 
ItemCarrierTaxCertificateType
NString
 
ItemCarrierTaxCertificateNumber
NString
 
ItemCarrierTaxBasis
NString
 
ItemCarrierTaxRate
NString
 
ItemCarrierSenderURL
NString


ItemShipperTelephoneNumberTelecomCountryCode
NString


ItemShipperTelephoneNumberTelecomAreaCode
NString


ItemShipperTelephoneNumberPhoneNumber
NString


ItemShipperFaxNumberTelecomCountryCode
NString


ItemShipperFaxNumberTelecomAreaCode
NString
 
ItemShipperFaxNumberPhoneNumber
NString


ItemShipperEmailAddress
NString


ItemShipperAlternativeCommunicationMethod
NString


ItemShipperAddressLine
NString


ItemShipperCityName
NString


ItemShipperStateProvince
NString


ItemShipperPostalCode
NString


ItemShipperPostalCountry
NString


ItemShipperLocationCode
NString


ItemShipperExternalReference
NString


ItemShipperTaxIdentifierNumber
NString
 
ItemShipperJurisdiction
NString
 
ItemShipperTaxCertificateType
NString
 
ItemShipperTaxCertificateNumber
NString
 
ItemShipperTaxBasis
NString
 
ItemShipperTaxRate
NString
 
ItemShipperSenderURL
NString
A_SalesOrderItemText1 to many





CustomerRequiredInstructions NString


ShipperInstructions
NString


ConsigneeInstructions
NString

 CarrierInstructions
NString


ImportInstruction NString


CustomerServiceInstructions NString


RoutingInstruction
NString
A_SalesOrderItemPrElement

1







PricePerUnit
NString
 

 

PriceCurrencyCode
NString
 

 

PriceBasis
NString
 

 

PriceBasisUnitofMeasure
NString
A_SalesOrderScheduleLine

1

 






ScheduleDateRequestedDeliveryOn


NDateTime


ScheduleDateConfirmedPickUpOn


NDateTime




Calculation and Validation

Populate the table below to list the calculation and validation rules per field. Can be deleted if not needed.

eDocument mapping

Populate the table below to list the mapping for edocument implementations. Can be deleted if not needed.

GeneralSyensqo XML (Intermediate Target)SAP eDoc Standard Mapping (Source)Custom Mapping (Source)
S-NRFlow (SD/FI/MM/ALL)Target FieldTarget Field DetailsConditionSyensqo XML NodeSyensqo XML FieldSAP eDoc Standard NodeSAP eDoc Standard FieldFixed ValueCustom Logic




Conditional / Mandatory Header / Header Tax / Header Value / Header Extension / Sender / Sender Extension / Receiver / Receiver Extension / Item / Item Tax / Item Value / Item Extension















Processing Logic

Sales Order Look Up using Purchase Order Number

Purchase Order Field in API structureLogic to Fetch Sales Order
A_SalesOrderHeader_CustomerPurchaseOrder

Sales Order = VBAK-VBELN where

VBAK-BSTNK =  A_SalesOrderHeader_CustomerPurchaseOrder


How to find changes requested from the OrderChange XML from Elemica

Comparison is made between a subset of the OrderChange XML fields and their corresponding values in the Sales Order. For the fields where the activation flag is ticked, where there is a difference, these fields are collated into a staging table (a database table) and passed into the Order Modification Fiori App (ERP 2326 - New Order Modification Fiori App) structured into both a Fiori Launchpad notification (see notification logic section) and to update the App with the specific data of the sales order that needs to be changed 

OrderChange API vs Sales Order Comparison Fields

API FieldSales Order FieldActivation Flag
A_SalesOrderHeader_IncotermsClassificationVBKD-INCO1X
A_SalesOrderHeader_IncotermsLocation1VBKD-INCO2_LX
A_SalesOrderHeader_ShiptoPartnerName

VBPA-KUNNR where:

VBPA-PARVW = SH

VBPA-VBELN = Sales Order (see Sales Order Look Up using Purchase Order Number)

X
A_SalesOrderHeader_PayerPartnerCode

VBPA-KUNNR where:

VBPA-PARVW = PY

VBPA-VBELN = Sales Order (see Sales Order Look Up using Purchase Order Number)

X
A_SalesOrderHeader_BillToPartnerCode

VBPA-KUNNR where:

VBPA-PARVW = BP

VBPA-VBELN = Sales Order (see Sales Order Look Up using Purchase Order Number)

X
A_SalesOrderText_CustomerRequiredInstructionsVBBK_Z004X
A_SalesOrderText_ShipperInstructionsVBBK_Z004X
A_SalesOrderText_ConsigneeInstructionsVBBK_Z004X
A_SalesOrderText_CarrierInstructionsVBBK_Z004X
A_SalesOrderText_ImportInstructionVBBK_Z004X
A_SalesOrderText_CustomerServiceInstructionsVBBK_Z004X
A_SalesOrderText_RoutingInstructionVBBK_Z002X
A_SalesOrderItem_MaterialByCustomerVBAP-KDMATX
A_SalesOrderItem_MaterialVBAP-MATNRX
A_SalesOrderItem_RequestedQuantityVBAP-KWMENGX
A_SalesOrderItem_RequestedQuantityISOUnitVBAP-VRKMEX
A_SalesOrderItemText_CustomerRequiredInstructionsVBBP_Z004X
A_SalesOrderItemText_ShipperInstructionsVBBP_Z004X
A_SalesOrderItemText_ConsigneeInstructionsVBBP_Z004X
A_SalesOrderItemText_CarrierInstructionsVBBP_Z004X
A_SalesOrderItemText_ImportInstructionVBBP_Z004X
A_SalesOrderItemText_CustomerServiceInstructionsVBBP_Z004X
A_SalesOrderItemText_RoutingInstructionVBBP_Z002X
A_SalesOrderItemPrElementPricePerUnit

Fetch VBAK-KNUMV, where VBAK-VBELN = Sales Order (see Sales Order Look Up using Purchase Order Number)

Fetch VBAP-POSNR where VBAP-VBELN = Sales Order (see Sales Order Look Up using Purchase Order Number) 

then read PRCD_ELEMENTS-KBETR


where:

PRCD_ELEMENTS-KNUMV = VBAK-KNUMV

PRCD_ELEMENTS-KPOSN = VBAP-POSNR

PRCD_ELEMENT- KSCHL = 'PPR0'

X
A_SalesOrderItemPrElementPriceCurrencyCode

Fetch VBAK-KNUMV, where VBAK-VBELN = Sales Order (see Sales Order Look Up using Purchase Order Number)

Fetch VBAP-POSNR where VBAP-VBELN = Sales Order (see Sales Order Look Up using Purchase Order Number) 

then read PRCD_ELEMENTS-WAERS


where:

PRCD_ELEMENTS-KNUMV = VBAK-KNUMV

PRCD_ELEMENTS-KPOSN = VBAP-POSNR

PRCD_ELEMENT- KSCHL = 'PPR0'

X
A_SalesOrderScheduleLine_ScheduleDateRequestedDeliveryOnVBAK-VDATU

X


Staging table

This will be a database table, not user maintained but programmatically maintained with the sales order and the new values of the fields to be changed. This will be used by the ERP 2326 - New Order Modification Fiori App to generate the sales orders where customer has requested changes and the new values 

Content of this table older than 30 (tbc) days should be automatically deleted (how?)

Sales Order NumberChange request dateChanged FieldNew Value (from API)Processed flag
123401.01.2027VBAK-INCO1DAPx
















Notification Logic

Write text of the notification including logic for values to be derived eg sales order number, PO number, buyer etc




Logic to find CSR for a sales order

Read VBPA-PERNR (get SAP user ID from this) where::

VBPA-VBELN = Sales order number

VBPA-PARVW = 'SE' for Sales Employee



Delta or Full Load Requirements

Please describe change tracking requirements, i.e. transferring only delta, or always full load

Interface Alert & Monitoring

Please describe any alert & monitoring requirement for business users and support organization, i.e. AIF

Language Requirements

Specify multi language requirements

User Interface Requirements

N/A
 

Sequencing

N/A


Volumetrics

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


Performance Consideration

Specify if there are any specific performance factors that need to be taken into consideration during development i.e. interface must be able to handle 100 posting per-hour, etc.

Error Handling

Integration errors: Between Elemica and SAP CPI (not needed here - put in integration FS)

S/4HANA Error during trigger of notification to CSR's fiori launchpad

  • data issue eg CSR not found in Sales Order

S/4HANA Error during 'staging' and/or update of sales order data to customer Fiori Launchpad


Error handling for this interface to align with the error handling process for interfaces as defined for SyWay (exact approach / process yet to be defined and below are indicative only to be refined based on the defined approach)

Integration errors: All errors occurring during mapping rule execution and during posting to be added to the application log and AIF in a readable and user understandable format. These errors should trigger incident creation in SyRa (tbc)

Data errors or errors in S4 during translation, logic execution etc: These should trigger a notification to the end user / or support organisation highlighting the error in an understandable format in addition to logging the error in AIF (to be defined exactly how users will access and reprocess these failed messages)

Testing

How to Test

Please provide some guidance and/or test data to help the developer unit test the interface. Please include both positive and negative testing (to validate error situations handling)

The developer will need to test repeatedly, so where appropriate provide instructions to reverse the actions performed so the test may be run again, or explain how to create new input data to the test. In particular, the developer will need logons for test users representing the various roles within the approval process.

Test Conditions and Expected Results

IDConditionExpected Results






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




Other Development Objects

Object TypeObject NamePurpose/High Level LogicDesign Rationale Reference









Appendix

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