| Status | |
|---|---|
| Owner | The person responsible for driving this decision and documenting it. Type @ to mention people by name |
| Stakeholders | The business stakeholders involved in making, reviewing, and endorsing this decision. Type @ to mention people by name |
| Jira Request ID | Enter the Jira request card URL here (Use the Jira macro to search and add) |
| Jira Development ID | Enter the Jira development card URL here (Use the Jira macro to search and add) |
| Implementing System | SAP S/4HANA |
|---|---|
| Invoked by/Invokes | |
| Business Process Reference | 02.04.02.01. Manage Standard Sales Order |
EDI customers sends their Sales Order creation message through Elemica to Syensqo. Elemica sends the OrderCreate XML to SAP CPI which then calls a custom API to create the Sales Order in Syensqo's S/4HANA system.
The purpose of this functional specification is to create the custom API for the creation of a sales order in S/4HANA either
Scope and Objectives
This System Interface, a custom implementation in SAP S/4HANA,
The standard SAP Sales Order 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 | Based on the purchase order received from Syensqo's EDI customer, Elemica converts this into OrderCreate message and sends to SAP CPI via API Management |
|
2. | SAP CPI receives the OrderCreate XML message from Elemica and maps to SAP Sales Order in S/4HANA. To create the Sales Order, SAP CPI calls the custom API which is the scope of this functional specification | This is covered in Integration Process functional specification |
3 | Sales Order is created in SAP S/4HANA based on the message received from SAP CPI |
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.)
Indicate any dependencies or constraints that may impact development, in terms of requirements from internal or external applications or teams, limited access to legacy systems, time constraints or data restrictions. Also, please specify schedule dependencies e.g. interface or batch jobs that must run prior to execution.
To detail the security requirements for processing this object, 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 interface, encryption requirement, etc.
Specify the configuration requirements for this object. Like in case of substitution/ routine specify the configuration needed
tbc
Specify any special requirements or considerations that may impact the interface based on specific locations, regulatory compliance or system limitations. Clearly outline requirements e.g. localization rules for countries like China
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.
tbc
new custom table to map Header DUNS and Body DUNS
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.
Populate the type of the API use in this section. Will the API be Consumed or Provided.
Custom API from API_SALES_ORDER_SRV_0001
| Parent | Field | Description | Mandatory (Y/N) | Data Type |
|---|---|---|---|---|
| ZDocumentHeader | DocumentIdentifier | Y | ||
| DocumentIdentifierDateTime | Y | |||
| RequestingDocumentIdentifier | N | |||
| RequestingDocumentDateTime | N | |||
| SenderPartnerName | Y | |||
| SenderPartnerRole | Y | |||
| SenderDUNS | Y | |||
| SenderContactName | N | |||
| SenderContactDescription | N | |||
| SenderTelephoneNumberTelecomCountryCode | N | |||
| SenderTelephoneNumberTelecomAreaCode | N | |||
| SenderTelephoneNumberPhoneNumber | N | |||
| SenderFaxNumberTelecomCountryCode | N | |||
| SenderFaxNumberTelecomAreaCode | N | |||
| SenderFaxNumberPhoneNumber | N | |||
| SenderEmailAddress | N | |||
| SenderAlternativeCommunicationMethod | N | |||
| SenderAddressLine | N | |||
| SenderCityName | N | |||
| SenderStateProvince | N | |||
| SenderPostalCode | N | |||
| SenderPostalCountry | N | |||
| SenderLocationCode | N | |||
| SenderTaxIdentifierNumber | N | |||
| ReceiverPartnerName | Y | |||
| ReceiverPartnerRole | Y | |||
| ReceiverDUNSCode | Y | |||
| ReceiverContactName | N | |||
| ReceiverContactDescription | N | |||
| ReceiverTelephoneNumberTelecomCountryCode | N | |||
| ReceiverTelephoneNumberTelecomAreaCode | N | |||
| ReceiverTelephoneNumberPhoneNumber | N | |||
| ReceiverFaxNumberTelecomCountryCode | N | |||
| ReceiverFaxNumberTelecomAreaCode | N | |||
| ReceiverFaxNumberPhoneNumber | N | |||
| ReceiverEmailAddress | N | |||
| ReceiverAlternativeCommunicationMethod | N | |||
| ReceiverAddressLine | N | |||
| ReceiverCityName | N | |||
| ReceiverStateProvince | N | |||
| ReceiverPostalCode | N | |||
| ReceiverPostalCountry | N | |||
| ReceiverLocationCode | N | |||
| ReceiverTaxIdentifierNumber | N | |||
| A_SaleOrder | DsitributionChannel | Y | ||
| OrganisationDivision | Y | |||
| SalesOrderType | Y | |||
| SalesOrgansation | Y | |||
| ZUserStatus | Y | |||
| CustomerPurchaseOrderType | Y | |||
| PurchaseOrderByCustomer | Customer reference number that the customer uses to uniquely identify a purchasing document (for example, a sales inquiry or a purchase order) | Y | ||
| ZContractNumber | Customer reference number that the customer uses to uniquely identify a purchasing document (for example, a sales inquiry or a purchase order) | N | ||
| TransactionCurrency | The currency that applies to the sales order | N | ||
| ZRevisionNumber | N | |||
| ZReleaseNumber | N | |||
| IncotermsClassification | Commonly used trading terms that comply with the standards established by the International Chamber of Commerce (ICC) | N | ||
| IncotermsLocation1 | Provides additional information for the primary Incoterm | N | ||
| CustomerPaymentTerms | N | |||
| ZDiscountPercentage | N | |||
| ZDiscountAmount | N | |||
| ZDiscountDaysDue | N | |||
| PurchaseOrderByShipToParty | N | |||
| ZCountryOfFinalDestination | N | |||
| A_SalesOrderHeaderPartner | SoldtoParty | The customer who orders the goods or services. The sold-to party is contractually responsible for sales orders. | Y | |
| ZBuyerContactName | N | |||
| ZBuyerContactDescription | N | |||
| ZSeller | N | |||
| ZSellerContactName | N | |||
| ZSellerContactDescription | N | |||
| ZShipto | N | |||
| ZPayer | N | |||
| ZBillto | N | |||
| ZShipper | N | |||
| ZShipFrom | N | |||
| ZCarrier | N | |||
| A_SalesOrderPartnerAddress | BuyerTelephoneNumberTelecomCountryCode | N | ||
| BuyerTelephoneNumberTelecomAreaCode | N | |||
| BuyerTelephoneNumberPhoneNumber | N | |||
| BuyerFaxNumberTelecomCountryCode | N | |||
| BuyerFaxNumberTelecomAreaCode | N | |||
| BuyerFaxNumberPhoneNumber | N | |||
| BuyerEmailAddress | N | |||
| BuyerAlternativeCommunicationMethod | N | |||
| BuyerAddressLine | N | |||
| BuyerCityName | N | |||
| BuyerStateProvince | N | |||
| BuyerPostalCode | N | |||
| BuyerPostalCountry | N | |||
| BuyerLocationCode | N | |||
| BuyerTaxIdentifierNumber | N | |||
| ShipToTelephoneNumberTelecomCountryCode | N | |||
| ShipToTelephoneNumberTelecomAreaCode | N | |||
| ShipToTelephoneNumberPhoneNumber | N | |||
| ShipToFaxNumberTelecomCountryCode | N | |||
| ShipToFaxNumberTelecomAreaCode | N | |||
| ShipToFaxNumberPhoneNumber | N | |||
| ShipToEmailAddress | N | |||
| ShipToAlternativeCommunicationMethod | N | |||
| ShipToAddressLine | N | |||
| ShipToCityName | N | |||
| ShipToStateProvince | N | |||
| ShipToPostalCode | N | |||
| ShipToPostalCountry | N | |||
| ShipToLocationCode | N | |||
| ShipToTaxIdentifierNumber | N | |||
| PayerTelephoneNumberTelecomCountryCode | N | |||
| PayerTelephoneNumberTelecomAreaCode | N | |||
| PayerTelephoneNumberPhoneNumber | N | |||
| PayerFaxNumberTelecomCountryCode | N | |||
| PayerFaxNumberTelecomAreaCode | N | |||
| PayerFaxNumberPhoneNumber | N | |||
| PayerEmailAddress | N | |||
| PayerAlternativeCommunicationMethod | N | |||
| PayerAddressLine | N | |||
| PayerCityName | N | |||
| PayerStateProvince | N | |||
| PayerPostalCode | N | |||
| PayerPostalCountry | N | |||
| PayerLocationCode | N | |||
| PayerTaxIdentifierNumber | N | |||
| BillToTelephoneNumberTelecomCountryCode | N | |||
| BillToTelephoneNumberTelecomAreaCode | N | |||
| BillToTelephoneNumberPhoneNumber | N | |||
| BillToFaxNumberTelecomCountryCode | N | |||
| BillToFaxNumberTelecomAreaCode | N | |||
| BillToFaxNumberPhoneNumber | N | |||
| BillToEmailAddress | N | |||
| BillToAlternativeCommunicationMethod | N | |||
| BillToAddressLine | N | |||
| BillToCityName | N | |||
| BillToStateProvince | N | |||
| BillToPostalCode | N | |||
| BillToPostalCountry | N | |||
| BillToLocationCode | N | |||
| BillToTaxIdentifierNumber | N | |||
| A_SalesOrderText | Language (key) | The language key indicates the following:
| Y | |
| LongTextID (key) | Y | |||
| LongText | Y | |||
| A_SalesOrderItem | UnderlyingPurchaseOrderItem | N | ||
| SalesOrderItem (key) | N | |||
| MaterialByCustomer | Y | |||
| ZMaterialByCustomerDescription | N | |||
| Material | M | |||
| ZMaterialDescription | N | |||
| PurchaseOrderByCustomer | N | |||
| RequestedQuantity | The number or volume of materials specified for an item | N | ||
| RequestedQuantityISOUnit | N | |||
| IncotermsClassification | N | |||
| IncotermsLocation1 | N | |||
| ZLineItemPurposeCode | N | |||
| ZBalanceItemFlag | N | |||
| A_SalesOrderItemPartner | ZShipto | N | ||
| ZPayer | N | |||
| ZBillto | N | |||
| ZShipper | N | |||
| ZShipFrom | N | |||
| ZCarrier | N | |||
ZThirdParty | N | |||
| A_SalesOrderItemText | Language (key) | N | ||
| LongTextID (key) | N | |||
| LongText | N | |||
| A_SalesOrderItemPrElement | ConditionAmount | N | ||
ConditionCurrency | N | |||
ConditionRateValue | N | |||
ConditionQuantityUnit | N | |||
| A_SalesOrderScheduleLine | RequestedDeliveryDate | N |
Not needed as information will be in the processing logic section
Populate the table below to list the calculation and validation rules per field. Can be deleted if not needed.
| Parent | Field | Rule Type | Rule Instruction |
|---|---|---|---|
Describe the processing requirement in the System
describe the custom table for the header and body DUNS
how the header DUNS is fetched (which field in XML) and where it is stored
EDPAR look ups
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
Capture the requirements for the user interface (UI) associated with the interface. It should provide a clear description of how users will interact with the interface and how information will be presented to ensure usability and accuracy.
Please describe delivery requirements driven by message sequencing, i.e. specific order, impact of disruption of sequence, are duplicates allowed, etc.
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.
Detail how errors will be handled: Notification, Restart/ Recovery and Re-Processing Procedures
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.
