| Status | |
|---|---|
| Owner | ABOLAJI-ext, Luqman |
| Stakeholders | |
| Jira Request ID | |
| Jira Development ID |
| Implementing System | SAP S/4HANA |
|---|---|
| Invoked by/Invokes | ERP-2325 OrderChange Message from Elemica - Integration Process |
| Business Process Reference | 02.04.02.01. Manage Standard Sales Order |
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
This System Interface, a custom implementation in SAP S/4HANA,
The standard SAP Sales Order Change API is unable to support the above functions, hence the need for a custom API.
![]()
Insert the flowchart and fill in the steps
Step | Description | Comment |
|---|---|---|
1 | Elemica sends OrderChange message to SAP CPI via API Management |
|
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 |
N/A
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.
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.
Custom API based on API_SALES_ORDER_SRV_0001
| A_SalesOrderHeader | 1 | ||||
| DocumentIdentifier | N | String | |||
| DocumentIdentifierDateTime | N | DateTime | |||
| RequestingDocumentIdentifier | N | String | |||
| RequestingDocumentDateTime | N | DateTime | |||
| SenderPartnerName | Y | String | |||
| SenderDUNS | Y | String | |||
| SenderContactName | N | String | |||
| SenderContactDescription | N | String | |||
| SenderTelephoneNumberTelecomCountryCode | N | String | |||
| SenderTelephoneNumberTelecomAreaCode | N | String | |||
| SenderTelephoneNumberPhoneNumber | N | String | |||
| SenderFaxNumberTelecomCountryCode | N | String | |||
| SenderFaxNumberTelecomAreaCode | N | String | |||
| SenderFaxNumberPhoneNumber | N | String | |||
| SenderEmailAddress | N | String | |||
| SenderAlternativeCommunicationMethod | N | String | |||
| SenderAddressLine | N | String | |||
| SenderCityName | N | String | |||
| SenderStateProvince | N | String | |||
| SenderPostalCode | N | String | |||
| SenderPostalCountry | N | String | |||
| SenderLocationCode | N | String | |||
| SenderTaxIdentifierNumber | N | String | |||
| SenderJurisdiction | N | String | |||
| SenderTaxCertificateType | N | String | |||
| SenderTaxCertificateNumber | N | string | |||
| SenderTaxBasis | N | string | |||
| SenderTaxRate | N | string | |||
| SenderSenderURL | N | string | |||
| ReceiverPartnerName | Y | string | |||
| ReceiverDUNS | Y | String | |||
| ReceiverContactName | N | String | |||
| ReceiverContactDescription | N | String | |||
| ReceiverTelephoneNumberTelecomCountryCode | N | String | |||
| ReceiverTelephoneNumberTelecomAreaCode | N | String | |||
| ReceiverTelephoneNumberPhoneNumber | N | String | |||
| ReceiverFaxNumberTelecomCountryCode | N | String | |||
| ReceiverFaxNumberTelecomAreaCode | N | String | |||
| ReceiverFaxNumberPhoneNumber | N | String | |||
| ReceiverEmailAddress | N | String | |||
| ReceiverAlternativeCommunicationMethod | N | String | |||
| ReceiverAddressLine | N | String | |||
| ReceiverCityName | N | String | |||
| ReceiverStateProvince | N | String | |||
| ReceiverPostalCode | N | String | |||
| ReceiverPostalCountry | N | String | |||
| ReceiverLocationCode | N | String | |||
| ReceiverTaxIdentifierNumber | N | String | |||
| ReceiverJurisdiction | N | String | |||
| ReceiverTaxCertificateType | N | String | |||
| ReceiverTaxCertificateNumber | N | String | |||
| ReceiverTaxBasis | N | String | |||
| ReceiverTaxRate | N | String | |||
| ReceiverSenderURL | N | String | |||
| PurchaseOrderTypeCode | Y | String | |||
| CustomerPurchaseOrder | Customer reference number that the customer uses to uniquely identify a purchasing document (for example, a sales inquiry or a purchase order) | Y | String | ||
| CustomerPurchaseOrderDate | Y | DateTime | |||
| TransactionCurrency | The currency that applies to the sales order | N | String | ||
| ContractNumber | Customer reference number that the customer uses to uniquely identify a purchasing document (for example, a sales inquiry or a purchase order) | N | String | ||
| LanguageCode | N | String | |||
| RevisionNumber | N | String | |||
| ReleaseNumber | N | String | |||
| IncotermsClassification | Commonly used trading terms that comply with the standards established by the International Chamber of Commerce (ICC) | N | String | ||
| IncotermsLocation1 | Provides 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 | |||
| BuyerPartnerName | The customer who orders the goods or services. The sold-to party is contractually responsible for sales orders. | Y | String | ||
| BuyerPartnerCode | Y | String | |||
| BuyerContactName | N | String | |||
| BuyerContactDescription | N | String | |||
| SellerPartnerName | N | String | |||
| SellerPartnerCode | Y | String | |||
| SellerContactName | N | String | |||
| SellerContactDescription | N | String | |||
| ShiptoPartnerName | N | String | |||
| ShipToPartnerCode | Y | String | |||
| PayerPartnerName | N | String | |||
| PayerPartnerCode | N | String | |||
| BilltoPartnerName | N | String | |||
| BillToPartnerCode | N | String | |||
| ShipperPartnerName | N | String | |||
| ShipperPartnerCode | N | String | |||
| ShipFromPartnerName | N | String | |||
| ShipFromPartnerCode | N | String | |||
| CarrierPartnerName | N | String | |||
| CarrierPartnerCode | N | String | |||
| BuyerTelephoneNumberTelecomCountryCode | N | String | |||
| BuyerTelephoneNumberTelecomAreaCode | N | String | |||
| BuyerTelephoneNumberPhoneNumber | N | String | |||
| BuyerFaxNumberTelecomCountryCode | N | String | |||
| BuyerFaxNumberTelecomAreaCode | N | String | |||
| BuyerFaxNumberPhoneNumber | N | String | |||
| BuyerEmailAddress | N | String | |||
| BuyerAlternativeCommunicationMethod | N | String | |||
| BuyerAddressLine | N | String | |||
| BuyerCityName | N | String | |||
| BuyerStateProvince | N | String | |||
| BuyerPostalCode | N | String | |||
| BuyerPostalCountry | N | String | |||
| BuyerLocationCode | N | String | |||
| BuyerExternalReference | N | String | |||
| BuyerTaxIdentifierNumber | N | String | |||
| BuyerJurisdiction | N | String | |||
| BuyerTaxCertificateType | N | String | |||
| BuyerTaxCertificateNumber | N | String | |||
| BuyerTaxBasis | N | String | |||
| BuyerTaxRate | N | String | |||
| BuyerSenderURL | N | String | |||
| ShipToTelephoneNumberTelecomCountryCode | N | String | |||
| ShipToTelephoneNumberTelecomAreaCode | N | String | |||
| ShipToTelephoneNumberPhoneNumber | N | String | |||
| ShipToFaxNumberTelecomCountryCode | N | String | |||
| ShipToFaxNumberTelecomAreaCode | N | String | |||
| ShipToFaxNumberPhoneNumber | N | String | |||
| ShipToEmailAddress | N | String | |||
| ShipToAlternativeCommunicationMethod | N | String | |||
| ShipToAddressLine | N | String | |||
| ShipToCityName | N | String | |||
| ShipToStateProvince | N | String | |||
| ShipToPostalCode | N | String | |||
| ShipToPostalCountry | N | String | |||
| ShipToLocationCode | N | String | |||
| ShipToExternalReference | N | String | |||
| ShipToTaxIdentifierNumber | N | String | |||
| ShipToJurisdiction | N | String | |||
| ShipToTaxCertificateType | N | String | |||
| ShipToTaxCertificateNumber | N | String | |||
| ShipToTaxBasis | N | String | |||
| ShipToTaxRate | N | String | |||
| ShipToSenderURL | N | String | |||
| PayerTelephoneNumberTelecomCountryCode | N | String | |||
| PayerTelephoneNumberTelecomAreaCode | N | String | |||
| PayerTelephoneNumberPhoneNumber | N | String | |||
| PayerFaxNumberTelecomCountryCode | N | String | |||
| PayerFaxNumberTelecomAreaCode | N | String | |||
| PayerFaxNumberPhoneNumber | N | String | |||
| PayerEmailAddress | N | String | |||
| PayerAlternativeCommunicationMethod | N | String | |||
| PayerAddressLine | N | String | |||
| PayerCityName | N | String | |||
| PayerStateProvince | N | String | |||
| PayerPostalCode | N | String | |||
| PayerPostalCountry | N | String | |||
| PayerLocationCode | N | String | |||
| PayerExternalReference | N | String | |||
| PayerTaxIdentifierNumber | N | String | |||
| PayerJurisdiction | N | String | |||
| PayerToTaxCertificateType | N | String | |||
| PayerTaxCertificateNumber | N | String | |||
| PayerTaxBasis | N | String | |||
| PayerTaxRate | N | String | |||
| PayerSenderURL | N | String | |||
| AccountHolderName | N | String | |||
| AccountNumber | N | String | |||
| FinancialInstitution | N | String | |||
| FinancialInstitutionDFINumber | N | String | |||
| CreditCardNumber | N | String | |||
| CreditCardType | N | String | |||
| CreditCardExpirationDate | N | DateTime | |||
| BillToTelephoneNumberTelecomCountryCode | N | String | |||
| BillToTelephoneNumberTelecomAreaCode | N | String | |||
| BillToTelephoneNumberPhoneNumber | N | String | |||
| BillToFaxNumberTelecomCountryCode | N | String | |||
| BillToFaxNumberTelecomAreaCode | N | String | |||
| BillToFaxNumberPhoneNumber | N | String | |||
| BillToEmailAddress | N | String | |||
| BillToAlternativeCommunicationMethod | N | String | |||
| BillToAddressLine | N | String | |||
| BillToCityName | N | String | |||
| BillToStateProvince | N | String | |||
| BillToPostalCode | N | String | |||
| BillToPostalCountry | N | String | |||
| BillToLocationCode | N | String | |||
| BillToExternalReference | N | String | |||
| BillToTaxIdentifierNumber | N | String | |||
| BillToJurisdiction | N | String | |||
| BillToTaxCertificateType | N | String | |||
| BillToTaxCertificateNumber | N | String | |||
| BillToTaxBasis | N | String | |||
| BillToTaxRate | N | String | |||
| BillToSenderURL | N | String | |||
| ShipFromTelephoneNumberTelecomCountryCode | N | String | |||
| ShipFromTelephoneNumberTelecomAreaCode | N | String | |||
| ShipFromTelephoneNumberPhoneNumber | N | String | |||
| ShipFromFaxNumberTelecomCountryCode | N | String | |||
| ShipFromFaxNumberTelecomAreaCode | N | String | |||
| ShipFromFaxNumberPhoneNumber | N | String | |||
| ShipFromEmailAddress | N | String | |||
| ShipFromAlternativeCommunicationMethod | N | String | |||
| ShipFromAddressLine | N | String | |||
| ShipFromCityName | N | String | |||
| ShipFromStateProvince | N | String | |||
| ShipFromPostalCode | N | String | |||
| ShipFromPostalCountry | N | String | |||
| ShipFromLocationCode | N | String | |||
| ShipFromExternalReference | N | String | |||
| ShipFromTaxIdentifierNumber | N | String | |||
| ShipFromJurisdiction | N | String | |||
| ShipFromTaxCertificateType | N | String | |||
| ShipFromTaxCertificateNumber | N | String | |||
| ShipFromTaxBasis | N | String | |||
| ShipFromTaxRate | N | String | |||
| ShipFromSenderURL | N | String | |||
| CarrierTelephoneNumberTelecomCountryCode | N | String | |||
| CarrierTelephoneNumberTelecomAreaCode | N | String | |||
| CarrierTelephoneNumberPhoneNumber | N | String | |||
| CarrierFaxNumberTelecomCountryCode | N | String | |||
| CarrierFaxNumberTelecomAreaCode | N | String | |||
| CarrierFaxNumberPhoneNumber | N | String | |||
| CarrierEmailAddress | N | String | |||
| CarrierAlternativeCommunicationMethod | N | String | |||
| CarrierAddressLine | N | String | |||
| CarrierCityName | N | String | |||
| CarrierStateProvince | N | String | |||
| CarrierPostalCode | N | String | |||
| CarrierPostalCountry | N | String | |||
| CarrierLocationCode | N | String | |||
| CarrierExternalReference | N | String | |||
| CarrierTaxIdentifierNumber | N | String | |||
| CarrierJurisdiction | N | String | |||
| CarrierTaxCertificateType | N | String | |||
| CarrierTaxCertificateNumber | N | String | |||
| CarrierTaxBasis | N | String | |||
| CarrierTaxRate | N | String | |||
| CarrierSenderURL | N | String | |||
| ShipperTelephoneNumberTelecomCountryCode | N | String | |||
| ShipperTelephoneNumberTelecomAreaCode | N | String | |||
| ShipperTelephoneNumberPhoneNumber | N | String | |||
| ShipperFaxNumberTelecomCountryCode | N | String | |||
| ShipperFaxNumberTelecomAreaCode | N | String | |||
| ShipperFaxNumberPhoneNumber | N | String | |||
| ShipperEmailAddress | N | String | |||
| ShipperAlternativeCommunicationMethod | N | String | |||
| ShipperAddressLine | N | String | |||
| ShipperCityName | N | String | |||
| ShipperStateProvince | N | String | |||
| ShipperPostalCode | N | String | |||
| ShipperPostalCountry | N | String | |||
| ShipperLocationCode | N | String | |||
| ShipperExternalReference | N | String | |||
| ShipperTaxIdentifierNumber | N | String | |||
| ShipperJurisdiction | N | String | |||
| ShipperTaxCertificateType | N | String | |||
| ShipperTaxCertificateNumber | N | String | |||
| ShipperTaxBasis | N | String | |||
| ShipperTaxRate | N | String | |||
| ShipperSenderURL | N | String | |||
| A_SalesOrderText | 1 to many | ||||
| CustomerRequiredInstructions | N | String | |||
| ShipperInstructions | N | String | |||
| ConsigneeInstructions | N | String | |||
| CarrierInstructions | N | String | |||
| ImportInstruction | N | String | |||
| CustomerServiceInstructions | N | String | |||
| RoutingInstruction | N | String | |||
| A_SalesOrderItem | 1 | ||||
| LineItemNumber | N | String | |||
| PurchaseOrderLineItemNumber | N | String | |||
| LineItemHandlingInstruction | N | String | |||
| MaterialByCustomer | Y | String | |||
| MaterialByCustomerDescription | N | String | |||
| ProductDescription | N | String | |||
| ProductGradeDescription | N | String | |||
| Material | M | String | |||
| MaterialDescription | N | String | |||
| ProductDescription | N | String | |||
| ProductGradeDescription | N | String | |||
| CustomerPurchaseOrderNumber | N | String | |||
| ReferenceItem | N | String | |||
| RequestedQuantity | The number or volume of materials specified for an item | N | String | ||
| RequestedQuantityISOUnit | N | String | |||
| PackagingQuantity | N | String | |||
| PackagingQuantityISOUnit | N | String | |||
| EngineeringChangeOrderIdentifier | N | String | |||
| BatchNumber | N | String | |||
| CountryOfOriginCode | N | String | |||
| IncotermsClassification | N | String | |||
| IncotermsLocation1 | N | String | |||
| TransportMethodCode | N | String | |||
| LineItemPurposeCode | N | String | |||
| BalanceItemFlag | N | String | |||
| ActionRequest | N | String | |||
| DeliveryTolerancesLowerLimit | N | String | |||
| DeliveryTolerancesUpperLimit | N | String | |||
| DeliveryTolerancesUnitofMeasure | N | String | |||
| ItemShiptoPartnerName | N | String | |||
| ItemShipToPartnerCode | Y | String | |||
| ItemBilltoPartnerName | N | String | |||
| ItemBillToPartnerCode | N | String | |||
| ItemShipperPartnerName | N | String | |||
| ItemShipperPartnerCode | N | String | |||
| ItemShipFromPartnerName | N | String | |||
| ItemShipFromPartnerCode | N | String | |||
| ItemCarrierPartnerName | N | String | |||
| ItemCarrierPartnerCode | N | String | |||
| ItemShipToTelephoneNumberTelecomCountryCode | N | String | |||
| ItemShipToTelephoneNumberTelecomAreaCode | N | String | |||
| ItemShipToTelephoneNumberPhoneNumber | N | String | |||
| ItemShipToFaxNumberTelecomCountryCode | N | String | |||
| ItemShipToFaxNumberTelecomAreaCode | N | String | |||
| ItemShipToFaxNumberPhoneNumber | N | String | |||
| ItemShipToEmailAddress | N | String | |||
| ItemShipToAlternativeCommunicationMethod | N | String | |||
| ItemShipToAddressLine | N | String | |||
| ItemShipToCityName | N | String | |||
| ItemShipToStateProvince | N | String | |||
| ItemShipToPostalCode | N | String | |||
| ItemShipToPostalCountry | N | String | |||
| ItemShipToLocationCode | N | String | |||
| ItemShipToExternalReference | N | String | |||
| ItemShipToTaxIdentifierNumber | N | String | |||
| ItemShipToJurisdiction | N | String | |||
| ItemShipToTaxCertificateType | N | String | |||
| ItemShipToTaxCertificateNumber | N | String | |||
| ItemShipToTaxBasis | N | String | |||
| ItemShipToTaxRate | N | String | |||
| ItemShipToSenderURL | N | String | |||
| ItemBillToTelephoneNumberTelecomCountryCode | N | String | |||
| ItemBillToTelephoneNumberTelecomAreaCode | N | String | |||
| ItemBillToTelephoneNumberPhoneNumber | N | String | |||
| ItemBillToFaxNumberTelecomCountryCode | N | String | |||
| ItemBillToFaxNumberTelecomAreaCode | N | String | |||
| ItemBillToFaxNumberPhoneNumber | N | String | |||
| ItemBillToEmailAddress | N | String | |||
| ItemBillToAlternativeCommunicationMethod | N | String | |||
| ItemBillToAddressLine | N | String | |||
| ItemBillToCityName | N | String | |||
| ItemBillToStateProvince | N | String | |||
| ItemBillToPostalCode | N | String | |||
| ItemBillToPostalCountry | N | String | |||
| ItemBillToLocationCode | N | String | |||
| ItemBillToExternalReference | N | String | |||
| ItemBillToTaxIdentifierNumber | N | String | |||
| ItemBillToJurisdiction | N | String | |||
| ItemBillToTaxCertificateType | N | String | |||
| ItemBillToTaxCertificateNumber | N | String | |||
| ItemBillToTaxBasis | N | String | |||
| ItemBillToTaxRate | N | String | |||
| ItemBillToSenderURL | N | String | |||
| ItemShipFromTelephoneNumberTelecomCountryCode | N | String | |||
| ItemShipFromTelephoneNumberTelecomAreaCode | N | String | |||
| ItemShipFromTelephoneNumberPhoneNumber | N | String | |||
| ItemShipFromFaxNumberTelecomCountryCode | N | String | |||
| ItemShipFromFaxNumberTelecomAreaCode | N | String | |||
| ItemShipFromFaxNumberPhoneNumber | N | String | |||
| ItemShipFromEmailAddress | N | String | |||
| ItemShipFromAlternativeCommunicationMethod | N | String | |||
| ItemShipFromAddressLine | N | String | |||
| ItemShipFromCityName | N | String | |||
| ItemShipFromStateProvince | N | String | |||
| ItemShipFromPostalCode | N | String | |||
| ItemShipFromPostalCountry | N | String | |||
| ItemShipFromLocationCode | N | String | |||
| ItemShipFromExternalReference | N | String | |||
| ItemShipFromTaxIdentifierNumber | N | String | |||
| ItemShipFromJurisdiction | N | String | |||
| ItemShipFromTaxCertificateType | N | String | |||
| ItemShipFromTaxCertificateNumber | N | String | |||
| ItemShipFromTaxBasis | N | String | |||
| ItemShipFromTaxRate | N | String | |||
| ItemShipFromSenderURL | N | String | |||
| ItemCarrierTelephoneNumberTelecomCountryCode | N | String | |||
| ItemCarrierTelephoneNumberTelecomAreaCode | N | String | |||
| ItemCarrierTelephoneNumberPhoneNumber | N | String | |||
| ItemCarrierFaxNumberTelecomCountryCode | N | String | |||
| ItemCarrierFaxNumberTelecomAreaCode | N | String | |||
| ItemCarrierFaxNumberPhoneNumber | N | String | |||
| ItemCarrierEmailAddress | N | String | |||
| ItemCarrierAlternativeCommunicationMethod | N | String | |||
| ItemCarrierAddressLine | N | String | |||
| ItemCarrierCityName | N | String | |||
| ItemCarrierStateProvince | N | String | |||
| ItemCarrierPostalCode | N | String | |||
| ItemCarrierPostalCountry | N | String | |||
| ItemCarrierLocationCode | N | String | |||
| ItemCarrierExternalReference | N | String | |||
| ItemCarrierTaxIdentifierNumber | N | String | |||
| ItemCarrierJurisdiction | N | String | |||
| ItemCarrierTaxCertificateType | N | String | |||
| ItemCarrierTaxCertificateNumber | N | String | |||
| ItemCarrierTaxBasis | N | String | |||
| ItemCarrierTaxRate | N | String | |||
| ItemCarrierSenderURL | N | String | |||
| ItemShipperTelephoneNumberTelecomCountryCode | N | String | |||
| ItemShipperTelephoneNumberTelecomAreaCode | N | String | |||
| ItemShipperTelephoneNumberPhoneNumber | N | String | |||
| ItemShipperFaxNumberTelecomCountryCode | N | String | |||
| ItemShipperFaxNumberTelecomAreaCode | N | String | |||
| ItemShipperFaxNumberPhoneNumber | N | String | |||
| ItemShipperEmailAddress | N | String | |||
| ItemShipperAlternativeCommunicationMethod | N | String | |||
| ItemShipperAddressLine | N | String | |||
| ItemShipperCityName | N | String | |||
| ItemShipperStateProvince | N | String | |||
| ItemShipperPostalCode | N | String | |||
| ItemShipperPostalCountry | N | String | |||
| ItemShipperLocationCode | N | String | |||
| ItemShipperExternalReference | N | String | |||
| ItemShipperTaxIdentifierNumber | N | String | |||
| ItemShipperJurisdiction | N | String | |||
| ItemShipperTaxCertificateType | N | String | |||
| ItemShipperTaxCertificateNumber | N | String | |||
| ItemShipperTaxBasis | N | String | |||
| ItemShipperTaxRate | N | String | |||
| ItemShipperSenderURL | N | String | |||
| A_SalesOrderItemText | 1 to many | ||||
| CustomerRequiredInstructions | N | String | |||
| ShipperInstructions | N | String | |||
| ConsigneeInstructions | N | String | |||
| CarrierInstructions | N | String | |||
| ImportInstruction | N | String | |||
| CustomerServiceInstructions | N | String | |||
| RoutingInstruction | N | String | |||
| A_SalesOrderItemPrElement | 1 | ||||
| PricePerUnit | N | String | |||
| PriceCurrencyCode | N | String | ||
| PriceBasis | N | String | ||
| PriceBasisUnitofMeasure | N | String | ||
| A_SalesOrderScheduleLine | 1 |
| |||
ScheduleDateRequestedDeliveryOn | N | DateTime | |||
ScheduleDateConfirmedPickUpOn | N | DateTime |
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.
| General | Syensqo XML (Intermediate Target) | SAP eDoc Standard Mapping (Source) | Custom Mapping (Source) | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| S-NR | Flow (SD/FI/MM/ALL) | Target Field | Target Field Details | Condition | Syensqo XML Node | Syensqo XML Field | SAP eDoc Standard Node | SAP eDoc Standard Field | Fixed Value | Custom Logic |
| Conditional / Mandatory | Header / Header Tax / Header Value / Header Extension / Sender / Sender Extension / Receiver / Receiver Extension / Item / Item Tax / Item Value / Item Extension | |||||||||
Order Items View (To be used in ERP-2326 New Order Modification Fiori App) - should this be in 2326?
Line | Product Details | Quantity in PU | Due Date | Pricing | Line Status |
VBAP-POSNR | Buyer: <VBAP-KDMAT> Seller: <VBAP-MATNR> | VBAP-KWMENG " " VBAP-VRKME | <VBEP-EDATU> | NetPrice: VBAP-NETPR " " VBAP-KPEIN | See Line Status Logic |
Line Status Logic
4. For each line item (A_salesOrderItem_ PurchaseOrderLineItemNumber) on the OrderChange XML, find the corresponding sales order line item and compare the data as per ‘Fields for Comparison’ table. If there are differences between them, populate the ‘Staging table'
Sales Order Look Up Logic using Purchase Order Number
| Purchase Order Field in API structure | Logic 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
Fields for Comparison: OrderChange API vs Sales Order Line Item Fields
| API Field | Sales Order Field | Activation Flag |
|---|---|---|
| A_SalesOrderItem_MaterialByCustomer | VBAP-KDMAT | |
| A_SalesOrderItem_Material | VBAP-MATNR | |
| A_SalesOrderItem_RequestedQuantity | VBAP-KWMENG | X |
| A_SalesOrderItem_RequestedQuantityISOUnit | VBAP-VRKME | X |
| A_SalesOrderHeader_TransactionCurrency | VBAP-WAERK | |
| A_SalesOrderItemPrElementPricePerUnit | VBAP-NETPR | X |
| A_SalesOrderItemPrElementPriceCurrencyCode | VBAP-KPEIN | X |
| A_SalesOrderScheduleLine_ScheduleDateRequestedDeliveryOn | VBEP-EDATU | 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 (program to do this to be defined by Technical team as part of general house keeping)
| Sales Order Number | Change request date | Changed Field | New Value (from API) | Processed flag |
|---|---|---|---|---|
| 1234 | 01.01.2027 | VBAP-KWMENG | 2300 | x |
| 1234 | 01.01.2027 | VBAP-VRKME | KG | x |
Notification Logic
For every OrderChange message received, trigger a Fiori Launchpad notification to the CSR
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
Notification text:
Title: EDI Order Modification Notice
Subtext: A modification for Order <Sales Order> has been received
Clicking on the notification should take CSR into the details of the requested change (details in ERP-2326 New Order Modification Fiori App)
Delta or Full Load Requirements
Please describe change tracking requirements, i.e. transferring only delta, or always full load
Please describe any alert & monitoring requirement for business users and support organization, i.e. AIF
Specify multi language requirements
N/A
N/A
Provide volumetrics details: Initial load volumes, Number of Records, Expected Frequency, Expected Long term Growth)
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 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 Fiori launchpad notification to the CSR 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)
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.
| ID | Condition | Expected Results |
|---|---|---|
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.
| Package Name | Parent Package |
|---|---|
Other Development Objects
| Object Type | Object Name | Purpose/High Level Logic | Design Rationale Reference |
|---|---|---|---|
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.
