Runtime Variables Overview for SAP Cloud Platform Integration (HCI)

This is an overview of useful and commonly used (dynamic) variables and runtime parameters of SAP Cloud Platform Integration (f.k.a. SAP HCI) based on Apache Camel´s expression language.

SAP Help: Headers and Exchange Properties

Those variables can be used in Integration Flows (e.g. in artifacts as Content Modifier, Router, Channels, …):

${in.body} or ${body}Message Payload
${header.var1}Message Header Variable (var1)
${property.prop1}Exchange Property (prop1)
${date:now:yyyy-MM-dd}Current Date/Time with format
${property. SAP_MessageProcessingLogID}Message Guid
${CamelFileName}File Name
${CamelHttpUri}HTTP URI (URL with QueryString)
${CamelDestinationOverrideUrl}SOAP Adapter URL
${exception.message}Error Message
${exception.stacktrace}Error Stacktrace

WHINT AWS SQS Adapter (On-Premise)


This JCA Adapter for SAP PI / SAP Process Orchestration (PO) connects to Amazon Web Service´s (AWS) Simple Queue Service (SQS) as well as Simple Notification Service (SNS) in a reliable way. It enables businesses to establish a properly decoupled application integration using message queues and topics like known queue-based protocols as JMS or AMQP.

“Amazon SQS is a distributed queue system that enables web service applications to quickly and reliably queue messages that one component in the application generates to be consumed by another component. A queue is a temporary repository for messages that are awaiting processing.” (Source: Amazon)

Our AWS SQS Adapter enables SAP Process Orchestration/SAP PI to act as a publisher and/or consumer of SQS messages.

The current release uses the version 1.11.143 of the aws-java-sdk.


  • Consume Messages from Amazon SQS
  • Send Messages to Amazon SQS Queue
  • Publish Messages to Amazon SNS Topic
  • Dead Letter Queue Support
  • Adapter-specific Message Attributes, also custom attributes
  • Internet Proxy Support
  • Quality of Service: EO/EOIO


  • Works with SAP PI 7.1 and higher (incl. SAP Process Orchestration 7.50)
  • Deploy the SCA file provided by Whitepaper InterfaceDesign using NWDS/JSPM/SUM/Telnet
  • Import the TPZ file provided by Whitepaper InterfaceDesign into the ESR


  • Create a new sender or receiver communication channel and select the adapter “AWS_SQS” from namespace “” (Software Component WHINT_ASQ 2016.10 of
  • Transport Protocol: AWS SQS
  • Message Protocol: HTTP
  • Other Options
    • SQS Queue Name
    • AWS Region (select from Drop-Down)
    • Authentication based on Access/Secret Key
    • Internet Proxy (Host, Port, User, Password)
    • Sender Only:
      • Consuming Interval (secs)
      • Quality of Service (EO/EOIO with queue name)
    • Receiver Only:
      • SNS Topic ARN (Receiver only) as alternative to SQS Queue Name
      • Default Visibility Timeout (secs)
      • Message Retention Period (secs)
      • Maximum Message Size (1-256 KB)
      • Delivery delay (secs)
      • Receive Message Wait Time (secs)
      • SQS Dead Letter
        • Use Redrive Policy
        • Dead Letter Queue Name
        • Maximum Receives (1-1000)
    • Set/Use Adapter-specific Message Attributes (ASMA)
      • Namespace:
      • externalMessageID – Message Id received from broker
      • createDateTime – Timestamp of message creation
      • SqsQueueName – Name of the SQS Queue
      • SqsTopicName – Name of the SNS Topic ARN
      • Custom Message Attributes (up to 10, free defined)

Example Configuration






Businesses in the European Union can check the VAT (value added tax) identification number (id) of their trading partners to make sure the companies are still operating, in business and the information provided is valid.

Our solution enables companies using SAP to automate the checks directly from their ABAP-based (ERP, CRM, SRM, S/4HANA) system.


  • Business-To-Government Communication (B2G)
  • Turn-key Integration Content
  • Automatic check of European VAT id based on the master data or single id
  • Service Providers
    • BZSt (Germany) – Bundeszentralamt für Steuern: Bestätigungsverfahren Umsatzsteuer-Identifikationsnummer (USt-IdNr.)
    • VIES (European Commission) – VAT Information Exchange System: VIES VAT number validation


  • The government services are publicly available, no further charges apply
  • Cloud Edition: You need an existing CPI (f.k.a. HCI) tenant from SAP where you can deploy our content. Please contact us in case you haven´t any.

Cloud Edition
Integration Content for SAP Cloud Platform Integration

Configuration Guide for CPI

  1. Import the ZIP Archive provided by Whitepaper InterfaceDesign into your SAP Cloud Platform Integration Tenant
  2. Deploy both artifacts (Integration Flow & Value Mapping) without changing anything.
    • In case you prefer certificate-based authentication from your SAP ABAP system, you have to change the Authorization in the SOAP Sender Channel from “User Role” to “Client Certificate”
  3. Check the SOAP URL under Monitoring ->  Manage Integration Content -> “WHINT B2G VAT Check EU ID” and note it down for the SAP ABAP system configuration

You can obtain the Integration Content here:

On-Premise Edition
Integration Content for SAP Process Integration (PI) / SAP Process Orchestration (PO)

Configuration Guide for PI/PO

  1. Import the TPZ Archive provided by Whitepaper InterfaceDesign into your ESR
  2. Configure the iFlow/Integrated Configuration/Receiver Determination manually using the following artifacts of ESR Software Component “WHINT_VAT 2017.04 of”
    1. Sender System: <Your SAP ABAP System>
    2. Sender Interface: VATIDCheckQueryResponse_Out (
    3. Sender Communication Channel: Apply Template
    4. Receiver Party: BZSt
    5. Receiver System: BZSt_API
    6. Content Based Routing: XPath //ProviderID=”BZSt”
    7. Operation Mapping: VATIDCheck_BZST (
    8. Receiver Communication Channel: Apply Template REST_RCV_<version> (
    9. Receiver Party: EuropeanCommission
    10. Receiver System: VIES_API
    11. Operation Mapping: VATIDCheck_VIES (
    12. Receiver Communication Channel: Apply Template SOAP_RCV_<version> (
    13. Content Based Routing: XPath //ProviderID=”VIES”

You can obtain the Integration Content here:

Configuration Guide: SAP Business Suite (ABAP)

  • Import the ABAP Transport provided by Whitepaper InterfaceDesign by
    1. extracting the ZIP file into the directories /usr/sap/trans<data/cofiles>
    2. adding the transport via transaction STMS (Extras->Other requests->Add)
  • On-Premise Edition (SAP PI/PO)
    • no further setup necessary as long as your ABAP proxy runtime is configured to exchange data with your PI/PO Integration Engine/Adapter Engine
  • Cloud Edition (SAP Cloud Platform Integration)
    1. Enter the “Web Service Configuration” (transaction SOAMANAGER -> Service Administration)
    2. Select Consumer Proxy “/WHINT/CO_VATIDCHECK_QUERY_RES”
    3. Create Logical Port (name e.g. “CPI”) as “Manual Configuration”
    4. Mark the Logical Port as Default
    5. Select the Authentication
      1. User ID/Password: (S-User which is enabled on your CPI tenant with User Role “ESBMessaging.send”) or
      2. X.509 SSL Client Certificate
    6. Enter the URL under Transport Binding (URL Path, Host, Port, Proxy (If necessary))
    7. Select “Suppress ID Transfer” in Message ID Protocol
    8. Activate


Integration Content for SAP Cloud Platform Integration by WHINT Solutions

We continue our mission towards providing Turn-key Integration Content (Standard Interfaces) based on SAP´s Middleware. We strongly believe that enterprises benefit from this kind of standardization, especially in the cloud context as applications and data providers are going towards providing standard API´s or data formats.
Our Integration Content for SAP´s Cloud Middleware (SAP Cloud Platform Integration/HCI) so far is as below:

WHINT® CurrencyRates

  • Automatic Upload of Exchange Rates into SAP Business Suite (ERP/CRM,…) / S/4HANA
  • Data Providers: OANDA, European Central Bank (ECB),
  • Benefit: no manual maintenance of exchange rates in SAP, robust interface from reliable data sources
  • SAP Content Hub


WHINT® PaymentReporting Ingenico

  • Automatic Posting of Documents into SAP FICO / S/4HANA from the Payment Service Provider (PSP) Ingenico
  • Transfer of Credit Card Payment Transactions into SAP Accounting
  • Benefit: Manual postings in finance are not needed, an automatic reconciliation takes place which increases data consistency and correct book-keeping of credit card transactions
  • SAP Content Hub


With this article we would also like to share our pipeline of solutions with standard integration content we are currently working on:


  • B2G (Business-To-Government) Communication
  • Automatic Check of European VAT numbers with the German Tax Register (BZSt) as well as the European Commission (VIES)
  • Provides Feedback about the correctness/validity of a European VAT id of a Customer/Vendor (SAP ERP) or Business Partner (SAP CRM)
  • Benefit: Supports legal EU requirement to check client´s business VAT id. No need to perform the check manually on the government´s website



  • Full Application Integration between SAP ERP and Microsoft Dynamics CRM
  • Using ORBIS Integration Manager & ORBIS Connect
  • Objects transferred: e.g. Customer, Contact, Price Lists, SalesOrder, Invoice, …
  • Benefit: Enables integration between heterogeneous applications to ensure data consistency in real-time


WHINT® ShipmentManagement UPS

  • Message Processing of Shipment Data between SAP ERP (LE) and UPS
  • Based on UPS´s official Developer APIs
  • Supported Scenarios:  UPS Shipping, UPS Time in Transit, UPS Dangerous Goods, UPS Pre-Notifications, UPS QuantumView, UPS Tracking

WHINT® TravelExpenses Xpenditure

  • Automatic Updoad of Expenses from Xpenditure into SAP FICO (ERP) / SAP S/4HANA Finance
  • Based on Xpenditure´s public API

Stay tuned for updates on SAP Cloud Integration Content by WHINT® Solutions

New SAP Training: WIFMS4 – Inbound Interface Management in SAP S/4HANA

We have developed a standard SAP Training about managing inbound interfaces (ABAP Proxies) in SAP S/4HANA and SAP Business Suite (ERP, CRM, …): WIFMS4.


You learn how to implement a robust error handling using already available (and free) SAP standard technology:

  • Forward Error Handling (FEH) and
  • Error and Conflict Handler (ECH)

without the need of implementing a heavy solution, such as SAP AIF.

SAP Blog/Announcement on WIFMS4

SAP Online Training Catalog (with dates)

Integration Cookbook for SAP Middleware


Our Integration Cookbook is a collection of Good & Best Practices for SAP middleware products:

  • SAP Process Integration (PI)
  • SAP Process Orchestration (PO)
  • SAP Business Process Management (BPM)
  • SAP Cloud Platform Integration (HCI)

It provides principles, guidelines and naming conventions to build great integration solutions and interfaces.

Process Modeling Principles for Interface Designers

This article is part of our Integration Cookbook.


  • Limit the process model to 25 – 50 steps to keep them manageable. This can be achieved by hiding complexity in sub-processes.

Interface Design

  • Use Service Interfaces based on Message Type and Data Type defined in ESR. Using External Definitions (XSD, WSDL) can lead to compatibility problems during import and runtime (also when anonymous types are used in the WSDL/XSD, the data structures might not be available for process context definition.
  • Service Interfaces used for communication between BPM and PI/AEX have to have the interface pattern Stateless (XI30-Compatible) in ESR.
  • The interfaces of a BPM process should be as lean as possible. Any mapping and conversion logic should be handled in PI already. Use a harmonized and lean data model for the process context and not to “pollute” the BPM with the specifics of the individual source/target systems. Instead use mappings in integration flows to perform conversions between the data model used for the process context and the specific requirements of the source/target interfaces.
  • XSD constraint violations, for example if a string field requires a minimum length of three characters but it is attempted to assign a value consisting of only two characters, can cause issues that are hard to track down. For example if starting a process instance fails because such a constraint is violated in the output mapping in the start event of a process the incoming message is considered to be successfully delivered to the BPM engine but despite that no corresponding process instance can be found in Manage Processes of NetWeaver Administrator, i.e. the only hints regarding that situation are exceptions in the Developer Trace. Due to that it is advisable to avoid using data types with XSD constraints when defining the data model for the process context.

Correlation Conditions

  • Use direct value comparisons (e.g. string-equals), i.e. avoid expensive operations

Connectivity BPM – PI

  • Using the XI protocol requires a service interfaces that is XI30 compliant as well as a specific BPM service group configuration and communication channels making use of the local proxy runtime.


  • BPM always locks whole context objects and not substructures of objects, so in case parallel process flows manipulate different substructures of the same context object, splitting up the object will reduce the number of access collisions.
  • If parallel process flows manipulate the same data structure, the access to the data structure is automatically serialized and might slow down the processing.
  • A data object can easily become a synchronization point, thus hamper the system performance, if it is modified from different artifacts of the process model concurrently. That is especially to be considered when using parallel split gateways or dynamic parallel loops (par-for-each) and trying to store the outcome of the parallel operation into a single/central data object.
  • The same issue can appear if you mark a single activity for dynamic parallel execution (par-for-each) and perform an output mapping to the same data object. Again, the execution would be serialized due to concurrent request for a write lock.
  • A real parallelization can be achieved by modeling an embedded sub-flow and execute this flow dynamically in parallel.
  • Additionally, in the sub-flow you have to separate the concrete activity from the mapping to the central DO. Use an intermediate DO to store the mapping result, i.e. to avoid a serialization by a write-lock on the central DO. Then map the intermediate DO content to the central DO. The system will serialize the execution at the mapping activity. But since mapping is typically a much less expensive operation than the ‘real’ activity, the lock won’t last long. This means the negative impact of the serialization at the DO is less than not using a sub-process.

Operation Mappings

  • In the process model Operation Mappings are consumed like any other service interface by assigning them to an automated activity. Unlike other calls to PI, a service reference of type WS is required here instead of XI as operation mappings are called via SOAP and not the XI protocol. Additionally, as the operation mapping is running on the local AEX of the Process Orchestration system, the service group has to point at the local system.
  • To ensure that calling the operation mapping works at runtime a BPM DC consuming an Operation Mapping needs a build-time dependency to the public part “def” of the framework DC “bie/sca/scdl/contributors/maas”. Usually that dependency is created automatically if an Operation Mapping is imported from ESR.
  • BPM does not support consuming Operation Mappings that contain the following characteristics:
    • Value Mappings
    • Parameters
    • Synchronous Interfaces Responses
    • Fault Messages
  • The combined length of application name and operation mapping service port name must not exceed 255 characters (SAP Note 1890617).

Context Size

  • Avoiding large process contexts (>1 MB) increases the number of concurrent processes that can be executed by the server. The count of mapped attributes (per activity) should be smaller than fifty.
  • Claim Check: Reducing the footprint of the process context can be achieved with the Claim Check Pattern.

Error Handling

  • The standard boundary event TechnicalError can be used to capture system errors during synchronous calls in BPM automated activities.
  • For the purpose of sending notifications or automated error handling activities details about the technical error are available as output fields and can be mapped to the process context.
  • Additionally, if interfaces consumed by BPM contain fault structures boundary events for catching those faults will be provided by BPM and can be added to the automated activity.
  • In case no boundary events are added to an automated activity the default behavior applies. In this case the process will be suspended into an error state. In NetWeaver Administrator such a process instance can be resumed manually and it will try to continue execution at the step where the error occurred. This can be automated by using the WHINT ProcessRestart Job.


  • Business rules which are meant to be reusable and not related to a specific process reside in a dedicated rules DC. Reusable business rules are called via web service by BPM and other consumers.
  • The web-service generation feature provided by BRM only works inside-out, i.e. it is not possible to directly use an ESR Service Interface as a web-service interface for a business rule.
  • Decision Table Maintenance
    • The content of BRM Decision Tables can be maintained in two basic ways, either by a developer using NetWeaver Developer or by authorized users in the web-based rules manager directly on the application server. A decision which method should be used for a specific scenario can be made based on the following aspects:
NWDS Rules Manager
Accessibility Developers only Authorized users, i.e. also business users if necessary
Software Logistics Content is transported through system landscape like all other development artifacts via NWDI, changes available to all developers Changes are applied directly on a single run time system, i.e. even changes directly on the production system are possible. No automatic transport of the content change to other systems of the landscape. No impact on the content defined by the developer in NWDS, developer would have to acquire and import the changed definition manually.

Further Recommendations

Naming Conventions for SAP Cloud Platform Integration

This article is part of our Integration Cookbook.

Name Pattern  Example
<Area> <Scenario>


  • WHINT PaymentReporting Ingenico
  • Concur Integration
  • SuccessFactors Employee Central
<Area> <Interface>
  • WHINT PR Ingenico CollectionAppendixReport
  • Replicate Business Partner from SAP Business Suite
System <Name>
  • SAP_C4C
  • Concur
  • SSFS
  • Sharepoint
  • ECB
  • Ingenico
_<Direction: SND/RCV>
_<opt:Technical Details>
  • SOAP_SND_JournalEntry
  • MAIL_RCV_Attachment
Adapter (Camel)  tbd


Naming Conventions for SAP BPM

This article is part of our Integration Cookbook.

Name Pattern  Example
Same as ESR SWC or
generic SWC “BPM” when
used in NWDI due to the
underlying components
  • BPM of
  • bpm/otc/edi
  • bpm/le/shipment/tracking/ups
Process Name <Action>
  • Download_ShipmentTracking
  • Query_FxRates
  • Process_EcomOrder

Naming Conventions for SAP PI

This article is part of our Integration Cookbook.


Name Pattern  Example
<Name>, <Version> of <vendor-url>
  • Microsoft Navision 3.5 of
  • SAP ERP 6.0 of

(same for Unit)
<Name>, <Version> of <vendor-url>
(use version 1.0 and increase only,
if you need to keep both)
  • MS_NAVISION_ERP 1.0 of
SAP: <SID> on <host>
<NAME> on <host>

The combination of
name/SID and host makes
the Technical System unique!

  • WSM on winwsm
  • ORACLE on oradev01
(only used if
several instances
Transport Level examples:

  • D = Development
  • T = Test
  • Q = Quality
  • S = Sandbox
  • P = Production
  • CDB_FR_T

* An E-Mail or FTP Server can also be created as a Business Component in Integration Directory as it exists only once

Do not differentiate between On-Premise and Cloud Applications. Both have to be created in the SLD if you have multiple instances (Transport Levels).


Name Pattern  Example
Namespace http://<company-url>/xi/<shortname>/<area>
  • Create
  • Change
  • Cancellation
  • By<Object>
  • …Create…
  • …Change… (not update)
  • …Cancellation… (not Cancel/Delete/Remove)
  • …ByID… / …ByCustomerName…
  • Request / Confirmation
  • Query / Response
  • Notification
  • Information
  • (for persistent operations)
  • (for reading operations: don’t use Read/Select)
  • (async message transfer for a special purpose) e.g. GoodsMovementNotification
  • (publish & subcribe mode)
(Stateless XI 3.0)
<optional: If-Action><MessageCategory(s)>
_<Direction: Out/In>
  • CustomerCreateRequestConfirmation_In
  • CustomerByIDQueryResponse_Out
  • PurchaseOrder_4010_Notification_Out
with several
_<Direction: Out/In>
The Operation Names are
1:1 as the Stateless XI 3.0
Service Interfaces
  • Customer_Out
  • SalesOrder_In
Message Type <Document/Data>
<optional: Bulk>
<optional: If-Action>

The Response Message of a
JDBC operation is always

  • CustomerCreateRequest
  • CustomerCreateConfirmation
  • CustomerByIDQuery
  • CustomerByIDResponse
  • CustomerBulkChangeNotification
  • CostCenterBulkCreateInformation
Fault Message
<optional: Action>
  • CustomerCreateFault
  • SalesOrderFault
Data Type = MessageType or by
adding Message as suffix
  • Inside-Out (XML/JSON/CSV/TXT/DB):
    Import what you can as External Definition!
  • Outside-In: See if you can copy a Global Data
    Type (GDT) from SAP GLOBAL 2.0
  • XSD_ANSI_X12_4010_850
  • XSD_eLS
  • WSDL_DTElement
  • XSD_gasxml_v40
without direction (_Out/_In)
  • SENDER_CustomerChangeNotification

If Source and Target are equal,
they do not have to be repeated twice:

  • SENDER_CustomerByIDQueryResponse
for sync response
  • SENDER_CustomerByIDQuery
  • SENDER_CustomerByIDResponse


  • SAPCRM_XSLT_SalesOrder
Integration Scenario
  • FIN_CostCenter
  • OTC_SalesOrder
  • PTP_PurchaseOrder
  • MDM_Product
  • Send_CustomerChange
  • Check_CreditLimit
  • Create_SalesOrder
_<Direction: SND/RCV>
  • IDOC_RCV_740
  • FILE_SND_AccountingDocument
  • REST_SND_Customer



Name Pattern  Example
  • FIN_CostCenter
  • OTC_SalesOrder_Ecommerce
  • PTP_PurchaseOrder
_<Direction: SND/RCV>
_<opt:Technical Details>
  • FILE_SND_EOIO_AccountingDocument
  • MAIL_RCV_Attachment
Component (A2A)
<Application Name>
  • SFTP
Component (B2B)
Component (B2G)
Component (BPM)
  • BPM_SAPS4_Orders_Aggregate
<Company> /
<Government Organization>
  • DHL
  • Metro
  • BZSt
  • Clearingstelle
  • Google
  • EZB
Will be shown as Configuration
Scenario in Integration
Builder, however a different
naming should be used,
e.g. adding _ as prefix
  • _FIN_CostCenter
  • _OTC_SalesOrder
  • _PTP_PurchaseOrder
w/out TransportLevel>
  • MS_CRM_DYNAMICS__CustomerChange
  • WEBSHOP__EcomOrder