Incoterm Version in OpenTRANS and SAP
OpenTRANS interface Import and Export
For openTRANS Interface Import
openTRANS interface Imports now include the incoterm version as explained below:
The changes are only in “OpenTrans/XSL_IN_OpenTrans_OrderResponse.xsl” converter file. The Remarks node is extended for incoterm version
</ ORDER_PARTIES>
‹PRICE_CURRENCY>EUR</PRICE_CURRENCY>
‹REMARK type="Onv-Incoterm" >DPU</REMARK>
‹REMARK type="Onv-IncotermVersion" >2020</REMARK>
- new tag for Incoterm Version‹REMARK type="Onv-DeliveryTermsLocation">Incoterm location</REMARK>
</ ORDERRESPONSE_INFO>
</ ORDERRESPONSE_HEADER>
For openTRANS Interface Export
openTRANS interface Exports now include the incoterm version as explained below:
In “OpenTrans/XSL_OUT_OpenTrans_Order.xsl” converter file, <TRANSPORT_REMARK> tag is extended for incoterm version
<TRANSPORT>
<INCOTERM>CFR</INCOTERM>
<LOCATION>28383</LOCATION>
<TRANSPORT_REMARK>2010</TRANSPORT_REMARK>
</TRANSPORT>
In “OpenTrans/XSL_OUT_OpenTrans_OrderChange.xsl” & “OpenTrans/XSL_OUT_OpenTrans_OrderResponse.xsl” converter file, if the Converter.XslParams.FakeTREX_Incoterm=false in parameters then Remarks tag is extended for incoterm version
</ ORDER_PARTIES>
‹PRICE_CURRENCY>EUR</PRICE_CURRENCY>
‹REMARK type="Onv-Incoterm" >DPU</REMARK>
‹REMARK type="Onv-IncotermVersion" >2020</REMARK>
‹REMARK type="Onv-DeliveryTermsLocation">Incoterm location</REMARK>
</ ORDERRESPONSE_INFO>
</ ORDERRESPONSE_HEADER>
and if Converter.XslParams.FakeTREX_Incoterm=true in parameters then Transport tag is extended for incoterm version
<TRANSPORT>
< INCOTERM>DPU</ INCOTERM>
‹LOCATION>Incoterm location</LOCATION>
< TRANSPORT_REMARK>2020</TRANSPORT _REMARK>
</TRANSPORT> </ ORDERRESPONSE_INFO>
</ORDERRESPONSE _HEADER>
SAP Interfaces
SAP already supports Incoterms versioning in its IDOC (ORDERS05, CREMAS05, and PO-related documents). We have adjusted our system to ensure that we correctly transmit the Incoterm version (2010 or 2020) in the relevant fields.
ONV → SAP/ERP
(/ONV/ PO _CREATE1)
ExportXslResource: SAP/ONVENTIS/XSL_OUT_PO_Create1.xsl (SAP/SQL_OrderFull.xml)
Field Onventis | DB-Field Onventis | XML (added to standard logic, no parameters needed) | Type (SAP) |
IncotermsVersion | IncotermsVersion; L: 4 | Incotermsv | char4 |
Example:
<Poheader> ... <Incotermsv>2010</Incotermsv> (The node is transferred if a value is set in the GUI) ... </Poheader> <Poheaderx> ... <Incotermsv>X</Incotermsv> (Node in X-Structure is then also transferred like this) ... </Poheaderx>
Note: The node will be transferred as (<Incotermsv/>) if no value is set in the GUI & the node in X-Structure will then not be transferred.
(/ONV/PO_CHANGE)
ExportXslResources: SAP/ONVENTIS/XSL_OUT_PO_Change_Order.xsl (SAP/SQL_OrderFull.xml), SAP/ONVENTIS/XSL_OUT_PO_Change_SalesOrder.xsl (SAP/SQL_SalesOrder.xml)
Field Onventis | DB-Field Onventis | XML (added to standard logic, no parameters needed) | Type (SAP) |
IncotermsVersion | IncotermsVersion; L: 4 | Incotermsv | char4 |
Example:
<Poheader>
...
<Incotermsv>2010</Incotermsv> (The node is transferred if a value is set in the GUI)
...
</Poheader>
<Poheaderx>
...
<Incotermsv>X</Incotermsv> (Node in X-Structure is then also transferred like this)
...
</Poheaderx>/
Note: The node will be transferred as (<Incotermsv/>) if no value is set in the GUI & the node in X-Structure will then not be transferred.
(/ONV/BP_CREATE)
ExportXslResources: SAP/ONVENTIS/XSL_OUT_Supplier_BP_Create.xsl (SAP/ONVENTIS/SQL_Supplier.xml)
Added a parameter “Export_IncotermsVersion” with default value “false” - In this case nothing new will happen
If the parameter is set to “true”, added the XML node <IncoV> to the structure (see example)
The node will be transferred as (<IncoV>2020</IncoV>) if a value is set in the GUI
The node will be transferred as (<IncoV></IncoV>) if no value is set in the GUI
Field Onventis | DB-Field Onventis | XML | Type (SAP) |
IncotermsVersion | IncotermsVersion; L: 4 | IncoV | char4 |
Example:
<ItEkorg>
<item>
<Ekorg>1010</Ekorg>
<Ekgrp>003</Ekgrp>
<Zterm>0008</Zterm>
<Waers>EUR</Waers>
<IncoV>2020</IncoV> (if a value is set in the GUI)
<Inco1>CFR</Inco1>
<Inco2>Stuttgart</Inco2>
<Verkf/>
<Webre>X</Webre>
<Minbw>15.00</Minbw>
<Xersy>X</Xersy>
<Delkz />
</item>
</ItEkorg>
SAP/ERP → ONV
(/ONV/ORDERS05)
ImportXslResource: /SAP/ONVENTIS/XSL_IN_OrderS05_Order.xsl
No parameter added, extended the standard logic
Field Onventis | DB-Field Onventis | XML Segment | XML | Type (SAP) |
IncotermsVersion | IncotermsVersion; L: 4 | E1EDK17 | LKTEXT (if QUALF=VER) | char4 |
Example:
<E1EDK17 SEGMENT="1">
<QUALF>001</QUALF>
<LKOND>CFR</LKOND>
<LKTEXT>IncoLocation1</LKTEXT>
</E1EDK17>
<E1EDK17 SEGMENT="1">
<QUALF>VER</QUALF>
<LKTEXT>2010</LKTEXT>
</E1EDK17>
<E1EDK17 SEGMENT="1">
<QUALF>002</QUALF>
<LKTEXT>IncoLocation1</LKTEXT>
</E1EDK17>
<E1EDK17 SEGMENT="1">
<QUALF>003</QUALF>
<LKOND>CFR</LKOND>
<LKTEXT>IncoLocation2</LKTEXT
</E1EDK17>
Logic Explained:
a. Possibility 1: E1EDK17
with QUALF = VER
is present and <LKTEXT>
contains a valid value (2010
or 2020
)
Action:
· Will Import the value into Onventis field IncotermsVersion
.
· Also import the corresponding Code and Place, if provided via QUALF = 003
.
b. Possibility 2: E1EDK17
with QUALF = VER
is present but <LKTEXT>
contains an invalid value (e.g., 1990
, XYZ
)
Action:
· Do not save the invalid value.
· Clear all three fields in Onventis:
o Incoterms Version
o Incoterms Code
o Incoterms Place
· Log warning message: “Imported Incoterms Version <value> is not supported. Only 2010 or 2020 are allowed”
c. Possibility 3: E1EDK17
with QUALF = VER
is present but <LKTEXT>
is empty (e.g., <LKTEXT></LKTEXT>
or <LKTEXT/>
)
Action:
· Clear Incoterms Version, Code, and Place in Onventis.
d. Possibility 4: No E1EDK17
segment with QUALF = VER
exists in the XML
Action:
· Clear Incoterms Version, Code, and Place in Onventis.
In the nutshell below is the combination logic :

(/ONV/CREMAS05)
ImportXslResource: SAP/ONVENTIS/ZCREMAS05_IN_SAPSupplier.xsl (Onventis.R4.BO.BC.Pipelines.SAP.SAPSuppliers)
Added a parameter “Import_IncotermsVersion” with default value “false”
Field Onventis | DB-Field Onventis | XML Segment | XML | Type (SAP) |
IncotermsVersion | IncotermsVersion; L: 4 | E1LFM1M | INCOV | char4 |
Example:
<E1LFM1M SEGMENT="1">
<LIFNR>0001001170</LIFNR>
<EKORG>1010</EKORG>
<ERDAT>20250211</ERDAT>
<ERNAM>ONVENTIS_CON</ERNAM>
<MINBW>0</MINBW>
<INCO1>CFR</INCO1> -- “Incoterms code”
<INCO2>Stuttgart</INCO2> -- “Incoterms place”
<PLIFZ>0</PLIFZ>
<VENSL>0.0</VENSL>
<MINBW2>0</MINBW2>
<INCOV>2010</INCOV> -- “Incoterms version”
...
</E1LFM1M>
Logic Explained:
When Import_IncotermsVersion = false
· We will not look for the Incoterm Version that was defined
· If the Incoterm Code is not sent, the Field remains empty (Version: Null, Code: Null, and location: Null)
· If the Incoterm Code is sent, fall back to Incoterm Version 2010
· But the code should be right (from 2010)
· If the code is not from Incoterms 2010, it will be blank (Version: 2010, Code: Null, and location: Null)
When Import_IncotermsVersion = true
· Will clear the following fields in Onventis (if previously set):
o Incoterms Version (INCOV
)
o Incoterms Code (INCO1
)
o Incoterms Place (INCO2
)
· Log a warning if invalid value is sent in version field (e.g. anything other than 2010 or 2020) “Imported Incoterms Version <value> is not supported. Only 2010 or 2020 are allowed”
In the nutshell below is the combination logic :

Incoterm version in Enterprise Supplier Import and Export
Enterprise Supplier Export
ExportXslResource: EnterpriseStructure/XSL_OUT_Supplier.xsl (EnterpriseStructure/SQL_Supplier.xml)
No new parameter added, extension to standard logic
Field Onventis | DB-Field Onventis | XML | Type (SAP) |
IncotermsVersion | IncotermsVersion; L: 4 | IncotermVersion | char4 |
Example:
<SupplierSapPurchaseOrgSettings>
<item>
<SapPurchaseOrgNr>1100</SapPurchaseOrgNr>
<UserNr></UserNr>
<UserGroupNr></UserGroupNr>
<Currency>EUR</Currency>
<PaymentTermNr>130</PaymentTermNr>
<IncotermVersion>2020</IncotermVersion>
<DeliveryTermNr>EXW</DeliveryTermNr>
<DeliveryTermPlace>RV</DeliveryTermPlace>
<InvoiceVerification>0</InvoiceVerification>
<MinOrderValue>50.0000</MinOrderValue>
<EvaluatedReceipt>0</EvaluatedReceipt>
</item>
</SupplierSapPurchaseOrgSettings>
Note: The node is transferred as (<IncotermVersion>XYZ</IncotermVersion>), if a value is set in the GUI and the node is transferred as </IncotermVersion> if no value is set in the GUI
Enterprise Supplier Import
ImportXslResource: EnterpriseStructure\XSL_IN_Supplier.xsl (Onventis.R4.BO.BC.Pipelines.Enterprise.SupplierAdapter)
No new parameter added, extension to standard logic
Field Onventis | DB-Field Onventis | XML | Type (SAP) |
IncotermsVersion | IncotermsVersion; L: 4 | IncotermVersion | char4 |
Example:
<SupplierSapPurchaseOrgSettings> <item> <SapPurchaseOrgNr>1100</SapPurchaseOrgNr> <UserNr></UserNr> <UserGroupNr></UserGroupNr> <Currency>EUR</Currency> <PaymentTermNr>130</PaymentTermNr> <IncotermVersion>2020</IncotermVersion> <DeliveryTermNr>EXW</DeliveryTermNr> <DeliveryTermPlace>RV</DeliveryTermPlace> <InvoiceVerification>0</InvoiceVerification> <MinOrderValue>50.0000</MinOrderValue> <EvaluatedReceipt>0</EvaluatedReceipt> </item> </SupplierSapPurchaseOrgSettings>
Note: The node is transferred as (<IncotermVersion>XYZ</IncotermVersion>), if a value is set in the GUI and the node is transferred as </IncotermVersion> if no value is set in the GUI
In the nutshell below is the combination logic :
