developer's guide: managing integration content - … sap cloud platform integration for processes...

Download Developer's Guide: Managing Integration Content - … SAP Cloud Platform Integration for Processes 2018-02-15 Developer's Guide: Managing Integration Content

If you can't read please download the document

Upload: buibao

Post on 12-Mar-2018

1.554 views

Category:

Documents


596 download

TRANSCRIPT

  • PUBLIC

    SAP Cloud Platform Integration for Processes2018-05-11

    Developer's Guide: Managing Integration Content

  • Content

    1 Managing Integration Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    2 Developing Integration Content Using the Eclipse Integration Designer. . . . . . . . . . . . . . . . . . .62.1 Understanding the Basic Concepts and the Development Environment . . . . . . . . . . . . . . . . . . . . . . .6

    Elements of an Integration Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Understanding the Integration Content Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Restrictions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    2.2 Installing and Configuring the Tool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Opening the Integration Designer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Configuring the SAP Cloud Platform Integration Preferences. . . . . . . . . . . . . . . . . . . . . . . . . . . 19Uninstalling a Feature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23

    2.3 Developing Integration Flows and Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Creating Integration Project for an Integration Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23(Optional) Creating a Working Set of Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Importing SAP NetWeaver PI Objects from On-Premise Repository. . . . . . . . . . . . . . . . . . . . . . .26Modifying an Integration Flow Model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Saving Integration Flow as a Template. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Using Custom Functions in Message Mapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    2.4 Developing Value Mappings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Creating a Value Mapping Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Editing the Value Mapping Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Exporting and Importing Value Mapping Groups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Referencing Value Mappings from a Message Mapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Checking the Value Mapping Consistency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

    2.5 Configuring an Integration Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Assigning the Sender and Receiver Participants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Defining Channels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Defining Message Transformers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190Defining Message Persistence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242Validating Message Payload against XML Schema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252Defining Message Routing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253Defining Security Elements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297Defining Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329Defining Tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333Defining Additional Elements (Others). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343Defining the Error Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346Error Classification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .347

    2 P U B L I CDeveloper's Guide: Managing Integration Content

    Content

  • Specifying Runtime Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348Defining Transaction Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .352Externalizing Parameters of Integration Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355

    2.6 Working with the Mapping Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361Creating a Message Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361Handling Inconsistencies in Mapping Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365Exporting Mapping Details to Excel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367

    2.7 Testing an Integration Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368Checking the Consistency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368

    2.8 Operations-Related Tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369Deploying an Integration Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369Viewing Error Logs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370Activating Tracing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371

    2.9 References to Additional Help. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .374

    3 Packaging Integration Content in SAP Cloud Platform Integration Web Application. . . . . . . .3763.1 Uploading Integration Packages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3763.2 Creating an Integration Package. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3773.3 Working with an Integration Package. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3783.4 Editing an Integration Package. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3793.5 Locking Integration Packages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3803.6 Updating Integration Packages and their Contents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3813.7 Exporting Integration Packages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382

    4 Developing Integration Content With the SAP Cloud Platform Integration Web Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .383

    4.1 Understanding the Basic Concepts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .384Elements of an Integration Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384Product Profiles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .394Restrictions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .398

    4.2 Working with Prepackaged Integration Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3994.3 Add Integration Packages to the Customer Workspace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4004.4 Creating an Integration Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4014.5 Content Transport. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402

    Enabling Content Transport. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404Creating HTTP Destination in Solutions Lifecycle Management. . . . . . . . . . . . . . . . . . . . . . . . 405Content Transport Using CTS+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406Content Transport Using Transport Management Service (Beta). . . . . . . . . . . . . . . . . . . . . . . 407Content Transport using Manual Export and Import. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408Content Transport using MTAR Download. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409

    4.6 Importing Content from ES Repository. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410Configuring Connectivity to ES Repository. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410

    Developer's Guide: Managing Integration ContentContent P U B L I C 3

  • Importing Mapping Content from ES Repository. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411

    4.7 Working with Mapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412

    Viewing Mapping Details in Mapping Viewer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413

    Create Message Mapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415

    Create Message Mapping Definition Resource. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416

    Create Custom Mapping Expression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .418

    Test Message Mapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419

    Creating Value Mapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421

    Configuring Value Mappings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422

    Create XSLT Mapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .423

    4.8 Migrate to New Version. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424

    4.9 Specify the Runtime Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425

    4.10 Configure Externalized Parameters of an Integration Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .429

    4.11 Configure Multiple Integration Flows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431

    4.12 Configure Integration Flow Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432

    Integration Flow Editor for SAP Cloud Platform Integration. . . . . . . . . . . . . . . . . . . . . . . . . . . 432

    Assign Sender and Receiver Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436

    Assign Adapter to Communication Channel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437

    Configure Adapter in Communication Channels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438

    Define Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584

    Define Message Transformers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588

    Define Routing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .649

    Define Security Elements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687

    Define Message Persistence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709

    Validating Message Payload against XML Schema in Web UI. . . . . . . . . . . . . . . . . . . . . . . . . . . 719

    Define Call. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .720

    Define Additional Elements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730

    Defining Transaction Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733

    Externalize Parameters of an Integration Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .736

    Define Error Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739

    Manage Resources of an Integration Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740

    Problems View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742

    Error Classification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .742

    4.13 Deploying Data Flows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743

    4.14 Tracing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .744

    4 P U B L I CDeveloper's Guide: Managing Integration Content

    Content

  • 1 Managing Integration Content

    Design integration content in order to specify how messages are to be exchanged between the connected components.

    SAP Cloud Platform Integration provides a set of tools and applications that help you perform end-to-end tasks on development and deployment, packaging and publishing, accessing and editing the integration content.

    This topic provides an overview of roles, working environment and tasks involved in managing integration content.

    Quick Links:

    Developing Integration Content With the SAP Cloud Platform Integration Web Application [page 383] Developing Integration Content Using the Eclipse Integration Designer [page 6]

    Since the tasks are performed by different roles, in different working environment such as, Integration Designer on Eclipse platform or SAP Cloud Platform Integration Web application on SAP UI5, the figure below helps you understand the relationship between the roles, tools/applications, and tasks:

    Developer's Guide: Managing Integration ContentManaging Integration Content P U B L I C 5

  • 2 Developing Integration Content Using the Eclipse Integration Designer

    SAP Cloud Platform Integration provides integration tools on the Eclipse platform to model integration flows, configure attributes of the integration flows, and deploy them to the runtime.

    You can work with the integration tools in the local development mode, which means that you create an integration project in your local Eclipse workspace and start developing integration content using the features available in the Integration Designer perspective. Once the content is ready, you deploy the project to the runtime in the SAP Cloud Platform Integration infrastructure.

    Installing Features of SAP Cloud Platform Integration

    To develop and configure integration content, install the features as described on the installation page SAP Cloud Platform Integration Tools.

    2.1 Understanding the Basic Concepts and the Development Environment

    2.1.1 Elements of an Integration Flow

    An integration flow allows you to specify how a message is processed on a tenant.

    You can use integration flows to specify specific integration patterns like mapping or routing.

    A graphical editor allows you, the integration developer, to model the message processing steps and specify in detail what happens to the message during processing.

    In detail, you define the following aspects in an integration flow:

    The senders and receivers of the message How the senders and receivers are connected to the tenant (adapters) The steps that define the message processing

    The following figure provides a simplified and generalized representation of an integration flow.

    6 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

    https://tools.hana.ondemand.com/#cloudintegrationhttps://tools.hana.ondemand.com/#cloudintegration

  • Senders and Receivers

    You define a participant of an integration scenario as a sender or receiver. The senders and receivers typically represent the customer systems that are connected to the tenant and exchange messages with each other.

    Connectivity (Adapters)

    An integration flow channel allows you to specify which technical protocols should be used to connect a sender or a receiver to the tenant.

    NoteTo specify an adapter, click the connection arrow between the sender/receiver and the Integration Process box.

    Message Processing (Steps)

    You use integration flow steps to specify what should happen to a message during processing. Various step types support the wide range of integration capabilities of the Cloud-based integration platform.

    NoteTo insert a step into an integration flow, drag and drop the desired step type from the palette on the right of the graphical modeling area.

    Message Flows

    You use message flows to connect various integration flow elements.

    Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Eclipse Integration Designer P U B L I C 7

  • 2.1.1.1 Headers and Exchange Properties

    The integration framework gives you options to evaluate certain parameters at runtime, which allows you to define sophisticated ways of controlling message processing. There are two different kinds of parameter:

    Message headerThis is transferred as part of the message header.When you use an HTTP-based receiver adapter, these parameters are converted to HTTP headers and transferred as such to the receiver.

    NoteNote that data written to the message header during a processing step (for example, in a Content Modifier or Script step) will also be part of the outbound message addressed to a receiver system (whereas properties will remain within the integration flow and will not be handed over to receivers). Because of this, it is important to consider the following header size restriction if you are using an HTTP-based receiver adapter: If the message header exceeds a certain value, the receiver may not be able to accept the inbound call (this applies to all HTTP-based receiver adapters). The limiting value depends on the characteristics of the receiver system, but typically ranges between 4 and 16 KB. To overcome this issue, you can use a subsequent Content Modifier step to delete all headers that are not supposed to be part of the outbound message.

    Exchange propertyFor as long as a message is being processed, a data container (referred to as Exchange) is available. This container is used to store additional data besides the message that is to be processed. An Exchange can be seen as an abstraction of a message exchange process as it is executed by the Camel framework. An Exchange is identified uniquely by an Exchange ID. In the Properties area of the Exchange, additional data can be stored temporarily during message processing. This data is available for the runtime during the whole duration of the message exchange.When you use an HTTP-based receiver adapter, Exchange properties are not converted to an HTTP header for transfer to the receiver.

    You can use the Content Modifier to modify the content of the message header and the Exchange property (as well as of the message body) at one or more steps during message processing.

    You can use the message header and the Exchange property to configure various sophisticated ways of controlling message processing.

    One option is to use dynamic parameters:

    When configuring an integration flow using the modeling user interface, you can define placeholders for attributes of certain adapters or step types. The value that is actually used for message processing is set dynamically based on the content of the message. You can use a certain message header or Exchange property to dynamically set a specific integration flow property.

    Another option to derive such data from a message at runtime is to access a certain element in the message payload.

    The following headers and Exchange properties are supported by the integration framework.

    8 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

  • NoteA subset of these parameters is provided by the associated Open Source components, such as Apache Camel.

    Headers Relevant for Signing with XML Digital Signature

    CamelXmlSignatureTransformMethodsSpecifies transformation methods in a comma-separated list.You can use this header to specify transformation methods in a comma-separated list. This header will overwrite the value of the option Transform Method for Payload.

    Example

    Sample CodeExample of this use case: The XML signature verifier of the receiving system expects an XML signature as shown in the following code snippet.

    The signature is a detached signature, because the signature element is a sibling of the signed element B. However, the receiving system requires the enveloped-signature transform method to be specified in the Transforms list. To ensure this, you have to configure a detached signature in the XML Signer step, then add a Content Modifier step before the XML Signer step, where you specify the header "CamelXmlSignatureTransformMethods" with the constant value http://www.w3.org/2000/09/xmldsig#enveloped-signature,http://www.w3.org/TR/2001/REC-xml-c14n-20010315".

    ... ... ... aUDFmiG71

    Headers Relevant for Message Signing with XML Advanced Electronic Signature

    CamelXmlSignatureXAdESQualifyingPropertiesIdSpecifies the Id attribute value of the QualifyingProperties element.

    CamelXmlSignatureXAdESSignedDataObjectPropertiesIdSpecifies the Id attribute value of the SignedDataObjectProperties element.

    Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Eclipse Integration Designer P U B L I C 9

  • CamelXmlSignatureXAdESSignedSignaturePropertiesIdSpecifies the Id attribute value of the SignedSignatureProperties element.

    CamelXmlSignatureXAdESDataObjectFormatEncodingSpecifies the value of the Encoding element of the DataObjectFormat element.

    CamelXmlSignatureXAdESNamespaceOverwrites the namespace parameter value.

    CamelXmlSignatureXAdESPrefixOverwrites the prefix parameter value.

    Headers Relevant for Message Splitting

    CamelSplitIndexProvides a counter for split items that increases for each Exchange that is split (starts from 0).

    CamelSplitSizeProvides the total number of split items (if you are using stream-based splitting, this header is only provided for the last item, in other words, for the completed Exchange).

    CamelSplitCompleteIndicates whether an Exchange is the last split.

    Headers Relevant for Content Encoding

    CamelCharsetNameSpecifies the character encoding to be applied for message processing.Is relevant for content encoding steps.

    Headers Relevant for the HTTP and HTTPS Adapter

    CamelHttpUriOverrides the existing URI set directly in the endpoint.This header can be used to dynamically change the URI to be called.

    CamelHttpUrlRefers to the complete URL called, without query parameters.For example, CamelHttpUrl=https://test.bsn.neo.ondemand.com/http/hello.

    CamelHttpQueryRefers to the query string that is contained in the request URL.In the context of a receiver adapter, this header can be used to dynamically change the URI to be called.For example, CamelHttpQuery=abcd=1234.

    CamelHttpMethodRefers to the incoming method names used to make the request. These methods are GET, POST, PUT, DELETE, and so on.

    CamelServletContextPathRefers to the path specified in the address field of the channel.For example, if the address in the channel is /abcd/1234, then CamelServletContextPath is /abcd/1234.

    CamelHttpResponseCodeThis header can be used to manually set the HTTP response code.

    Content-TypeHTTP content type that fits to the body of the request.The content type is composed of two parts: a type and a subtype.For example, image/jpeg (where image is the type and jpeg is the subtype).Examples: text/plain for unformatted text

    10 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

  • text/html for text formatted with HTML syntax image/jpeg for a jpeg image file application/json for data in JSON format to be processed by an application that requires this

    formatMore information on the available types: https://www.w3.org/Protocols/rfc1341/4_Content-Type.htmlThe list of available content types is maintained by the Internet Assigned Numbers Authority (IANA). For more information, see http://www.iana.org/assignments/media-types/media-types.xhtml .

    NoteIf transferring text/* content types, you can also specify the character encoding in the HTTP header using the charset parameter.

    Here is an example of such a header:

    Content-Type: text/html; charset=utf-8

    The default character encoding that will be applied for text/* content types depends on the HTTP version: us-ascii for HTTP 1.0 and iso-8859-1 for HTTP 1.1.

    Text data in string format is converted using UTF-8 by default during message processing. If you want to override this behavior, you can use the Content Modifier step and specify the CamelCharsetName Exchange property. To avoid encoding issues when using this feature together with the HTTP adapter, consider the following example configuration:

    If you use a Content Modifier step and you want to send iso-8859-1-encoded data to a receiver, make sure that you specify the CamelCharsetName Exchange property (either header or property) as iso-8859-1. For the Content-Type HTTP header, use text/plain; charset=iso-8859-1.

    Content-EncodingHTTP content encoding that indicates the encoding used during message transport (for example, gzip for GZIP file compression).This information is used by the receiver to retrieve the media type that is referenced by the content-type header.If this header is not specified, the default value identity (no compression) is used.More information: https://tools.ietf.org/html/rfc2616 (section 14.11)The list of available content types is maintained by the Internet Assigned Numbers Authority (IANA). For more information, see:http://www.iana.org/assignments/http-parameters/http-parameters.xhtml#content-coding .

    Headers Relevant for the SFTP Adapter

    CamelFileNameOverrides the existing file and directory name that is set directly in the endpoint.This header can be used to dynamically change the name of the file and directory to be called.

    Headers Relevant for the Mail Adapter

    NoteThe mail adapter supports all possible headers that a mail server or mail client can set. Which headers are set or not set depends on the mail server and the mail client. The headers listed in the table below are examples of commonly used headers.

    Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Eclipse Integration Designer P U B L I C 11

    http://help.sap.com/disclaimer?site=https%3A%2F%2Fwww.w3.org%2FProtocols%2Frfc1341%2F4_Content-Type.htmlhttp://help.sap.com/disclaimer?site=http%3A%2F%2Fwww.iana.org%2Fassignments%2Fmedia-types%2Fmedia-types.xhtmlhttp://help.sap.com/disclaimer?site=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc2616http://help.sap.com/disclaimer?site=http%3A%2F%2Fwww.iana.org%2Fassignments%2Fhttp-parameters%2Fhttp-parameters.xhtml%23content-codinghttp://help.sap.com/disclaimer?site=http%3A%2F%2Fwww.iana.org%2Fassignments%2Fhttp-parameters%2Fhttp-parameters.xhtml%23content-coding

  • SubjectSpecifies the subject of the e-mail message.

    ToSpecifies the e-mail address that the message is sent to.

    CcSpecifies the additional e-mail address that the message is sent to.

    FromSpecifies the e-mail address that the message comes from.

    DateSpecifies the date and time when the e-mail was sent.

    Content-TypeSpecifies the format of the e-mail (html or plaintext)

    Message-IDSpecifies the ID that the mail system assigned to the e-mail when it was first created.

    Reply-toSpecifies the message ID of the message that this e-mail is a reply to.

    SenderSpecifies the actual sender (acting on behalf of the e-mail address stated in the From header).

    Archived-AtSpecifies a link to the archived form of an e-mail.

    Headers Relevant for the Aggregator Step

    CamelAggregatedCompletedByThis header is relevant for use cases with message aggregation.The header attribute can only have one of the following values: timeout

    Processing of the aggregate has been stopped because the configured Completion Timeout has been reached.

    predicateProcessing of the aggregate has finished because the Completion Condition has been met.

    Headers Relevant for JMS Messages

    JMSTimestampSpecifies the time when a JMS message was created.

    Headers Relevant for the SOAP (SOAP 1.x), SOAP (SAP RM), and IDoc Adapter

    SOAPAction HeaderThis header is part of the Web service specification.

    SapAuthenticatedUserNameContains the user name of the client that calls the integration flow.If the sender channel is configured to use client certificate authentication, no such header is set (as it is not available in this case).

    Additional Message Header

    You can specify one of the following headers (under Message Header in the Name field):

    12 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

  • SAP_ApplicationIDWhen you monitor the messages at runtime, you can search for all messages whose defined SAP_ApplicationID has a specific value (displayed as the MessageID attribute in the Message Monitoring editor).As Type, select the XPath expression that points to the message element that is to be used as the application ID.

    SAP_Sender SAP_Receiver SAP_MessageType

    You can use this property to categorize messages. SAP_MessageProcessingLogID

    You can use this property to read the ID of the message processing log (no write access supported).

    If you have specified SAP_Sender or SAP_Receiver, the corresponding values are displayed in the message processing log. If you change the SAP_Receiver value during message processing, all values are added to the receiver field in the message processing log as a comma-separated list. If you don't want this behavior, you can specify the exchange property SAP_ReceiverOverwrite (see below).

    Exchange Properties

    You can specify one of the following Exchange properties (under Exchange Property in the Name field):

    SAP_CorrelateMPLsYou can use this property to specify whether message processing logs (MPLs) are to be correlated with each other using a correlation ID.By default, MPL correlation is switched on. To specify this property, select Constant as Type and enter True or False as Value.

    SAP_ReceiverOverwriteHeaders that are added to a message using the SAP_Receiver header element during message processing are appended to the message processing log (MPL).This behavior is helpful in scenarios like,the multicast pattern, for example, where a message is sent to several receivers and all receivers are to be collected in the MPL (not just the last added header).By setting the SAP_ReceiverOverwrite exchange property to true, you can change this behavior in such a way that only the last added header is shown in the MPL.

    NoteExample configuration:

    Name: SAP_ReceiverOverwrite

    Type: Constant

    Value: True

    SAP_ErrorModelStepIDYou can use this property to set a Model Step ID for an integration flow step. This identifier is required to relate to an integration flow step in error handling.

    SAPJMSRetries

    Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Eclipse Integration Designer P U B L I C 13

  • Contains the number of retries of a JMS message.You can use this property to specify that the behavior of the integration flow changes depending on the number of retries that are actually performed. For example, you can configure a scenario where a mail is sent to an administrator with the message as an attachment and the integration flow is terminated successfully after a specified number of retries.

    SAPJMSAlerttimeSpecifies the time when an alert needs to be sent.

    SAPJMSRetryAtSpecifies the time when a JMS message must be retried.

    Related Information

    Dynamic Parameters [page 14]

    2.1.1.1.1 Dynamic Parameters

    You can define placeholders for attributes of certain adapters or step types. The values of these attributes will then dynamically be set based on the content of the processed message.

    For example, parameters From, To, Cc, Bcc, Subject, Mail Body as well as the attachment name, can be dynamically set at runtime from message headers or content.

    To set an attribute to be dynamically filled by a message header attribute, enter a variable in the form ${header.attr} in the corresponding field for the attribute of the corresponding step or adapter.

    At runtime, the value of the header attribute (attr) of the processed message is written into the field for the corresponding attribute of the outbound email.

    Example: Dynamic Attributes for the Mail Adapter

    For example, assume that you dynamically define the email Subject of the mail adapter as shown in the figure below by the variable {header.attr}.

    At runtime, a message is received whose header contains a header attribute attr with the value value1. The mail adapter will then dynamically set the subject of the outbound email with the entry value1.

    Note that the mail adapter processes message content either already contained in the inbound mail (from a sender system) or as modified by content modifier steps on its way between sender and mail adapter.

    14 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

  • As shown in the figure, we assume that the inbound message contains a header header1 with value value1. Let us assume that you like to define the Subject attribute of the mail receiver adapter dynamically via this header. To do that, specify the Subject field by the following entry:

    ${header.header1}

    As a result, the mail adapter dynamically writes value value1 of header header1 (from inbound message) into the subject of the outbound email.

    Dynamic Parameters for the different Adapters

    Adapter Type Parameters that can be set dynamically at runtime

    Mail Adapter Receiver: From, To, Cc, Bcc, Subject, Mail Body, Attachment Name

    AS2 Adapter Receiver: Own AS2 ID, Partner AS2 ID, Message Subject, Own e-mail Address, Content Type, Signing Algorithm, Encryption Algorithm, Public Key of certificate to be used for encryption, MDN Type (None/Sync/Async), MDN Asynch URL, MDN Signing Algorithm, MDN Signature verfication public key alias, AS2 receipient URL, AS2 MDN Sender

    HTTP Adapter Receiver: Address, Query

    Success Factors (SOAP) Adapter Receiver/Sender: Query, Parameters

    OData Adapter Receiver: Query, Custom Query Options, Resource Path

    SFTP Adapter File Name

    Dynamic Parameters for the different Step Types

    Adapter Type Parameters that can be set dynamically at runtime

    Data Store Operations Select Data Store Name

    Data Store Operations Write Data Store Name

    Entry ID

    Data Store Operations Get Data Store Name

    Entry ID

    Data Store Operations Delete Data Store Name

    Entry ID

    2.1.2 Understanding the Integration Content TypesSAP Cloud Platform Integration provides features on Eclipse to develop and configure integration content.

    The feature, called the Integration Designer, provides options to develop integration flows in your local Eclipse workspace, which implies no network connection is required during development. Each integration flow is

    Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Eclipse Integration Designer P U B L I C 15

  • associated with a project and can refer to other entities, such as message mappings, operation mappings, and WSDL definitions, that are available within the same project.

    The integration flow can also refer to an entity, such as a value mapping, that is not available within its project. You create a separate value mapping project such that the reference takes place across the projects within the workspace.

    The integration flow along with other referenced entities form the integration content. Once you complete the development of integration content, you deploy the integration flow project as well as the referenced value mapping to the runtime.

    NoteAnother feature, called the Integration Operation Monitoring, provides options to monitor the deployed integration projects in runtime.

    Types of Integration Projects

    The sections below introduce you to different project types that the tooling provides based on the entities.

    Integration Flow Project Type

    The Integration Flow project type contains packages for creating integration content, where each package consists of a particular entity.

    Integration Flow Project Structure

    Elements in Project Structure Description

    src.main.resources.mapping Package for mappings to be used in scenario

    src.main.resources.scenarioflows.integrationflow Package for BPMN integration flow

    src.main.resources.wsdl Package for interfaces like IDOC , WSDL used in scenario

    MANIFEST.MF File contains dependencies to runtime components and integration content metadata

    NoteAdditional files that are available in the Integration Flow project types are:

    Additional Elements in Project Structure Description

    src.main.resources Package for parameters.prop and parameters.propdef files

    parameters.prop File contains externalized attributes representing a variable such as a the customer's landscape information.

    parameters.propdef File contains metadata such as value type of the parameterized attribute, its description and whether the attribute should be configured mandatorily.

    Value Mapping Project Type

    The Value Mapping project type is used for scenarios that require you to map different representations of an object to each other. Each value mapping project contains one or more value mapping group that is a set of values of the object.

    16 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

  • Value Mapping Project Structure

    Elements in Project Structure Description

    MANIFEST.MF File contains dependencies to runtime components

    value_mapping.XML File contains value mapping groups that hold the objects and their corresponding representations

    2.1.3 Restrictions

    The Integration Designer allows you to model specific patterns which are handled at runtime in an unexpected way.

    The following table lists the restrictions.

    Restrictions and Alternative Configuration Settings

    Modelled Pattern Expected Behavior at Runtime

    Actual Behavior at Runtime Alternative Modeling Option

    Integration flow step with more than one outgoing sequence flows

    For example, after a Message Persistence step the message is supposed to be sent to multiple receivers in parallel.

    The same message is processed in parallel after the integration flow step.

    The messages are delivered to the different receivers in a sequence.

    Hereby, the order in that the messages are delivered is randomly generated.

    In addition to that, the following behavior may occur: the message which results from the processing in the previous sequence flow is taken as input for the next sequence flow.

    NoteAs an example, consider two parallel sequence flows where the first one contains an encryption step and the second one not. In that case, the receiver of the second sequence flow also gets an encrypted message (although in the second sequence flow no encryption step has been configured).

    Configure only one outgoing sequence flow and parallel processing using a multicast of messages.

    Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Eclipse Integration Designer P U B L I C 17

  • Comment on Database Transactions

    The following step types include transactional database processing.

    If one of the below listed steps is contained in an integration flow, the processing of the message is executed in one transaction.

    Data Store Operations step Select (in case delete=true) Write Get (in case delete=true) Delete

    Usage of Write variables Aggregator step Content Enricher

    CautionSuch steps might lead to resource shortages because long running transactions can cause node instability and impede other processes that are running in transactions.

    Some of the above mentioned steps or adapters persist data in the database. In case of an error, the whole process is rolled back and the original state is being re-established. That means, data from failed processes remain and, in case message processing fails, customers normally cannot access data about the failed processing (due to the roll-back).

    In case an error is propagated back to the calling component, all data that have been written in the course of the (failed) transaction are being removed (in other words: not persisted in the database). For the calling component, an error implies, therefore, to restart the integration flow.

    Transactional processing is also to be considered in scenarios that contain asynchronous decoupling. Lets assume integration flow A contains a Data Store Operation step. Integration flow B contains a Select operation on the Data Store and runs into an error. In that case, that data is preserved that has been written to the database by integration flow A. This behavior makes sense in particular when you consider the case that integration flow B changes or deletes the data that has been stored by integration flow A. In case integration flow B fails, the original data from integration flow A can be retrieved.

    Additional Restrictions

    Usage of an Aggregator step in a Local Integration Process or Exception Subprocess is not supported.

    2.2 Installing and Configuring the Tool

    You install the features of SAP Cloud Platform Integration on the Eclipse integrated development environment (IDE) to access the Integration Designer functions.

    18 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

  • 2.2.1 Opening the Integration Designer

    You open the Integration Designer as perspective in Eclipse.

    Context

    Procedure

    1. Start Eclipse.

    2. In the main menu, choose Windows Open Perspective Other...3. In the Open Perspective dialog, select Integration Designer.

    2.2.2 Configuring the SAP Cloud Platform Integration Preferences

    You can make specific settings for SAP Cloud Platform Integration in the Eclipse Preferences.

    Context

    You perform the tasks below to configure the tool settings with attributes you are likely to need when working with the Eclipse IDE.

    You can find the specific settings for SAP Cloud Platform Integration under Window Preferences SAP Cloud Platform Integration .

    Related Information

    Operations Server [page 20]Personalize [page 20]Repository Connection [page 22]Testing Configuration [page 23]

    Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Eclipse Integration Designer P U B L I C 19

  • 2.2.2.1 Operations Server

    You need to specify the connection from Eclipse to the tenant management node in order to perform tasks such as deploying integration flows on the tenant.

    The tenant management node contains the operations subsystem that is responsible for tasks such as deploying integration content or selecting monitoring data from the database.

    Operations Server Settings

    Property Description

    URL Tenant management node URL (also referred to as management URL)

    Enter the URL that was provided during tenant provisioning.

    User User and password for this connection

    Password

    Choose Test Connection to test whether the specified URL and user/password enable you to connect to the tenant management node.

    If the URL and user/password are correct but you still get the error message Sending request to server failed. Reason: Error during processing request on client, check the proxy settings in Eclipse (under Window Preferences General Network Connections ).

    2.2.2.2 Personalize

    You can specify personal settings that control how to deal with integration flow templates and how to handle integration project/integration flow creation.

    Personal Settings

    Property Description

    Store integration flow templates at Location where to store integration flow templates on your local computer

    20 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

  • Property Description

    Always create integration flow for new integration project If this checkbox is selected (which is the default setting), an integration flow is always created for a new integration project.

    When you choose to create a new integration project ( File

    Integration Project New ), a wizard opens. On the first page of the wizard, you enter the project name. When you click Finish (and you have selected the Always create integration flow for new integration project checkbox in the Preferences), an integration flow is created for the project (with the same name as the project).

    If you have deselected this checkbox, you have to explicitly specify an integration flow name (on the next page of the wizard) and finish the wizard in order to trigger the creation of an integration flow.

    2.2.2.3 Working with Product Profiles

    Product profile is a collection of capabilities such as success factor adapter, splitter or datastore elements, available for a particular product. You can consume these capabilities at the time of designing integration flows.

    Context

    SAP Cloud Platform Integration enables you to design for multiple runtimes at the same time. You should select specific product profile to develop content for the respective runtime.

    Note If a product profile does not support a particular capability then the checks report errors for

    unsupported components in the integration flow.

    Procedure

    1. To assign product profile at project level, execute the following substeps:a. Open an integration project, go to Properties tab.b. From the Product Profile drop down list, select the required profile.

    2. To assign product profile at workspace level, execute the following substeps:a. In Eclipse, navigate to Windows -> Preferences-> SAP Cloud Platform Integration-> Product Profiles.

    Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Eclipse Integration Designer P U B L I C 21

  • b. Select the required profile.

    Note If no product profile is selected, by default it is SAP Cloud Platform Integration at the project level

    configuration. Also, in that case the system applies workspace level product profile for the integration flow.

    If you want to import or export the zip file format of product profile, then you can use Import or Export option.

    If you update the tooling, cmd folder is placed inside workspace directory and old profiles cached in old cmd location are lost. You can manually copy old profiles to the new cmd location and restart eclipse.

    You can reload component metadata in the following 3 ways: You can reopen eclipse tool. You can reconnect to server.

    You can use icon (on eclipse toolbar) to manually download it.

    Related Information

    Product Profiles [page 394]

    2.2.2.4 Repository Connection

    If you need to import interfaces or mappings from an on-premise repository, such as the Enterprise Services Repository, you have to set the connection details to establish the connection with the repository.

    Connection to the Enterprise Services Repository is supported for both the Advanced Adapter Engine (AEX) and Dual Stack.

    Repository Connection Settings

    Property Description

    URL URL of the on-premise repository in the format http(s)://:

    User User and password for this connection

    Password

    Choose Test Connection to test whether the specified URL and user/password enable you to connect to the repository.

    22 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

  • 2.2.2.5 Testing Configuration

    You can specify settings that control how integration tests are executed.

    2.2.3 Uninstalling a Feature

    Context

    You use this task only if you need to uninstall a feature of an installed software plugin.

    Procedure

    1. From the main menu, choose Help About Eclipse SDK .2. In the About Eclipse SDK dialog, choose Installation Details.3. In the Eclipse SDK Installation Details wizard, select the required feature to be uninstalled.4. Choose Uninstall....5. In the Uninstall dialog, review the plugin you have selected and choose Finish.6. In the Software Update dialog, choose Restart Now.

    2.3 Developing Integration Flows and Projects

    2.3.1 Creating Integration Project for an Integration Flow

    Context

    An integration flow is a graphical representation of how the integration content can be configured to enable the flow of messages between two or more participants using SAP Cloud Platform Integration, and thus, ensure successful communication.

    Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Eclipse Integration Designer P U B L I C 23

  • You perform this task to create a BPMN 2.0-based integration flow model in your integration project under the src.main.resources.scenarioflows.integrationflow package. You can create an integration flow by using the built-in patterns, templates provided by SAP, or userdefined templates.

    NoteYou can use the templates provided by SAP in the New Integration Flow wizard page to help you create and modify integration flows based on certain scenarios. These templates are based on some of the SAP supported scenarios.

    RestrictionIn this release, SAP supports only limited number of possible integration scenarios.

    Procedure

    1. In the main menu, choose Window Open Perspective Integration Designer to open the perspective.

    2. In the main menu, choose File New Integration Project to create a new integration project.3. In the New Integration Project wizard, enter a project name.

    Note By default, Node Type is set to IFLMAP, which indicates that the integration flow is deployed to that

    node in the runtime environment. Choose product profile for the integration project from Product Profile field. The integration flow

    templates used during creation adheres to the latest version of a component available in product profile.

    4. If you want to add the project to the working set at this point, select the option Add project to working set.

    NoteIf you do not choose to add the project to the working set in this step, you can add it later. For more information about working sets, see Creating a Working Set of Projects [page 25].

    5. If you want to create an integration flow of a specific pattern for the new integration project, choose Next.

    NoteYou can also create an integration project together with a point-to-point integration flow. To enable this option, choose Window Preferences SAP Cloud Platform Integration Integration Flow Preferences page, and select the Auto-create integration flow on 'Finish' during integration project creation option.

    6. In the New Integration Flow page, enter a name for the integration flow.7. If you want to create an integration flow using the built-in patterns, select the Enterprise Integration

    Patterns category and choose the required pattern.

    24 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

  • 8. If you want to create an integration flow using SAP templates, select the SAP Defined Template category and choose the required template.

    9. If you want to create an integration flow using templates specific to your scenario, select the User Defined Template category and choose the required template.

    NoteYou can find the templates in the User Defined Template category only if you have saved an integration flow as a template. For more information, see Saving Integration Flow as a Template [page 29].

    10. Choose Finish.A new project with .iflw is available in the Project Explorer view.

    11. If you want to provide a description for the integration project, follow the steps below:a. In the Project Explorer, select the integration project and choose the Properties view.b. In the Properties view, select the Project Configuration tab.c. In the Project Configuration tab page, provide basic details about the integration project, and enter the

    bundle name and bundle ID.

    Note The bundle name and bundle ID that you enter get updated in the MANIFEST.MF file. The bundle name and the integration project name are two different attributes. The Node Type shows the runtime node type on which the integration flow is deployed. The description field allows you to enter brief information about the integration project to help

    other users understand the use of the project.

    12. Click the graphical area, and in the Properties view, select the Integration Flow tab page.13. Enter a description about the integration flow that provides information to other users who will view or

    work with the integration flow.14. Save the changes.

    2.3.2 (Optional) Creating a Working Set of Projects

    Context

    You perform this task to group projects using the Working Sets feature provided by Eclipse.

    For example, you can create a Working Set for grouping projects based on customer or you can create each Working Set for specific integration scenarios.

    NoteThe actions available in the context menu of the projects that are added to the Working Set remain as before.

    Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Eclipse Integration Designer P U B L I C 25

  • Procedure

    1. In the Project Explorer view of the Integration Designer perspective, select the dropdown icon from the toolbar of the view.

    2. Choose Select Working Set3. In the Select Working Set dialog, choose New.4. In the New Working Set dialog, select Resource and choose Next.5. Enter a name for the working set.6. Select a resource from the Working set contents section.7. Choose Finish.8. If you want to edit the working set, select the dropdown icon and choose Edit Active Working Set.

    9. Select the dropdown icon in the toolbar of the Project Explorer and choose Top Level Elements Working Sets to display the Working Set and its content in the Project Explorer.

    10. Select Top Level Elements Projects to display only the projects belonging to the existing working sets, .

    NoteIf you want to go back to the default Project Explorer view that displays all the projects irrespective of the Working Sets, select the dropdown icon in the toolbar of the Project Explorer and choose Deselect Working Set.

    2.3.3 Importing SAP NetWeaver PI Objects from On-Premise Repository

    Context

    You perform this task to import interfaces and mappings from an On-Premise repository, such as the ES Repository, into the integration project. In case of mappings, you can import message mappings (.mmap) and operation mappings (.opmap).

    RestrictionSee the table below to know about the list of unsupported functionalities of the mappings being imported:

    Unsupported functionalities of imported mappings

    Type of Mappings Limitations

    Message Mapping User Defined Functions with Channel type parameter

    RFC and JDBC lookups used in Mappings

    26 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

  • Type of Mappings Limitations

    Parameters declared through Parameter section of mapping editor (in ES Repository Builder )

    Used Imported Archives

    Used Function Libraries

    Containing schema from .xml or .zip files

    Operation Mapping Operations (source or target) with cardinality '0..unbonded' are not supported

    Operation mappings with cardinality 0..1 are not supported

    Operation mapping containing multiple operations are not supported

    Since parameters are not supported in Message Mapping, so operation mappings with binding are also not supported

    Operation Mappings with Java Mappings (Imported Archives, Java programs) and external programs are not supported

    Operation Mappings, with Do Not Resolve XOP Includes, Read Attachments are not supported

    Only synchronous operation mappings with at least one mapping program present- either request, response or fault, is supported.

    If the WSDL is already present, WSDLs are not overwritten

    Procedure

    1. In the Project Explorer, right-click on an integration project and from the context menu choose Import PI Object.

    2. In the Import PI Object dialog, select ES Repository below the object type you want to import.For example, if you want to import operation mappings, select ES Repository below Operation Mapping object type.

    3. Choose Next.4. In the Import Mappings from ES Repository dialog, select one or more objects and choose Finish.

    Results

    The imported objects are placed under their respective src.main.resources. folder. For example, check the imported mapping under src.main.resources.mapping and imported interface under src.main.resources.wsdl.

    WSDLs/XSDs corresponding to Message Types and Fault Message Types are placed under src.main.resources.mapping folder, other interfaces get placed under src.main.resources.wsdl.

    Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Eclipse Integration Designer P U B L I C 27

  • The imported operation mapping has the following features:

    If operation mapping contains message mapping, then the message mapping is downloaded as a jar under src.main.resources.mapping package.

    If the operation mapping contains XSLTs, then the files are downloaded as .xsl under src.main.resources.mapping.

    Imported source or target WSDLs are not supported in integration flows.

    2.3.4 Modifying an Integration Flow Model

    Context

    You perform this task if you want to modify the existing integration flow model. For example, if the templates provided by SAP do not exactly match your requirement, you can modify the integration flow created from the templates while adhering to SAP's modeling constraints.

    To add integration flow elements, you can drag the notations for systems, connections, mappings, routers, and so on, from the palette and drop it at the required location of the integration flow model in the graphical editor. Alternatively, you can add elements, such as mapping and split, to the integration flow model using the context menu options available on the connections of the model.

    NoteThe integration flow should match the SAP supported scenarios to avoid deployment failure.

    ExampleConsider an example which requires you to model an integration flow with multiple pools. The scenario with multiple pool may involve any of the following:

    Hosting same endpoint with different connectors, such as SFTP and SOAP connector Polling content from different servers Grouping similar integration logic that uses different interfaces

    The list of elements that you require to model a multiple pool integration flow are:

    1. One Sender element2. N Receiver elements3. N Integration Process pools for each incoming message from the Sender to a Receiver4. N Message Flows from the Sender to the Start Message element in the Integration Process pool. This

    indicates N incoming message.5. N Message Flows from each End Message element in the Integration Process pool to the corresponding

    Receivers. This indicates N outgoing message flows.6. Finally, Sequence Flows to connect the Start Message and End Message within each pools. This

    completes the integration flow modeling.

    28 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

  • Procedure

    1. Open the .iflw in the Model Configuration editor.2. To modify the graphical diagram using the notations in the Palette, follow the substeps below:

    a. If the Palette pane is hidden in the Model Configuration editor, choose Show Palette arrow at the right edge of the editor.

    b. Choose the required BPMN notation to modify the integration flow model.3. To modify the graphical diagram using the context menu options, follow the substeps below:

    a. In the Model Configuration editor, right-click on the connections within the pool.b. From the context menu, choose the necessary action to add an element. For example, Add Routing

    adds an Router notation to your graphical diagram that can be used either as a receiver router or an interface router.

    c. Save the changes.

    2.3.5 Saving Integration Flow as a Template

    Prerequisites

    You have specified the location path to store the userdefined templates at Windows Preferences SAP Cloud Platform Integration Personalize .

    Context

    You perform this task to save an integration flow as a template. The integration flow saved as template retain the attribute values so that you can reuse the template for similar configuration scenarios.

    Procedure

    1. In the Project Explorer view, open the .iflw from your project.

    2. From the main menu, choose File Save As .3. In the Save As Integration Flow Template dialog, enter a name for the template.4. If you want to retain the externalized parameters in the template then select Retain the externalized

    parameter(s) option.

    Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Eclipse Integration Designer P U B L I C 29

  • NoteIf the integration flow contains externalized parameters and you do not select this option, the integration flow gets saved with the most recent values you have assigned to the externalized parameters.

    5. Choose OK.

    Results

    You can find the new template in the location you have mentioned in the Preferences page. When you create the integration flow using the template, you can find the saved configurations.

    2.3.6 Using Custom Functions in Message Mapping

    Prerequisites

    Make sure you have created a valid Integration project with Message Mapping associated scripts.

    Context

    In Message Mapping, you can create your own custom functions by using groovy scripts and use them as required. You can use custom functions from the function palette for modeling the mapping expressions.

    Procedure

    1. In the Project explorer view, select src.main.resources.mapping package.

    2. In the context menu of src.main.resources.mapping, choose New Other .

    The New dialog box appears.

    3. Choose Message Mapping Next .

    The New Message Mapping dialog box appears.4. In the General Details section, enter the message mapping name in the Name field.5. In the Location Details section, select the project name using Browse

    30 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

  • The path of the selected project gets added to the Path field, and the selected message mapping page opens.

    6. In the Signature section of the message mapping, select the Source Element (.xsd) and Target Element (.xsd) by choosing Add

    7. In the Properties section, double-click the Definition tab to see the message mapping.

    The Standard Functions and Custom Functions appear on the function palette of the Properties section.8. Choose Custom Functions.

    NoteIn the Properties section, if you do not find any groovy scripts under Custom Functions in the function palette, then can add an existing groovy script or create a new groovy script.

    9. In the context menu of Custom Functions, choose Add to use and existing groovy script file.The Add Script dialog box appears.a. Select a groovy script (.gsh) file, and choose OK.

    The selected groovy script along with all the functions that fulfill the message mapping requirements appear under Custom Functions in the functions palette.

    10. In the context menu of Custom Functions, choose Create to create a new groovy script file.The New Mapping Script dialog box appears.a. Enter or select the parent folder for the new groovy script file.b. Enter the name of the new groovy script file in the File name field.c. Choose Finish.

    The new groovy script file appears under Custom Functions in the function palette. You can expand the new groovy script to see all the functions under it.

    In the function palette, you can select any groovy script under Custom functions and you can use it and customize it according to your requirements.

    11. If you want to add a function to the Expression editor, select a function under the groovy script in the function palette.

    12. Drag and drop the function from the groovy script to the text area of the expression editor.13. You can define your mapping logic by using your custom functions.

    14. Choose File Save .

    Note You can validate your mapping and check for errors by viewing the Problems tab, or Console tab, or

    Error log tab. If your mapping has any errors, then they are displayed with error markers . In the function palette, if you have used a function from one of your scripts under Custom Functions,

    and if that script is removed is from the functions palette, then an error marker is displayed. You can access the Message Processing logs using

    messageLogFactory.getMessageLog(context);. For access specific logs, please refer Javadocs.

    When you launch Eclipse, if you do not see your local workspace, choose File Switch workspaceOther... and select the required workspace.

    Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Eclipse Integration Designer P U B L I C 31

  • 2.3.6.1 Guidelines for Creating Mapping Scripts using Custom Functions

    You can create your own custom functions by using mapping scripts and use them as required. You can use custom functions from the function palette for modeling the mapping expressions.

    The execution mode for functions are supported by two types:

    Single value All values of context

    Guidelines for Creating Mapping Script for Single Value Type of Execution

    If you want to add a mapping script to a Message Mapping function palette, ensure that the following conditions are fulfilled:

    Make sure that each function has at least one argument, and also make sure that their type is also declared along with it.

    The supported types for mapping script are int, float, string, or boolean. Make sure that the functions return type is specified and that it can only be a String. Functions which you declare as private cannot be seen in the Message Mapping function palette, but it can

    be used in other functions internally. You can only use the functions of the JAR files supported by the Integration project/package that you are

    working on.

    Example

    import com.sap.it.api.mapping.* def String extParam(String P1,String P2,MappingContext context) { String value1 = context.getHeader(P1); String value2 = context.getProperty(P2); return value1+value2;}

    Guidelines for Creating Mapping Script for All Values of Context Type of Execution

    For all values of context, ensure that the following conditions are fulfilled:

    Make sure that Method does not return a value Method has an argument called Output, to which you can add values. Make sure that all the variables except Output and Mapping Context is of type array.

    32 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

  • Example

    import com.sap.it.api.mapping.* def void extParam(String[] P1,String[] P2, Output output, MappingContext context) { String value1 = context.getHeader(P1); String value2 = context.getProperty(P2); output.addValue(value1); output.addValue(value2);}

    2.4 Developing Value Mappings

    Context

    Procedure

    2.4.1 Creating a Value Mapping Project

    Context

    You use this task to create a value mapping definition that represent multiple values of an object. For example, a product in Company A is referred by the first three letters as 'IDE' whereas in Company B it is referred by product code as ''0100IDE". When Company A sends message to Comapny B, it needs to take care of the difference in the representations of the same product. So Company A defines an integration flow with a Mapping element and this Mapping element contains reference to the value mapping definition. You create such value mapping groups in a Value Mapping project type.

    Note Value Mapping Project does not support importing integration content.

    Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Eclipse Integration Designer P U B L I C 33

  • Procedure

    1. In the main menu, choose File New Project .

    2. In the New Project wizard, select SAP Cloud Platform Integration Integration Project .3. Choose Next.4. Enter a project name and select the required Project Type as Value Mapping.5. Choose Finish.

    A new project is available in the Project Explorer view. By default, the new value mapping project is configured with IFLMAP runtime node type.

    2.4.2 Editing the Value Mapping Project

    Context

    You use this task to define value mapping groups in the value_mapping.xml file that is available under the Value Mapping project type. You enter the group IDs for each set of agency, schema and a value of the object that together identify a specific representation of the object.

    Procedure

    1. Open the value_mapping.xml in the editor and choose the Source tab page editor.2. Enter the group ID, agency, schema and value as shown in the example below, and save the changes.

    UK Food Items Aubergine US Food Items Eggplant UK Food Items Coriander US

    34 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

  • Food Items Cilantro

    TipIf you want to edit the values, you can switch to the Design tab page editor.

    2.4.3 Exporting and Importing Value Mapping Groups

    Context

    You use this task to either import a .csv file containing value mapping groups into the Value Mapping project type within your workspace or export the content of value_mapping.xml from your workspace and store it as a .csv file in your file system. The format of the valid .csv file containing value mapping groups is shown in the

    image below:

    This task shows the steps for a simple scenario that requires you to export value mappings from your workspace, and import the same value mappings into a workspace located in another system.

    Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Eclipse Integration Designer P U B L I C 35

  • Procedure

    1. Export the value mapping groups into your local file systema. In the Project Explorer, select the value mapping project and choose Export Value Mappings.b. In the Export Value Mapping Groups wizard, select the required value mapping groups and choose

    Next.c. In the Export groups into a file page, enter a name for the .csv file and browse for a location to store the

    file.d. Choose Finish.

    The .csv file containing the exported value mapping groups is available at the selected file location.

    ExampleThe image below shows an example of a vale mapping group exported into a .csv file.

    2. Import the value mapping groupsa. In the Project Explorer, select the value mapping project that you want to import the value mappings to.b. Choose Import Value Mappings.c. In the Select a CSV File page, browse for the .csv file.d. Choose Finish.

    NoteYou cannot import value mappings that have been exported from Eclipse. If you do so, then the existing version of the value mapping files changes.

    The .csv file is imported as value_mapping.xml file, and is available under the value mapping project.

    36 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

  • ExampleThe screenshot below shows how the content of the .csv file (as shown in the previous screenshot) gets imported as the value_mapping.xml.

    2.4.4 Referencing Value Mappings from a Message Mapping

    Prerequisites

    You have imported message mapping (.mmap) from an On-Premise repository into the src.main.resources.mapping folder of the integration project in your workspace.

    You have placed the required source and target WSDLs into the src.main.resources.wsdl folder of the integration project in your workspace.

    You have added value_mapping.xml under the value mapping project.

    Context

    You use this procedure to configure the message mapping definition with references to a value mapping. The value mapping referencing is required when a node value of a message needs to be converted to another representation. The runtime can evaluate the reference only if you deploy the integration flow project containing the message mapping, and the associated value mapping project on the same tenant.

    Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Eclipse Integration Designer P U B L I C 37

  • Procedure

    1. In the Project Explorer view, expand the integration flow project.2. Under src.main.resources.mapping folder, double-click the .mmap to open it in the

    message mapping editor.3. In the Message Mapping Overview, under the Signature category, provide the source and target WSDLs.4. Choose the Definition editor tab page to view the message mapping tree structure.5. Connect a source node item with one or more target node item to define the mapping.6. Double-click the function icon on the connection, denoted as fx, to open the mapping relation between the

    source and target elements.For example, see the screenshot below:

    7. In the Expression tab page of the Properties view, expand the Function folder.For example, see the screenshot below:

    8. Select the valuemap option under the Conversion package and drop it within the Expression tab page.9. Connect the required node and the valuemapping function.

    38 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

  • For example, see the screenshot below:

    10. Double-click the value mapping function and provide details for the value mapping parameters.11. Save the changes.

    2.4.5 Checking the Value Mapping Consistency

    Context

    You can execute a consistency check to validate if the content of the project is adhering to the required definition of a value mapping.

    The consistency check is executed on the value_mapping.xml file. The inconsistencies can be mainly due to invalid content entered in the value_mapping.xml such as the value for an agency-schema pair is repeated , incorrect tags or missing tags.

    Procedure

    1. Right-click on the project and choose Execute Checks.2. Open the Properties view, and view the result of the check.

    Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Eclipse Integration Designer P U B L I C 39

  • 2.5 Configuring an Integration Flow

    Context

    You perform this task to configure an integration flow to represent a specific scenario.

    You configure the integration flow by adding elements to the graphical model and assigning values to the elements relevant to the scenario. The basic integration flow requires you to configure the sender and receiver channels to enable a point-to-point process flow from the sender to a receiver.

    The figure below helps you understand how a scenario is configured using an integration flow and is followed by an explanation:

    The scenario involves communication of System A with System P and System Q, where System A sends messages to System P and System Q.

    System A and System P have different communication protocols, whereas, System Q requires additional field information in the message format sent by System A. In such a case, you do the following configurations in the integration flow:

    Create an integration flow with a router branching out to two receivers. Configure conditions to route messages to the correct receiver. Place a mapping component in the communication between System A and System Q

    40 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

  • After configuration, the resulting integration flow should be similar to the example shown below:

    NoteYou can use an Error End event to throw the exception to default exception handlers in integration process.

    2.5.1 Assigning the Sender and Receiver Participants

    Context

    You perform this task to assign the sender participant and receiver participant to the integration flow. To allow the sender participant to connect to the tenant, you have to provide either the client certificates or authenticate using the SDN username and password.

    Procedure

    1. Assign the Sender Participanta. In the Model Configuration editor tab page, select the sender.b. In the Properties page, enter a name for the sender system that may represent a single participant or a

    group of logically related participants in a communication.c. Specify the Authentication Mode.

    You have the following options to authenticate the sender.

    Role-based AuthenticationSelect this options if you like to configure one of the following use cases: Basic authentication Client certificate authentication with certificatetouser mapping

    Client Certificate Authentication

    Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Eclipse Integration Designer P U B L I C 41

  • Select this option if you like to configure the use case that the permissions of the sender are to be checked on the tenant by evaluating the distinguished name (DN) of the client certificate (sent by the sender).Choose Add to browse and add an authorized client certificate or enter the Subject DN and Issuer DN manually.

    d. Save the changes.2. Assign the Receiver Participant

    a. In the Model Configuration editor page, select the receiver.b. In the Properties page, enter a name for the receiver system.c. Save the changes.

    2.5.2 Defining Channels

    Prerequisites

    You have configured connections to an On-Premise repository if you have to obtain interface WSDL from the repository into this project.

    NoteYou can import service interfaces from ES Repository with server version 7.1 onwards. The imported service interface WSDLs get added to src.main.resources.wsdl.

    For more information on setting the connections to the repository, see Setting the Connections to On-Premise Repository under Configuring the Tool Settings [page 19].

    If you want to use a WSDL available in your local file system, you have copied the file under src.main.resources.wsdl in your project.

    Context

    You perform this task to enable communication between the sender and receiver participants by defining connectors for the sender and receiver channels of the integration flow.

    Procedure

    1. In the Model Configuration editor page, select the sender or receiver channel (dotted lines at sender and receiver side).

    2. To configure the channel with a saved configuration that is available as a template, choose Load Channel Template from the context menu of the channel.

    42 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

  • 3. To specify new configurations, follow the instructions mentioned in the adjacent topic for the required connector.

    TipIf you want to reuse the connector configurations for channels that are within or across integration flows, then select the Copy and Paste option from the context menu of the channel.

    4. To save the configurations of the channel as a template, choose Save as Template from the context menu of the channel.

    NoteWhen you save the configuration of the channel as a template: The tool stores the template in the workspace as .fst. The tool saves the parameter key of the externalized parameters and not the values.

    2.5.2.1 Configuring a Channel with Mail Adapter

    The receiver mail adapter allows you to send encrypted messages by e-mail. The sender mail adapter can download e-mails and access the e-mail body content as well as attachments.

    Context

    You configure the mail adapter either as a receiver adapter or as a sender adapter.

    You can use the receiver mail adapter to send encrypted messages by e-mail.

    You can use the sender mail adapter to do the following:

    Download e-mails from mailboxes using IMAP or POP3 protocol Access the content of the e-mail body Access e-mail attachments

    NoteThe mailbox settings for downloading e-mails can interfere with the settings in the sender mail adapter.

    For example: When using POP3 protocol, the post-processing setting Delete/Remove might not work properly. In this case, try to configure the correct behavior in the mailbox.

    NoteTo access the mail attributes (Subject, From, or To), you have to set them manually as Allowed Headers on the Runtime Configuration tab. This adds them to a whitelist.

    Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Eclipse Integration Designer P U B L I C 43

  • NoteTo access an attachment, you have to use Groovy script or JavaScript.

    For more information about how to access attachments, see the documentation for the Script step.

    NoteIt is not possible to authenticate the sender of an e-mail

    Unlike with other adapters, if you are using the sender mail adapter, the Cloud Integration system cannot authenticate the sender of an e-mail.

    Therefore, if someone is sending you malware, for example, it is not possible to identify and block this sender in the Cloud Integration system.

    To minimize this danger, you can use the authentication mechanism of your mailbox. Bear in mind, however, that this mechanism might not be sufficient to protect against such attacks.

    There are three possible threats when processing e-mail content:

    Danger to a receiver system when forwarding e-mail contentE-mails can contain malware, such as viruses or Trojan horses.These will not affect the Cloud Integration system, but they can cause damage to a receiver system if it doesn't have sufficient protection strategies.

    Danger to the Cloud Integration systemE-mail content can be designed to affect the processing runtime of a system.Processing this content overloads the system and prevents requests from being fulfilled (denial of service).The Cloud Integration system is then unavailable until the problem is fixed.

    Reliability of dataSending e-mails is anonymous. It is not possible to verify whether the sender of an e-mail really is who they claim to be.Even if your mailbox has an authentication mechanism, this mechanism might not be sufficient.Therefore, data contained in an e-mail (for example, the amount of an order), is not reliable without further verification.

    CautionIf you select Run Once option in the Scheduler, you see messages triggered from all the integration flows with this setting after a software update. After the latest software is installed on a cluster, it is restarted.

    You see messages from these integration flows with Run Once setting.

    RestrictionAn integration flow you deploy in SAP Cloud Platform Integration deploys in multiple IFLMAP worker nodes. Polling is triggered from only one of the worker nodes. The message monitoring currently displays the process status from the worker nodes where the Scheduler is not started. This results in the message monitor displaying messages with less than a few milliseconds, where the schedule was not triggered. These entries contain firenow=true in the log. You can ignore these entries.

    44 P U B L I CDeveloper's Guide: Managing Integration Content

    Developing Integration Content Using the Eclipse Integration Designer

  • Procedure

    1. In the Model Configuration editor, double-click the receiver channel.2. In the Adapter Type section of the General tab page, select Mail from the Adapter Type dropdown.3. If you configure a sender adapter, you can specify the following attributes in the Connection, Proce