Professional Documents
Culture Documents
SAP - CPI - Naming - Standard Document
SAP - CPI - Naming - Standard Document
Design Standards
DOCUMENT HISTORY 2
1. INTRODUCTION 4
1.1 Document Purpose 4
2. CLOUD PLATFORM INTEGRATION (SCPI) 4
2.1 Features 4
3. IFLOW OBJECTS 5
3.1 SAP Platform Cockpit 5
3.2 Package 5
3.3 Integration Flow 6
3.3.1 Participant 6
3.3.2 Process 6
3.3.3 Events 7
3.3.4 Mapping 7
3.3.5 Transformation 7
3.3.6 Call 8
3.3.6.1 External Call 8
3.3.6.2 Local Call 9
3.3.7 Routing 9
3.3.8 Security 10
3.3.9 Persistence 11
3.3.10 XML Validator 11
3.3.11 Value Mapping 11
3.3.12 Communication Channel 11
4. IFLOW LOOK AND FEEL GUIDELINES 12
5. EXTERNALIZE CONFIGURATION PARAMETERS 12
6. RESTARTING MESSAGES 12
6.1 AS2, JMS, SF Adapters 12
6.2 Other Adapter 13
7. OPTIMIZING IFLOW MEMORY FOOTPRINT 13
8. ERROR HANDLING 14
The aim of this document is to establish a set of standards and guidelines to be used within Itelligence
Group for all development work related to SAP Cloud Integration Platform (SCPI).
The document describes in detail the naming conventions and design principles for SCPI within
Itelligence Group. In addition, design principles relating to the development and configuration within
SCPI also
form part of this document. The document is not intended as a training manual for SCPI developers;
rather it is assumed that the reader is already experienced in SCPI development work.
Please note that this is a living document and subject to change as and when necessary.
This service runs in the Neo and Cloud Foundry (CF) environments. Integration content artifacts
designed in Neo environment is also compatible in CF environment with certain limitation as mentioned
in the SAP note 2752867.
2.1 Features
Implement diverse scenarios: Integrate processes and data in application-to-application (A2A)
and business-to-business (B2B) scenarios.
Connect to multiple endpoints: Integrate various applications and data sources from SAP and
non-SAP, on premise, as well as the cloud. SAP Cloud Platform Integration comes with a set of
prebuilt adapters.
Customize SAP integration scenarios: Benefit from prepackaged integration content to jump-
start integration projects and to set up productive scenarios with only minimum effort. You can
extend predefined integration flows according to your requirements.
Develop custom adapters: Use the adapter SDK to build your own custom adapters for additional
connectivity needs.
Set up secure and reliable communication: Use our core integration and security capabilities for
the safe and reliable processing of messages. Configure the way how messages are exchanged
within an integration scenario so that the data involved is protected according to the newest security
standards.
Implement various communication modes: Orchestrate business processes and integrate data
in synchronous as well as in asynchronous scenarios. SAP Cloud Platform Integration also
supports reliable messaging processes based on asynchronous decoupling implemented by using
queuing mechanisms.
Integrate with SAP Process Orchestration: Use SAP Cloud Platform Integration and SAP’s on-
premise integration Platform, SAP Process Orchestration, seamlessly integrated.
3. Iflow Objects
3.2 Package
Custom Package: A collection of related APIs or services, belonging to one product or product
area, packaged and delivered together.
The name of the package should refer to the two products plus product lines between which the
integration needs to take place if it is point to point. If you are developing generic integration
packages or country specific packages then refer to generic and country specific sections.
Example:
Point to Point: SAP Cloud for Customer Integration with SAP Hybris Marketing.
Integration flow template opens that contains the following shapes: Sender (this represents your
sender system), Receiver (this represents a receiver system), Integration Process (this will later
contain all the processing steps that define how a message is processed on the tenant). The
Integration Process shape contains a Start and an End event.
3.3.1 Participant
1.1.1 Process
● Integration Process:
The process names should be self-explanatory and closely related to the
corresponding action name. Use upper camel.
1.1.2 Events
Provide appropriate message. Timer, Terminate Message, Start Message, Start Event, Esclation, Error
Start Event, Error End Event, End Message and End Event.
1.1.3 Mapping
● Message Mapping
Message Mapping enables to map source message to target message
Syntax: MM_<SourceMessage>_to_<TargetMessage>
EX: MM_MATMAS_to_ProductCategoryReplication
● XSLT Mapping
XSLT Mapping enable to map source message to target message
Syntax: XSLT_<name>
EX: XSLT_RemoveNamespace
1.1.4 Transformation
● Content Modifier
This Step is used to modify content
● Converter
Converts JSON or CSV to XML and vise versa.
Syntax: <ZIP or GZIP Compression/ ZIP or GZIP decompression/ Base64 or MIME Multipart
encoder/ Base64 or MIME Multipart decoder>
EX: ZIP Compression Sales Order Data
● Filter
Filters information by extracting a specific node from the incoming message
● Message Digest
Calculates a digest of the payload or parts of it and stores the result in a message header.
Syntax: MD_<Payload>
EX: MD_InvoicePayload
● Scripts
This step is used to create groovy script or Java script to handle complex flows
Syntax:GS_<Objective of script>
JS_< Objective of script>
Ex: GS_formatMessage
1.1.5 Call
RequestReply<Process>>
EX: RequestReply Account Details
● Process Call:
Add a call process step to execute steps defined under the local integration process pool
Add a process call step to repeatedly execute steps defined in a local integration process
3.3.7 Routing
● Aggregator: Aggregates several incoming message to a single one
o Sequential MultiCast: Sends same message to more than one path in defined
sequence.
EX: SequentialMultiCast Header LineItem
o Parallel MultiCast: Sends same message to more than one path in parallel.
EX: ParallelMultiCase OrderDetails
o General Splitter: Breaks down a message into individual messages keeping the
encapsulating elements
3.3.8 Security
● Decryptor: Decrypts the encrypted data contained in the body of the incoming message
o PKCS7 Decryptor
o PGP Decryptor
6. Restarting Messages
In Cloud Platform Integration, when message processing fails, there is no means to retry the
message processing automatically by the system out-of-the-box for most of the adapters. It
must be resent from the source system. The following sections provide alternative approaches.
For the SuccessFactors adapter, it has a parameter called “Retry on Failure” which enables the
adapter to retry connecting to SuccessFactors system in case of any network issues. The
adapter tries to re-establish connection every 3 minutes, for a maximum of 5 times by default
We can overcome the standard limitation by designing the integration process to retry only
failed messages using CPI JMS Adapter or Data Store and deliver them only to the desired
receivers.
● JMS Approach
Useful Links:
https://blogs.sap.com/2017/06/19/cloud-integration-configure-asynchronous-messaging-with-retry-
using-jms-adapter/
https://api.sap.com/package/DesignGuidelinesRelaxDependenciestoExternalComponents?
section=Artifacts
The messages are persisted in data store for many days (as configured in the process step – default
being 90 days); or a variable which stays in the database for 400 days after the last access. In this
approach, messages are persisted for pre-defined period in CPI Data Store and automatically
restarted after failures. You can also configure number of retries in a global variable.
https://blogs.sap.com/2019/11/04/sap-cpi-retry-send-failed-asynchronous-messages-based-on-time-
interval/
8. Error Handling
There are integration scenarios where the number of error cases exceed the success cases. It isn’t
required to generate alerts for all error cases require alerts but we generally do require that the
right level of error information is captured and logged to aid in troubleshooting.
We should design integrations to handle errors gracefully and provide mechanisms to handle
below errors for every interface:
1. Recoverable Errors – Recoverable errors are the errors that Client programs can recover
from to take appropriate alternate execution paths. Such errors are the result of failure to meet
a business rule.
2. Non-Recoverable errors – These are the errors that Client programs cannot recover from. This
kind of errors are result of some unexpected errors during runtime such as programming errors
such null pointers, resources not available etc. This should be minimized by testing NFR(s)
and boundary conditions during testing phases and by identifying it from continuous service
improvement analysis