| Status | |
|---|---|
| Owner | ROWLINSON-ext, Kerry |
| Stakeholders | The business stakeholders involved in making, reviewing, and endorsing this decision. Type @ to mention people by name |
| Jira Request ID | |
| Jira Development ID |
| Parameter | Value |
|---|---|
| Application System (Source) | Icertis Contract Intelligence |
| Application System ( Target) | SAP ERP (PF2) & SAP ERP (WP2) |
| Business Process Reference | 03.04.04.01. Manage Outline Agreements (R2) |
The functional design of the Integration Process defines both inbound and outbound interfaces. An integration defines a specific physical interaction that will need to occur between the system and an external application in response to some business event.
Icertis Contract Intelligence is the contract management and authoring application for Syensqo's purchase contracts. Purchase orders are created in S/4 HANA with reference to purchase contracts (outline agreements). The key information from the legal contract which is relevant for procurement forms the basis of the purchase contract or outline agreement in S/4 HANA. For release 4, the integration between Icertis and S/4 HANA will be more complete and automated. However, for release 2 the option for a 'light' integration was decided due to the limitations of the two SAP ECC systems and in particular the substantial existing custom logic which needed to remain unaffected by any changes.
The 'light' integration consists of three main parts:
When an agreement in Icertis is executed an event in ICertis is initiated and the stream event payload is received to CPI (Cloud Platform Integration). CPI then uses key fields from that payload to make a call to Icertis to retrieve the complete contract record payload from Icertis. A subset of the total fields provided are then mapped to fields in a custom table in both SAP ECC systems (PF2 and WP2) where the data is stored.
Events for Amendment Execution, Renewal and Termination require development within Icertis in order to be initiated and for a custom event job to send the default payload to CPI.
The objective of the interface for release 2 is to provide a functional relationship between the Icertis Contract and the SAP outline agreement to enable consistency of the data to be reported and therefore maintained. The business users will manually create and change the outline agreements as a result of contract executions, amendments, renewals and contract terminations.
The entry and update of the contract data in the custom table enables:
Without this integration there is no place where the hierarchical structure of Icertis Master Service Agreements & associated Sub Agreements, Standalone Agreements, Non-Disclosure Agreements, Amendments & their parent agreements can be viewed with their association to the outline agreements in SAP ECC. It provides a mechanism to ensure the purchase contract content common to both systems remains aligned despite the reliance on manual entry by business users in SAP.
The linking of the documents in this way acts as a starting point for data enrichment for release 4, allowing the identification of outline agreements which do not have a legal purchase contract. The data will be the foundation for the conversion of open outline agreements in release 4.
Step | Description | System | Comment |
|---|---|---|---|
1 | A purchase contract is executed in Icertis | Icertis | A legal purchase contract is executed in Icertis |
2 | Line items are downloaded from Icertis | Icertis | The user downloads the line item details from Icertis to assist in the future upload of the outline agreement |
3 | New entry in custom table for the Icertis Contract | SAP ECC | Integration automatically creates the Icertis Contract record in custom table in both SAP ECC systems (WP2 & PF2) with the Icertis Contract ID and the relevant data fields from the contract header. |
4 | An amendment to a contract in Icertis is executed | Icertis | An amendment for an existing contract is executed in Icertis. |
5 | Change entry in custom table for the parent contract of the amendment | SAP ECC | The existing entry in the table for the parent agreement of the amendment is located and the relevant fields in the table are overwritten with the values provided in the amendment. |
6 | A renewal of an existing contract in Icertis is made. | Icertis | An existing purchase contract in Icertis is renewed which updates the overall value and the validity end date. |
7 | The entry in the custom table for the contract is updated. | SAP ECC | The existing entry in the table for the purchase contract is updated to reflect the changes to the overall value and the validity end date. |
8 | An existing purchase contract in Icertis subject to automatic renewal is renewed. | Icertis | An existing purchase contract in Icertis is renewed automatically when the renewal date comes due which updates the validity end date. |
9 | The entry in the custom table for the contract is updated. | SAP ECC | The existing entry in the table for the purchase contract is updated to reflect the changes to the validity end date. |
10 | An existing purchase contract in Icertis is terminated. | Icertis | An existing purchase contract in Icertis is terminated which updates the validity end date and the status in Icertis. |
11 | The entry in the custom table for the contract is updated. | SAP ECC | The existing entry in the table for the purchase contract is updated to reflect the changes to the validity end date. |
There are no specific assumptions identified.
The following two enhancement requests in Icertis are required to fully support the integration of the purchase contracts to the custom table in SAP ECC.
ERP-151 : Small adjustment based on DOA changes
In order to correctly fill the target value ERP-151 enhancement is being made in Icertis to consolidate the total value of the amendments. In addition to ensure the currency of the contract is passed to SAP, the logic is being adjusted so that it uses the local agreed currency instead of defaulting to EURO.
This is required in order for the target value field for the contract in the custom table to be tested in all scenarios.
ERP-470: Enhancement Request for Icertis Integration to CPI
Configure a custom event job to send the default payload (equal to the stream event payload) to SAP CPI from Icertis. This enhancement should support the following event types:
Amendment Executed
Renewal
Termination
This development in Icertis is required in order for integration to be tested for event types other than Agreement Execution.
There are no specific security, integrity or controls required for the processing of the interface.
There are no specific configuration requirements for this interface.
As the interface is one-way from Icertis to SAP ECC there are no special requirements, security or authentication considerations to take into account.

| Field | Field Label | Description | Length/Format |
|---|---|---|---|
| ICM Tenant ID | Tenant ID | **Confirm with Dhiraj format and length and how we define - specific client for purchasing contracts; Dhiraj to check with Wytse | TBA |
| CONTRACTTYPENAME | Icertis Agreement Type | Possible values are: ICMMasterAgreement ICMSupportingAgreement ICMSubAgreement ICMStandaloneAgreement ICMBaselineAgreement ICMMasterAgreementAmendment ICMSupportingAgreementAmendment ICMSubAgreementAmendment ICMStandaloneAgreementAmendment (supporting agreement is the NDA; no amendments possible for Baseline Agreements) | 224 CHAR |
| NAME | Name | **Amit to determine how the NAME field is going to be used ; if descriptive could be a useful addition to the report to help users identify what the contract is for (eg. where there are multiple for a supplier and our report will have no line items for context. Amit - still under discussion with Laurence for formatting rules and length (Action tracker item 116) | 1000 CHAR |
| ICMAGREEMENTCODE | Agreement Code | The naming convention for Icertis Agreements is defined; characters describe the type and the fact it is amendment may be in the structure of the code. The contract number starts at 1,2,3,4 etc. ICMMasterAgreement_nnnnnnnnnn ICMSupportingAgreement_nnnnnnnnnn ICMSubAgreement_nnnnnnnnnn ICMStandaloneAgreement_nnnnnnnnnn ICMMasterAgreementAmendment_nnnnnnnnnn ICMSupportingAgreementAmendment_nnnnnnnnnn ICMSubAgreementAmendment_nnnnnnnnnn ICMStandaloneAgreementAmendment_nnnnnnnnnn ICMBaselineAgreement_nnnnnnnnnn | 224 CHAR |
| SYSID | System ID | Along with CONTRACTTYPENAME, SYSID is the key with which CPI makes the call to Icertis to retrieve the complete header contract field details. This is important to have from Icertis in addition to the agreement code - used in backend table mapping in Icertis and is important to keep the relationship to the agreement code. | 36 CHAR |
| PARENT SYS ID | Parent System ID | An amendment in Icertis is assigned a new ICMAGREEMENTCODE and a new SYSID. But the original agreement code that the amendment is for is in the PARENT CONTRACT field, and the original system id is in the PARENT SYS ID field. The parent contract and parent sys id are required in order to identify the existing contract record in the custom table which needs to be updated in the case of amendments. | 36 CHAR |
| PARENT CONTRACT | Parent Contract | An amendment in Icertis is assigned a new ICMAGREEMENTCODE and a new SYSID. But the original agreement code that the amendment is for is in the PARENT CONTRACT field, and the original system id is in the PARENT SYS ID field. So the format of the Parent Contract field will be the format of the original agreement code field: ICMMasterAgreement_nnnnnnnnnn ICMSupportingAgreement_nnnnnnnnnn ICMSubAgreement_nnnnnnnnnn ICMStandaloneAgreement_nnnnnnnnnn The parent contract and parent sys id are required in order to identify the existing contract record in the custom table which needs to be updated in the case of amendments. | 224 CHAR |
| ICMSUPPLIERSAPID | Supplier's Account Number | The supplier numbers will be the same as the ECC supplier numbers. NDA's may not necessarily have a supplier id as it is possible to define an NDA for a bidder supplier only. Cannot be validated as the supplier records do not exist in both SAP systems. | 224 CHAR |
| ICMEFFECTIVEDATE | Start of Validity Period | "YYYY-MM-DDTHH:MM:SS" | DATE |
| ICMEXPIRY | End of Validity Period | "YYYY-MM-DDTHH:MM:SS" | DATE |
| ICMTOTALCONTRACTVALUE | Target Value for Header Area per Distribution | It needs to be the total value of the contract (in ECC it is target value at header level) In the case of amendments, it needs to be the updated overall total Renewals may also update the overall value. ERP-203 Icertis: Total Contract Value calculation with multiple amendments to enable ECC Integration | INT(15 including 2 decimals) |
| ICMCURRENCY | Currency Key | Confirmed the currency codes in Icertis are aligned to SAP codes | 5 CHAR |
| ICMLEGALENTITYCODE | Company Code | Organizational data - company code, purchasing group, purchasing org are being aligned in Icertis to ECC - it is the 4 char code for company code which matches SAP | 1000 CHAR |
| ICMPURCHASEGROUPCODE | Purchasing Group | Organizational data - company code, purchasing group, purchasing org are being aligned in Icertis to ECC - it is the 3 char code for purchasing group which matches SAP | 1000 CHAR |
| ICMPURCHASEORGCODE | Purchasing Org | Organizational data - company code, purchasing group, purchasing org are being aligned in Icertis to ECC- it is the 4 char code for purchasing organisation which matches SAP | 1000 CHAR |
| ICMREGION | Region | Icertis has values for each region which will be useful for the consolidation report to enable filtering of the Icertis Z table records by region. Possible values are: WW, EMEA, APAC, AMS (world-wide, Europe, Asia Pacific, Americas) | 4 CHAR |
| ICMPRIMARYOWNERNAME | Contract Owner | **Amit to check the field name in Icertis and the length likely to be used; Use for filtering in the report on Z table so owners can find their own to work on First name, last name and email id in one field Action: Amit to check the number of characters and the value** | 224 CHAR |
| ICMINCOTERMCODE | Incoterms | Incoterms are being aligned to correspond between Icertis and ECC This field in Icertis is the 3 char code for the terms | 224 CHAR |
| ICMPAYMENTTERMSCODE | Payment Terms | Payment terms are being aligned to correspond between Icertis and ECC This is the 4 char code that matches to SAP's codes in ECC | 224 CHAR |
| ICMTERMINATIONDATE | Termination Date | When a termination message is received, the expiry date field remains same in ICertis but the termination date will have to become the expiry date | DATE |
The following fields will be used to provide the required information for this interface.
Note: Although some of the Icertis fields correspond directly to fields in SAP, it is not possible to use these fields for validation due to the two separate SAP ECC systems. The intention is to have the same content filled in the custom table in both systems, regardless of whether the company code, purchasing organization, supplier etc. are defined in that system. All fields therefore have to be text-based fields.
Field labels are to correspond with the Icertis field labels.
Apart from the fields which are defined to be the key for the table and will therefore be (i) available for all events (ii) considered mandatory, all other fields are optional entry in the custom table.
Parent System ID and Parent Contract are not relevant to store in the custom table. The situation where these fields are filled from Icertis is when the Agreement Type is an amendment. These will only be used in the middleware to determine which entry in the custom table requires updating.
| Field | Field Label | Description | Length/Format |
|---|---|---|---|
| Z* | Tenant ID | TBA | |
| Z* | Icertis Agreement Type | Possible values are: ICMMasterAgreement ICMSupportingAgreement ICMSubAgreement ICMStandaloneAgreement ICMBaselineAgreement ICMMasterAgreementAmendment ICMSupportingAgreementAmendment ICMSubAgreementAmendment ICMStandaloneAgreementAmendment (supporting agreement is the NDA; no amendments possible for Baseline Agreements) | 224 CHAR |
| Z* | Name | Description given to the contract (useful for reporting) | 1000 CHAR |
| Z* | Agreement Code | The agreement code is the contract number in Icertis and is preceded by the agreement type. Example: ICMMasterAgreement_nnnnnnnnnn This value from Icertis will be stored on the header of the outline agreement in SAP ECC. | 224 CHAR |
| Z* | System ID | Along with CONTRACTTYPENAME, SYSID is the key with which CPI makes the call to Icertis to retrieve the complete header contract field details. Example: 1343f2e0-9386-4fa7-aa5b-22abba04d35a (36 chars) | 36 CHAR |
| Z* | Supplier's Account Number | The supplier numbers will be the same as the ECC supplier numbers? We take only the first 10 char of 224? NDA's may not necessarily have a supplier id as it is possible to define an NDA for a bidder supplier only. Cannot be validated as the supplier records do not exist in both SAP systems. | 224 CHAR |
| Z* | Start of Validity Period | "YYYY-MM-DDTHH:MM:SS" | DATE |
| Z* | End of Validity Period | "YYYY-MM-DDTHH:MM:SS" | DATE |
| Z* | Target Value for Header Area per Distribution | It needs to be the total value of the contract (in ECC it is target value at header level) In the case of amendments, it needs to be the updated overall total Renewals may also update the overall value. ERP-203 Icertis: Total Contract Value calculation with multiple amendments to enable ECC Integration | INT(15 including 2 decimals) |
| Z* | Currency Key | Confirmed the currency codes in Icertis are aligned to SAP codes | 5 CHAR |
| Z* | Company Code | Organizational data - company code, purchasing group, purchasing org are being aligned in Icertis to ECC - it is the 4 char code for company code which matches SAP | 1000 CHAR |
| Z* | Purchasing Group | Organizational data - company code, purchasing group, purchasing org are being aligned in Icertis to ECC - it is the 3 char code for purchasing group which matches SAP | 1000 CHAR |
| Z* | Purchasing Org | Organizational data - company code, purchasing group, purchasing org are being aligned in Icertis to ECC- it is the 4 char code for purchasing organization which matches SAP | 1000 CHAR |
| Z* | Region | Icertis has values for each region which will be useful for the consolidation report to enable filtering of the Icertis Z table records by region. Possible values are: WW, EMEA, APAC, AMS (world-wide, Europe, Asia Pacific, Americas) | 4 CHAR |
| Z* | Contract Owner | **Amit to check the field name in Icertis and the length likely to be used; Use for filtering in the report on Z table so owners can find their own to work on First name, last name and email id in one field Action: Amit to check the number of characters and the value** | 224 CHAR |
| Z* | Incoterms | Incoterms are being aligned to correspond between Icertis and ECC This field in Icertis is the 3 char code for the terms | 224 CHAR |
| Z* | Payment Terms | Payment terms are being aligned to correspond between Icertis and ECC This is the 4 char code that matches to SAP's codes in ECC | 224 CHAR |
| Z* | Termination Date | When a termination message is received, the expiry date field remains same in ICertis but the termination date will have to become the expiry date | DATE |
Note: For all field values from Icertis, remove any blank spaces from the beginning and end of the value and the remaining content is to go into the target field. Icertis has many text-based fields ranging from 224 to 1000 chars which are able to be input by users. We cannot control that the contents will fit into a fixed length field on the target system. Field lengths will have to be the same on both systems.
| Source Table | API or Portlet Name | Source Field | Required (Y/N) | Description | Target | API or Portlet Name | Target Field (Label in SAP) | Required (Y/N) | Description | Rule Type | Rule Instruction |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ICM Tenant ID | Y | Unique ID that defines purchase contracts within Icertis | Z* | Icertis Tenant ID | Y | middleware rule - filtering, dates formatting | |||||
| CONTRACTTYPENAME | Y | Z* | Contract Type | Y | IN TARGET FIELD put the label for the field from SAP | ||||||
| NAME | Y | Z* | Contract Name | Y | |||||||
| ICMAGREEMENTCODE | Y | Z* | Contract ID | Y | |||||||
| SYSID | Y | Z* | System ID | Y | |||||||
| PARENT SYS ID | N | Z* | Parent System ID | N | |||||||
| PARENT AGREEMENT | N | Z* | Parent Contract ID | N | |||||||
| ICMSUPPLIERSAPID | N | Z* | Supplier's Account Number | N | |||||||
| ICMEFFECTIVEDATE | N | Z* | Start of Validity Period | N | |||||||
| ICMEXPIRY | N | Z* | End of Validity Period | N | |||||||
| ICMTARGETVALUE | N | Z* | Target Value for Header Area per Distribution | N | |||||||
| ICMCURRENCY | N | Z* | Currency Key | N | |||||||
| ICMLEGALENTITYCODE | N | Z* | Company Code | N | |||||||
| ICMPURCHASINGGROUP | N | Z* | Purchasing Group | N | |||||||
| ICMPURCHASINGORG | N | Z* | Purchasing Organization | N | |||||||
| ICMCONTRACTOWNER | N | Z* | Contract Owner | N | |||||||
| ICMINCOTERM | N | Z* | Incoterms | N | |||||||
| ICMPAYMENTTERMS | N | Z* | Terms of Payment Key | N |
Describe the processing requirement from Source System
check with Wytse if there is any in Icertis
Describe the processing requirement within Middleware Layer
refer to the mapping sheet
Describe the processing requirement from Target System
not applicable
Please describe any dependency to other interfaces, e.g. messages of interface x need to be processed before message processing of interface y can start.
Please describe any limitations on source and targets. i.e. target system can only accept maximum 100mb files, first-in-first-out, etc.
Please describe delivery requirements driven by business. i.e. real time, batch, scheduled, synchronous, triggering requirement, push or pull, etc.
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
Please describe any reporting requirement that is expected to be provided in support of this interface
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.
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.
