developer's guide: managing integration content - help.sap.com

324
PUBLIC SAP HANA Cloud Integration for process integration 2015-10-28 Developer's Guide: Managing Integration Content

Upload: others

Post on 26-May-2022

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Developer's Guide: Managing Integration Content - help.sap.com

PUBLIC

SAP HANA Cloud Integration for process integration2015-10-28

Developer's Guide: Managing Integration Content

Page 2: Developer's Guide: Managing Integration Content - help.sap.com

Content

1 Managing Integration Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Developing Integration Content Using the Integration Designer. . . . . . . . . . . . . . . . . . . . . . . . .72.1 Understanding the Basic Concepts and the Development Environment . . . . . . . . . . . . . . . . . . . . . . .7

Elements of an Integration Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Understanding the Integration Content Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Restrictions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10

2.2 Installing and Configuring the Tool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Opening the Integration Designer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Configuring the SAP HCI Preferences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Uninstalling a Feature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16

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

2.4 Developing Value Mappings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26Creating a Value Mapping Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Externalizing Parameters of Integration Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Editing the Value Mapping Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Exporting and Importing Value Mapping Groups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Referencing Value Mappings from a Message Mapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Checking the Value Mapping Consistency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

2.5 Configuring an Integration Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Assigning the Sender and Receiver Participants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Defining Channels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Defining Message Transformers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102Defining Message Persistence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128Validating Message Payload against XML Schema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133Defining Message Routing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134Defining Security Elements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152Defining Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182Defining Tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185Defining Additional Elements (Others). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191Defining the Error Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

2P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentContent

Page 3: Developer's Guide: Managing Integration Content - help.sap.com

Specifying Runtime Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194Dynamic Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

2.6 Working with the Mapping Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197Creating a Message Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197Handling Inconsistencies in Mapping Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201Exporting Mapping Details to Excel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

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

2.8 Operations-Related Tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205Deploying an Integration Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205Viewing Error Logs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206Activating Tenant and Integration Flow Tracing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

2.9 References to Additional Help. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

3 Packaging Integration Content in SAP HCI Web Application. . . . . . . . . . . . . . . . . . . . . . . . . . 2113.1 Importing Integration Packages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2113.2 Creating an Integration Package. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2123.3 Working with an Integration Package. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2133.4 Editing an Integration Package. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2143.5 Locking Integration Packages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2153.6 Updating Integration Packages and their Contents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2163.7 Exporting Integration Packages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

4 Designing Integration Content With the SAP HCI Web Application. . . . . . . . . . . . . . . . . . . . . 2184.1 View Integration Packages in the Catalog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2194.2 Add Integration Packages to the Customer Workspace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2194.3 Add an Integration Flow to an Integration Package. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2204.4 Configure an Integration Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221

Configure a Product Profile for a Tenant. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223Use Product Profiles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

4.5 Configure Multiple Integration Flows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2254.6 Assign Adapters to Communication Channels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2264.7 Configure Adapter in Communication Channels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .227

Configure a Channel with Mail Adapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228Configure Communication Channel with SOAP (SAP RM) Adapter. . . . . . . . . . . . . . . . . . . . . . 232Configure Communication Channel with SOAP (1.x) Adapter. . . . . . . . . . . . . . . . . . . . . . . . . . 234Configure Communication Channel with SuccessFactors (SOAP) Adapter. . . . . . . . . . . . . . . . 239Configure Communication Channel with SuccessFactors (REST) Adapter. . . . . . . . . . . . . . . . 243Configure Communication Channel with SuccessFactors (OData) Adapter. . . . . . . . . . . . . . . . 245Configure Communication Channel with IDoc Adapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248Configure Communication Channel with OData Adapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250Configure Communication Channel with HTTP Adapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254

Developer's Guide: Managing Integration ContentContent

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 3

Page 4: Developer's Guide: Managing Integration Content - help.sap.com

Configure Communication Channel with Ariba Adapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258Configure Communication Channel with SFTP Adapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258Configure Communication Channel with Twitter Adapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

4.8 Define Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270Define an Escalation Event. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270

4.9 Define Message Transformers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271Configure CSV to XML Converter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271Configure XML to CSV Converter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273Define the XML-to-JSON Converter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274Define Content Modifier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281Define Script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

4.10 Define Message Routers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285Define General Splitter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286Define Iterating Splitter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288Define PKCS#7/CMS Splitter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289Define Sequential Multicast. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290General and Iterating Splitter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291Define Gather. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

4.11 Define Security Elements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295Sign the Message Content with PKCS#7/CMS Signer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296Encrypt and Sign the Message Content with PKCS#7/CMS. . . . . . . . . . . . . . . . . . . . . . . . . . . 297Define PGP Encryptor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299Define PGP Decryptor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300Define PKCS7 Decryptor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301

4.12 Define Message Persistence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302Define Data Store Operations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303Define Write Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304

4.13 Validating Message Payload against XML Schema in Web UI. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3064.14 Define Additional Elements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307

Define Local Integration Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3074.15 Define External Call. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .307

Define Content Enricher. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308Define a Send Step. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311

4.16 Define Error Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3124.17 Dynamic Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3134.18 Viewing Mapping Details in Mapping Viewer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3144.19 Editing Mapping Details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3164.20 Editing Scripts of a Mapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3174.21 Changing Source and Target Message Structuring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3184.22 Working with Value Mappings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3184.23 Testing a Message Mapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

4P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentContent

Page 5: Developer's Guide: Managing Integration Content - help.sap.com

4.24 Deploying Data Flows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320

Developer's Guide: Managing Integration ContentContent

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 5

Page 6: Developer's Guide: Managing Integration Content - help.sap.com

1 Managing Integration Content

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

SAP HANA Cloud 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.

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

6P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentManaging Integration Content

Page 7: Developer's Guide: Managing Integration Content - help.sap.com

2 Developing Integration Content Using the Integration Designer

SAP HANA Cloud 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 HANA Cloud Integration infrastructure.

Installing Features of SAP HANA Cloud Integration

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

The Integration Designer feature can be used with the Luna release (Eclipse 4.4).

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 processing steps that define the message processing

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

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 7

Page 8: Developer's Guide: Managing Integration Content - help.sap.com

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.

More information: Assigning the Sender and Receiver Participants [page 38]

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.

8P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 9: Developer's Guide: Managing Integration Content - help.sap.com

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.

2.1.2 Understanding the Integration Content Types

SAP HANA Cloud 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 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

Table 1:

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 in­tegration content metadata

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

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 9

Page 10: Developer's Guide: Managing Integration Content - help.sap.com

Table 2:

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 varia­ble such as a the customer's landscape information.

parameters.propdef File contains metadata such as value type of the parame­terized 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.

Value Mapping Project Structure

Table 3:

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.

10P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 11: Developer's Guide: Managing Integration Content - help.sap.com

Table 4: Restrictions and Alternative Configuration Settings

Modelled Pattern Expected Behavior at Run­time

Actual Behavior at Runtime Alternative Modelling Op­tion

Integration flow step with more than one outgoing se­quence flows

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

The same message is proc­essed in parallel after the in­tegration 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 follow­ing behavior may occur: the message which results from the processing in the previ­ous sequence flow is taken as input for the next se­quence 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 re­ceiver of the second se­quence flow also gets an encrypted message (al­though in the second se­quence flow no encryp­tion step has been config­ured).

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

2.2 Installing and Configuring the Tool

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 11

Page 12: Developer's Guide: Managing Integration Content - help.sap.com

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 HCI Preferences

You can make specific settings for SAP HANA Cloud 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 HANA Cloud Integration under Window Preferences SAP HANA Cloud Integration .

Related Information

Operations Server [page 13]Personalize [page 13]Repository Connection [page 15]Testing Configuration [page 15]

12P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 13: Developer's Guide: Managing Integration Content - help.sap.com

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.

Table 5: Operations Server Settings

Property Description

URL Tenant management node URL (also referred to as manage­ment 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.

Table 6: Personal Settings

Property Description

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

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 13

Page 14: Developer's Guide: Managing Integration Content - help.sap.com

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

HANA Cloud Integration tool 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:

14P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 15: Developer's Guide: Managing Integration Content - help.sap.com

a. In Eclipse, navigate to Windows -> Preferences-> SAP HANA Cloud Integration -> Product Profiles.b. Select the required profile.

Note○ If no product profile is selected, by defautlt it is Native 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.

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.

Table 7: Repository Connection Settings

Property Description

URL URL of the on-premise repository in the format http(s)://<host>:<port>

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.

2.2.2.5 Testing Configuration

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

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 15

Page 16: Developer's Guide: Managing Integration Content - help.sap.com

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 HANA Cloud Integration, and thus, ensure successful communication.

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 user-defined templates.

16P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 17: Developer's Guide: Managing Integration Content - help.sap.com

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.

NoteBy default, Node Type is set to IFLMAP, which indicates that the integration flow is deployed to that node in the runtime environment.

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 18].

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 HANA Cloud 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.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.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 17

Page 18: Developer's Guide: Managing Integration Content - help.sap.com

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 22].

10. Choose Finish.A new project with <integration flow>.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.

18P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 19: Developer's Guide: Managing Integration Content - help.sap.com

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 Set…3. 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:

Table 8: 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

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 19

Page 20: Developer's Guide: Managing Integration Content - help.sap.com

Type of Mappings Limitations

Parameters declared through Parameter section of mapping edi­tor (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 sup­ported

Since parameters are not supported in Message Mapping, so op­eration 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 map­ping program present- either request, response or fault, is sup­ported.

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.<object> folder. For example, check the imported mapping under src.main.resources.mapping and imported interface under src.main.resources.wsdl.

20P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 21: Developer's Guide: Managing Integration Content - help.sap.com

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.

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.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 21

Page 22: Developer's Guide: Managing Integration Content - help.sap.com

6. Finally, Sequence Flows to connect the Start Message and End Message within each pools. This completes the integration flow modeling.

Procedure

1. Open the <integration flow>.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 Exclusive Gateway 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 user-defined templates at Windows Preferences SAP HANA Cloud 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 <integration flow>.iflw from your project.

2. From the main menu, choose File Save As… .

22P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 23: Developer's Guide: Managing Integration Content - help.sap.com

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.

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.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 23

Page 24: Developer's Guide: Managing Integration Content - help.sap.com

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…

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.

24P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 25: Developer's Guide: Managing Integration Content - help.sap.com

○ 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.

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 function’s 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;}

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 25

Page 26: Developer's Guide: Managing Integration Content - help.sap.com

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.

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

26P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 27: Developer's Guide: Managing Integration Content - help.sap.com

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.

Procedure

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

2. In the New Project wizard, select SAP HANA Cloud 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 Externalizing Parameters of Integration Flow

Context

Externalizing parameters is useful when the integration content has to be used across multiple landscapes, where the endpoints of the integration flow can vary in each landscape. This method helps you to declare a parameter as a variable entity to allow you to customize the parameters on the sender and receiver side with a change in landscape.

Partial Parameterization enables to change part of a field rather than the entire field. This variable entity of the field is entered within curly braces.

List of parameters that can be externalized

● SOAP (SAP RM) adapter: Address, URL to WSDL● SOAP (SOAP 1.x) adapter: Address, URL to WSDL, Credential Name, Private Key Alias for Signing, Private

Key Alias for Encrypting, Proxy Type● IDoc (IDoc-SOAP) adapter: Address, URL to WSDL● SFTP adapter: Server Host , User Name , Directory● Sender Authorization: Subject DN and Issuer DN

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 27

Page 28: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. Externalize parameters by extraction.

NoteYou can extract certain parameters that are already configured in the integration flow, so that the parameters are externalized. You can view the extracted parameters in the Externalized Parameter view. If you have already extracted a parameter, the parameter cannot be extracted again.

a. From the Project Explorer view, open the <integration flow>.iflw in the editor.b. In the Model Configuration editor, right-click the graphical area outside the model and choose Extract

Parameters from the context menu.c. In the Extract Parameters dialog, select the parameters that have to be extracted and be available for

externalization.

NoteIn the Console view, you can see a summary of the parameter extraction.

d. Open the Externalized Parameters view.

NoteYou can view the externalized parameters of the field in the integration flow. The field is now available as a variable.

e. From the toolbar of the view, choose (Sync with Editor icon) to synchronize the integration flow that is currently open with the Externalized Parameters view.

f. Choose (Reload icon) to update the view with the list of externalized parameters.

g. You can edit parameter values and then choose (Save Parameters icon), from the toolbar of the view.

NoteThe Save Parameters icon is enabled only if the parameter values and the type are consistent. For drop down or combo box the values should be edited from here else, the parameter references are lost.

2. Externalize parameters by manual configuration.

NoteYou can use the step below if you want to externalize certain parameters in such a way that you do provide any values in the integration flow but want to manually configure the attributes in the Externalized Parameters view.

a. In the Project Explorer view, open the <integration flow>.iflw in the editor.b. In the Model Configuration editor, double-click the channel.

28P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 29: Developer's Guide: Managing Integration Content - help.sap.com

c. In the Channel editor, choose the Adapter-specific tab.d. Enter a value for the field that you want to externalize, in this format: {{<parameter name>}}.

NoteYou can externalize the value of the field so that the field is now a variable. For example, you might need to change the 'Address' field of a connector at the receiver without making any other changes to the integration flow. So, you enter {{server}} in the 'Address' field. The steps below show how you can specify data for the externalized parameters.

Only part of the field can also be changed. For example, in the given URL, http://{{host}}:{{port}}/FlightBookingScenario, host and port are the variable entities.

e. Save the changes in the channel editor.f. Open the Externalized Parameters view.g. From the toolbar of the view, choose Sync with Editor (icon) to synchronize the integration flow that is

currently open with the Externalized Parameters view.

NoteIn the Externalized Parameters view, you can see all the parameters that have been externalized in the integration flow. For example, if you have externalized the 'Address' field of a connector as {{server}} or you have selected this field for extraction, you can see the parameter under the Name column.

h. Open the Externalized Parameters view and choose (Reload icon).

NoteIn the Externalized Parameters view, you can view all the parameters that have been externalized in the integration flow. For example, if you have externalized the 'Address' field of a connector as {{server}} or you have selected this field for extraction, you can see the parameter under the Name.

i. From the toolbar of the Externalized Parameters view, choose (Save Parameters icon).

Note○ The Save Parameters icon in the Externalized Parameters view is enabled only if the parameter

values and the type are consistent.○ If you do not save the view using the Save Parameters icon, the parameters.prop file is not

updated with the new externalized parameters, which is indicated with an error marker in the Integration Flow editor. If the editor has no unsaved changes, the error marker remains even though the parameter content is saved. In such a case, you can execute the consistency check by using the Execute Checks context menu option in the Model Configuration editor.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 29

Page 30: Developer's Guide: Managing Integration Content - help.sap.com

2.4.2.1 Configuring Multiple Externalized Parameters

Context

You use this task when you want to provide the same values for the common parameterized attributes across multiple integration projects. The tool offers quick parameterization with the Configurations view that displays a list of externalized parameters from all the projects. If multiple integrations require same values for the externalized parameters, you can choose the Mass Parameterize option to fill values for all the common parameters.

Procedure

1. In the main menu, choose Window Show View Others .

2. In the Show View dialog, choose Others Configurations .

3. In the Configurations view toolbar, choose (Mass Configure).4. In the Mass Configuration wizard, select the projects that contain the common parameters and choose

Next.5. Enter values for the list of parameters and choose Next. These values get applied to their corresponding

parameters that are common across the selected projects.

NoteA common parameter that has been assigned different values, is indicated using the tag Parameter has Different Values. If you delete this tag and enter a new value or keep it empty, the value of the common parameter changes accordingly across all the projects that use it.

6. Confirm if you want to update the common parameters with the new values.7. If you want to view or change externalized parameters in the integration flow from the Configurations view,

double-click any file under the Configurations view to open the Model Configuration editor and the Externalized view.

8. If you want to deploy the projects, select Deploy Integration Content and enter the Tenant ID.9. Choose Finish.

Results

The completion of this task triggers the build automatically and your projects get deployed with the updated externalized parameters.

30P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 31: Developer's Guide: Managing Integration Content - help.sap.com

2.4.3 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.

<?xml version="1.0" encoding="UTF-8"?><vm> <group id="Vegetable"> <entry> <agency>UK</agency> <schema>Food Items</schema> <value>Aubergine</value> </entry> <entry> <agency>US</agency> <schema>Food Items</schema> <value>Eggplant</value> </entry> </group> <group id="Herb"> <entry> <agency>UK</agency> <schema>Food Items</schema> <value>Coriander</value> </entry> <entry> <agency>US</agency> <schema>Food Items</schema> <value>Cilantro</value> </entry> </group> </vm>

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 31

Page 32: Developer's Guide: Managing Integration Content - help.sap.com

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

2.4.4 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.

32P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 33: Developer's Guide: Managing Integration Content - help.sap.com

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.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 33

Page 34: Developer's Guide: Managing Integration Content - help.sap.com

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.5 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.

34P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 35: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. In the Project Explorer view, expand the integration flow project.2. Under src.main.resources.mapping folder, double-click the <message map>.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.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 35

Page 36: Developer's Guide: Managing Integration Content - help.sap.com

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.6 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.

36P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 37: Developer's Guide: Managing Integration Content - help.sap.com

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 gateway 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

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 37

Page 38: Developer's Guide: Managing Integration Content - help.sap.com

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

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 Enterprise Service Bus, 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. Either select Basic Authentication option or provide a client certificate in the Sender Authorization

table to authenticate the sender.

NoteYou can either browse for the client certificate, for example <UserID>.crt, from your local file system or add and enter the Subject DN (information used to authorize the sender) and Issuer DN (information about the Certificate Authority who issues the certificate) manually.

d. In the Sender Authorization section, choose Add… to browse and add an authorized client certificate or enter the Subject DN and Issuer DN manually.

38P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 39: Developer's Guide: Managing Integration Content - help.sap.com

NoteTo quickly add an authorized client certificate from the Model Configuration editor tab page, select Import Certificate from the context menu of the sender element.

e. 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 12].

● 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.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 39

Page 40: Developer's Guide: Managing Integration Content - help.sap.com

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 <ElementTemplateName>.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 mal adapter allows you to send out encrypted messages by e-mail.

Context

You configure the receiver mail adapter to send out encrypted messages by e-mail.

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. Choose the Adapter-Specific General tab page and enter the details as shown in the table below:

40P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 41: Developer's Guide: Managing Integration Content - help.sap.com

Table 9: Parameters and Values of Receiver Mail Adapter (General)

Section Parameters Description

Connection Details

Address Specifies the host name and optionally a port number of the SMTP server.

An external mail server can be used.

Use one of the following open ports for external mail servers:

○ 587 for SMTP+STARTTLS○ 465 for SMTPS

Note that connections to external email servers on port 25 are not sup­ported. To connect to servers on the public Internet, use one of the ports listed above.

When you use GMail Server, make sure that during server configuration you allow insecure applications (GMail considers only communication based on OAuth2 as secure).

Timeout (in ms) Specifies the network timeout for the connection attempt to the server.

This is only used for Transmission Control Protocol (TCP), there is no timeout for SMTP commands.

Protection Controls whether encryption is used. The possible values are:○ STARTTLS Mandatory

If the server does not support the STARTTLS command, the con­nection fails.

○ STARTTLS OptionalIf the server supports the STARTTLS command, the connection is upgraded to Transport Layer Security encryption. This works with the normal port 25.

○ SMTPSThe TCP connection to the server is encrypted using SSL/TLS. This usually requires an SSL proxy on the server side and access to the port it runs on.

○ Off No encryption is initiated, whether the server requests it or not.

Authentication Specifies which mechanism is used to authenticate against the server with a user name and password combination. Possible values are:○ None

No authentication is attempted. No credential can be chosen.○ Plain User Name/Password

The user name and password are sent in plain text. It is not recom­mended to use this method over a public or insecure network with­out a protected connection , but it may be necessary if the server does not support SSL or other authentication mechanisms.

○ CRAM-MD5 The user name and password are hashed before being sent to the server. This mechanism is secure even without encryption.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 41

Page 42: Developer's Guide: Managing Integration Content - help.sap.com

Section Parameters Description

Credential Name (only in case CRAM-MD5 or Plain User Name/Password has been chosen for Authentication)

Specifies the name of a deployed credential to use for authentication (if one of the mechanisms in Authentication Method is selected).

Mail Attributes From E-mail address that the message comes from.

To E-mail address that the message is sent to.

Cc Additional e-mail addresses that the e-mail is to be sent to.

These addresses are visible to the receiver.

Bcc Additional e-mail addresses that the e-mail is to be sent to.

These addresses are not visible to the receiver.

Subject Subject of the e-mail message.

Mail Body Specifies the text of an electronic mail message.

Body MIME Type Specifies the type of the message body. Depending on this type, the message will be displayed differently by different user agents.

Body Encoding Specifies the character encoding (character set) of the message body. The content of the input message will be converted to this encoding, and any character that is not available will be replaced with a question mark ('?'). To ensure that data is passed unmodified, select a Unicode encoding, for example UTF-8.

Attachments Name Specifies the file name of the attachment.

MIME Type The Multipurpose Internet Mail Extensions (Mime)-Type Specifies data format of the email.

You can select from the following Mime-Types:

○ Text/Plain○ Text/CSV○ Text/HTML○ Application/XML○ Application/JSON○ Application/Octet-Stream

Source Specifies the source of the data - either Body, meaning the body of the input message, or Header, meaning a header of the input message.

Header Name If the source is Header, this specifies the name of the header that is at­tached.

42P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 43: Developer's Guide: Managing Integration Content - help.sap.com

Section Parameters Description

Add Message Attachments

Select this option to add all attachments contained in the message ex­change to the e-mail.

4. Choose the Adapter-Specific Security tab page and enter the details as shown in the table below:

NoteThe 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.

For more information about Camel Simple Expressions, see the following: http://camel.apache.org/simple.html

Table 10: Parameters and Values of Receiver Mail Adapter (Security)

Section Parameters Description

Security Encryption Type This parameter configures an encryp­tion scheme used for sending e-mails. The message body and attachments are encrypted with the selected scheme and can only be decrypted by the intended recipients.

Content Encryption Algorithm Specifies the symmetric (block) ci­pher. DESede should only be chosen if the destination system or mail client does not support AES.

Secret Key Length Specifies the key size of the previ­ously chosen symmetric cipher. To in­crease the security choose the maxi­mum key size supported by the desti­nation.

Receiver Public Key Alias Specify an alias for the public key that is to be used to encrypt the message. This key has to be part of the tenant keystore.

Related Information

Dynamic Parameters [page 196]

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 43

Page 44: Developer's Guide: Managing Integration Content - help.sap.com

2.5.2.2 Configuring a Channel with IDoc (IDoc SOAP) Adapter

Context

The IDoc with SOAP message protocol is used when a system needs to exchange IDoc messages with another system that accepts data over SOAP protocol.

Procedure

1. If you are configuring the sender channel, ensure the sender authorization certificate is specified by following the steps:a. In the Model Configuration editor, select the sender.b. In the Properties view, check if the certificate is available in the Sender Authorization table, or add a

certificate.2. In the Model Configuration editor, double-click the sender or receiver channel.3. Choose the General tab page and enter the details listed below.4. In the Adapter Type field, browse and select the IDoc adapter and Message Protocol as IDoc SOAP.5. Choose the Adapter Specific tab page and enter the details as shown in the table below:

Table 11: Parameters and Values of Sender IDoc (IDoc SOAP) Adapter

Section Parameters Description

Connection Details

Address Relative endpoint address on which ESB Bus listens to the incoming re­quests, for example, /HCM/GetEmployeeDetails.

URL to WSDL Specifies the URL to the WSDL that defines the WS provider endpoint (of the tenant as the receiver of messages). The WSDL can be down­loaded using the Integration Operations user interface (in the Properties view, Services tab, under the integration flow-specific end­point). For newly deployed integration flows, the WSDL that is gener­ated by the download corresponds to the endpoint configuration in the integration flow.

Table 12: Parameters and Values of Receiver IDoc (IDoc SOAP) Adapter

Section Parameters Description

Connection Details Address Endpoint address on which the ESB Bus posts the outgoing message, for example http://<host>:<port>/payment.

44P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 45: Developer's Guide: Managing Integration Content - help.sap.com

Section Parameters Description

Proxy Type The type of proxy that you are using to connect to the target system:○ Select Internet if you are con­

necting to a cloud system.○ Select On-Premise if you are con­

necting to on-premise system using the SAP Cloud Connector.This option is only available if you have chosen product profile HANA Cloud Integration.

URL to WSDL URL to the WSDL defining the WS provider endpoint (of the receiver). You can provide the WSDL by:○ Directly entering /wsdl/<interfa­

cename>.wsdl where the WSDL is available in src.main.resour­ces.wsdl.

○ Selecting a source to browse for a WSDL, either from an On-Premise ES Repository or your local workspace.

IDoc Content Type Application/x-sap.doc○ Allows only single IDoc record for

each request○ Enables Exactly-Once processing○ Enables message sequencing

Text/XML○ Allows multiple IDoc records for

each request

Request Timeout Specifies the time (in milliseconds) that the client will wait for a response before the connection is being inter­rupted.

The default value is 60000 millisec­onds (1 minute).

Compress Message Enables the WS endpoint to send compressed request messages to the WS Provider and to indicate the WS Provider that it can handle com­pressed response messages.

Allow Chunking Used for enabling HTTP chunking of data while sending messages.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 45

Page 46: Developer's Guide: Managing Integration Content - help.sap.com

Section Parameters Description

Connect using Basic Authentication Select this option to allow the ESB to connect to the receiver system using the deployed basic authentication credentials. When you select this op­tion, you need to provide the creden­tial name.

Credential Name: Enter the credential name of the username-password pair specified during the deployment of basic authentication credentials on the cluster.

Private Key Alias Allows you to enter the private key alias name that gets the private key from the keystore and authenticates you to the receiver in an HTTPs com­munication.

If you have selected the option of Connect using Basic Authentication, this field is not visible.

6. Save the changes.

Results

In the Model Configuration editor, when you place the cursor on the sender or receiver message flows, you can see the SOAP Address and WSDL information.

2.5.2.3 Configuring a Channel with SOAP (SAP RM) Adapter

Context

You perform this task to configure a sender or receiver channel with the SOAP communication protocol, with SAP RM as the message protocol. SAP RM is a simplified communication protocol for asynchronous Web service communication that does not require the use of Web Service Reliable Messaging (WS-RM) standards. It offers a proprietary extension to ensure reliability on the ABAP back-end side of both Web service consumers and providers. For more information, see http://wiki.scn.sap.com/wiki/display/ABAPConn/Plain+SOAP

You have the option to set SOAP headers using Groovy script (for example, using the Script step).

46P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 47: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. Choose the General tab page and enter the details below.2. In the Adapter Type field, browse and select the SOAP adapter, and SAP RM as the Message Protocol.3. Choose the Adapter Specific tab page and enter the details as shown in the table below:

Table 13: Parameters and Values of Sender SOAP (SAP RM) Adapter

Section Parameters Description

Connection Details

Address Relative endpoint address at which the ESB listens to the incoming requests, for example, /HCM/GetEmployeeDetails.

Proxy Type The type of proxy that you are using to connect to the target sys­tem:○ Select Internet if you are connecting to a cloud system.○ Select On-Premise if you are connecting to on-premise system

using the SAP Cloud Connector.This option is only available if you have chosen product profile HANA Cloud Integration.

URL to WSDL Specifies the URL to the WSDL that defines the WS provider end­point (of the tenant as the receiver of messages). The WSDL can be downloaded using the Integration Operations user interface (in the Properties view, Services tab, under the integration flow-specific endpoint). For newly deployed integration flows, the WSDL that is generated by the download corresponds to the endpoint configura­tion in the integration flow.

Robust One Way Communication

Used for reliable one-way message exchanges. The consumer sends a message to a provider (in this case the channel), which re­turns a status. A fault is returned if processing fails.

NoteFor Exactly-Once handling, the sender SOAP (SAP RM) adapter save the protocol-specific message ID in the header SapMessageIdEx. If this header is set, SOAP (SAP RM) receiver use the content of this header as the message ID for outbound communication. Usually, this is the desired behavior and enables the receiver to identify any duplicates. However, if the sender system is also the receiver system, or several variants of the message are sent to the same system (for example, in an external call or multicast), the receiver system will incorrectly identify these messages as duplicates. In this case, the header SapMessageIdEx must be deleted (for example, using a script) or overwritten with a new generated message ID. This deactivates Exactly-Once processing (that is, duplicates are no longer recognized by the protocol).

Table 14: Parameters and Values of Receiver SOAP (SAP RM) Adapter

Section Parameters Description

Connection Details Address Endpoint address at which the ESB posts the outgoing message, for example http://<host>:<port>/payment.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 47

Page 48: Developer's Guide: Managing Integration Content - help.sap.com

Section Parameters Description

Proxy Type The type of proxy that you are using to connect to the target system.

Select Internet if you are connecting to a cloud system.

Select On-Premise if you are connecting to on-premise system.

For more information, see Using SAP HANA Cloud Connector with HCI Adapters [page 102].

URL to WSDL URL to the WSDL defining the WS provider endpoint (of the re­ceiver). You can provide the WSDL as follows:○ Enter /wsdl/<interfacename>.wsdl directly if the WSDL is

available in src.main.resources.wsdl.○ Select a source to browse for a WSDL either from an on-

premise ES Repository or your local workspace.

Service Name Name of the selected service contained in the referenced WSDL.

Port Name Name of the selected port of a selected service (that you pro­vide in the Service Name field) contained in the referenced WSDL.

NoteUsing the same port names across receivers is not sup­ported. To use the same port names, you need to create a copy of the WSDL and use it.

Operation Name Name of the operation of the selected service (that you provide in the Service Name field) contained in the referenced WSDL.

Private Key Alias Allows you to enter the private key alias name that gets the pri­vate key from the keystore and authenticates you to the receiver in an HTTPS communication.

NoteIf you have selected the Connect using Basic Authentication option, this field is not visible.

Compress Message Enables the WS endpoint to send compressed request mes­sages to the WS provider and to indicate to the WS provider that it can handle compressed response messages.

Allow Chunking Used for enabling HTTP chunking of data while sending mes­sages.

Request Timeout Specifies the time (in milliseconds) that the client will wait for a response before the connection is interrupted.

The default value is 60000 milliseconds (1 minute).

48P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 49: Developer's Guide: Managing Integration Content - help.sap.com

Section Parameters Description

Connect using Basic Authentication

Select this option to allow the ESB to connect to the receiver system using the deployed basic authentication credentials. If you select this option, you need to provide the credential name.

Credential Name: Enter the credential name of the user name-password pair specified during the deployment of basic authen­tication credentials on the cluster.

4. Save the configurations in both the sender and receiver channel editors.

Results

In the Model Configuration editor, when you place the cursor on the sender or receiver message flows, you can see the SOAP Address and WSDL information.

Related Information

Setting SOAP Headers [page 127]

2.5.2.4 Configuring a Channel with SOAP (SOAP 1.x) Adapter

Prerequisites

Since the adapter implements web services security, you have ensured that the related certificates are deployed in the truststore.

Context

SOAP (SOAP 1.x) allows you to deploy web services that support SOAP 1.1 and SOAP 1.2. SOAP 1.x provides you a framework for binding SOAP to underlying protocols. The binding specification in the WSDL defines the message format and protocol details for a web service.

You have the option to set SOAP headers using Groovy script (for example, using the Script step).

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 49

Page 50: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. If you are configuring the sender channel, ensure the sender authorization certificate is specified by following the steps below:a. In the Model Configuration editor, select the sender.b. In the Properties view, check if the certificate is available in the Sender Authorization table, else add a

certificate.2. In the Model Configuration editor, double-click the sender or receiver channel.3. In the Adapter Type section of the General tab page, select SOAP from the Adapter Type dropdown and

select SOAP 1.x as the message protocol.4. Choose the Adapter-Specific tab page and enter the details as shown in the table below:

Table 15: Parameters and Values of Sender SOAP (SOAP 1.x) Adapter

Section Parameters Description

Connection Details

Address Relative endpoint address on which ESB Bus listens to the incoming re­quests, for example, "/HCM/GetEmployeeDetails".

URL to WSDL Specifies the URL to the WSDL that defines the WS provider endpoint (of the tenant as the receiver of messages). The WSDL can be down­loaded using the Integration Operations user interface (in the Properties view, Services tab, under the integration flow-specific end­point). For newly deployed integration flows, the WSDL that is gener­ated by the download corresponds to the endpoint configuration in the integration flow.

Service Name Name of the selected service contained in the referenced WSDL

Port Name Name of the selected port of a selected service (that you provide in the Service Name field) contained in the referenced WSDL

Processing Settings ○ Standard: Message is executed with standard processing mecha­nism

○ Robust: Provider invokes service synchronously and the process­ing errors are returned to the consumer.

WS-Security (Web Services Security)

WS-Security Configuration

Specifies the way how WS-Security settings are to be configured.○ Via Manual Configuration in Channel

The security settings are manually to be configured (see below listed attributes).

○ NoneNo WS-Security is applied for message exchange.If you select this option, no further WS-Security-relevant settings can be applied.

50P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 51: Developer's Guide: Managing Integration Content - help.sap.com

Section Parameters Description

WS-Security Type Specifies the combination of message protection methods that are to be applied. There are the following options:○ Verify Message

A signed payload is expected by the tenant, and the signature has to be verified.

○ Verify and Decrypt MessageA signed and encrypted payload is expected by the tenant. The sig­nature has to be verified and the payload has to be decrypted.

Save Incoming Signed Message

Select this option if the incoming signed (and encrypted) message is to be stored.

Check Time Stamp Select this option, if the sender (WS consumer) sends a time stamp along with the message.

In case a request-response pattern is configured, a time stamp is added to the response message.

Sender is Basic Security Profile Compliant

As default setting, select this option.

This option should be selected in case the sender system supports a dedicated security level which is described by the Basic Security Profile (as assumed to be the case for most systems). Only in case the sender system does not support this security profile, de-select this option.

Private Key Alias for Response Signing

Specify an alias for the private key that is to be used to sign the re­sponse message.

The tenant private key is used to sign the response message (that is sent to the WS consumer). The tenant private key has to be part of the tenant keystore.

Public Key Alias for Response Encryption

(only in case Verify and Decrypt Message is se­lected for WS-Security Type)

Specify an alias for the public key that is to be used to encrypt the re­sponse message.

The sender (WS consumer) public key is used to sign the response message (that is sent to the WS consumer). This key has to be part of the tenant keystore.

Initiator Token ○ Include StrategyPre-set value Always to Recipient ensures that the WS consumer sends the certificate along with the message.

○ X509 Token AssertionDefines the format of the certificate being sent by the WS con­sumer along with the message.

Recipient Token Include Strategy

Value Always to Initiator adds the certificate to the response message.

Algorithm Suite Assertion Specifies which algorithms are to be used by the WS consumer.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 51

Page 52: Developer's Guide: Managing Integration Content - help.sap.com

Table 16: Parameters and Values of Receiver SOAP (SOAP 1.x) Adapter

Section Parameters Description

Connection Details

Address Endpoint address on which the ESB Bus posts the outgoing message, for example http://<host>:<port>/payment.

Proxy Type The type of proxy that you are using to connect to the target system:○ Select Internet if you are connecting to a cloud system.○ Select On-Premise if you are connecting to on-premise system us­

ing the SAP Cloud Connector.This option is only available if you have chosen product profile HANA Cloud Integration.

URL to WSDL URL to the WSDL defining the WS provider endpoint (of the receiver). You can provide the WSDL by:○ Directly entering /wsdl/<interfacename>.wsdl where the WSDL is

available in src.main.resources.wsdl.○ Selecting a source to browse for a WSDL either from an On-Prem­

ise ES Repository or your local workspace.

Service Name Name of the selected service contained in the referenced WSDL

Port Name Name of the selected port of a selected service (that you provide in the Service Name field) contained in the referenced WSDL .

Same port names across receivers is not supported. To use the same port names, you need to create a copy of the WSDL and use it.

Operation Name Name of the operation of selected service (that you provide in the Serv­ice Name field) contained in the referenced WSDL.

Request Timeout Specifies the time (in milliseconds) that the client will wait for a re­sponse before the connection is being interrupted.

The default value is 60000 milliseconds (1 minute).

Compress Message Enables the WS endpoint to send compressed request messages to the WS Provider and to indicate the WS Provider that it can handle com­pressed response messages.

Allow Chunking Used for enabling HTTP chunking of data while sending messages.

Connect without Client Authentication

Allows you to connect anonymously to the receiver system.

Select this option if your server allows connections without authentica­tion at the transport level.

Connect using Basic Authentication

Select this option to allow the ESB bus to connect to the receiver sys­tem using the deployed basic authentication credentials. When you se­lect this option, you need to provide the credential name.

Credential Name: Enter the credential name of the username-password pair specified during the deployment of basic authentication credentials on the cluster.

52P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 53: Developer's Guide: Managing Integration Content - help.sap.com

Section Parameters Description

Private Key Alias Allows you to enter the private key alias name that gets the private key from the keystore and authenticates you to the receiver in an HTTPs communication.

If you have selected the option of Connect using Basic Authentication, this field is not visible.

WS-Security (Web Services Security)

WS-Security Configuration

Specifies the way how WS-Security settings are to be configured.○ Via Manual Configuration in Channel

The security settings are manually to be configured (see below listed attributes).

○ Based on Policies in WSDLThe security settings are specified as part of the receiver endpoint (within the endpoint WSDL) in elements as defined by the WS-Pol­icy standard.

○ NoneNo WS-Security is applied for message exchange.

Credential Name

(only configurable when for WS-Security Configuration the option Based on Policies in WSDL is selected)

Username Token Specifies the way how Username Token is to be configured. Select this option to authenticate at message level based on a user ID and a pass­word.○ Plain Text Password

The Password is transferred in plain text (https encrypted).○ Hashed Password (Password Digest)

Cryptographic hash function is applied for password.○ None

No User Name Token is applied.

If you have selected the option Plain Text Password or Hashed Password (Password Digest), enter the credential name, that is, the alias that was assigned to the authorized user and password during ten­ant deployment.

WS-Security Type Specifies the combination of message protection methods that are to be applied. There are the following options:○ Sign Message

Tenant signs the payload.○ Sign and Encrypt Message

Tenant signs and encrypts the payload.○ None

No WS-Security Type is applied.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 53

Page 54: Developer's Guide: Managing Integration Content - help.sap.com

Section Parameters Description

Set Time Stamp

(only configurable when for WS-Security Configuration the option Via Manual Configuration in Channel is selected)

Select this option to send a time stamp along with the message.

In case a request-response pattern is configured, a time stamp is ex­pected in the response message.

Sender is Basic Security Profile Compliant

As default setting, select this option.

This option should be selected in case the sender system supports a dedicated security level which is described by the Basic Security Profile (as assumed to be the case for most systems). Only in case the sender system does not support this security profile, de-select this option.

Private Key Alias for Signing

Specify an alias for the tenant private key that is to be used to sign the message.

The tenant private key is used to sign the request message (that is sent to the WS provider (receiver)). The tenant private key has to be part of the tenant keystore.

Public Key Alias for Encryption

(only configurable when for WS-Security Type the option Sign and Encrypt Message is selected)

Specify an alias for the public key that is to be used to encrypt the mes­sage.

The receiver (WS provider) public key is used to encrypt the request message (that is sent to the receiver). This key has to be part of the ten­ant keystore.

Initiator Token

(only configurable when for WS-Security Configuration the option Via Manual Configuration in Channel is selected)

These entries define policies for the WS consumer.○ Include Strategy

Value Always to Recipient ensures that the WS consumer sends the certificate along with the message.

○ X509 Token AssertionDefines the format of the certificate being sent by the WS con­sumer along with the message.

Recipient Token

(only configurable when for WS-Security Configuration the option Via Manual Configuration in Channel is selected)

These entries define policies for the WS consumer.○ Include Strategy

Value Always to Initiator adds the certificate to the response mes­sage.

○ X509 Token Assertion

Defines the format of the certificate being sent by the WS consumer along with the message.

Layout ○ StrictItems are added to the security header following numbered layout rules according to a general principle of 'declare before use'.

○ LaxItems are added to the security header in any order that conforms to WSS: SOAP Message Security

54P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 55: Developer's Guide: Managing Integration Content - help.sap.com

Section Parameters Description

Algorithm Suite Assertion

Specifies which algorithms are used by the WS consumer

5. Save the configurations in both the sender and receiver channel editors.In the Model Configuration editor, when you place the cursor on the sender or receiver message flows, you can see the SOAP Address and WSDL information.

Related Information

WS-Security Configuration for the Sender SOAP 1.x Adapter [page 55]WS-Security Configuration for the Receiver SOAP 1.x Adapter [page 56]Setting SOAP Headers [page 127]

2.5.2.4.1 WS-Security Configuration for the Sender SOAP 1.x Adapter

You use a sender channel to configure how inbound messages are to be treated at the tenant’s side of the communication.

With regard to WS-Security in a sender channel, you specify the following:

● How the tenant verifies the payload of an incoming message (signed by the sender)● How the tenant decrypts the payload of an incoming message (encrypted by the sender)

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 55

Page 56: Developer's Guide: Managing Integration Content - help.sap.com

The following figure illustrates the setup of components:

The sender SOAP 1.x adapter allows the following combination of message-level security options:

● Verifying a payload● Verifying and decrypting a payload

2.5.2.4.2 WS-Security Configuration for the Receiver SOAP 1.x Adapter

With a receiver channel you configure the outbound communication at the tenant’s side of the communication.

With regard to WS-Security in a sender channel you specify the following:

● How the tenant signs the payload of a message (to be verified by the receiver)● How the tenant encrypts the payload of a message (to be decrypted by the receiver)

The following figure illustrates the setup of components.

56P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 57: Developer's Guide: Managing Integration Content - help.sap.com

The receiver SOAP 1.x adapter allows to configure the following combinations of message security methods:

● Signing a payload● Signing and encrypting a payload

Configuration Options for WS-Security

Signing and encryption (and verifying and decryption) is based on a specific set up of keys as illustrated in the figures. Moreover, for the message exchange, specific communication rules apply as been agreed between the administrators of the Web service client and Web service provider (for example, if certificates are to be sent with the message).

There are two options how these security and communication settings can be specified:

● Based on Policies in WSDLUsing this option, the security settings are specified as part of the receiver endpoint (within the endpoint WSDL) in elements as defined by the WS-Policy standardThat way you can specify, for example, within the WSDL that certificates for message level security are sent with the message.For more information on the WS-Policy standard, see: http://docs.oasis-open.org/ws-sx/ws-securitypolicy/v1.3/os/ws-securitypolicy-1.3-spec-os.html .

● Manual Configuration in ChannelUsing this option, you specify the required settings in the channel.The naming of the available attributes corresponds to the terminology used in the WS-Policy specification.If you use manual configuration, a sub set of the options as defined by the standard is supported. For more information on the standard, see http://www.w3.org/TR/ws-policy/ and http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/ws-securitypolicy-1.2-spec-os.pdf .

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 57

Page 58: Developer's Guide: Managing Integration Content - help.sap.com

2.5.2.5 Configuring a Channel with HTTP Adapter

The HTTP adapter allows you to configure an outbound HTTP connection from SAP HANA Cloud Integration to a receiver.

Context

You can only configure a channel with the HTTP adapter type for outbound calls (from the tenant to a receiver system).

If you want to dynamically override the configuration of the adapter, you can set the following headers before calling the HTTP adapter:

Table 17: Headers

Header Description

CamelHttpUri Overrides the existing URI set directly in the endpoint.

This header can be used to dynamically change the URI to be called.

CamelHttpQuery Overrides the existing URI parameters set directly in the endpoint.

This header can be used to dynamically change the URI to be called.

Content-Type HTTP content type that fits to the message (such as text/html)

Content-Encod­ing

HTTP content encoding that fits the encoding during message transport (such as gzip)

Procedure

1. Choose the General tab page and, in the Adapter Type section, select HTTP from the Adapter Type dropdown list.

2. Choose the Adapter Specific tab page and enter the values for the available parameters. The table below gives a description of the fields and the possible values you can enter:

58P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 59: Developer's Guide: Managing Integration Content - help.sap.com

Table 18: Field Name and Description for HTTP Adapter

Field Description

Address URL of the target system that you are connecting to, for example, https://mysystem.com

Note that the authentication method Client Certificate requires the HTTPS protocol. For Basic authentication it is strongly recommended that you use the HTTPS protocol.

If you have selected one of these authentication methods, you therefore have to enter an https URL.

You can also specify HTTP parameters in the URL. How­ever, if you select the HTTP method POST, parameters are usually sent in the body. You therefore get a warning message if you configure this parameter-value combina­tion.

The following URL parameters are currently not allowed for technical reasons:

○ throwExceptionOnFailure○ bridgeEndpoint○ transferException○ client○ clientConfig○ binding○ sslContextParameters○ bufferSize

You can dynamically configure the Address field of the HTTP adapter.

When you specify the Address field of the HTTP adapter as ${header.a}, at runtime the value of header a (as contained in the incoming message) will be written into the Camel header CamelHttpUri.

Also in case the CamelHttpUri header has been set by another process step (for example, a Content Modifier), its value will be overwritten.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 59

Page 60: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Query Query string that you want to send with the HTTP request

Query strings must not be entered in the Address field.

This parameter can be externalized.

You can dynamically configure the Query field of the HTTP adapter.

When you specify the Query field of the HTTP adapter as ${header.a}, at runtime the value of header a (as con­tained in the incoming message) will be written into the Camel header CamelHttpQuery.

Proxy Type The type of proxy that you are using to connect to the tar­get system:○ Select Internet if you are connecting to a cloud sys­

tem.○ Select On-Premise if you are connecting to on-prem­

ise system using the SAP Cloud Connector.This option is only available if you have chosen prod­uct profile HANA Cloud Integration.

Method Action that the HTTP request should perform

○ POSTRequests that the receiver accepts the data enclosed in the request body.

○ GETSends a GET request to the receiver.

○ PUTUpdates or creates the enclosed data on the receiver side.

60P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 61: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Authentication Defines how the tenant (as the HTTP client) will authenti­cate itself against the receiver.

You can select one of the following authentication meth­ods:

○ None○ Basic

The tenant authenticates itself against the receiver using user credentials (user name and password).It is a prerequisite that user credentials are specified in a Basic Authentication artifact and deployed on the related tenant.

○ Client CertificateThe tenant authenticates itself against the receiver using a client certificate.It is a prerequisite that the required key pair is instal­led and added to a keystore. This keystore has to be deployed on the related tenant. The receiver side has to be configured appropriately.

Credential Name

NoteThis field is enabled only if you select basic authentica­tion.

Identifies the Basic Authentication artifact that contains the credentials.

Private Key Alias

NoteThis option is enabled only if you select client certifi­cate authentication.

Enter the private key alias that enables the system to fetch the private key from keystore for authentication.

Timeout (in ms) Maximum time that the tenant waits for a response be­fore terminating message processing

The default value is 60000 milliseconds (1 minute).

3. Save the configuration in the receiver channel editor.

Related Information

Using SAP HANA Cloud Connector with HCI Adapters [page 102]Dynamic Parameters [page 196]

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 61

Page 62: Developer's Guide: Managing Integration Content - help.sap.com

2.5.2.6 Configuring a Channel with SFTP Adapter

The SFTP adapter uses the SSH protocol to transfer files.

Context

Unlike the standard FTP, the SFTP adapter uses a certificate and keystore to authenticate the file transfer. The SFTP connector achieves secure transfer by encrypting sensitive information before transmitting it on the network.

NoteThe clock icon on a message flow indicates polling of messages at regular intervals.

If you want to dynamically override the configuration of the adapter, you can set the following header before calling the SFTP adapter:

Table 19: Headers

Header Description

CamelFileName Overrides 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.

The following examples show the header CamelFileName, read via XPath from the payload, or set using an expression:

Table 20: Example for Header

Name Type Data Type Value

CamelFileName xpath java.lang.String /p:<XYZ>MessageBulk/<XYZ>Message/FileName/text()

CamelFileName expression java.lang.String <myapplication>/template/out/output${date:now:yyyyMMddHHmmss}.xml

Related Information

Configuring a Channel with SFTP Sender Adapter [page 63]Configuring a Channel with SFTP Receiver Adapter [page 68]

62P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 63: Developer's Guide: Managing Integration Content - help.sap.com

2.5.2.6.1 Configuring a Channel with SFTP Sender Adapter

Context

Procedure

1. Select the integration flow you want to configure and choose Edit.2. Choose the communication channel you want to configure.

To configure a sender channel, click on a connection between a sender and the Integration Process component.

3. In General tab page, provide channel name and description in the relevant fields if required.4. Choose Adapter Specific tab page and provide values in fields based on description in table.

In tab Source of the sender channel specify the following attributes.

Table 21:

Field Description

Directory File path from where the file should be read, for example, <dir>/<subdir>.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 63

Page 64: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

File Name Name of the file to be read.

NoteIf you do not enter a file name and the parameter re­mains blank, all the files in the specified directory are read. Regular expressions, such as ab*, a.*, *a*, and so on are not supported.

CautionFiles with file names longer than 100 characters will be processed with the following limitations:

○ If two files longer 100 characters are available for processing, only one of these files will be proc­essed at a time. This means that both files will be processed, but not in parallel. This is also the case when two runtime nodes available. If the node fails multiple times while processing a file with a file name length of more than 100 characters, all files sharing the first 100 characters with that file will not be executed without manual intervention from the administrator.

○ The option Keep File and Mark as Processed in Idempotent Repository (for sender channels un­der Processing) will not work for these files.

Address Host name or IP address of the SFTP server and an op­tional port, for example, wdfd00213123:22.

User Name ID of the user performing the file transfer.

Timeout (in ms) Maximum time to wait for the SFTP server to be con­tacted while establishing connection or performing a read operation.

Default value: 10000 ms

Maximum Reconnect Attempts Maximum number of attempts allowed to reconnect to the SFTP server.

Default value: 3

Use 0 to disable this behavior.

Reconnect Delay (in ms) Time duration the system waits for before attempting to reconnect to the SFTP server.

Default Value: 1000ms

64P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 65: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Automatically Disconnect Disconnect from the SFTP server after each message processing.

5. Choose Processing tab page.

Table 22: Fields and Description for SFTP Adapter Sender Channel

Field Description

Read Lock Strategy Prevents files that are in the process of being written from being read from the SFTP server. The endpoint waits until it has an exclusive read lock on a file before reading it.

Select one of the following options based on the capabili­ties of the SFTP server:

None: Does not use a read lock, which means that the endpoint can immediately read the file. None is the sim­plest option if the SFTP server guarantees that a file only becomes visible on the server once it is completely writ­ten.

Rename: Renames the file before reading. The Rename option allows clients to rename files on the SFTP server.

Content Change: Monitors changes in the file length/modification timestamp to determine if the write opera­tion on the file is complete and the file is ready to be read. The Content Change option waits for at least one second until there are no more file changes. Therefore, if you se­lect this option, files cannot be read as quickly as with the other two options.

Change Directories Stepwise Select this option to change directory levels one at a time.

Include Sub-Directories Selecting this option allows you to look for files in all the subdirectories of the directory.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 65

Page 66: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Post-Processing Allows you to specify how files are to be handled after processing. You can select one of the following options from dropdown list:

Delete File: The file is deleted after it has be

Keep File and Mark as Processed in Idempotent Repository: Enables an idempotent repository to prevent a file from being consumed twice. Select this option for SFTP servers that do not allow deletion or moving of files, but the files are to be read only once. You can select one of the following idempotent repository options:

In Memory: Keeps the file names in the memory. Files are read again from the SFTP server when the runtime node is restarted.

NoteIf there is a system crash or disaster, this data will be lost and cannot be recovered later.

Database: Stores the file names in a database to prevent the files from being read again when the runtime node is restarted. File name entries are deleted by default after 90 days.

NoteThe database uses the server name, directory, and file name as key values to identify files uniquely across in­tegration flows of a tenant.

Keep File and Process Again: The file is kept on the SFTP server and file processing is repeated. You can use this option, for example, for testing purposes.

Move File: The file is moved to another directory. If you se­lect this option, you need to specify the target directory. You can specify the target directory dynamically, for ex­ample, using the timestamp of the message. The follow­ing example uses backup folders with timestamps and re­places the file extension with bak: backup/${date:now:yyyyMMdd}/${file:name.noext}.bak

66P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 67: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Retry Threshold for Alerting If the number of attempts to retry polling a message from the SFTP server exceeds this threshold value, an alert is raised. The default value '0' indicates that the alert is not raised.

NoteIf two or more sender channels are configured with the SFTP connector, the value for the Alert Threshold for Retry parameter should be the same.

6. Choose Advanced tab page.

Table 23:

Field Description

Buffer Size Write file content using the specified buffer size.

Default: 128 KB

Log Level The level of information to be logged during message processing.

Flatten File Names Flatten the file path by removing the directory levels so that only the file names are considered and they are writ­ten under a single directory.

Max. Messages per Poll (For sender channel only) Maximum number of messages to gather per poll.

Default: 0 Example: 1000 can be set as a limit.

NoteWhen you use the sender SFTP adapter in combination with an Aggregator step and you expect a high mes­sage load, consider the following recommendation:

Set the value for Maximum Messages per Poll to a small number larger than 0 (for example, 20). This en­sures a proper message processing status logging at runtime.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 67

Page 68: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Prevent Directory Traversal If the file contains any backward path traversals such as \..\ or /../.. , this can lead to a potential risk of directory traversal. In such a case message processing is stopped with an error. The unique message ID is logged in the Message Processing Log.

NoteWe recommend that you specify the Directory and File Name fields to avoid any security risks. If you provide these fields, the header is not considered.

7. Choose Scheduler tab page.

Table 24:

Field Description

Initial Delay (in ms) Time duration the system waits after deploying the inte­gration flow.

Recurrent Delay (in ms) Time duration the system waits before executing the inte­gration flow again.

8. Save or deploy the configuration.

SFTP polling is supported in the following way: The same file can be polled by multiple endpoints configured to use the SFTP channel. This means that you can now deploy an integration flow with a configured SFTP channel on multiple runtime nodes (which might be necessary to meet failover requirements) without the risk of creating duplicates by polling the same file multiple times. Note that to enable the new option, integration flows (configured to use SFTP channels) that have been developed prior to the introduction of this feature have to be regenerated.

2.5.2.6.2 Configuring a Channel with SFTP Receiver Adapter

Context

68P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 69: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. Select the integration flow you want to configure and choose Edit.2. Choose the communication channel you want to configure.

To configure a receiver channel, click on a connection between Integration Process component and a receiver.

3. In General tab page, provide channel name and description in the relevant fields if required.4. Choose Adapter Specific tab page and provide values in fields based on description in table.

In tab Target of the receiver channel specify the following attributes.

Table 25:

Field Description

Directory File path from where the file should be read, for example, <dir>/<subdir>.

File Name Name of the file to be read.

NoteIf you do not enter a file name and the parameter re­mains blank, all the files in the specified directory are read. Regular expressions, such as ab*, a.*, *a*, and so on are not supported.

CautionFiles with file names longer than 100 characters will be processed with the following limitations:

○ If two files longer 100 characters are available for processing, only one of these files will be proc­essed at a time. This means that both files will be processed, but not in parallel. This is also the case when two runtime nodes available. If the node fails multiple times while processing a file with a file name length of more than 100 characters, all files sharing the first 100 characters with that file will not be executed without manual intervention from the administrator.

○ The option Keep File and Mark as Processed in Idempotent Repository (for sender channels un­der Processing) will not work for these files.

Address Host name or IP address of the SFTP server and an op­tional port, for example, wdfd00213123:22.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 69

Page 70: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

User Name ID of the user performing the file transfer.

Timeout (in ms) Maximum time to wait for the SFTP server to be con­tacted while establishing connection or performing a read operation.

Default value: 10000 ms

Maximum Reconnect Attempts Maximum number of attempts allowed to reconnect to the SFTP server.

Default value: 3

Use 0 to disable this behavior.

Reconnect Delay (in ms) Time duration the system waits for before attempting to reconnect to the SFTP server.

Default Value: 1000ms

Automatically Disconnect Disconnect from the SFTP server after each message processing.

5. Choose Processing tab page.

Table 26: Parameters and Description for SFTP Adapter Receiver Channel

Field Description

Handling for Existing Files If the file already exists in the target, allow the following:

Override: Replace the existing file content with the new one.

Append: Add the new file content to the end of the exist­ing one.

Fail: Do not perform any action and raise a failure.

Ignore: Do not perform any action.

Change Directories Stepwise Changes directory levels one at a time.

Create Directories Automatically creates missing directory levels as pro­vided in the file's path name.

6. Choose Advanced tab page.

70P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 71: Developer's Guide: Managing Integration Content - help.sap.com

Table 27:

Field Description

Buffer Size Write file content using the specified buffer size.

Default: 128 KB

Log Level The level of information to be logged during message processing.

Flatten File Names Flatten the file path by removing the directory levels so that only the file names are considered and they are writ­ten under a single directory.

Max. Messages per Poll (For sender channel only) Maximum number of messages to gather per poll.

Default: 0 Example: 1000 can be set as a limit.

NoteWhen you use the sender SFTP adapter in combination with an Aggregator step and you expect a high mes­sage load, consider the following recommendation:

Set the value for Maximum Messages per Poll to a small number larger than 0 (for example, 20). This en­sures a proper message processing status logging at runtime.

Prevent Directory Traversal If the file contains any backward path traversals such as \..\ or /../.. , this can lead to a potential risk of directory traversal. In such a case message processing is stopped with an error. The unique message ID is logged in the Message Processing Log.

NoteWe recommend that you specify the Directory and File Name fields to avoid any security risks. If you provide these fields, the header is not considered.

7. Save or deploy the configuration.

SFTP polling is supported in the following way: The same file can be polled by multiple endpoints configured to use the SFTP channel. This means that you can now deploy an integration flow with a configured SFTP channel on multiple runtime nodes (which might be necessary to meet failover requirements) without the risk of creating duplicates by polling the same file multiple times. Note that to enable the new option, integration flows (configured to use SFTP channels) that have been developed prior to the introduction of this feature have to be regenerated.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 71

Page 72: Developer's Guide: Managing Integration Content - help.sap.com

2.5.2.7 Configuring a Channel with SuccessFactors Adapter

Prerequisites

You have created an integration project and an integration flow.

To successfully run the Operations Modeler, your Java Virtual Machine (JVM) must contain the security certificate recommended by the SuccessFactors system. Example: VeriSign Class 3 Public Primary Certification Authority - G5 security certificate.

NoteFirst, you must verify if the JVM contains the security certificate that is used by SuccessFactors system. If not, then download the certificate from the appropriate security certificate vendor and install it. You can refer to JVM documentation for verifying and installing the security certificate on to your JVM. Ensure that the IP addresses of the HCI run-time worker node and the systems you are using to connect to the SuccessFactors system are in the list of allowed IP addresses.

Context

The SuccessFactors adapter provides three message protocols for you to communicate with the SuccessFactors system. They are:

1. SOAP2. OData V2

NoteThis is available only for the receiver channel.

3. REST

You can choose the protocol you want based on the scenario you want to execute.

You need to provide the following details in order to communicate with the SuccessFactors system.

● Connection details – Details required to establish a connection with the SuccessFactors system● Processing details – Information required to process your modeled operation● Scheduler – Settings that enable you to schedule a data polling cycle at regular intervals

NoteThe scheduler is available only for the sender channel.

72P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 73: Developer's Guide: Managing Integration Content - help.sap.com

TipYou can use the Insert (POST) operation to insert more than one records in a single operation. These records must have an edmx association between them.

Procedure

You use this procedure to configure a channel with SuccessFactors adapter.1. Double-click the channel that you want to configure in the Model Configuration tab page.2. Choose the General tab page and choose Browse in the Adapter Type screen area.3. Select SuccessFactors in the Choose Adapter window and choose OK.4. If you want to connect to SuccessFactors system using SOAP message protocol, perform the following

substeps:a. Choose SOAP in Message Protocol field.b. Choose the Adapter Specific tab page and enter values based on the description given in the table.

Table 28: Parameters & Values of SuccessFactors Adapter for SOAP

Section Parameter Description

Connection Details Address URL of the SuccessFactors data center that you would like to con­nect to.

Address Suffix The system provides value for this field based on the protocol you choose. For SOAP, the value is /sfapi/v1/soap.

Credential Name Name of the system you use to es­tablish the connection. You use the same name to deploy credentials on the cluster using Basic Authentication. Refer to operations guide for details on deploying cre­dentials on the cluster.

Processing Details Call Type Type of call that HCI system makes to the SuccessFactors system.

Choose Synchronous to perform normal operations.

Choose Asynchronous to perform adhoc operations

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 73

Page 74: Developer's Guide: Managing Integration Content - help.sap.com

Section Parameter Description

Operation Details Entity: The Entity used to fetch data from the system.

Operation: Query/Insert/Update/Upsert

Query: SFQL (SuccessFactors Query language) Query Type that is used to communicate with Success­Factors system.

NoteQuery is the only operation avail­able in sender channel. The Model Operation button launches the SuccessFactors Query Language (SFQL) editor. Refer to section SuccessFactors Operations Modeler for more de­tails

Page Size This field is applicable only in case of Query operation. This indicates the number of records that the HCI system reads from the SuccessFac­tors system when the Operation is executed.

If you find that the Operation is not executing due to a time-out, reduce the Page Size and execute the oper­ation again.

c. If you want to add additional SFAPI parameters to the operation, in Parameters field, enter the parameters in the format <key>=<value>. Separate the parameters using semicolon.

NoteYou can specify the custom parameters in four ways:

<Key>=<value>;<key>=,value>

<header/property variable>=value;<header/property variable>=value

<header/property variable>;<header/property variable>; here, the variable contains both the key and its value.

74P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 75: Developer's Guide: Managing Integration Content - help.sap.com

ExampleexternalKeyMapping=costCenter;processinactiveEmployees=true

Example${property.ECERP_PARAMETERS}=costCenter;${header.ECERP_PARAMETERS}=true

Example${property.ECERP_PARAMETERS};${header.ECERP}, which contains the key-value pair.

Example${property.ECERP_PARAMETERS}=processinactiveEmployees=true;resultOptions=allJobChangesPerDay

. Here, you are specifying multiple key-value pairs in one property parameter.

5. If you want to use the OData services from SuccessFactors, perform the following substeps:a. Choose ODataV2 in Message Protocol field.b. Choose the Adapter Specific tab page and enter values for fields based on the description given in the

table.

Table 29: Parameters & Values of SuccessFactors Adapter for ODataV2

Section Parameter Description

Connection Details Address URL of the SuccessFactors data center that you would like to con­nect to.

Example: https://sales­demo4.successfactors.com

Address Suffix The system provides value for this field based on the protocol you choose. For ODataV2, the value is /odata/v2.

Credential Name Name of the system you use to es­tablish the connection. You use the same name to deploy credentials on the cluster using Basic Authentication. Refer to operations guide for details on deploying cre­dentials on the cluster.

Processing Details Operation Details Operation you have modeled using the operations modeler

Request Payload Format Format of the request payload. You can select Atom or JSON

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 75

Page 76: Developer's Guide: Managing Integration Content - help.sap.com

Section Parameter Description

Page Size This field is only applicable for Query operation. This indicates the num­ber of records that HCI system reads from SuccessFactors system when Operation is executed.

If you find that the Operation is not executing due to a time-out, reduce the Page Size and execute the oper­ation again.

6. If you want to use REST message protocol, perform the following substeps:REST message protocol is available only for the Learning Management Solution (LMS).a. Choose REST in the Message Protocol field.b. Choose the Adapter Specific tab page and enter values for fields based on the description given in the

table.

Table 30: Parameters & Values of SuccessFactors Adapter for REST

Section Parameter Description

Connection Details Address URL of the SuccessFactors REST based LMS

Address Suffix URL suffix for accessing Success­Factors REST based LMS

Credential Name Name of the system you use to es­tablish the connection. You use the same name to deploy credentials on the cluster using OAuth2 Authentication. Refer to operations guide for details on deploying cre­dentials on the cluster.

Processing Operation Operation for the REST service.

NoteOnly GET and POST operations are currently supported.

Entity LMS entity you are accessing

NoteYou can obtain the entity name by referring to the relevant API documentation.some work

76P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 77: Developer's Guide: Managing Integration Content - help.sap.com

Section Parameter Description

Parameters Parameter to be sent to the REST service.

Example: creationDate=1&ac­tive=true

NoteIn case of the GET operation you can fetch just the modified re­cords in subsequent runs by us­ing the condition lastModified­Date=${deltasync.maxDate­FromLastRun}.

Page Size The number of records that are read from SuccessFactors system in one request

If you find that the Operation is not executing due to a time-out, try exe­cuting the Operation by reducing the Page Size.

7. If you are configuring the sender channel, perform the following substeps to configure the scheduler:a. Choose the Scheduler tab page.b. Enter the scheduler details based on the description given in the table below.

Table 31: Parameters & Values of SuccessFactors Adapter Scheduler

Field Description

Run once Runs a data polling process immediately after deploy­ing the project

On Date Specific date on which the data polling process has to be initiated to fetch data from the SuccessFactors sys­tem

Daily Run message polling every day to fetch data from the SuccessFactors system

Weekly Run the message polling every week on specified days of the week to fetch data from the SuccessFactors sys­tem.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 77

Page 78: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Monthly on Day Execute the message polling every month on the speci­fied date to fetch data from the SuccessFactors server.

NoteIf the specified date is not applicable to a month, the data polling is not executed in that specific month. For example, if 30th day is selected in the month of February, polling is not executed as 30th is not a valid day for February.

Time The time at which the data polling cycle has to be initi­ated. For example, if you want the data polling to be started at 4.1PM, enter 16:10. Note that the time must be entered in 24-hour format.

Every xx minutes between HH hours and HH hours The connector fetches data from the SuccessFactors system, every ‘xx’ minutes between HH hours and HH hours.

NoteIf you want the polling to run for the entire day, enter 1 and 59.

Time Zone Select the Time Zone that you want to use as reference for scheduling the data polling cycle.

CautionIf a cluster is updated with the latest node assembly, it is restarted after the update. If you have deployed projects on the cluster with scheduler settings, you face the following issues:○ Run Once settings: If you have selected Run Once in the scheduler, the system deploys the

project after cluster is updated. This results in the system performing the operation again. You see copies of the same result after cluster update.

○ Specific time schedule: If you have configured a specific date in the scheduler and those projects are deployed again after cluster update, you might see those projects in error state.

To avoid this, you have to undeploy the project after the system executes the operation according to the scheduler settings.

8. Save the changes.

NoteThe password for connecting to the SuccessFactors system should be deployed onto the tenant via the ‘Credentials’ deployment wizard available in the Node Explorer.

RestrictionThe SuccessFactors Adapter uses polling as a mechanism to fetch data from the SuccessFactors system. An IFLMAP based integration flow, when deployed in HANA Cloud Integration, deploys in

78P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 79: Developer's Guide: Managing Integration Content - help.sap.com

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 status less than 10ms, from the worker nodes, where the schedule was not triggered. You can ignore the monitoring statuses.

Modeling SFQL Operations for connecting to SuccessFactors SOAP WebService

Prerequisites

You have configured the sender or receiver channel of the SuccessFactors adapter.

Context

You use the SuccessFactors Model Operation feature to select the required entity, choose an operation and specify the fields based on your business requirements. You can create SFQL (SuccessFactors Query language) based fields list that is used to execute scenarios. You can also fetch the updated data after your last successful data fetch run. This is called as 'Delta Sync'. Refer to Delta Sync scenarios for more details.

NoteIf you are connecting to a system that supports https communication, you must ensure the following:

● Java development kit is installed on your system● You have referred JDK in the Eclipse configuration file

NoteFor information of referring JDK in Eclipse configuration file, refer to Eclipse documentation.

● You have imported the security certificate of the system you are connecting to your JDK keystore

NoteFor information on importing certificate to JDK keystore, refer to JDK documentation.

You use this procedure to model a SFQL query.

Procedure

1. Choose the Adapter Specific tab page in the sender channel configuration.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 79

Page 80: Developer's Guide: Managing Integration Content - help.sap.com

2. Choose Model Operation in the Processing tab page.3. Connect to the SuccessFactors system.

Use the following parameters to connect to the SuccessFactors test or development environment to fetch the SuccessFactors API details and choose Next.

Table 32:

Field Data to be Filled

Address URL used to connect to the SuccessFactors API in Devel­opment or Test Landscape.

Company ID SuccessFactors Company ID

User Name User name to be used to connect to the systems

Password Password to be used to connect to the system

Proxy Host Proxy Host address of the proxy setting to be used to con­nect to the SuccessFactors System

Proxy Port Proxy Port of proxy setting to be used to connect to the SuccessFactors System

4. Select the Entity.

Table 33:

Parameter Description

Entity List List of the available Entities. Data related to these entities is fetched.

5. Select the Operation and Fields of the entity.Choose the attributes (fields) you would like to fetch from the entity you selected in the previous step.

Table 34:

Parameter Description

Operation Select the operation that you want to perform.

NoteOnly Query operation is available in the sender chan­nel.

Fields Select the fields related to the entity that should be used in the operation.

6. Configure filter conditions (optional step)This step is available only in case of ‘Query’ Operation. In this step, you can configure the filter condition that you wish to apply to the fields you would like to fetch from the selected entity.

80P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 81: Developer's Guide: Managing Integration Content - help.sap.com

Table 35:

Field Description

Filter Field Field that is used in the SuccessFactors API ‘WHERE’ clause for filtering.

NoteField set contains the set of filterable fields returned from the SuccessFactors API that you can use in the Filter Condition

Operation Operator to be used in the WHERE condition Example < , >

Type Value that the filter filed has to be compared against.

When the Type is Text then specify the exact value

When the Type is XPath specify the entire XPath value. In case the previous Integration flow step is a content en­richer, the XPath must be specified as a relative path, starting with double-slash ‘\\’.

When the Type is Delta Sync the value is populated with maxDateFromLastRun.

When the Type is Property, the system reads value from the property you have defined in the integration flow ele­ment.

Value Value that the filter filed has to be compared against.

When the Type is Text then specify the exact value

When the Type is XPath specify the entire XPath value. In case the previous Integration flow step is a content en­richer, the XPath must be specified as a relative path, starting with double-slash ‘\\’.

When the Type is Delta Sync the value is populated with maxDateFromLastRun.

Condition ‘AND’ or ‘OR’ condition that needs to be used in the Query WHERE clause filter condition.

Add The condition will be added to the generated SuccessFac­tors Query

NoteMultiple conditions can be added if required

Remove Any condition that is already added to the list can be se­lected and removed from the final SuccessFactors Query

You can configure the filter condition to execute delta sync scenarios. Refer to Configuring Delta Sync Scenarios for more details.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 81

Page 82: Developer's Guide: Managing Integration Content - help.sap.com

7. Configure sorting conditions (optional step)Choose the attributes (fields) you would like to fetch from the selected SuccessFactors Entity.

Table 36:

Field Description

Order By Field that is used in the SuccessFactors API ‘ORDER BY’ clause for sorting.

NoteField set contains the set of sortable fields returned from the SuccessFactors API that you can use in the ‘ORDER BY’ condition

Descending The list is sorted in descending order if this button is se­lected.

NoteIf not selected, the data is ordered in Ascending order by default

Add The condition will be added to the generated SuccessFac­tors Query

NoteMultiple conditions can be added if required

Remove Any condition that is already added to the list can be se­lected and removed from the final SuccessFactors Query

8. Choose FinishThe ‘Finish’ button is activated only if you select some fields of the entity in step 3. When you choose Finish, the system creates a XML schema file with the selected entities. You can access the schema file in src.main.resources.wsdl folder of your project. If there is an existing XML schema file, you have the option of overwriting the existing file or creating a new file after choosing the finish option. This file can be used in the integration flow like mapping step.One of the root elements in the XML schema file is the Entity Name. In cases where the Entity Name is in the format <EntityName>_$XX, only <EntityName> is used as the root element of the XML schema file. $XX is dropped from the root element name of the XML schema so that you can use the same integration flow in other SuccessFactors company ID without changing the mapping.

Configuring Delta Sync ScenariosYou can configure SuccessFactors connector to fetch the modified or delta records instead of fetching all the records. This optimizes the polling mechanism. This is known as delta sync configuration.

NoteYou have configured the sender channel of SuccessFactors connector.

82P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 83: Developer's Guide: Managing Integration Content - help.sap.com

If you wish to add more filter conditions after configuring for delta sync, use the appropriate operators and add them. Once the query is executed, the relevant scenarios are executed.

NoteThe following steps guide you to configure the delta sync conditions only. Refer to Modelling Operations for end-to-end procedure on creating and executing operations.

Delta Sync

With this configuration, the system fetches all records from the beginning of time (1/1/19070, by default) in the first run. Only modified records are fetched in the subsequent runs.

1. In Configure Filter Condition for Fields window, select a field of type DATETIME for the Filter Field. Example: lastModified

2. In the Operation field, select >.3. In Type field, select Delta Sync. maxDateFromLastRun is automatically populated in the Value field.

NoteIf the payload from the SuccessFactors system has execution_timestamp as one of the fields, that time-stamp is used as the reference date for the subsequent delta sync polling cycles. The date specified in the Query is ignored.

Modify Query in Existing Delta Sync Configuration

With this configuration, you can modify the query in an existing delta sync configuration. The system will consider the new Query and fetch only modified records in the subsequent polling cycles.

1. Add or remove the new fields that you wish to fetch in Model Operation window.2. If you want to add new filter conditions. In the Configure Filter Conditions for Fields window.3. You can also modify or remove existing filter conditions in the Configure Filter Conditions for Fields

window.4. Continue with the existing delta sync configuration.

Reset Existing Delta Sync Configuration

You perform these steps only to reset an existing delta sync configuration. After reset, the configuration enables you to fetch data from the beginning of time (1/1/1970) in the first polling cycle and fetch only modified records in the subsequent polling cycles.

1. In the channel configuration, enter a new channel name in the Channel Details section. The new name resets the existing delta sync configuration.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 83

Page 84: Developer's Guide: Managing Integration Content - help.sap.com

CautionChoose a unique channel name. Do not use names that were used in earlier delta sync configurations.

2. Save the configuration.

Fetch Records after a Specified Date in the First Run and Fetch Modified Records in Subsequent Runs

With this configuration, you can specify a date that will be used as a reference to fetch records. The system fetches the records that are modified or added after the specified date in the first polling cycle. The modified records are fetched in the subsequent polling cycles.

1. Select the fields that you want to fetch in the Model Configuration window.2. In Configure Filter Condition for Fields window, select a DATETIME type field in Filter Field window.

Example: lastModified.3. In Operation field, choose >=.4. In the Value field, enter the date after which you want the records to be fetched from the system.5. Choose Add.6. Select a field of type DATETIME for the Filter Field. Example: lastModified.7. In the Operation field, select >.8. In Type field, select Delta Sync. maxDateFromLastRun is automatically populated in the Value field.9. In the Operators field, choose AND.

Modeling OData Operations to Connect to SuccessFactors OData Service

Prerequisites

You must have configured the receiver channel of the SuccessFactors adapter.

Context

If you have chosen ODatav2 protocol to connect to the SuccessFactors system, use this procedure to model a SFQL query.

84P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 85: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. Choose Model Operation in the Adapter Specific tab page.2. If you want to use a local EDMX file to connect to the system, perform the following substeps:

a. Select the Local EDMX File checkbox.b. Choose Browse.c. Select an EDMX file in the EDMX Selection window and choose OK.

3. To connect to the SuccessFactors OData service, enter values in fields based on the description given in the table below and choose Next.

Field Description

Address The URL of the SuccessFactors OData Service provider

Company ID Company ID that you are using to connect to the Suc­cessFactors system

Username Username for authentication

Password Password for authentication

NoteThe proxy settings are enabled only if you select the Enable proxy communication checkbox.

NoteIf you are connecting to a system that supports https communication, you must ensure the following:○ Java development kit is installed on your system○ You have referred JDK in the Eclipse configuration file

NoteFor information of referring JDK in Eclipse configuration file, refer to Eclipse documentation.

○ You have imported the security certificate of the system you are connecting to your JDK keystore

NoteFor information on importing certificate to JDK keystore, refer to JDK documentation.

4. Select the Entity in Select Entity for an operation window and choose Next.5. Choose the Sub-Levels from the dropdown list.

RememberIf you are performing the Insert (POST) operation and the payload contains one level of sub-entities, choose 1 from the dropdown list.

CautionEnsure that you select values for the Sub-Levels field only from the dropdown list.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 85

Page 86: Developer's Guide: Managing Integration Content - help.sap.com

NoteThe Navigation Depth is the level up to which you want to view the entity association. For example, consider that entity B is associated with entity A and entity C is associated with entity B. If you choose entity A in the Select Entity for an operation window and choose Navigation Depth as 1, you can navigate till entity B. If you choose Navigation Depth as 2, you can navigate up to entity C.

6. Choose the Operation from the dropdown list based on the description given in the table.

Operation Description

Query (GET) Used to fetch data from the OData service

Update (PUT) Used to update data to an OData service

Insert (POST) Used to insert data to an OData service

Read (GET) Used to fetch a unique entity from the OData Service.

Passes the key fields along with the Entity in the URI (Uni­versal Resource Indicator). Format:<Entity>(Keyfield 1, Keyfield 2, etc.)

Upsert (UPSERT) Used to perform Update and Insert operations using one command to the OData service exposed by the Success­Factors system. It checks if the record exists in the table. If the record is present, it updates the content of record. If the record is not present, it will create a new record with the parameters specified in the payload.

RestrictionThis operation is not supported if you specify JSON as the request payload type.

7. Select the required fields for the operation from the Fields screen area and choose Next.

RememberIf you choose PUT or POST operation, this is the last step. Choose Finish.

8. Enter values in the Top and Skip fields based on the description given in table below. This is applicable only in case of Query operation

Field Description

Top If you enter value 'x', only the top 'x' values are fetched from the OData service provider

Skip If you enter value 'x', the top 'x' values are ignored and the remaining records are fetched from the OData service provider

9. Select the values based on the description given in the table below to add filter conditions to the operation. The filter step is available only in case of the Query (GET) Operation.

86P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 87: Developer's Guide: Managing Integration Content - help.sap.com

Table 37:

Field Description

Filter Field Field that is used in the SuccessFactors API ‘WHERE’ clause for filtering.

NoteField set contains the set of filterable fields returned from the SuccessFactors API that you can use in the Filter Condition

Operation Operator to be used in the WHERE condition Example < , >

Type Value that the filter filed has to be compared against.

When the Type is Text then specify the exact value

When the Type is XPath specify the entire XPath value. In case the previous Integration flow step is a content en­richer, the XPath must be specified as a relative path, starting with double-slash ‘\\’.

When the Type is Delta Sync the value is populated with maxDateFromLastRun.

When the Type is Property, the system reads value from the property you have defined in the integration flow ele­ment.

Value Value that the filter filed has to be compared against.

When the Type is Text then specify the exact value

When the Type is XPath specify the entire XPath value. In case the previous Integration flow step is a content en­richer, the XPath must be specified as a relative path, starting with double-slash ‘\\’.

When the Type is Delta Sync the value is populated with maxDateFromLastRun.

Condition ‘AND’ or ‘OR’ condition that needs to be used in the Query WHERE clause filter condition.

Add The condition will be added to the generated SuccessFac­tors Query

NoteMultiple conditions can be added if required

Remove Any condition that is already added to the list can be se­lected and removed from the final SuccessFactors Query

10. Choose Finish.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 87

Page 88: Developer's Guide: Managing Integration Content - help.sap.com

Results

Choosing Finish generates an XSD and EDMX files.

The HCI enterprise service bus (ESD) processes data in the XSD format. You use this XSD file in mapping step for data transformation.

The EDMX file contains the OData entity specification from the OData service provider. You can use this file in the subsequent operation modeling steps to connect to the OData service provider.

2.5.2.8 Configuring a Channel with OData Adapter

Prerequisites

● You have created an integration project● You have created an integration flow

Context

The OData connector enables you to connect to systems exposing OData services (OData service providers). The connector allows the integration developer to connect to an OData service and perform the operations Query (GET), Update (PUT), Create (POST), Merge (MERGE) and Read (GET), allowing you to query, update and insert of data.

Procedure

You use this procedure to configure the receiver channel of the OData connector.1. Double-click the receiver channel of the integration flow in the Model Configuration tab page.2. Choose Browse in the Adapter Type screen area.3. Choose OData in the Choose Adapter window and choose OK.4. Choose the Adapter Specific tab page and enter details in fields based on the description given in the table

below.

Field Description

Address URL of the OData service provider you want to connect to

88P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 89: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Proxy Type The type of proxy that you are using to connect to the tar­get system:○ Select Internet if you are connecting to a cloud sys­

tem.○ Select On-Premise if you are connecting to on-prem­

ise system using the SAP Cloud Connector.This option is only available if you have chosen prod­uct profile HANA Cloud Integration.

For more information, see .Using SAP HANA Cloud Con­nector with HCI Adapters [page 102].

Authentication Select Basic from the dropdown list if you want to use ba­sic authentication to connect to the OData service pro­vider

Select Client Certificate from the dropdown list if you want to use a certificate for authentication while connect­ing to the OData service provider.

RestrictionYou cannot use client certificate for connecting to the OData service provider while modeling operations us­ing operations modeler.

Operation Details This contains details to the operation. This could be Query (GET), Update (PUT), Insert (POST), Read (GET)

ResourcePath: This is the URI that is appended to the OData service endpoint when connecting to the service provider.

For more information, see Modeling Operations for OData Adapter

Custom Query Options Additional query options other than the ones configured using operations modeler. For example, sap-client=100 is a custom query option that you can specify.

Content Type Format of the request payload. You can select Atom or JSON.

Content Type Encoding Encoding standard used to encode the request payload content

Page Size Total number of records in one page of response from OData service provider

5. If you want to convert the response from OData service provider to XML format, select Convert Response to XML checkbox.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 89

Page 90: Developer's Guide: Managing Integration Content - help.sap.com

6. Save the configuration.

Modeling Operations for OData Adapter

Prerequisites

You have configured the receiver channel of the OData adapter.

Context

You use the Model Operation feature in the OData adapter to model an operation [Query (GET), Update (PUT), Create (POST), Read (GET) and Merge (MERGE)]. You also select the ResourcePath, the URI using which you transact with the OData service provider.

NoteIf you are connecting to a system that supports https communication, you must ensure the following:

● Java development kit is installed on your system● You have referred JDK in the Eclipse configuration file

NoteFor information of referring JDK in Eclipse configuration file, refer to Eclipse documentation.

● You have imported the security certificate of the system you are connecting to your JDK keystore

NoteFor information on importing certificate to JDK keystore, refer to JDK documentation.

Procedure

You use this procedure to model an operation with the Odata adapter.1. Double-click the OData receiver channel of the integration flow in the Model Configuration tab page.2. Choose the Adapter Specific tab page.3. Choose Model Operation.4. If you want to use a local EDMX file to connect to the OData service provider, perform the following

substeps:

90P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 91: Developer's Guide: Managing Integration Content - help.sap.com

RememberIf you have used client certificate for connecting to the OData service provider, you need to download the EDMX file from the OData service provider and import it to the src.main.resources.edmx folder. It enables you to use local EDMX file to connect to the system.

a. Select the Local EDMX File checkbox.b. Choose Browse.c. Select an EDMX file in the EDMX Selection window and choose OK.

5. If you want to enter connection details manually, enter values in fields based on the description given in the table.

Field Description

Address URL of OData service provider you are connecting to

Username Username you are using for authentication

Password Password you are using for authentication

NoteYou cannot use this option if you have selected client certificate as the authentication method while configuring the channel.

6. Select the entity in Select Entity for an Operation window and choose Next.7. Choose the Operation from the dropdown list based on the description given in the table.

Operation Description

Query (GET) Used to fetch data from the OData service

Create (POST) Used to insert data to an OData service

Update (PUT) Used to update data to an OData service

RestrictionThis operation is not supported for associated entities

Merge (MERGE) Used to merge data with existing data in OData service

RestrictionThis operation is not supported for associated entities

Read (GET) Used to fetch a unique entity from the OData Service.

Passes the key fields along with the Entity in the URI.

Format: <Entity>(keyfield 1, keyfield x,..)

8. Select the required fields for the operation form the Fields screen area.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 91

Page 92: Developer's Guide: Managing Integration Content - help.sap.com

NoteIN the case of Update (PUT) or Insert (POST) operation, this would be the last step. Choose Finish.

9. If you have chosen the operation as Query (GET), enter values in Top and Skip fields based on the description given in table.

Field Description

Top If you enter a value 'x', the system fetches the top x re­cords form the OData service provider

Skip If you enter a value 'x', the system skips x records from top and fetches the remaining records from the OData service provider

10. Choose Next.11. If you want to add filter conditions to the operation, enter values in fields based on the description given in

table.

Table 38:

Field Description

Filter Field Field that is used in the ‘WHERE’ clause for filtering.

NoteField set contains the set of filterable fields returned from the OData service provider that you can use in the Filter Condition

Operation Operator to be used in the WHERE condition Example < , >

Type Value that the filter filed has to be compared against.

When the Type is Text then specify the exact value

When the Type is XPath specify the entire XPath value. In case the previous Integration flow step is a content en­richer, the XPath must be specified as a relative path, starting with double-slash ‘\\’.

When the Type is Property, the system reads value from the property you have defined in the integration flow ele­ment.

Value Value that the filter filed has to be compared against.

When the Type is Text then specify the exact value

When the Type is XPath specify the entire XPath value. In case the previous Integration flow step is a content en­richer, the XPath must be specified as a relative path, starting with double-slash ‘\\’.

Condition ‘AND’ or ‘OR’ condition that needs to be used in the Query WHERE clause filter condition.

92P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 93: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Add The condition will be added to the generated SuccessFac­tors Query

NoteMultiple conditions can be added if required

Remove Any condition that is already added to the list can be se­lected and removed from the final Query

12. Choose Finish.

Results

Choosing the Finish button generates an XSD and EDMX files.

The XSD is the format in which data is processed in the HCI esb. You use this xsd file in the mapping step for data transformation.

The EDMX file contains the OData Entity specification form the provider. This can be used when you model operation again by choosing ‘Local EDMX’ file.

Defining Mapping for OData Batch Processing

Prerequisites

● You have created an integration project and integration flow● You have configured the OData adapter receiver channel● You have modeled PUT or POST operation using the OData adapter● You have imported the input payload XML format into the eclipse project

Context

When you choose batch processing for PUT and POST operations for the OData adapter, the payload format that is sent to the OData service must be in the recommended structure. You can use the input XSD that is generated when you model the operation with a mapping step to transform the payload into the recommended XSD structure. You can alternatively use XSLT or content modifier to do this.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 93

Page 94: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

This procedure enables you to transform the input payload XML into the recommended batch processing structure.

1. Choose File New Other .

2. In the New wizard, choose SAP HANA Cloud Integration Message Mapping and choose Next.3. In the General Details section of the New Message Mapping window, enter Name and Description.4. In the Location Details section of the New Message Mapping window, choose Browse and select the project

that you are working in. Choose Ok.5. In the New Message Mapping window, choose Finish.6. In the Source Element section, choose Add.7. In the Select a XSD or WSDL file window, select the input payload format XML and choose OK.8. In the Target Element section, choose Add.9. In the Select a XSD or WSDL file window, select the XSD file that was generated when you modeled the

operation and choose OK.10. Choose the Definition tab page and perform the following substeps to map the elements in the payload

XML to the target XSD.a. Map the Entity Type element in the left pane to the batchChangeSet on the right pane.b. Map the fields in the left pane to the appropriate fields on the right pane.c. Map the batchChangeSet, Entity Set and Entity Type elements on the right pane except the headers to

a constant. The value of the constant can be a dummy example value.d. Choose the method element and double-click Constant element in the properties view.e. In the Constant Parameters window, enter the operation (PUT/POST) in the Value field and choose

OK.This is the same operation that you have chosen while modeling the OData operation.

NoteRefer to 2031746 for more details on the structure of request and response XSD.

Mapping Definition for Reference Insert

When you are performing the Insert (POST) operation, in addition to inserting an entity, you can add a reference to an associated entity. To do this, you have to map the appropriate field from the payload to the key field of associated entity in <link> tag.

You can use a mapping step to do this. Consider the following example.

<?xml version="1.0" encoding="UTF-8"?> <Categories xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="CategoriesEntityPOST0.xsd"> <Category> <ID>0</ID> <Products> <Product> <Description>Description</Description>

94P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 95: Developer's Guide: Managing Integration Content - help.sap.com

<Name>Name</Name> <ID>0</ID> </Product> </Products> <link> <Products> <Product> <ID>0</ID> </Product> </Products> </link> </Category> </Categories>

The primary key is <ID>. You need to map the key element to your reference to <ID> for successfully executing reference insert operation.

2.5.2.9 Configuring a Channel with Ariba Adapter

Prerequisites

● You have created an integration project and an integration flow.● You have the credentials to log on to the Ariba Network.● You have a certificate from Ariba or a trusted third party who is a certification authority.● You have deployed the following artifacts: User Credentials and Keystore.

Context

You use this procedure to configure a sender and receiver channel of an integration flow with the Ariba Network adapter. These channels enable the SAP and non-SAP cloud applications to send and receive business-specific documents in cXML format to and from the Ariba Network. Examples of business documents are purchase orders and invoices.

Procedure

1. Double-click the channel that you want to configure on the Model Configuration tab page.2. On the General tab page, choose Browse in the Adapter Type screen area.3. Select Ariba in the Choose Adapter window and choose OK.4. Choose the Adapter-Specific tab page and enter the details as shown in the table below:

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 95

Page 96: Developer's Guide: Managing Integration Content - help.sap.com

Table 39: Parameters and Values of a Channel for the Ariba Adapter

Section Parameter Description

Connection Details Ariba Network URL Specify the URL to which the cXML requests are posted, or from where the cXMLs are polled.

Connection Mode Select one of the options based on the description given below:

Test - If you select this option, the Ariba Network will not process the messages, and treats the messages as test data.

Production - If you select this option, the Ariba Network processes the messages.

Default deployment mode is “Produc­tion”.

Account Type Select one of the options based on the description given below:

Buyer - If you hold a buyer account on the Ariba Network.

Supplier - If you hold a supplier ac­count on the Ariba Network.

Request Type (this field is available only in the sender channel)

Select one of the options based on the request types of buyer/supplier that you want to poll.

Maximum Messages (this field is available only in the sender channel)

Enter the number of messages to be polled from the Ariba Network for the above-selected Request Type.

The maximum allowed value is 200.

Authentication Domain Select one of the options based on the description given below:

Network ID: A unique alphanumeric value assigned to every organization registered on Ariba SN; for example, AN01000000001.

Network User Id: A login name of an Ariba SN user. These names typically have the format of an e-mail address; for example, [email protected].

96P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 97: Developer's Guide: Managing Integration Content - help.sap.com

Section Parameter Description

Authentication Select one of the options based on the description given below:

Shared Key: If you have set the shared key in your Ariba account.

Client Certificate: If you have config­ured your certificate from a trusted certificate authority in the Ariba ac­count.

Credential Name Enter a name. This name is treated as an alias to the secure store where the user credentials are deployed. This value should be set according to the Authentication selected above. If you have selected Client Certificate, then enter the alias details in the Private Key Alias field.

This alias is used to identify the key­store credentials deployed on the HCI account.

For User, you can enter Network User Id or Network ID, depend­ing on the selected option for Authentication Domain.

For Password, enter the shared key.

Ariba Network ID Enter the ID that is associated with the Ariba Network. Default value is AN01000000001.

Processing Details cXML version Default value provided by SAP is 1.2.025. If you are entering the ver­sion, it must be above 1.2.018.

User Agent Enter the user agent details. The con­vention is a textual string represent­ing the client system that is conduct­ing the cXML conversation. It must consist of the software company name and the product name.

Language Language that is used for construct­ing the cXML conversation.

The only supported language is EN.

Scheduler (only valid for the sender channel)

Run Once Run a data polling process immedi­ately after deploying the project.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 97

Page 98: Developer's Guide: Managing Integration Content - help.sap.com

Section Parameter Description

On Date Specific date on which the data poll­ing process has to be initiated to fetch data from the Ariba system.

Daily Run message polling every day to fetch data from the Ariba system.

Weekly Run the message polling every week on specified days of the week to fetch data from the SuccessFactors sys­tem.

Monthly on Day Execute the message polling every month on the specified date to fetch data from the Ariba server.

NoteIf the specified date is not applica­ble in a particular month, the data polling is not executed in that month. For example, if the 30th day is selected, polling will not be executed in the month of Febru­ary, as 30th is not a valid day for February.

Time The time at which the data polling cy­cle has to be initiated. For example, if you want the data polling to be started at 4:10 p.m., enter 16:10. Note that the time must be entered in 24-hour format.

Every xx minutes between HH hours and HH hours

The connector fetches data from the Ariba system every ‘xx’ minutes be­tween HH hours and HH hours.

NoteIf you want the polling to run for the entire day, enter 1 and 59.

Time Zone Select the time zone that you want to use as reference for scheduling the data polling cycle.

5. Save the configuration of the channel editors.

NoteYou can use headers and properties to set values for Ariba Network URL, Credential Name, Private Key Alias and Ariba Network ID. You can enter values in the following format:○ ${header.url}

98P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 99: Developer's Guide: Managing Integration Content - help.sap.com

○ ${property.credentialName}

Results

In the Model Configuration editor, right-click and choose Deploy Integration Content to apply the configuration settings and run the integration flow.

2.5.2.10 Configuring a Channel with Twitter Adapter

Prerequisites

You can only select the Twitter adapter type when you have connected your client (which runs Eclipse) to a suitable version of a cluster. After connecting to the newest version of the cluster, choose Update client with latest components from server (see the following figure).

Context

You can use the Twitter receiver adapter to extract information from the Twitter platform (which is the receiver platform) based on certain criteria such as keywords, user data, for example. As one example, you can use this feature to send, search for and receive Twitter feeds.

The connection works that way that the tenant logs on to Twitter based on an OAuth authentication mechnism and searches for information based on criteria as configured in the adapter at design time. OAuth allows the tenant to access someone else’s resources (of a specific Twitter user) on behalf of the tenant. As illustrated in the figure, the tenant (through the Twitter receiver adapter) calls the Twitter API to access resources of a specific Twitter user. Currently, the Twitter adapter can only be used as receiver adapter. For more information on the Twitter API, go to: https://dev.twitter.com/ .

NoteNote that externalization is supported only for string fields of the adapter (User, Keywords, User Name, and OAuth settings).

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 99

Page 100: Developer's Guide: Managing Integration Content - help.sap.com

Do not externalize other properties. Although the user interface allows this, the integration flow check will be erroneous.

Procedure

1. Double-click the channel that you want to configure on the Model Configuration tab page.2. On the General tab page, choose Browse in the Adapter Type screen area.3. Select Twitter in the Choose Adapter window and choose OK.4. Choose the Adapter-Specific tab page and enter the details as shown in the table below:

Table 40: Attributes of the Twitter Receiver Adapter (Twitter Components)

Field Description

Endpoint To access Twitter content, you can choose among the following general options.

○ Query Timeline / UserAllows you to search for Twitter content related to a specific user timeline.

○ SearchAllows you to do a search on Twitter content by specifying keywords.

○ Send Direct MessageAllows you to send messages to Twitter (write access, direct message).

User Specifies the Twitter user from which account the information is to be extracted.

Page Size Specifies the maximum number of results (tweets) per page.

Number Of Pa­ges

Specifies the number of pages which you want the tenant to consume.

100P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 101: Developer's Guide: Managing Integration Content - help.sap.com

Table 41: Attributes of the Twitter Receiver Adapter (Filter Settings)

Field Description

Locations Specifies bounding boxes to define the geographic coordinates (according to which the results are to be filtered).

A bounding box is the smallest rectangular shape which encloses the entity in question. It is an area defined by two longitudes and two latitudes. Hereby, latitude is a decimal number between -90.0 and 90.0, and longitude is a decimal number between -180.0 and 180.0.

Example: 49.293337, 8.640392, 49.294022, 8.642677

Keywords Specifies the keywords used to filter the results.

Use commas to separate different keywords or a valid Twitter Search API query (for more informa­tion, go to https://dev.twitter.com/rest/public/search ).

User Names Specifies the users for which content is to be searched on Twitter.

Language Specifies the search language.

Table 42: Attributes of the Twitter Receiver Adapter (OAuth Settings)

Field Description

Consumer Key An alias by which the consumer (tenant) that requests Twitter resources is identified

Consumer Se­cret

An alias by which the shared secret is identified (that is used to to define the token of the consumer (tenant))

Access Token An alias by which the access token for the Twitter user is identified

In order to make authorized calls to the TwitterAPI, your application must first obtain an OAuth ac­cess token on behalf of a Twitter user

Access Token Secret

An alias by which shared secret is identified that is used to define the token of the Twitter user

The authorization is based on shared secret technology. This method relies on the fact that all parties of a communication share a piece of data that is known only to the parties involved. Using OAuth in the context of this adapter, the Consumer (that calls the API of the receiver platform on behalf of a specific user of this platform) identifies itself using its Consumer Key and Consumer Secret, while the context to the user itself is defined by an Access Token and an Access Token Secret. These artifacts are to be generated for the receiver platform app (consumer) and should be configured that way that they will never expire. This adapter only supports consumer key/secret and access token key/secret artifacts that do not expire.

To finish the configuration of a scenario using this adapter, the generated consumer key/secret and access token key/secret artifacts are to be deployed as Secure Parameter artifact on the related tenant. To do this, use the Integration Operations feature, position the cursor on the tenant and chosen Deploy Artifact .... As artifact type, choose Secure Parameter.

5. Save the configuration of the channel editor.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 101

Page 102: Developer's Guide: Managing Integration Content - help.sap.com

2.5.2.11 Using SAP HANA Cloud Connector with HCI Adapters

You can use the SAP HANA Cloud Connector (SCC) with HCI adapters to communicate with SAP on premise systems. You have to install cloud connector on the on premise system/s that you want to communicate with, and configure it. This is a one-time activity after which you can use cloud connector with HCI adapters.

Perform the following steps to use cloud connector with HCI adapters.

1. Install SAP HANA Cloud Connector on your on premise system. For more information, see Installing the Cloud Connector.

2. Set up mutual authentication between the cloud connector and a backend system. For more information, see Initial Configuration and Initial Configuration (HTTP).

3. Enable the web application to connect to access backend system on the intranet. For more information, see Configuring Access Control (HTTP).

You can now connect to on premise systems using HCI adapters by selecting on-premise value in Proxy Type field dropdown list.

NoteYou need to enter your tenant ID as the account name while configuring SAP HANA Cloud Connector. You can access the tenant ID by selecting the tenant in Node Explorer and accessing the Tasks View by choosing

Window Show View Tasks View .

2.5.3 Defining Message Transformers

Context

Procedure

102P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 103: Developer's Guide: Managing Integration Content - help.sap.com

2.5.3.1 Assigning Mapping

Prerequisites

● You have configured the connections to an On-Premise repository if you have to import mapping from that repository into the workspace.

NoteFor more information on setting the connections to the repository, see the task 'Setting the Connections to the External Repository' in Configuring the Tool Settings [page 12]. You can import message mappings (.mmap) from ES Repository with server version 7.1 onwards, and operation mapping from ES Repository with server version 7.3 EHP1 SP3 .

● You have imported the mappings to your local workspace from the On-Premise repository.

NoteFor more information about how to import mappings from the ES Repository, see Importing SAP NetWeaver PI Objects from On-Premise Repository [page 19].

Context

You perform this task to assign a mapping that is available in your local workspace.

Your local workspace can contain mappings that are already imported from an external repository, such as the ES Repository, or you have obtained them from some other integration project.

CautionYou have to be cautious in distributing the mappings imported from ES Repository if they contain any sensitive data. Although you securely import mappings from the repository by providing the user credentials, copying the imported mappings from one Integration Project to another does not require any authorization.

In an integration flow project, the src.main.resources.mapping package can contain message mapping (.mmap), operation mapping (.opmap), XSL mapping and XSLT mapping.

Procedure

1. To add a mapping element to an integration flow model, perform the steps below:

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 103

Page 104: Developer's Guide: Managing Integration Content - help.sap.com

a. In the Model Configuration editor, select the sequence flow within the pool.b. From the context menu of the sequence flow, choose Add Mapping.

2. Select the mapping in the integration flow and open the Properties view.3. In the Mapping tab, choose Browse… to select a mapping for the integration flow.

NoteYou can assign an operation mapping only if the sender and receiver channel is configured with SOAP adapters.

4. In the Choose Mapping dialog, choose the dropdown icon and select Local to obtain the mapping.

NoteLocal option shows mapping of different types, such as message mapping (.mmap), operation mapping (.opmap), XSL mapping and XSLT mapping, available within the current project.

5. Select a mapping.6. Choose OK.

NoteTo view or modify the definition of message mapping in the mapping editor, click Name in the Properties view. If you have assigned an operation mapping, the navigation to the mapping editor is not supported.

RestrictionMessage mapping does not work if the integration flow project contains whitespaces.

2.5.3.2 Defining Content Modifier

You use this task if you want to modify the content of the incoming message by providing additional information in the header or body of a message before sending it to the receiver.

Context

You can also use content modifier to define local properties for storing additional data during message processing. These properties can be further used in connectors and conditions.

Example

In SFTP Connector, the user can specify the receiver file name as - File_${property.count}.txt.

In Gateway, the user can define the condition as ${property.count} = '5'.

104P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 105: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.

2. If you want to add a content modifier in the integration flow, choose Add Message TransformersContent Modifier from the context menu of a connection within the pool.

3. Select the added content modifier in the integration flow model to configure it.4. To configure the content modifier with a saved configuration that is available as a template, choose Load

Element Template from the context menu of the Content Modifier element.5. In the Properties view, select the Header tab.6. In the new row, define additional headers or set values for existing headers of messages by using

constants, another header, an XPath, a property, an external parameter, or by forming an expression.a. To enter an XPath, select xpath in the Type column and browse for an XPath from the lookup in the

Value column.

Note○ The Data Type column is mainly used for the XPath type. The data type can belong to any Java

class. An example of a data type for an XPath is java.lang.String.○ If the XPath contains a namespace prefix, specify the association between the namespace and

the prefix on the Runtime Configuration tab page of the integration flow Properties view.

b. To enter a header, select header in the Type column, and browse for a header from the lookup in the Value column.

Note○ This lookup dialog shows you a list of headers that you have specified:

○ In the Header tab page of Content Modifier flow steps○ In the Allowed Headers field of the Runtime Configuration tab page

c. To enter an external parameter, select external parameter in the Type column and define the parameter key. For more information, see Externalizing Parameters of Integration Flow (section 2.5).

7. In the same way as for headers, the user can also define properties with different value types as explained above, by selecting the Property tab in the Properties view.

Note○ Header values can be lost following the external system call, whereas properties will be available for

complete message execution.○ During outbound communication, headers will be handed over to all message receivers and

integration flow steps, whereas properties will remain within the integration flow and will not be handed over to receivers.

8. Save the changes.9. To save the configuration of the modifier as a template, choose Save as Template from the context menu

of the Content Modifier element.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 105

Page 106: Developer's Guide: Managing Integration Content - help.sap.com

NoteWhen you save the configuration of the Content Modifier element as a template, the tool stores the template in the workspace as <ElementTemplateName>.fst.

ExampleSuppose the incoming message has the following information:

<order> <book> <BookID>A1000</BookID><Count>5<Count></book></order>

In the Body tab of the Content Modifier, you specify the content expected in the outgoing message. Keep a placeholder for the header information to modify the content as shown below:

<invoice> <vendor>${header.vendor}</vendor>${in.body}<deliverydate>${header.date}</delivery></invoice>

In the Header tab of the Content Modifier, enter the following:

Table 43:

Name Type Value

vendor constant ABC Corp

delivery date constant 25062013

The output message would look like this:

<invoice> <vendor>ABC Corp</vendor> <order> <book> <BookID>A1000</BookID><Count>5<Count></book></order><deliverydate>25062013</deliverydate></invoice>

Related Information

Specifying Application ID, SAP_Sender and SAP_Receiver Fields [page 107]

106P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 107: Developer's Guide: Managing Integration Content - help.sap.com

2.5.3.2.1 Specifying Application ID, SAP_Sender and SAP_Receiver Fields

With the Content Modifier you can specify additional header fields that can be used for end-to-end tracing.

You can specify the following fields: SAP_ApplicationID, SAP_Sender and SAP_Receiver.

To specify such an ID, open the corresponding integration flow and in the Content Modifier step define a corresponding header element.

To do that, in tab Header add an entry with the following attribute-value combination:

Table 44: Content Modifier Configuration

Attribute Value

Name Depending on the kind of header you like to specify, enter one of the following strings:

SAP_ApplicationID

SAP_Sender

SAP_Receiver

Type Select the following value: xpath

Value As Type, select the XPath expression that points to the message element which is to be used as application ID.

When you monitor the messages at runtime, you can then search for all messages whose such defined SAP_ApplicationID have a specific value (shows up as MessageID attribute in the Message Monitoring editor).

When you have specified SAP_Sender or SAP_Receiver, the corresponding values are displayed in the Message Processing Log.

2.5.3.3 Defining Encoders

You use this task to encode messages using an encoding scheme to secure any sensitive message content during transfer over the network.

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.

2. If you did not select the encoder pattern when creating the integration flow, choose Add Message Transformers Encoder from the context menu of a connection within the pool.

3. Select the encoder in the integration flow model to configure it.4. In the Properties view, select the encoding scheme from the dropdown list. You can select one of the

following encoding schemes:

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 107

Page 108: Developer's Guide: Managing Integration Content - help.sap.com

○ Base64 EncodeAllows you to encode the message content using base64.

○ GZIP CompressAllows you to compress the message content using GNU zip (GZIP).

○ ZIP CompressAllows you to compress the message content using zip.

5. Save the changes.

ExampleConsider the input XML payload structure to the encoder:

<message> Input for encoder</message>

If you select Base64 Encode, the output message would look like this:

PG1lc3NhZ2U+DQoJSW5wdXQgZm9yIGVuY29kZXINCjwvbWVzc2FnZT4NCg==

2.5.3.4 Defining Decoders

You use this task to decode the message received over the network to retrieve original data.

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.

2. If you want to add a decoder in the integration flow, choose Add Message Transformers Decoderfrom the context menu of a connection within the pool.

3. Select the newly added decoder in the integration flow model to configure it.4. In the Properties view, select the decoding scheme from the dropdown list. You can select one of the

following decoding schemes:

○ Base64 DecodeAllows you to decode base64-encoded message content.

○ GZIP DecompressAllows you to decompress the message content using GNU zip (GZIP).

○ ZIP DecompressAllows you to decompress the message content using zip.

5. Save the changes.

ExampleLet us suppose that an input message to the decoder is a message encoded in Base64 that looks like this:

PG1lc3NhZ2U+DQoJSW5wdXQgZm9yIGVuY29kZXINCjwvbWVzc2FnZT4NCg==

108P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 109: Developer's Guide: Managing Integration Content - help.sap.com

The output message of the decoder would be as follows:

<message> Input for encoder</message>

2.5.3.5 Defining Content Filter

Context

You use this task if you want to filter information by extracting a specific node from the incoming message.

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor

2. If you want to add content filter in the integration flow, choose Add Message Transformers Content Filter from the context menu of a connection within the pool.

3. Select the added content filter in the integration flow model to configure it.4. In the Properties view, enter an Xpath to extract a specific message part from the body. For example, in

the Xpath field, enter /ns0:MessageBulk/Message/MessageContent/text() .

TipTo quickly specify the Xpath in the content filter, select Define Content Filter from the context menu of the element.

5. Save the changes.

ExampleConsider an XML payload structure-

<Message> <orders> <order> <clientId>I0001</clientId> <count>100</count> </order> <order> <clientId>I0002</clientId> <count>10</count> </order></orders></Message>

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 109

Page 110: Developer's Guide: Managing Integration Content - help.sap.com

If you enter an Xpath- /Message/orders/order/count/text(). The output of the Content Filter would be- 10010

2.5.3.6 Defining Message Digest

This integration flow step is used to calculate a digest of the Payload or parts of it and store the result in a message header.

Context

In detail, the Message Digest integration flow step transforms a message into a canonical XML document. From this document, a digest (hash value) is calculated and written to the message header.

NoteCanonicalization transforms an XML document into a form (the canonic form) that makes it possible to compare it with other XML documents. With the Message Digest integration flow step, you can apply canonicalization to a message (or to parts of a message), calculate a digest out of the transformed message, and add the digest to the message header.

In simple terms, canonicalization skips non-significant elements from an XML document. To give some examples, the following changes are applied during the canonicalization of an XML document: Unification of quotation marks and blanks, or encoding of empty elements as start/end pairs.

The original message remains unchanged.

You also have the option to define a filter to apply canonicalization only to a sub-set of the message.

Procedure

1. Open the integration flow in the Model Configuration editor.2. Select the Message Digest step and add it to the integration flow.3. Specify the following attributes for the step.

Option Description

Filter If you only want to transform part of the message, enter an XPath expression to specify the part (op­tional attribute).

You can also define a prefix namespace mapping (open the Properties view to do that).

Canonicali­zation Method

You can choose between the following methods.○ Canonical XML Version 1.0

More information: http://www.w3.org/TR/2001/REC-xml-c14n-20010315

110P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 111: Developer's Guide: Managing Integration Content - help.sap.com

Option Description

○ Canonical XML with Comments Version 1.0More information: http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments

○ Exclusive XML Canonicalization Version 1.0More information: http://www.w3.org/2001/10/xml-exc-c14n

○ Exclusive XML Canonicalization with Comments Version 1.0More information: http://www.w3.org/2001/10/xml-exc-c14n#WithComments

This is an optional attribute.

Digest Algo­rithm

Select the hash algorithm to be used to calculate the digest.

You can choose between the following hash algorithms:○ SHA-1○ SHA-256○ SHA-384○ SHA-512○ MD5

This is a mandatory attribute.

Target Header Name

Enter the name of the target header element which is to contain the hash value (digest).

This is a mandatory attribute.

2.5.3.7 Defining Converter

Context

The converter element enables you to transform an input message in one format to another. You can also specify some conditions that are used as reference to transform the message.

The CSV to XML converter transforms a message in CSV format to XML format. Conversely, the XML to CSV converter transforms a message in XML format to CSV format.

RestrictionYou cannot use XML to CSV converter to convert complex XML files to CSV format.

Procedure

You use this procedure to define a converter element in an integration process.1. Open the integration flow in the Model Configuration editor.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 111

Page 112: Developer's Guide: Managing Integration Content - help.sap.com

2. Access the palette and choose Message Transformers.

3. Drag from palette to the integration process.

Note

Alternatively, you can also add the converter from context menu. Choose Message TransformersConverter

4. Make the necessary connections to add Converter as a part of the integration flow.5. If you want to use CSV to XML Converter, perform the following substeps.

a. Select the Converter element and access Properties tab page.b. Provide values in fields based on description in table.

Table 45:

Field Description

XML Schema File Path Choose Browse and select the file path to the XML schema file that is used as the basis for message trans­formation. The XML file schema format is used as the basis for creation of the payload. This file has to be in the package source.main.resources.xsd

Path to Target Element in XSD XPath in the XML Schema File where the content from CSV has to be placed.

Record Identifier in CSV The corresponding record in the CSV file that has to be considered for conversion. This entry is the first text in every new record of the CSV.

NoteIf this value is not specified then all the records would be considered for conversion.

c. In the Field Separator in CSV field, choose the character that you want to use as the field separator in CSV file from the dropdown list.

NoteIf you want to use a field separator that is not available in the dropdown list, manually enter the character in Field Separator in CSV field.

d. Save changes.

6. If you want to use XML to CSV Converter, perform the following substeps.a. In the context menu of Converter, choose Switch to XML to CSV Converter.b. Access the Properties tab page.c. In the Path to Source Element field, enter the path of the source element in XML file.d. In the Field Separator in CSV field, select the field separator from the dropdown list.e. If you want to use the field names in the XML file as headers in CSV file, select the Field Names as

Headers in CSV checkbox.

112P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 113: Developer's Guide: Managing Integration Content - help.sap.com

f. If you want to include the parent element of the XML file in the CSV file, in the Advanced tab page select Include Parent Element checkbox.

g. If you want to include the attribute values of the XML file in the CSV file, in the Advanced tab page select Include Attribute Values checkbox.

h. Save changes.

ExampleConsider a CSV file that is in the following format:

COMPETENCY, Role Specific,Computer Skills,"Skilled in the use of computers, adapts to new technology, keeps abreast of changes, learns new programs quickly, uses computers to improve productivity."

Consider the Schema XML File in the following format:

<?xml version="1.0" encoding="UTF-8"?> <CompetencyList><Competency><id></id><name></name><description></description></Competency></CompetencyList>

Value for the field XPath of Record Identifier in XSD is given as CompetencyList\Competency.

After it is processed by the CSV to XML converter, the XML output appears in the following format:

<?xml version="1.0" encoding="UTF-8"?> <CompetencyList><Competency><id>Role Specific</id><name>Computer Skills</name><description>Skilled in the use of computers, adapts to new technology, keeps abreast of changes, learns new programs quickly, uses computers to improve productivity.</description></Competency></CompetencyList>

2.5.3.8 Defining the XML-to-JSON Converter

The XML-to-JSON converter enables you to transform messages in XML format to JSON format, and messages in JSON format to XML format.

Context

The XML-to-JSON converter transforms a message in XML format to JSON format. Conversely, the JSON-to-XML converter transforms a message in JSON format to XML format.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 113

Page 114: Developer's Guide: Managing Integration Content - help.sap.com

The conversion from XML to JSON format and JSON to XML format follows the following rules:

● An element is represented as a JSON member whose name is the concatenation of the JSON prefix corresponding to the XML namespace, the JSON delimiter, and the element name. If the element has no namespace, then no prefix or JSON delimiter is added to the JSON name.

● An attribute is represented as a JSON member whose name is the concatenation of '@' , the JSON prefix corresponding to the XML namespace, the JSON delimiter, and the attribute name. If the attribute has no namespace, then no prefix or JSON delimiter is added to the JSON name.

● An element with no characters or child elements is represented by "element" : "" .● Multiple elements with the same name are represented by an array. For example, <A>a1</A><A>a2</A>

is transformed to “A”:[“a1”,”a2”].● The value of a complex element (with attributes, for example) is represented by a separate member

"$":"value" .

The conversion from XML to JSON format follows the following rules:

● Elements with mixed content (for example, <A>mixed1_value<B>valueB</B>mixed2_value</A>) are not supported. You will get incorrect results for XML to JSON: {"A":{"B":"valueB","$":"mixed1_valuemixed2_value"}}.

● No namespace declaration is written into the JSON document.● Tabs, spaces, and new lines between elements and attributes are ignored.● If you have an element with a namespace but no XML prefix whose namespace is not contained in the

XML-Namespace-to-JSON-Prefix map, you get an exception: <A xmlns="http://test"/> -> IllegalStateException Invalid JSON namespace: http://test.

The conversion from JSON to XML format follows the following rules:

● The resulting XML document is encoded in UTF-8 and gets the XML header "<?xml version='1.0' encoding='UTF-8'?>".

● The content of the XML-Namespace-to-JSON-Prefix map is transformed to namespace prefix declarations on the root element.

● A member with a JSON null value is transformed to an empty element, for example, "C":null -> <C/>.● Conversion of "@attr":null to XML is not supported (you get a NullPointerException).● If no XML namespace is defined for a JSON prefix, the full member name with the prefix and JSON

delimiter is set as the element name: "p:A" -> <p:A>.

Procedure

You use this procedure to define a converter element in an integration process.1. Open the integration flow in the Model Configuration editor.2. Access the palette and choose Message Transformers.3. Drag Converter from the palette to the integration process.4. From the context menu, choose Switch to XML to JSON Converter.5. On the XML to JSON Converter properties tab page, define the parameters to convert the XML data format

to JSON data format.

114P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 115: Developer's Guide: Managing Integration Content - help.sap.com

Table 46:

Option Description

Name Enter the name of the converter.

JSON Output Encoding Enter the JSON output encoding. The default value is from header or property.

If you select from header or property, the converter tries to read the encoding from the message header or ex­change property CamelCharsetName. If there is no value defined, UTF-8 is used.

XML Namespace (only if the option Namespace Mapping is selected)

If you select from header or property, the converter tries to read the encoding from the message header or ex­change property CamelCharsetName. If there is no value defined, UTF-8 is used.

JSON Prefix Separator (only if the option Namespace Mapping is selected)

Enter the JSON prefix separator to be used to separate the JSON prefix from the local part. The value used must not be used in the JSON prefix or local name.

The following characters are allowed: colon(:), comma(,), dot(.), pipe(|), semicolon(;), and space.

Suppress JSON Root Element Choose this option to create the JSON message without the root element tag.

6. Specify whether to enable Streaming or not.

You can specify whether the whole XML document or only specified XML elements are to be presented by JSON arrays.

Table 47:

All All elements are presented as JSON arrays.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 115

Page 116: Developer's Guide: Managing Integration Content - help.sap.com

Specific Ones Only the specified elements will be represented as JSON arrays, the others as JSON objects.

NoteA JSON object is an unordered set of name/value pairs that begins with { and ends with }. Each name is fol­lowed by : and the name/value pairs are separated by ,.

A JSON array is an ordered collection of values. An ar­ray begins with [ and ends with ]. Values are sepa­rated by ,.

Enter the absolute paths to the XML elements to be con­verted to JSON arrays. Specify all elements with a multi­plicity larger than one. Otherwise, it cannot be ensured that streaming will result in a valid JSON document.

Familiarize yourself with streaming in the XML-to-JSON converter, as documented in a separate topic.

7. Save the changes.8. If you want to use the JSON-to-XML converter, in the context menu of the converter choose Switch to

JSON to XML Converter.9. On the JSON to XML Converter properties tab page, define the parameters to convert the JSON data

format to XML data format.

Option Description

Name Enter the name of the converter.

JSON Prefix (only if the option Use Namespace Mapping is selected)

Enter the mapping of the JSON prefix to the XML name­space. The JSON namespace/prefix must begin with a letter and can contain aA-zZ and 0-9.

JSON Prefix Separator Enter the JSON prefix separator to be used to separate the JSON prefix from the local part. The value used must not be used in the JSON prefix or local name.

The following characters are allowed: colon(:), comma(,), dot(.), pipe(|), semicolon(;), and space.

10. Save the changes.

ExampleThe following example shows the transformation from XML to JSON (option Use Namespace Mapping is selected). In this example the following character is used as the JSON prefix separator: ':'

XML Document

<?xml version='1.0' encoding='UTF-8'?><n1:A xmlns:n1="http://com.sap/abc" xmlns:n2="http://com.sap/xyz"> <n2:B n2:attr1="1" attr2="2">valueB</n2:B> <C>valueC1</C>

116P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 117: Developer's Guide: Managing Integration Content - help.sap.com

<C>valueC2</C> <D/> <E>valueE<E></n1:A>

With the following XML-namespace-to-JSON-prefix mapping

Table 48:

XML Namespace JSON Prefix

http://com.sap/abc abc

http://com.sap/xyz xyz

you get the following JSON document:

JSON Document

{"abc:A":{"xyz:B":{"@xyz:attr1":"1","@attr2":"2","$":"valueB"},"C":["valueC1","valueC2"],"D":"","E":"valueE"}}

NoteLine breaks and spaces between the elements are ignored.

The following example shows the transformation from JSON to XML (option Use Namespace Mapping is selected). In this example the following character is used as the JSON prefix separator: ':'

JSON Document

{"abc:A":{"xyz:B":{"@xyz:attr1":"1","@attr2":"2","$":"valueB"},"C":["valueC1","valueC2"],"D":"","E":"valueE"}}

With the following JSON-prefix-to-XML-namespace mapping

Table 49:

JSON Prefix XML Namespace

abc http://com.sap/abc

xyz http://com.sap/xyz

you get the following XML document:

XML Document

<?xml version='1.0' encoding='UTF-8'?><abc:A xmlns:abc="http://com.sap/abc" xmlns:xyz="http://com.sap/xyz"><xyz:B xyz:attr1="1" attr2="2">valueB</xyz:B><C>valueC1</C><C>valueC2</C><D/><E>valueE<E></abc:A>

The following example shows the transformation from XML to JSON (option Use Namespace Mapping is not selected). In this example the following character is used as the JSON prefix separator: ':'

XML Document

<?xml version='1.0' encoding='UTF-8'?>

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 117

Page 118: Developer's Guide: Managing Integration Content - help.sap.com

<abc:A xmlns:abc="http://com.sap/abc" xmlns:xyz="http://com.sap/xyz"><xyz:B xyz:attr1="1" attr2="2">valueB</xyz:B><C>valueC1</C><C>valueC2</C><D/><E>valueE</E></abc:A>

is transformed to

JSON Document

{"A":{"B":{"@attr1":"1","@attr2":"2","$":"valueB"},"C":["valueC1","valueC2"],"D":"","E":"valueE"}}

The following example shows the transformation from JSON to XML (option Use Namespace Mapping is not selected). In this example the following character is used as the JSON prefix separator: ':'

JSON Document

{"abc.A":{"xyz.B":{"@xyz.attr1":"1","@attr2":"2","$":"valueB"},"C":["valueC1","valueC2"],"D":"","E":"valueE"}}

is transformed to

XML Document

<?xml version='1.0' encoding='UTF-8'?><A><B attr1="1" attr2="2">valueB</B><C>valueC1</C><C>valueC2</C><D/><E>valueE<E></A>

Related Information

Limitations for XML-to-JSON Conversion [page 122]How Streaming in the XML-to-JSON Converter Works [page 119]Conversion Rules [page 118]

2.5.3.8.1 Conversion Rules

The conversion follows the following rules which are valid both for XML to JSON and JSON to XML, if not mentioned otherwise.

● An element is represented as JSON member whose name is the concatenation of JSON prefix corresponding to the XML namespace, JSON delimiter, and the element name. If the element has no namespace, no prefix and JSON delimiter is added to the JSON name.

● An attribute is represented as JSON member whose name is the concatenation of '@' , the JSON prefix corresponding to the XML namespace, JSON delimiter, and the attribute name. If the attribute has no namespace, no prefix and JSON delimiter are added to the JSON name.

● An element with no characters or child elements is represented by "element" : ""● An element with multiple child elements of the same name is represented by an array. This also holds if

between the children with the same name other children with another name reside.Example: <root><childA>A1</childA><childB>B</childB><childA>A2</childA></root> is transformed in the non-streaming case to {"root":{"childA":["A1","A2"],"childB":"B"}}, which means that the order of the children is not preserved.

118P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 119: Developer's Guide: Managing Integration Content - help.sap.com

In the streaming case, the result is: {"root":{"childA":["A1"],"childB":"B","childA":["A2"]"}}, which means that a non-valid JSON document is created because the member "childA" appears twice.

● The value of a complex element (having attributes for example) is represented by a separate member "$":"value".

● Only for XML to JSON: Elements with mixed content (for example. <A>mixed1_value<B>valueB</B>mixed2_value</A>) are not supported. Currently you get wrong results for XML to JSON: {"A":{"B":"valueB","$":"mixed1_valuemixed2_value"}} in the non-streaming case or {"A":"$":mixed1_value","B":"valueB","$":"mixed2_value"}} in the streaming case.

● Only for XML to JSON: All element/attribute values are transformed to JSON string.● Only for XML to JSON: No namespace declaration is written into the JSON document.● Only for XML to JSON: Tabs, spaces, new lines between elements and attributes are ignored. However, a

white space value of an element with simple type is represented in JSON; example <A> </A> is represented by "A":" ".

● Special case (only for XML to JSON): If you have an element with namespace but without XML prefix whose namespace is not contained in the XML-namespace-to-Json-prefix map, then you get an exception: <A xmlns="http://test"/> leads to IllegalStateException Invalid JSON namespace: http://test.This is not the case if you choose the streaming option. With streaming the namespace is just ignored: <A xmlns="http://test"/>v</A> leads to {"A":"v"}.

● Special case (only for XML to JSON): If you have an element with namespace and XML prefix whose namespace is not contained in the XML-namespace-to-Json-prefix map then the XML prefix is used as JSON prefix <ns:A xmlns:ns:="http://test"/> leads to "ns.A":"" (if JSON delimiter is '.').

● Special case (only for JSON to XML): a member with JSON null value is transformed to empty element; example: "C":null is converted to <C/>.

● Special case (only for JSON to XML): Conversion of "@attr":null to XML is not supported (you get a NullPointerException, since cluster version 1.21 you get a JsonXmlException).

● Only for JSON to XML: The result XML document is encoded in UTF-8 and gets the XML header "<?xml version='1.0' encoding='UTF-8'?>".

● Only for JSON to XML: The content of the XML-Namespace-to-JSON-Prefix map is transformed to namespace prefix declarations on the root element.

● Special case (only for JSON to XML): If for a JSON prefix no XML Namespace is defined then the full member name with the prefix and JSON delimiter is set as element name: "p.A" leads to <p.A>.

2.5.3.8.2 How Streaming in the XML-to-JSON Converter Works

During streaming the XML document is processed in parts or segments:

The individual tags of an XML document are processed consecutively,irrespective of where in the overall structure the tag occurs and how often (multiplicity). This means that during the streaming process the converter cannot know if an element occurs in the structure more than once. In other words, during the streaming process the object model that reflects the overall structure of the XML document (and, therefore, also all information that can only be derived from the object model, like the multiplicity of elements) is not in place. This is different to the non-streaming case, where the converter can calculate the multiplicity of the XML elements from the object model of the complete XML document. The multiplicity is needed to create a correct

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 119

Page 120: Developer's Guide: Managing Integration Content - help.sap.com

JSON document. Elements whose multiplicity is greater than one must be transformed to a JSON member with an array. For example, you may think that for the XML document <root><B>b1</B><B>b2</B></root>, you create the JSON document {“root”:{“B”:”b1”,”B”:”b2”}}. However, this JSON document is invalid, because the member name “B” occurs twice on the same hierarchy level.

To ensure nevertheless a conversion that creates correct JSON documents during streaming, you need to either manually provide the information about which XML elements are multiple in advance, or decide that every XML element is converted to a JSON array (when configuring the converter in the Integration Designer).

To illustrate this behavior, let’s consider how the following simple XML structure has to be converted to JSON:

<root> <A>a</A> <B>b1</B> <B>b2</B> <C>c</C> </root>

Note that the element root/B occurs twice (multiplicity = 2).

Without streaming, the converter would produce the following JSON structure:

{"root":{"A":"a","B":["b1","b2"],"C":"c"}}

As expected, the XML element root/B would transform into a JSON member with an array as value, where the array has two values (b1 and b2) – according to the multiplicity of root/B. Note that a JSON array is indicated by the following type of brackets: [ … ].

With streaming with all elements to JSON arrays, the converter would produce the following JSON structure:

{"root":[{"A":["a"],"B":["b1","b2"],"C":["c"]}]}

All XML elements are transformed into members with a JSON array as value.

With streaming and specific elements as arrays (where root/A and root/B are specified), the converter would produce the following JSON structure:

{"root":{"A":["a"],"B":["b1","b2"],"C":"c"}}

An array is produced only for the XML elements root/A and root/B, but not for root/C.

With streaming and specific elements as arrays (where only root/A is specified), the converter would produce the following invalid JSON structure:

{"root":{"A":["a"],"B":"b1",”B”:"b2","C":"c"}}

120P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 121: Developer's Guide: Managing Integration Content - help.sap.com

2.5.3.8.3 Example: JSON Message without Root Element Tag

Examples and Special Cases of JSON Message without Root Element Tag

The following examples apply to XML-to-JSON conversion:

ExampleThe following example shows the transformation from XML to JSON (option Suppress JSON Root Element is selected).

Input XML Message

<root> <A>a</A> <B>b</B> <C>c</C> <D>d</D> </root>

Output JSON Message

{ "A": "a", "B": "b", "C": "c", "D": "d" }

Special Cases

Input XML Message: Root Element with Simple Value

<root>v</root>

Output JSON Message

"v"

Input XML Message: Root Element with no Value

<root></root>

Output JSON Message

""

Input XML Message: Root Element with Simple Value (options Suppress JSON Root Element, Steaming All are selected)

<root><A>a<A><B><C>c</C></B></root>

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 121

Page 122: Developer's Guide: Managing Integration Content - help.sap.com

Output JSON Message

{"A":["a"],"B":[{"C":["c"]}]}with dropRootElement=false{"root":{["A":["a"],"B":[{"C":["c"]}]]}}

2.5.3.8.4 Limitations for XML-to-JSON Conversion

The following limitations apply to XML-to-JSON and JSON-to-XML conversion:

● The XML element and attribute names must not contain any delimiter characters, because the delimiter is used in JSON to separate the prefix from the element name.

● Elements with mixed content are not supported.

The following limitations apply only to XML-to-JSON conversion:

● XML comments (<!-- comment -->) are not represented in the JSON document; they are ignored.● DTD declarations are not represented in the JSON document; they are ignored.● XML processing instructions are not represented in the JSON document; they are ignored.● No conversion to JSON primitive types for XML to JSON. All XML element/attribute values are

transformed to a JSON string.● Entity references (except the predefined entity references &amp; &lt; &gt; &quot; &apos;) are not

represented in the JSON document; they are ignored.● If a sibling with another name resides between XML sibling nodes with the same name, then the order of

the siblings is not kept in JSON in the non-streaming case, because siblings with the same name are represented by one array. Example: <root><childA>A1</childA><childB>B</childB><childA>A2</childA></root> leads to {"root":{"childA":["A1","A2"],"childB":"B"}}.In the streaming case this leads to an invalid JSON document: {"root":{"childA":["A1"],"childB":"B","childA":["A2"]}.

● If you have an element with a namespace but no XML prefix whose namespace is not contained in the XML-namespace-to-JSON-prefix map, you get an exception: <A xmlns="http://test"/> -> IllegalStateException Invalid JSON namespace: http://test.If you choose the streaming option, the namespace is ignored: <A xmlns="http://test"/>v</A> leads to {"A":"v"}.

The following limitations apply only to JSON-to-XML conversion:

● Conversion of "@attr":null to XML is not supported. You get a NullPointerException; as of cluster version 1.21 you get a JsonXmlException.

● JSON member names must not contain in their local or prefix part any characters that are not allowed for XML element/attribute names (for example, space or column (':') are not allowed). XML element/attribute names are of type NCName (see http://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-NCName ).

● JSON texts that start with an array (for example, [{"a":{"b":"bvalue"}}] ) are not supported. The JSON text must start with a JSON object such as {{"a":{"b":"bvalue"}}}. A javax.xml.stream.XMLStreamException is thrown. As of cluster version 1.21, a JsonXmlException is thrown.

122P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 123: Developer's Guide: Managing Integration Content - help.sap.com

● The root JSON object must contain exactly one member. If the root JSON object contains more than one member (for example, {"a":"avalue","b":"bvalue"}), a javax.xml.stream.XMLStreamException is thrown. If the root JSON object is empty ({}), a javax.xml.stream.XMLStreamException is thrown. As of cluster version 1.21, a JsonXmlException or IllegalStateException (for {}) is thrown.

● If no XML namespace is defined for a JSON prefix, the full member name with the prefix and JSON delimiter is set as the element name: "p:A" -> <p:A>.

2.5.3.9 Defining Script

Context

You use this task to execute custom java script or groovy script for message processing.

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.2. Add script in the integration flow, choose Add Message Transformers>Script from the context menu of a

connection within the pool.3. Select the added script in the integration flow model to configure it.4. If you already have an existing java script or groovy script, copy it to the folder src.main.resources.script.

To assign this script, choose Assign Script from the context menu of the Script element.5. To create a new java script or groovy script, choose New Script from the context menu of the Script

element.6. In the Properties view, specify the script step name in Name.7. In the Properties view, specify a custom function that will take the “message” object as the argument in

Script Function.

In the script you require Script Function, which will be executed at runtime. The function definition is as follows:

import com.sap.gateway.ip.core.customdev.util.Message def Message processData(Message message) { def body = message.getBody() //modify body message.setBody(body + "enhancements") //modify headers def map = message.getHeaders() def value = map.get("oldHeader"); message.setHeader("oldHeader", value + "modified") message.setHeader("newHeader", "headerValue") //modify properties map = message.getProperties() value = map.get("oldProperty")

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 123

Page 124: Developer's Guide: Managing Integration Content - help.sap.com

message.setProperty("oldProperty", value + "modified") message.setProperty("newProperty", "script") return message}

8. Add or modify Header, Body, and Property by using the interfaces below on the "message" object.1. You can use the following interfaces for Header:

○ public java.util.Map<java.lang.String,java.lang.Object> getHeaders()○ public void setHeaders(java.util.Map<java.lang.String,java.lang.Object> exchangeHeaders)○ public void setHeader(java.lang.String name, java.lang.Object value)

2. You can use the following interfaces for Body:○ public java.lang.Object getBody()○ public void setBody(java.lang.Object exchangeBody)○ public java.lang.Object getBody(java.lang.String fullyQualifiedClassName)

NoteHCI framework supports conversion of payload into the following formats:○ String○ InputStream○ byte[]

To convert the payload into String or InputStream use the following fullyQualifiedClassName:○ java.lang.String○ java.io.InputStream

To convert the payload into byte[] use the following:○ For groovy script - def body = message.getBody(java.lang.String) as byte[]○ For java script - var body = [message.getBody()]

3. You can use the following interfaces for Property:○ public java.util.Map<java.lang.String,java.lang.Object> getProperties()○ public void setProperties(java.util.Map<java.lang.String,java.lang.Object> exchangeProperties)○ public void setProperty(java.lang.String name, java.lang.Object value)

Note○ You should not add or modify a Property name starting with sap.○ If no Script Function is specified in the script flow step, the Script Function name will be

processData by default.

9. If you want to access the security artifacts such as secure store and keystore that are delpoyed using the deployment wizard, refer the table below:

124P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 125: Developer's Guide: Managing Integration Content - help.sap.com

Table 50:

Artifact Type Sample Groovy Script

Secure Store Import packages

import com.sap.it.api.ITApiFactory;

import com.sap.it.api.securestore.SecureStoreService;

import com.sap.it.api.securestore.UserCredential;

import com.sap.it.api.securestore.exception.SecureStoreException;

Sample Code

def service = ITApiFactory.getApi(SecureStoreService.class, null); if( service != null){ //Get UserCredential containing user credential details deployed on the node with the given alias. def credential = service.getUserCredential(aliasname); ……………………………}

Keystore Import packages

import com.sap.it.api.ITApiFactory;

import com.sap.it.api.keystore.KeystoreService;

import com.sap.it.api.keystore.exception.KeystoreException;

Sample Code

def service = ITApiFactory.getApi(KeystoreService.class, null); if( service != null){ //Get all trust manager implementation instances using the service for the default trust store def trustmanager = service.getTrustManagers(); //Get all KeyManager implementation instances using the service def keymanagers = service.getKeyManagers(alias); ……………………………}

10. Save the changes.

Note○ The script should be saved in the src.main.resources.script folder.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 125

Page 126: Developer's Guide: Managing Integration Content - help.sap.com

○ In the Properties view, you can also choose Browse to select java scripts or groovy scripts for custom processing.

○ You can also store external jar(s) in src.main.resources.lib. You can then invoke functions from these external jar(s) in the script.

Next Steps

There are the following additional Java interfaces for the message processing log (MPL) which you can address with the script step (either in Groovy Script or JavaScript):

● MessageLogFactoryProvides access to the message processing log.

● MessageLogSupports writing properties and adding attachments to the message processing log.

The interface MessageLogFactory can be used through the variable messageLogFactory in order to retrieve an instance of MessageLog.

You can use the following methods in an instance of MessageLog in order to set a property of a given type in the message processing log:

● void setStringProperty(String name, String value)● void setIntegerProperty(String name, Integer value) ● void setLongProperty(String name, Long value)● void setBooleanProperty(String name, Boolean value)● void setFloatProperty(String name, Float value)● void setDoubleProperty(String name, Double value)● void setDateProperty(String name, Date value)

You can use the following method in an instance of MessageLog in order to add an attachment to the message processing log:

● void addAttachmentAsString(String name, String text, String mediaType)

If the value "null" is specified for the parameter mediaType, then the value "text/plain" is assumed as media type.”

As an example, the following code lines allow you to set a string property:

Groovy:

def messageLog = messageLogFactory.getMessageLog(message) messageLog.setStringProperty("Greeting", "Hello World!")

JavaScript:

var messageLog = messageLogFactory.getMessageLog(message) messageLog.setStringProperty("Greeting", "Hello World!")

126P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 127: Developer's Guide: Managing Integration Content - help.sap.com

CautionNote that the properties provided by the script step are displayed in alphabetical order in the resulting message processing log (MPL). That means that the sequence of properties in the MPL does not necessarily reflect the sequence applied in the script.

Related Information

Setting SOAP Headers [page 127]

2.5.3.9.1 Setting SOAP Headers

You can use Groovy programming language (Groovy script) to set SOAP headers.

The following example shows a SOAP message with a SOAP header.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <AuthHeader soap:actor="actor_test" soap:mustUnderstand="1" xmlns="http://www.Test.com/"> <ClientId>username</ClientId>mustUnderstand <Password>password</Password> </AuthHeader> </soap:Header> <soap:Body> <test:TestMessage xmlns:test="http://hci.sap.com/ifl/test"> <MessageContent>customer1</MessageContent> </test:TestMessage> </soap:Body> </soap:Envelope>

To set such a SOAP header, use the following script.

import com.sap.gateway.ip.core.customdev.util.Message; import java.util.ArrayList;import java.util.List;import javax.xml.namespace.QName;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.apache.cxf.binding.soap.SoapHeader;import org.w3c.dom.Document;import org.w3c.dom.Element;import com.sap.it.api.ITApiFactory;import com.sap.it.api.securestore.SecureStoreService;import com.sap.it.api.securestore.UserCredential;def Message processData(Message message) { // First fetch user name and password which must be entered into the SOAP header from the secure store service. // This is not necessary if your SOAP header does not require data from the secure store service. def service = ITApiFactory.getApi(SecureStoreService.class, null); def credential = service.getUserCredential("partner1_credential_alias"); if (credential == null){

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 127

Page 128: Developer's Guide: Managing Integration Content - help.sap.com

throw new IllegalStateException("No credential found for alias 'partner1_credential_alias'"); } String userName = credential.getUsername(); String password = new String(credential.getPassword()); // Create Soap Header as DOM Element; the attributes "actor" and "mustUnderstand" must not be added; // these attributes can be added later see below. // The following lines create the DOM Element. //<AuthHeader xmlns=http://www.Test.com/><ClientId>"+userName+"</ClientId><Password>"+password+"</Password></AuthHeader>" DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); dbf.setIgnoringElementContentWhitespace(true); dbf.setValidating(false); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.newDocument(); Element authHeader = doc.createElementNS("http://www.Test.com/", "AuthHeader"); doc.appendChild(authHeader); Element clientId = doc.createElementNS("http://www.Test.com/", "ClientId"); clientId.setTextContent(userName); authHeader.appendChild(clientId); Element passwordEl = doc.createElementNS("http://www.Test.com/", "Password"); passwordEl.setTextContent(password); authHeader.appendChild(passwordEl); // Create SOAP header instance. SoapHeader header = new SoapHeader(new QName(authHeader.getNamespaceURI(), authHeader.getLocalName()), authHeader); header.setActor("actor_test"); header.setMustUnderstand(true); // Add the SOAP header to the header list and set the list to the message header "org.apache.cxf.headers.Header.list". List headersList = new ArrayList<SoapHeader>(); headersList.add(header); message.setHeader("org.apache.cxf.headers.Header.list", headersList); return message; }

2.5.4 Defining Message Persistence

Context

Procedure

128P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 129: Developer's Guide: Managing Integration Content - help.sap.com

2.5.4.1 Defining Data Store Operations

You can use the transient data store to temporarily store messages.

Context

The transient data store (data store for sakes of simplicity) supports four types of operations:

Table 51: Data Store Operations

Operation Used to ...

Write Store the messages temporarily in the data store.

If you use a Write operation, you can store the messages in the data store by configuring the data store name and a unique Entry ID.

Delete Trigger the deletion of messages in the data store.

Select Fetch messages in bulk from the data store.

You can also specify the number of messages you fetch in each poll.

Get Fetch a specific message from the data store.

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.2. If you want to add a Data Store Operations step to the integration flow, choose Add Message Persistence-

>Data Store Operations from the context menu of a connection within the pool.

NoteAdding data store operations enables Write operations by default. The Switch to option allows you to choose a different operation (Delete, Select or Get).

3. Enter the attributes of the step. The set of attributes depends on the chosen operation.

Attribute Description

Data Store Name Specifies the name of the data store (maximum 20 characters, no white spaces).

The default data store name for variables is sap_global_store. You must not use this name for data store operations.

Visibility Defines if the data store is shared by all integration flows (deployed on the tenant) or only by one specific integration flow.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 129

Page 130: Developer's Guide: Managing Integration Content - help.sap.com

Attribute Description

○ Global: Data store is shared across all integration flows deployed on the tenant.

○ Integration Flow: Data store is used by one integration flow.

Entry ID (only for Write, Delete and Get operation)

Specify an entry ID that will be stored together with the message content.

Details for the entry ID are read from the incoming message. You can enter the following kind of expressions:

○ ${header.<name>} to generate the entry ID from the message header

○ ${xpath.<xpath>} to generate the entry ID from an element in the message indicated by an xPath expression

In the case of Write operations, if the Entry ID is not defined, the data store component generates an entry ID.

In the case of Delete and Get operations, you can explicitly define an Entry ID or pass header SapDataStoreId.

Retention Threshold for Alerting (only for Write operation)

Time period (in days) by which the messages have to be fetched before an alert is raised.

Expiration Period (only for Write operation)

Number of days after which the stored messages are deleted (default is 90 days).

The minimum value of Expiration Period should be at least twice that of Retention Threshold for Alerting.

Encrypt Stored Message (only for Write operation)

Select this option to encrypt the message in the data store.

Overwrite Existing Message (only for Write operation)

Select this option to overwrite an existing message in the data store.

Number of Polled Messages (only for Select operation)

Specifies number of messages to be fetched from the data store within one poll (default is 1).

Delete After Fetch (only for Select and Get operation)

Select this option to delete a message from the data store after successfully having fetched the message.

4. Save the changes.

Next Steps

You can display the content of the data store in the Data Store Viewer of the Integration Operations feature.

Note● In the case of Select operations, you can select multiple messages. The content of the selected

messages will appear in the following format:<messages>

130P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 131: Developer's Guide: Managing Integration Content - help.sap.com

<message id=”<Entry ID>”><Content of selected message></message><message id=”<Entry ID>”>………..……….……….</message><message id=”<Entry ID>”>………..……….……….</message></messages>

2.5.4.2 Defining Write Variables

You use write variables to specify values for variables and support message flow execution.

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.

2. To add write variables in the integration flow, choose Add Message Persistence Write Variables from the context menu of a connection within the pool.

3. Select the Write Variables tab in the Properties view.4. Choose Add.5. Specify a name for the variable, and perform the following substeps to assign values to the variable.

a. To assign a value using an XPath, select xpath in the Type column and enter the XPath expression in the Value column.

b. If the XPath contains a namespace prefix, specify the association between the namespace and the prefix on the Runtime Configuration tab page of the integration flow Properties view.

Note○ The Data Type column is applicable for the xpath and expression types. The data type can be

any Java class. An example of a data type for an XPath is java.lang.String.

c. To assign a value using a header, select header in the Type column and enter the header in the Value column.

d. To assign an external parameter, select external parameter in the Type column and define a parameter key.

e. To assign a property, select property in the Type column.6. Save the changes.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 131

Page 132: Developer's Guide: Managing Integration Content - help.sap.com

Note○ If you want the variable to be used in multiple integration flows, select the global scope checkbox.○ By default, stored variables are deleted 90 days after the last update; the system raises an alert 2

days before the variables expire.○ The default data store name for variables is ‘sap_global_store’. You should not use this value as the

data store name for data store operations.○ Variables should not have same name as header id in integration flow.○ Properties are local variables.

2.5.4.3 Configuring Message Storage at a Process Step

Context

You use this task to configure a process step to store a message payload so that you can access the stored message and analyze it at a later point in time.

In the integration flow, you mark a process step for persistence by specifying a unique step ID, which can be a descriptive name or a step number. For example, a step ID configured after a mapping step could be MessageStoredAfterMapping.

At runtime, the runtime node of the cluster stores information, such as GUID, MPL GUID, tenant ID, timestamp, or payload, for the messages at the process steps that have been marked for persistence.

The message storage feature is useful for the following cases

● Auditing: The SaaS Admin can use this feature to analyze messages that have been processed.

NoteMessages can be stored in the runtime node for 90 days, after which the messages are automatically deleted.

● Providing access to data owned by the customer : Since messages are processed on behalf of the customer, you might need to access the customer-owned data after the messages have been processed to provide it to the customer.

Procedure

1. Open the <integration flow>.iflw on the Model Configuration editor page.2. Determine if you want to store the message payload before or after a process step.

For example, you can store the message payload before and after a mapping step, so you add Persist Message at the two points.

132P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 133: Developer's Guide: Managing Integration Content - help.sap.com

3. In the Model Configuration editor, right-click the connection at the determined point within the pool and choose the Add Persist Message option.

4. In the Model Configuration editor, select the Persist Message element.5. In the Properties view, retain the auto-generated step ID for the process step, or edit it if required.6. If you want to encrypt the message payload that is stored at the step ID, choose Encrypt the stored

message payload.7. Save the changes.

2.5.5 Validating Message Payload against XML Schema

The XML validator validates the message payload in XML format against the configured XML schema.

Prerequisites

You have the XML schema (XSD files) added in the .src.main.resources.xsd location of your integration flow project. If you do not thave the specified location in your project, you need to create one first and then add the XSD files.

Context

You use this procedure to assign XML schema (XSD files) to validate the message payload in a process step. The validator checks the message payload against configured XML schema, and report discrepencies in message payload. If the validation fails, the HCI system stops the whole message processing by default.

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.2. To add a XML Validator step to the integration flow, choose Add Message Validator->Xml Validator from

the context menu of a connection within the pool.3. Select the XML Validator tab in the Properties view.

4. In the Name field, enter an appropriate validator flow step name.5. In the XML Schema field, select Browse.6. Choose an XSD file that you want to use to validate the format.

NoteYou can have references to other XSDs within the same project. XSDs residing outside the projects cannot be referred.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 133

Page 134: Developer's Guide: Managing Integration Content - help.sap.com

7. If you want to continue the processing even if the system encounters error while validating, then select the check box Prevent Exception on Failure.

8. Save the changes.

2.5.6 Defining Message Routing

Context

Procedure

2.5.6.1 Defining Gateway

Prerequisites

You have selected the Content-Based Router (Multiple Interfaces/Multiple Receivers) pattern or you have added the router element to the integration flow model from the palette.

Context

You perform this task when you have to specify conditions based on which the messages are routed to a receiver or an interface during runtime. If the message contains XML payload, you form expressions using the Xpath-supported operators. If the message contains non-XML payload, you form expressions using the operators shown in the table below:

Table 52: Usage of Operators in Non- XML Conditions

Operator Example

= ${header.SenderId} = '1'

!= ${header.SenderId} != '1'

134P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 135: Developer's Guide: Managing Integration Content - help.sap.com

Operator Example

> ${header.SenderId} > '1'

>= ${header.SenderId} >= '1'

< ${header.SenderId} < '1'

<= ${header.SenderId} <= '1'

and ${header.SenderId}= '1' and ${header.ReceiverId} = '2'

or ${header.SenderId}= '1' or ${header.ReceiverId}= '2'

contains ${header.SenderId} contains '1'

not contains ${header.SenderId} not contains '1'

in ${header.SenderId} in '1,2'

not in ${header.SenderId} not in '1,2'

regex ${header.SenderId} regex '1.*'

not regex ${header.SenderId} not regex '1.*'

ExampleA condition with expression ${header.SenderId} regex '1.*' routes all the messages having Sender ID starting with 1'.

NoteYou can define a condition based on an exception that may occur. If condition ${exception.message}contains 'java.lang.Exception' is true then gateway routes the message to a particular receiver else it routes to other receiver.

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.

2. If you want to add a gateway at any point in the integration flow, follow the steps below:a. Right-click a connection within the pool and choose Add Routing.b. Right-click the added Gateway notation and choose the relevant option, either Add Receiver or Add

Interface.3. In the Model Configuration editor, select one of the routing branches splitting from the gateway.4. On the Route tab of the Properties view, enter a descriptive name for the routing branch.5. From the Expression Type dropdown, select the type of expression used to formulate the routing

condition.a. Select XML to form an expression using Xpath.b. Select Non-XML to form an expression using message header and message body.

6. In the Condition field, formulate a valid XML or non-XML condition that routes the message to its associated receiver.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 135

Page 136: Developer's Guide: Managing Integration Content - help.sap.com

RecommendationWe recommend you to ensure that the routing branches of a gateway are configured with the same type of condition, either XML or non-XML, and not a combination of both. At runtime, the specified conditions are executed in the same order as displayed in the Properties view of the Gateway. If the conditions are a combination of both non-XML and XML type, the evaluation fails.

TipTo quickly configure routing conditions, select Define Condition from the context menu of the routing branch.

7. If you want to set the selected route as the default, such that, its associated receiver handles the error situation if no receiver is found, select the Default Route option.

NoteOnly the route that was recently selected as Default Route is considered as the default route.

TipTo quickly set a route as a default route from the Model Configuration editor tab page, select Set as Default Route from the context menu of routing branch.

8. In the Model Configuration editor, select the Gateway notation.9. In the Properties view, under Routing Behavior, select Raise Alert or Throw Exception to set the behavior if

no receiver is found.

NoteTo configure an alert, see the Alert Configuration section in the Operations Guide.

10. To model the integration flow when no receiver is found, follow the steps below:a. From the Palette select the Terminate End notation and drop it inside the pool in the Model

Configuration.b. Place the cursor on the Gateway to select the connection from the hover menu and drag the

connection to the Terminate End notation.

NoteIf you do not add the Terminate End notation in your integration flow model, the Raise Alert or Throw Exception option does not apply.

11. Select the Gateway notation and, in the Properties view, check the overview of all the routes and their conditions that you have defined for the scenario.

136P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 137: Developer's Guide: Managing Integration Content - help.sap.com

2.5.6.2 Defining Splitter

A splitter step decomposes a composite message into a series of individual messages and sends them to a receiver.

Prerequisites

You have selected the Splitter step or you have explicitly added the splitter step to the integration flow model.

Context

You perform this task if you need to break down a composite message into a series of individual messages and send them to a receiver. You split the composite message based on the message type, for example, IDoc or PKCS#7/CMS Signature-Content, or the manner in which the message is to be split, for example, general or iterative splitter.

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.2. If you want to add a splitter to the integration flow, choose Add Splitter from the context menu of the

connection within the pool.3. In the Model Configuration editor, select the splitter element.4. In the Properties view, select a Splitter Type.

Table 53: Splitter Types

Splitter Type Description

IDoc Is used to split a composite IDoc messages into a series of individual IDoc messages with the enveloping elements of the composite IDoc message.

PKCS#7/CMS Signature-Content Is used when an agent sends a PKCS7 Signed Data mes­sage that contains a signature and content. This splitter type breaks down the signature and content into separate files.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 137

Page 138: Developer's Guide: Managing Integration Content - help.sap.com

Splitter Type Description

General Is used to split a composite message comprising of N messages into N individual messages each containing one message with the enveloping elements of the composite message.

NoteA possible use case for this splitter type is where a message obtained from a sender contains multiple ac­count statements and needs to be split into separate individual messages, each containing the account statement for one specific account owner.

Typically, the target message also needs to contain en­veloping information such as the bank name or other attributes to make the account statement complete. In this case, it would make sense to choose the general splitter pattern.

Iterating Is used to split a composite message into a series of mes­sages without copying the enveloping elements of the composite message.

NoteA possible use case for this splitter type is where a message obtained from a sender contains multiple or­ders from different customers and needs to be split into individual messages. Each resulting message should contain the order of one customer only and is to be routed to this customer. In this case it might make more sense for the resulting split messages to contain only data that is related to the corresponding customer, without any of the additional information that is contained in enveloping elements.

5. Specify the properties of the splitter.6. Save the changes.

ExampleConsider the following XML payload structure as input for the Splitter step:

<orders> <order> <clientId>I0001</clientId> <count>100</count> </order> <order> <clientId>I0002</clientId> <count>10</count>

138P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 139: Developer's Guide: Managing Integration Content - help.sap.com

</order></orders>

If you use Token as Expression Type and enter the order as Token, the XML payload is split into two output files.

Output1.xml contains the following:

<order> <clientId>I0001</clientId> <count>100</count></order>

Output2.xml contains the following:

<order> <clientId>I0002</clientId> <count>10</count></order>

Using XPath as Expression Type, you can achieve the same behavior by entering one of the following two expressions (as XPath)::

● /orders/order (absolute expression for the element <order>))● //order (relative expression for the element <order>)

Next Steps

NoteYou can use the Gather step after Splitter in an integration flow if you have configured the Splitter Type as General or Iterating.

Restriction● You cannot use Splitter after Multicast.● You cannot use two consecutive Splitter elements ending in Gather.● You cannot use Splitter within a Subprocess.

Related Information

Defining a General Splitter [page 140]Defining an Iterating Splitter [page 141]Defining a PKCS#7/CMS Signature-Content Splitter [page 143]General and Iterating Splitter [page 144]

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 139

Page 140: Developer's Guide: Managing Integration Content - help.sap.com

2.5.6.2.1 Defining a General Splitter

A general splitter is used to split a composite message comprising of N messages into N individual messages each containing one message with the enveloping elements of the composite message.

Context

A possible use case for this splitter type is where a message obtained from a sender contains multiple account statements and needs to be split into separate individual messages, each containing the account statement for one specific account owner.

Typically, the target message also needs to contain enveloping information such as the bank name or other attributes to make the account statement complete. In this case, it would make sense to choose the general splitter pattern.

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.2. If you want to add a splitter to the integration flow, choose Add Splitter from the context menu of the

connection within the pool.3. In the Model Configuration editor, select the splitter element.4. In the Properties view, select General as Splitter Type.5. Specify the attributes.

Table 54:

Field Description

XPath Expression XPath to the split term. You can specify the absolute or relative path.

Note that only the following types of XPath expressions are supported:

○ Absolute XPath expressions, for exam­ple, /A/B/C/D

○ Relative XPath expressions, for example, //D

Note that each element with a namespace prefix has to be explicitly declared in the following form (example):

xmlns:ns:="http://test"

If there are multiple elements with a namespace prefix, add the additional namespace declarations after the XPath expression (separated by blank spaces).

140P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 141: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Grouping The group size into which the composite message has to be split.

For example, if a message has 10 nodes and grouping is defined as 2, the message is split into 5 messages with 2 nodes each.

Timeout (in s) Maximum time in seconds the system will wait for the processing to complete before it is aborted.

Streaming Select this option if you want to stream the process of splitting a large composite message.

When you have activated streaming, the system starts al­ready processing parts (chunks) of the composite mes­sage even when the message has not been transferred entirely into the memory (of the runtime node).

When you have deactivated this option, the message first is transferred into the memory entirely, and thereafter is split and further processed. Deactivating streaming is more memory-intensive than activating this option.

Parallel Processing Select this checkbox if you want to enable processing of all the split messages at once.

Stop On Exception Select this option to stop message processing if an excep­tion occurs.

6. Save the changes.

2.5.6.2.2 Defining an Iterating Splitter

An iterating splitter is used to split a composite message into a series of messages without copying the enveloping elements of the composite message.

Context

A possible use case for this splitter type is where a message obtained from a sender contains multiple orders from different customers and needs to be split into individual messages. Each resulting message should contain the order of one customer only and is to be routed to this customer. In this case it might make more sense for the resulting split messages to contain only data that is related to the corresponding customer, without any of the additional information that is contained in enveloping elements.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 141

Page 142: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.2. If you want to add a splitter to the integration flow, choose Add Splitter from the context menu of the

connection within the pool.3. In the Model Configuration editor, select the splitter element.4. In the Properties view, select Iterating as Splitter Type.5. Specify the attributes.

Table 55:

Field Description

Expression Type Specify the expression type you want to use to define the split point (the element in the message structure below which the message is to be split). You can choose Token or XPath.

Token (enabled only if you choose Token in Expression Type field)

The keyword or token that should be used as a reference for splitting the composite message

XPath (enabled only if you choose XPath in Expression Type field)

Absolute or relative XPath of the node to be used as a ref­erence for splitting the message

Grouping The group size into which the composite message has to be split.

For example, if a message has 10 nodes and grouping is defined as 2, the message is split into 5 messages with 2 nodes each.

Timeout (in s) Maximum time in seconds the system will wait for the processing to complete before it is aborted.

Streaming Select this option if you want to stream the process of splitting a large composite message.

When you have activated streaming, the system starts al­ready processing parts (chunks) of the composite mes­sage even when the message has not been transferred entirely into the memory (of the runtime node).

When you have deactivated this option, the message first is transferred into the memory entirely, and thereafter is split and further processed. Deactivating streaming is more memory-intensive than activating this option.

Parallel Processing Select this checkbox if you want to enable processing of all the split messages at once.

142P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 143: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Stop On Exception Select this option to stop message processing if an excep­tion occurs.

6. Save the changes.

2.5.6.2.3 Defining a PKCS#7/CMS Signature-Content Splitter

The PKCS#7/CMS Signature-Content splitter is used when an agent sends a PKCS7 Signed Data message that contains a signature and content. This splitter type breaks down the signature and content into separate files.

Context

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.2. If you want to add a splitter to the integration flow, choose Add Splitter from the context menu of the

connection within the pool.3. In the Model Configuration editor, select the splitter element.4. In the Properties view, select PKCS#7/CMS Signature-Content as Splitter Type.5. Specify the attributes.

Table 56:

Field Description

Payload File Name Name of the file that should contain the payload after the splitting step

Signature File Name Name of the file (extension .sig) that should contain the signature after the splitting step

Wrap by Content Info Select if you want to wrap PKCS#7 signed data containing the signature into PKCS#7 content.

PayloadFirst Select if you want the payload to be the first message re­turned.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 143

Page 144: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

BASE64 Payload Select if you want to encode the payload with BASE64 en­coding scheme after splitting.

BASE64 Signature Select if you want to encode the signature using BASE64 encoding scheme after splitting.

6. Save the changes.

Related Information

Signing the Message Content with PKCS#7/CMS Signer [page 154]

2.5.6.2.4 General and Iterating Splitter

The two splitter types General Splitter and Iterative Splitter behave differently in their handling of the enveloping elements of the input message.

The General Splitter splits a composite message comprising of N messages into N individual messages, each containing one message with the enveloping elements of the composite message. We use the term enveloping elements to refer to the elements above and including the split point.

The Iterative Splitter splits a composite message into a series of messages without copying the enveloping elements of the composite message.

The following figure illustrates the behavior of both splitter types; in both cases an input message comprising four items is split into individual messages.

144P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 145: Developer's Guide: Managing Integration Content - help.sap.com

2.5.6.3 Defining an Aggregator

You can use the Aggregator step to combine multiple incoming messages into a single message.

Context

NoteWhen you use the Aggregator step in combination with a polling SFTP sender adapter and you expect a high message load, please consider the following recommendation:

For the involved in SFTP sender adapter set the value for Maximum Messages per Poll to a small number which is larger than 0 (for example, 20) (under Advanced Parameters). That way, you ensure a proper message processing status logging at runtime.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 145

Page 146: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. Open the related integration flow and select an Aggregator step (in the palette under Message Routing).2. Open the Properties view for the step.3. Specify which incoming messages belong together and are to be aggregated. To do that, open Correlation

tab and enter an XPath expression that identifies an element based on which the incoming messages should be correlated (in the field Correlation Expression (XPath)).

This attribute determines the messages which are to be aggregated in the following way: messages with the same value for the message element defined by the XPATH expression are being stored in the same aggregate.

4. Open the Aggregation Strategy tab and specify the following attributes:

Option Description

Incoming Format

The content type of the incoming message.

Currently, only XML (Same Format) can be selected.

It is important that the incoming messages have the same format.

Aggregation Algorithm

Specifies how the correlated messages should be treated.

You can select one of the following options:

○ Combine in SequenceAggregated message contains all correlated incoming messages, and the original messages are put into a sequence.

○ CombineAggregated message contains all correlated incoming messages.

The Aggregator step generates an SAP Process Integration multi mapping as specific format. This is important to know because the integration developer typically has to create a mapping from the gen­erated format to the message structure required by the receiver.

Message Sequence Expression (XPath)

(only if for Aggregation Algorithm the option Combine in Sequence has been se­lected)

Enter an XPATH expression for that message element based on which a sequence is being defined.

You can use only numbers to define a sequence. Each sequence starts with 1.

Last Message Condition (XPath)

Define the condition (XPATH = value) to identify the last message of an aggregate.

You have the option to use an Exclusive Gateway step after the Aggregator in order to evaluate the Camel ${header.CamelAggregatedCompletedBy} attribute, and, based on the value, de­cide how to continue.

Note that the header attribute can only have one of the following values:

146P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 147: Developer's Guide: Managing Integration Content - help.sap.com

Option Description

○ timeoutProcessing of the aggregate has been finished because the configured Completion Timeout has been reached.

○ predicateProcessing of the aggregate has been finished because the Completion Condition has been fulfil­led.

Completion Timeout

Defines the maximum time between two messages before aggregation is being stopped (period of inactivity).

You have the option to use an Exclusive Gateway step after the Aggregator in order to evaluate the Camel ${header.CamelAggregatedCompletedBy} attribute, and, based on the value, de­cide how to continue.

Note that the header attribute can only have one of the following values:

○ timeoutProcessing of the aggregate has been finished because the configured Completion Timeout has been reached.

○ predicateProcessing of the aggregate has been finished because the Completion Condition has been fulfil­led.

Data Store Name

Enter the name of the transient data store where the aggregated message is to be stored.

Note that only local data stores (that apply only to the integration flow) can be used. Global data stores cannot be used for this purpose.

By default, the following name is provided: DS-Aggregator-01.

NoteThe Integration Operations feature provides a Data Store Viewer that allows you to monitor your transient data stores.

Results

The Aggregator step creates a message in the multi-mapping format with just one message instance:

<?xml version="1.0" encoding="UTF-8"?> <sm:Messages xmlns:sm="http://sap.com/xi/XI/SplitAndMerge"><Message1>...</Message1> </sm:Messages>

Related Information

Multi-Mappings [page 198]

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 147

Page 148: Developer's Guide: Managing Integration Content - help.sap.com

2.5.6.4 Defining Multicast of Messages

Prerequisites

● You have created an integration project and integration flow.● You have opened the Integration Designer perspective.

Context

Multicast enables you to send the same message to more than one receiver. This allows you to perform multiple operations on the same message in a single integration flow. Without multicast, you require separate integration processes to perform different operations on the same incoming message.

There are two types of multicast that you can choose:

1. Parallel multicast2. Sequential multicast

Parallel multicast initiates message transfer to all the receiver nodes in parallel.

Sequential multicast provides an option to define the sequence in which the message transfer is initiated to the receiver nodes.

If you want to aggregate the message that is sent to more than one receiver node, you can use the join and gather elements.

Restriction1. You cannot use splitter element within a multicast branch.2. If you are using SFTP receiver with parallel multicast, the message might be corrupted in one or more of

the multicast branches. The message is corrupted in the branches where the SFTP receiver does not write the complete data in its respective SFTP files.You can overcome this limitation in two ways:1. Add a content modifier before the SFTP receiver. In the content modifier, specify the Body as $

{bodyAs(byte[])}.2. You can switch from parallel multicast to sequential multicast.

Procedure

You use this procedure to add a multicast and join elements to your integration flow.1. In the Model Configuration editor, access the palette.2. If you want to add a multicast or join element, perform the following substeps.

148P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 149: Developer's Guide: Managing Integration Content - help.sap.com

a. Choose Message Routing.

b. If you want to add parallel multicast, drag the element from palette to the integration flow.

c. If you want to add sequential multicast, drag the element from the palette to the integration flow.

3. If you want to combine the messages, see Defining Join and Gather [page 149].4. Add the necessary elements based on your scenario to complete the integration flow.5. Save the changes.

2.5.6.5 Defining Join and Gather

Context

The Join element enables you to bring together the messages from different routes before combining them into a single message. You use this in combination with the Gather element. Join only brings together the messages from different routes without affecting the content of messages.

The Gather step enables you to merge messages from more than one route in an integration process. You define conditions based on the type of messages that you are gathering using the Gather step. You can choose to gather:

1. XML messages of different format2. XML messages of the same format3. Plain text messages

Based on this, you choose the strategy to combine the two messages.

● For XML messages of the same format, you can combine without any conditions (multimapping format) or specify the XPath to the node at which the messages have to be combined.

● For XML messages of different formats, you can only combine the messages● For plain text messages, you can only specify concatenation as the combine strategy● Specify valid xpath expression that includes namespace prefixes if incoming payload contains namespace

declarations, including default namespace declarations.

Remember● If you want to combine messages that are transmitted to more than one route by Multicast, you need to

use Join before using Gather.● If you want to combine messages that are split using Splitter, you use only Gather.

If your incoming payload contains namespace declarations including default namespace, ensure that you specify xpath with namespace prefixes. Also ensure that the namespace prefix mapping is defined in the

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 149

Page 150: Developer's Guide: Managing Integration Content - help.sap.com

runtime configuration. If the xpath you have defined does not exist in any of the branches of the incoming XML, the scenario fails with an exception.

Consider the following XML:

Sample Code

<root xmlns="http:defaultnamespace.com"> <f:table xmlns:f="http://www.w3schools.com/furniture"> <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table> <table> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table></root>

f and d are the prefixes defined in the Namespace Mapping field of Runtime Configuration and mapped to the namespaces http://www.w3schools.com/furniture and http:defaultnamespace.com respectively. Examples of valid xpaths for the above XML are:

● //f:table● /d:root/f:table● /d:root/d:table

Procedure

You use this procedure to combine messages using Gather in an integration process.1. Open the integration flow in Model Configuration editor.2. In the palette of the Model Configuration editor, choose Message Routing.

3. To add Join, drag from the palette to the integration process.

4. Connect all the messages that you want to merge to the element.

5. To add Gather, drag from the palette to the integration process.6. In the Properties tab page, select value in Incoming Format field based on description in table.

Value Description

XML (Same Format) If messages from different routes are of the same format

XML (Different Format) If messages from different routes are of the different for­mat

Plain Text If messages from different routes are of the plain text for­mat

7. Select value for Aggregation Algorithm field based on description given in table.

150P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 151: Developer's Guide: Managing Integration Content - help.sap.com

Table 57:

Incoming Format Aggregation Algo­rithm

Description Additional Fields Description

XML (Same Format) Combine Combine the incoming messages without any conditions. The mes­sages are combined in Multimapping format.

NoteIn case you are us­ing the mapping step to map the output of this strat­egy you can have the source XSD in the LHS and spec­ify the Occurrence as 0..Unbounded.

NA NA

Combine at XPath Combine the incoming messages at the speci­fied XPath

Combine from Source (XPath)

XPath of the node that you are using as refer­ence in the source message to retrieve the information.

Combine at Target (Path)

Path to node which would act as the root for combined message

XML (Different For­mat)

Combine Combine the incoming messages without any conditions in multi mapping format.

NoteIn case you are us­ing the mapping step to map the output of this strat­egy you can add the XSD’s from the different multicast branches one after another in LHS. The sequence of the messages is impor­tant and so this strategy makes sense only with the sequential multi­cast.

NA NA

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 151

Page 152: Developer's Guide: Managing Integration Content - help.sap.com

Incoming Format Aggregation Algo­rithm

Description Additional Fields Description

Plain Text Concatenate Concatenate the infor­mation from the differ­ent sources one after another

NA NA

8. Save changes.

2.5.7 Defining Security Elements

Message-level security features allow you to digitally encrypt/decrypt or sign/verify a message (or both). The following standards and algorithms are supported.

Context

Ensuring security is important, during message exchange, to preserve the integrity of messages. A sender participant uses signatures to ensure authenticity of the sender, and encryption to prevent non-repudiation of messages during the message exchange.

Procedure

Related Information

Signing the Message Content with PKCS#7/CMS Signer [page 154]Signing the Message Content with an XML Digital Signature [page 155]Verifying the PKCS#7/CMS Signature [page 169]Verifying the XML Digital Signature [page 170]Encrypting and Signing the Message Content with PKCS#7/CMS [page 176]Encrypting and Signing the Message Content with OpenPGP [page 178]Decrypting and Verifying the Message Content with PKCS#7/CMS [page 180]Decrypting and Verifying the Message Content with OpenPGP [page 181]Signing the Message Content with Simple Signer [page 153]

152P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 153: Developer's Guide: Managing Integration Content - help.sap.com

2.5.7.1 Signing the Message Content with Simple Signer

Simple Signer makes it easy to sign messages to ensure authenticity and data integrity when sending a message to participants on the cloud.

Context

You work with the Simple Signer to make the identity of the sender known to the receiver(s) and thus ensure the authenticity of the messages. This task guarantees the identity of the sender by signing the messages with a private key using a signature algorithm.

In the integration flow model, you configure the Simple Signer by providing a private key alias. The signer uses the alias name to get the private key of type DSA or RSA from the keystore. You also specify the signature algorithm for the key type, which is a combination of digest and encryption algorithms, for example, SHA512/RSA or SHA/DSA. The Simple Signer uses the algorithm to generate the corresponding signature.

Procedure

1. In the Model Configuration editor, select the Signer element and, from the context menu, select the Switch to Simple Signer option.

2. To configure the signer with a saved configuration that is available as a template, choose Load Element Template from the context menu of the Signer element.

3. On the Simple Signer tab page, enter the parameters to create a signature for the incoming message.

Option Description

Name Enter a name for the signer. It must consist of alphanumeric ASCII characters or underscores and start with a letter. The minimum length is 3, the maximum length is 30.

Private Key Alias Enter an alias to select the private key from the keystore.

You can also specify that the alias is read dynamically from a message header; for example, if you specify ${header.abc} then the alias value is read from the header with the name "abc“.

Signature Algorithm

Select a signature algorithm for the RSA or DSA private key type.

Signature Header Name

Enter the name of the message header where the signature value in Base64 format is stored.

4. Save the changes.5. To save the configuration of the signer as a template, choose Save as Template from the context menu of

the Signer element.

NoteWhen you save the configuration of the Signer element as a template, the tool stores the template in the workspace as <ElementTemplate>.fst.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 153

Page 154: Developer's Guide: Managing Integration Content - help.sap.com

2.5.7.2 Signing the Message Content with PKCS#7/CMS Signer

Context

You work with the PKCS#7/CMS signer to make your identity known to the participants and thus ensure the authenticity of the messages you are sending on the cloud. This task guarantees your identity by signing the messages with one or more private keys using a signature algorithm.

Working with PKCS#7/CMS Signer

In the integration flow model, you configure the PKCS#7/CMS signer by providing one or more private key aliases. The signer uses the alias name to get the private keys of type DSA or RSA from the keystore. You also specify the signature algorithm for each key type, which is a combination of digest and encryption algorithms, for example, SHA512/RSA or SHA/DSA. The PKCS#7/CMS signer uses the algorithm to generate corresponding signatures. The data generated by the signer is known as the Signed Data.

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.

2. Right-click a connection within the pool and choose Add Security Element Message Signer .3. In the Model Configuration editor, select the Signer element.

NoteBy default, the Signer is of type PKCS#7/CMS. If you want to work with XML Digital Signature or Simple Signature, choose the relevant option from the context menu.

4. To configure the signer with a saved configuration that is available as a template, choose Load Element Template from the context menu of the Signer element.

5. In the Properties view, enter the details to sign the incoming message with one or more signatures.

Table 58: Parameters and Values of PKCS#7/CMS Signer

Parameters Description

Name Name for the signer step

Block Size (in bytes) Enter the size of the data that is to be encoded.

If you enter a value equal to or less than 0, the whole data is encoded.

154P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 155: Developer's Guide: Managing Integration Content - help.sap.com

Parameters Description

Include Content in Signed Data You can choose to include the original content that is to be signed in the Signed Data element. This Signed Data element is written to the message body. Otherwise, you can choose to include the Signed Data in the SapCmsSignedData header and only keep the original content in the message body.

Encode Signed Data with Base64 You can also Base64-encode the Signed Data in either the message body or the message header, to further protect it during message exchange.

NoteWhen you Base64-encode the Signed Data, you en­code either the message header or body, depending on where the Signed Data is placed. When verifying the message, make sure you specify which part of the message (header or body) was Base64-encoded.

Signer Parameters The following parameters can be defined:

○ Private Key Alias○ Signature Algorithm○ Include Certificates○ Include Signing Time

6. Save the changes.7. To save the configurations of the signer as a template, choose Save as Template from the context menu of

the Signer element.

NoteWhen you save the configuration of the Signer element as a template, the tool stores the template in the workspace as <ElementTemplate>.fst.

2.5.7.3 Signing the Message Content with an XML Digital Signature

You sign with an XML digital signature to ensure authenticity and data integrity while sending an XML resource to the participants on the cloud.

Context

The following types of XML digital signatures are supported:

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 155

Page 156: Developer's Guide: Managing Integration Content - help.sap.com

● Enveloping XML Signature: The input message body is signed and embedded within the signature. This means that the message body is wrapped by the Object element, where Object is a child element of the Signature element.

ExampleA template of the enveloping signature is shown below and describes the structure supported by XML signature implementation. ("?" denotes zero or one occurrence; the brackets [] denote variables whose values can vary.)

<Signature> <SignedInfo> <CanonicalizationMethod> <SignatureMethod> <Reference URI="#[generated object_id]" type="[optional_type_value]"> <Transform Algorithm="canonicalization method"> <DigestMethod> <DigestValue> </Reference> (<Reference URI="#[generated keyinfo_id]"> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> <DigestMethod> <DigestValue> </Reference>)? </SignedInfo> <SignatureValue> (<KeyInfo Id="[generated keyinfo_id]">)? <--!The Id attribute is only added if there exists a reference--> <Object Id="[generated object_id]"/></Signature>

● Enveloped XML Signature: The digital signature is embedded in the XML message to be signed. This means that the XML message contains the Signature element as one of its child elements. The Signature element contains information such as:○ Algorithms to be used to obtain the digest value○ Reference with empty URI, which means the entire XML resource○ Optional reference to the KeyInfo element (attribute Also Sign Key Info)

ExampleA template of the enveloped signature is shown below and describes the structure supported by XML signature implementation. ("?" denotes zero or one occurrence; the brackets [] denote variables whose values can vary):

<[parent element]> ... <Signature> <SignedInfo> <CanonicalizationMethod> <SignatureMethod> <Reference URI="" type="[optional_type_value]"> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> <Transform Algorithm=[canonicalization method]/> <DigestMethod> <DigestValue> </Reference> (<Reference URI="#[generated keyinfo_Id]">

156P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 157: Developer's Guide: Managing Integration Content - help.sap.com

<Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> <DigestMethod> <DigestValue> </Reference>)? </SignedInfo> <SignatureValue> (<KeyInfo Id="[generated keyinfo_id]">)? <--!The Id attribute is only added if there exists a reference--> </Signature></[parent element]>

● Detached XML Signature: The digital signature is a sibling of the signed element. There can be several XML signatures in one XML document.You can sign several elements of the message body. The elements to be signed must have an attribute of type ID. The ID type of the attribute must be defined in the XML schema that is specified during the configuration.Additionally, you specify a list of XPath expressions pointing to attributes of type ID. These attributes determine the elements to be signed. For each element, a signature is created as a sibling of the element. The elements are signed with the same private key. Elements with a higher hierarchy level are signed first. This can result in nested signatures.

ExampleA template of the detached signature is shown below and describes the structure supported by XML signature implementation. ("?" denotes zero or one occurrence; the brackets [] denote variables whose values can vary):

(<[signed element] Id="[id_value]"> <!-- signed element must have an attribute of type ID --> ... </[signed element]> <other sibling/>* <!-- between the signed element and the corresponding signature element, there can be other siblings --> <Signature> <!-- signature element becomes the last sibling of the signed element --> <SignedInfo> <CanonicalizationMethod> <SignatureMethod> <ReferenceURI="#[id_value]"type="[optional_type_value]"> <!-- reference URI contains the ID attribute value of the signed element --> <TransformAlgorithm=[canonicalization method]/> <DigestMethod> <DigestValue> </Reference> (<ReferenceURI="#[generated_keyinfo_Id]"> <TransformAlgorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> <DigestMethod> <DigestValue> </Reference>)? </SignedInfo> <SignatureValue> (<KeyInfoId="[generated_keyinfo_id]">)? <!-- The Id attribute is only added if there exists a reference with the corresponding URI --> <Signature>)+

Note that the following elements are generated and cannot be configured with the Integration Designer:

● Key Info ID

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 157

Page 158: Developer's Guide: Managing Integration Content - help.sap.com

● Object ID

Working with XML Digital Signer

The sender canonicalizes the XML resource to be signed, based on the specified transform algorithm. Using a digest algorithm on the canonicalized XML resource, a digest value is obtained. This digest value is included within the 'Reference' element of the 'SignedInfo' block. Then, a digest algorithm, as specified in the signature algorithm, is used on the canonicalized SignedInfo. The obtained digest value is encrypted using the sender's private key.

NoteCanonicalization transforms the XML document to a standardized format, for example, canonicalization removes white spaces within tags, uses particular character encoding, sorts namespace references and eliminates redundant ones, removes XML and DOCTYPE declarations, and transforms relative URIs into absolute URIs. The representation of the XML data is used to determine if two XML documents are identical. Even a slight variation in white spaces results in a different digest for an XML document.

Procedure

1. In the Model Configuration editor, select the Signer element and, from the context menu, select the Switch to XML Digital Signer option.

2. To configure the signer with a saved configuration that is available as a template, choose Load Element Template from the context menu of the Signer element.

3. On the XML Digital Signer tab page, enter the parameters to create an XML digital signature for the incoming message.

Option Description

Private Key Alias Enter an alias to select the private key from the keystore.

Signature Algorithm Select a signature algorithm for the RSA or DSA private key type.

Using the private key, the sender encrypts the digest.

Digest Algorithm Select the digest algorithm that is used to calculate a digest from the canonicalized XML document.

Note that if the digest algorithm is not specified, the digest algorithm of the signature al­gorithm is used by default.

Signature Type ○ Enveloping XML SignatureThe input message body is signed and embedded in the signature. This means that the message body is wrapped by the Object element, where Object is a child el­ement of the Signature element.

○ Enveloped XML SignatureThe digital signature is embedded in the XML message to be signed. This means that the XML message contains the Signature element as one of its child ele­ments.

○ Detached XML Signature

158P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 159: Developer's Guide: Managing Integration Content - help.sap.com

Option Description

The digital signature is a sibling of the signed element. There can be several XML sig­natures in one XML document.

XML Schema file path (only if the option Detached XML Signatures is selected)

Choose Browse and select the file path to the XML schema file that is used to validate the incoming XML document. This file has to be in the package source.main.resources.xsd

Signatures for Elements (only if the option Detached XML Signatures is selected)

Choose Add to enter the XPath to the attribute of type ID, in order to identify the element to be signed. Example: /nsx:Document/SubDocument/@IdNamespaces prefixes must be defined in the namespaces mapping of the runtime con­figuration.

Parent Node (only if the option Enveloped XML Signature is selected for the attribute Signature Type)

Specify how the parent element of the Signature element is to be specified. You have the following options:○ Specified by Name and Namespace (using local name and namespace)○ Specified by XPath expression (using an XML Path Language (XPath))

Parent Node Name (only if the option Enveloped XML Signature is selected for the attribute Signature Type and Specified by Name and Namespace is selected for Parent Node)

Specify a local name of the parent element of the Signature element.

This attribute is only relevant for Enveloped XML Signature case. The Signature element is added at the end of the children of the parent.

Parent Node Namespace (only if the option Enveloped XML Signature is selected for the attrib­ute Signature Type and Specified by Name and Namespace is selected for Parent Node)

Specify a namespace of the parent element of the Signature element.

This attribute is only relevant for Enveloped XML Signature case. In the Enveloped XML Signature case, a null value is also allowed to support no namespaces. An empty value is not allowed.

XPath Expression (only if the option Enveloped XML Signature is selected for the attribute Signature Type and Specified by XPath expression is se­lected for Parent Node)

Enter an XPath expression for the parent node to be specified.

This attribute is only relevant for Enveloped XML Signature case.

Key Info Content Specifies which signing key information will be included in the KeyInfo element of the XML signature. You can select a combination of the following attribute values:○ X.509 Certificate Chain

X509Certificate elements representing the certificate chain of the signer key

NoteThe KeyInfo element might not contain the whole certificate chain, but only the certificate chain that is assigned to the key pair entry.

○ X.509 CertificateX509Certificate element containing the X.509 certificate of the signer key

○ Issuer Distinguished Name and Serial NumberX509IssuerSerial element containing the issuer distinguished name and the serial number of the X.509 certificate of the signer key

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 159

Page 160: Developer's Guide: Managing Integration Content - help.sap.com

Option Description

○ Key ValueKey Value element containing the modulus and exponent of the public key

NoteYou can use any combination of these four attribute values.

Sign Key Info With this attribute you can specify a reference to the KeyInfo element.

For more information about the various attributes, see the following:

http://www.w3.org/TR/xmldsig-core/

4. On the Advanced tab page, under Transformation, specify the following parameters.

Option Description

Canonicalization Method for SignedInfo

Specify the canonicalization method to be used to transform the SignedInfo element that contains the digest (from the canonicalized XML document).

Transform Method for Payload Specify the transform method to be used to transform the inbound message body before it is signed.

For more information about the various methods, see the following:

http://www.w3.org/TR/2001/REC-xml-c14n-20010315

http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments

http://www.w3.org/2001/10/xml-exc-c14n#

http://www.w3.org/2001/10/xml-exc-c14n#WithComments

5. On the Advanced tab page, under XML Document Parameters, specify the following parameters.

Option Description

Reference Type Enter the value of the type attribute of the content reference.

If you enter null or empty, no reference type is created.

More information: http://www.w3.org/2000/09/xmldsig#Object

Namespace Prefix Enter a prefix for the XML signature namespace.

Default value is ds.

Signature Id Specifies the value of the Id attribute of the Signature element.

If you specify no value, no Id attribute is added to the Signature element.

Output Encoding Select an encoding scheme for the output XML document.

The encoded output document will be written into the message header. If no encoding scheme is specified, the output will be UTF-8-encoded.

Exclude XML Declaration

Specify whether the XML declaration header shall be omitted in the output XML message.

Disallow DOCTYPE Declaration

Specify whether DTD DOCTYPE declarations shall be disallowed in the incoming XML message.

160P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 161: Developer's Guide: Managing Integration Content - help.sap.com

6. Save the changes.7. To save the configurations of the signer as a template, choose Save as Template from the context menu of

the Signer element.

NoteWhen you save the configuration of the Signer element as a template, the tool stores the template in the workspace as <ElementTemplate>.fst.

2.5.7.4 Signing the Message Content with XML Advanced Electronic Signature

XML Advanced Electronic Signature (XAdES) allows you to create digital signatures based on XML Digital Signature that include additional qualifying properties.

Context

The additional properties allow you to create signatures that are compliant with the European Directive (http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:L:2000:013:0012:0020:EN:PDF ).

XAdES is an industry standard based on XML Signature and issued by the European Telecommunications Standards Institute (ETSI). It allows you to enhance the digital signature with additional data, for example, timestamps to provide evidence that the signature key was valid at the time the signature was created.

The following XAdES forms are supported:

Table 59: XAdES Forms

Form Allows you to ...

XAdES-BES (XAdES-BES (1) and XAdES-BES (2))

(XAdES Basic Electronic Signature)

Create an electronic signature based on XML Digital Signature that includes ad­ditional properties to further qualify the signature.

XAdES-EPES

(XAdES Explicit Policy based Electronic Signature)

Create an electronic signature based on XML Digital Signature that unambigu­ously refers to a signature policy agreed between signer and verifier. An elec­tronic signature built in this way enforces the usage of the signature policy for signature validation and thus increases the security level of the usage of the dig­ital signature.

NoteThere are additional XAdES forms defined by the specification. SAP currently only supports XAdES-BES and XAdES-EPES.

For more information, see http://uri.etsi.org/01903/v1.3.2/ts_101903v010302p.pdf .

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 161

Page 162: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

Related Information

Signing the Message Content with XAdES-BES (1) [page 163]Signing the Message Content with XAdES-BES (2) [page 165]Signing the Message Content with XAdES-EPES [page 166]Message Headers [page 168]Limitations [page 162]

2.5.7.4.1 Limitations

SAP currently only supports XAdES-BES and XAdES-EPES. There are a number of additional limitations.

● No support for the QualifyingPropertiesReference element (see section 6.3.2 of the XAdES specification at http://uri.etsi.org/01903/v1.3.2/ts_101903v010302p.pdf ).

● No support for signature forms XAdES-T and XAdES-C.● No support for the Transforms element contained in the SignaturePolicyId element contained in the

SignaturePolicyIdentifier element.● No support of the CounterSignature element; this implies that there is no support for the

UnsignedProperties element.● At most one DataObjectFormat element is supported.

More than one DataObjectFormat element does not make any sense in the use cases supported by the Signer step, because only one signed data object is expected (the incoming message body to the XML signer).

● At most one CommitmentTypeIndication element is supported.More than one CommitmentTypeIndicationelement does not make any sense in the use cases supported by the Signer step, because only one signed data object is expected (the incoming message body to the XML signer).

● A CommitmentTypeIndication element always contains the AllSignedDataObjects element.The ObjectReference element within a CommitmentTypeIndication element is not supported.

● No support of the AllDataObjectsTimeStamp element (it requires a time authority).● No support of the IndividualDataObjectsTimeStamp element (it requires a time authority).

162P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 163: Developer's Guide: Managing Integration Content - help.sap.com

2.5.7.4.2 Signing the Message Content with XAdES-BES (1)

This option allows you to add timestamps (for the signing time), a reference to the signer's key certificate, and other information that further qualifies the signature.

Context

For more information, see http://uri.etsi.org/01903/v1.3.2/ts_101903v010302p.pdf .

Procedure

1. In the Model Configuration editor, select the Signer element and, from the context menu, select the Switch to XAdES-BES (1) option.

2. Add the signing time and the certificate to the signature.

Option Description

Time Select this option if you want to add the signing time to the signature.

This measure helps to provide evidence that the signature key was valid at the time the signa­ture was created.

Certificate Specify whether the certificate of the signing key is to be added to the signature.

You have the following options:

○ NoneAdd no certificate.

○ Certificate OnlyAdd digest value, issuer, and serial number of the signing certificate.

○ Certificate ChainAdd digest value, issuer, and serial number of the certificates of the certificate chain.

Digest Algorithm (only when either Certificate Only or Certificate Chain is selected for Certificate)

Specify a digest algorithm that is to be used to calculate a digest value from the certificate.

This measure helps to control whether the certificate that is used to verify the message content corresponds to the one that has been used to sign the message content.

SHA256 is proposed as the default.

Certificate URI Specify a reference to the certificate.

If as Certificate you have selected Certificate Only, only one URI is allowed.

If as Certificate you have selected Certificate Chain, you can add for each certificate in the certificate chain an URI. The URI must be added at the position where the corresponding certificate in the chain is located. At the position 0 the signing certificate URI must be placed. If for a certain certificate in the chain no URI is available, enter an empty string at the correspond­ing place in the URI list.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 163

Page 164: Developer's Guide: Managing Integration Content - help.sap.com

Adding the signer's key certificate and its digest value to the signed document makes sure that the signed document contains an unambiguous reference to the signer's certificate.

3. Specify the signer role.These properties allow you to specify the role of the signer in order to make clear the signer's position in the company or organization. Doing this helps provide evidence to the verifier that the signer is empowered by the organization to perform the signing task.

Option Description

Claimed Roles (optional)

Specify the claimed roles of the signer.

To specify a claimed role, choose Add and enter a text or an XML fragment with the root element ClaimedRole.

Certified Roles (optional)

Specify the roles of the signer which are certified by an attribute certificate.

An attribute certificate associates the identifier of a certificate to some attributes of its owner, in this case, to a role

The specified attribute certificates must be base-64 encoded.

To specify a certified role, choose Add and specify the following attributes:

○ EncodingSelect the encoding scheme.An empty string indicates that the Encoding attribute is not specified. In this case, it is assumed that the PKI data is ASN.1 data encoded in DER.

○ ID (optional)

4. Under Data Object Format, specify the format of the signed data.

Option Description

Description (optional) Provide an informal text to describe the format of the signed data.

MIME Type (optional) Specify the Internet Media Type (MIME type) that determines the data object format.

You need to enter the MIME type manually.

Example: text/xml

This information can help to parse the signed document correctly.

5. Specify the Identifier of the data object format.

Option Description

Name Specify an identifier to indicate the format of a signed data.

You can specify the identifier by one of the following options:

○ By means of a Uniform Resource Identifier (URI) (preferred option when dealing with XML documents)In this case, the Name of the identifier consists of the identifying URI. In this case, the property Qualifier must not be specified (empty string).

○ By means Object Identifier (OID) when using ASN.1 (Abstract Syntax Notation One)To support an OID, the content of Identifier consists of an OID, either encoded as Uniform Resource Name (URN) or as Uniform Resource Identifier (URI). The op­

164P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 165: Developer's Guide: Managing Integration Content - help.sap.com

Option Description

tional Qualifier attribute can be used to provide a hint about the applied encoding (values OIDAsURN or OIDAsURI).

Qualifier (only relevant if an Identifier Name has been specified)

Further qualify how the identifier is defined in case Abstract Syntax Notation One (ASN 1) is used.

You can select one of the following values:

○ empty string○ OIDAsURI – uses Uniform Resource Name.○ OIDAsURN – uses Uniform Resource Name.

Description (only relevant if an Identifier Name has been specified)

Provide a reference to further documentation of the identifier.

Documentation Reference (only relevant if an Identi­fier Name has been speci­fied)

2.5.7.4.3 Signing the Message Content with XAdES-BES (2)

This option allows you to add further contextual information to the signature, like, for example, the place where the signature has been created, or the type of commitment assured by the signer when creating the signature.

Context

For more information, see http://uri.etsi.org/01903/v1.3.2/ts_101903v010302p.pdf .

Procedure

1. In the Model Configuration editor, select the Signer element and, from the context menu, select the Switch to XAdES-BES (2) option.

2. Under Production Place enter information on the purported place where the signer claims to have produced the signature (City, State/Province, Postal Code, and Country Name).

3. Specify the commitment to be undertaken by the signer (for example, proof of origin, proof of receipt, proof of creation).

Option Description

Commitment Specify the commitment. You can select one of the following values:

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 165

Page 166: Developer's Guide: Managing Integration Content - help.sap.com

Option Description

○ Proof of originIndicates that the signer recognizes to have created, approved and sent the signed data ob­ject.The URI for this commitment is: http://uri.etsi.org/01903/v1.2.2#ProofOfOrigin .

○ Proof of receiptIndicates that signer recognizes to have received the content of the signed data object.The URI for this commitment is: http://uri.etsi.org/01903/v1.2.2#ProofOfReceipt .

○ Proof of deliveryIndicates that the trusted service provider (TSP) providing that indication has delivered a signed data object in a local store accessible to the recipient of the signed data object.The URI for this commitment is: http://uri.etsi.org/01903/v1.2.2#ProofOfDelivery .

○ Proof of senderIndicates that the entity providing that indication has sent the signed data object (but not necessarily created it).The URI for this commitment is: http://uri.etsi.org/01903/v1.2.2#ProofOfSender .

○ Proof of approvalIndicates that the signer has approved the content of the signed data object.The URI for this commitment is: http://uri.etsi.org/01903/v1.2.2#ProofOfApproval .

○ Proof of creationIndicates that the signer has created the signed data object (but not necessarily approved, nor sent it).The URI for this commitment is: http://uri.etsi.org/01903/v1.2.2#ProofOfCreation .

Description Enter a free text description of the commitment.

Documentation Reference

Enter references (URIs) to one or more documents where the commitment is described.

Commitment Qualifier

Enter additional qualifying information on the commitment made by the signer.

Enter a text or an XML fragment with the root element CommitmentTypeQualifier.

Adding these properties helps to avoid legal disputes as the commitment undertaken by the signer can be compared with the commitment made in the context of an applied signature policy.

4. Under XML Document Parameters, select the namespace of the XAdES version and enter a namespace prefix.

2.5.7.4.4 Signing the Message Content with XAdES-EPES

This option allows you to create a digital signature based on XML Digital Signature that unambiguously refers to a signature policy agreed between signer and verifier. An electronic signature created this way enforces the

166P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 167: Developer's Guide: Managing Integration Content - help.sap.com

usage of the signature policy for signature validation and thus increases the security level of the digital signature.

Context

A signature policy is a set of rules for the creation and validation of a digital signature.

For more information, see http://uri.etsi.org/01903/v1.3.2/ts_101903v010302p.pdf .

Procedure

1. In the Model Configuration editor, select the Signer element and, from the context menu, select the Switch to XAdES-EPES option.

2. Specify the properties of the signature.

Option Description

Signature Policy Specify whether a signature policy is to be added, and, if yes, in which form this should be done.○ None○ Implied

The signature policy can be unambiguously derived from the semantics of the type of data object(s) being signed, and some other information.Using this option, the SignaturePolicyImplied element will be part of the signature.

○ Explicit IDThe signature contains an identifier of a signature policy together with a hash value of the signature policy that allows verification that the policy selected by the signer is the one being used by the verifier.

Identifier (only if the value Explicit ID has been selected for Signature Policy)

Specify an identifier that uniquely identifies a specific version of the signature policy.

You can specify the identifier by one of the following options:

○ By means of a Uniform Resource Identifier (URI) (preferred option when dealing with XML documents)In this case, the Name of the Identifier consists of the identifying URI. In this case, the property Qualifier must not be specified (empty string).

○ By means of an Object Identifier when using ASN.1 (Abstract Syntax Notation One)To support an OID, the content of Identifier consists of an OID, either encoded as a Uniform Resource Name (URN) or as a Uniform Resource Identifier (URI). The op­tional Qualifier attribute can be used to provide information about the applied en­coding (values OIDAsURN or OIDAsURI).

Identifier Qualifier (only if the value Explicit ID has been selected for Signature Policy)

Qualify how the identifier is defined in case Abstract Syntax Notation One (ASN 1) is used.

You can select one of the following values:

○ Empty string○ OIDAsURI – uses Uniform Resource Name.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 167

Page 168: Developer's Guide: Managing Integration Content - help.sap.com

Option Description

○ OIDAsURN – uses Uniform Resource Name.

Description (only if the value Explicit ID has been selected for Signature Policy)

Enter a description of the signature policy.

Documentation Reference (only if the value Explicit ID has been selected for Signature Policy)

Provide a reference to further documentation of the signature policy.

Digest Algorithm (only if the value Explicit ID has been selected for Signature Policy)

Specify the digest algorithm used to calculate the digest value of the signature policy document.

As default, SHA256 is used.

Digest Value (only if the value Explicit ID has been selected for Signature Policy)

Specify the digest value of the signature policy document (base 64-encoded).

You can either enter the digest value manually or calculate it.

To calculate the digest value, you have the following options:

○ Calculate from IdentifierCalculates the digest value from the value of the Identifier provided above. Note that the Identifier must be a valid URL and start with http:// or https://.

○ Browse to local FileCalculates the digest value from the content of a file.

Policy Qualifier (only if the value Explicit ID has been selected for Signature Policy)

Enter additional information qualifying the signature policy. To do this, enter text or an XML fragment with the root element SigPolicyQualifier.

2.5.7.4.5 Message Headers

For certain message headers you can define specific elements in the XAdES form.

Table 60: Message Headers

Message Header Type Allows you to ...

CamelXmlSignatureXAdESQualifying­PropertiesId

String Specify the Id attribute value of the QualifyingProperties element.

CamelXmlSignatureXAdESSignedDa­taObjectPropertiesId

String Specify the Id attribute value of the SignedDataObjectProperties ele­ment.

CamelXmlSignatureXAdESSigned­SignaturePropertiesId

String Specify the Id attribute value of the SignedSignatureProperties ele­ment.

CamelXmlSignatureXAdESDataObject­FormatEncoding

String Specify the value of the Encoding element of the DataObjectFormat element.

CamelXmlSignatureXAdESNamespace String Overwrite the namespace parameter value.

CamelXmlSignatureXAdESPrefix String Overwrite the prefix parameter value.

168P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 169: Developer's Guide: Managing Integration Content - help.sap.com

2.5.7.5 Verifying the PKCS#7/CMS Signature

Context

You perform this task to ensure that the signed message received over the cloud is authentic.

Working with PKCS#7/CMS Signature Verifier

In the integration flow model, you configure the Verifier by providing information about the public key alias, and whether the message header or body is Base64-encoded, depending on where the Signed Data is placed. For example, consider the following two cases:

● If the Signed Data contains the original content, then in the Signature Verifier you provide the Signed Data in the message body.

● If the Signed Data does not contain the original content, then in the Signature Verifier you provide the Signed Data in the header SapCmsSignedData and the original content in the message body.

The Verifier uses the public key alias to obtain the public keys of type DSA or RSA that are used to decrypt the message digest. In this way the authenticity of the participant who signed the message is verified. If the verification is not successful, the Signature Verifier informs the user by raising an exception.

Under Public Key Alias you can enter one or multiple public key aliases for the Verifier.

NoteIn general, an alias is a reference to an entry in a keystore. A keystore can contain multiple public keys. You can use a public key alias to refer to and select a specific public key from a keystore.

You can use this attribute to support the following use cases:

● Management of the certificate lifecycle. Certificates have a certain validity period. Using the Public Key Alias attribute in the Verifier step, you can enter both an alias of an existing certificate (which will expire within a certain time period) and an alias for a new certificate (which does not necessarily have to exist already in the keystore). In this way, the Verifier is configured to verify messages signed by either the old or the new certificate. As soon as the new certificate has been installed and imported into the keystore, the Verifier refers to the new certificate. In this way, certificates can be renewed without any downtime.

● You can use different aliases to support different signing senders with the same Verifier step. Using the Public Key Alias attribute, you can specify a list of signing senders.

NoteExceptions that occur during runtime are displayed in the Message Processing Log view of the Operations for SAP HANA Cloud Integration perspective.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 169

Page 170: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.

2. Right-click a connection within the pool and choose Add Security Element Signature Verifier .3. In the Model Configuration editor, select Verifier.

NoteBy default, the Verifier is of type PKCS#7/CMS. If you want to work with XML Signature Verifier, then choose the Switch to XML Signature Verifier option from the context menu.

4. In the Properties view, enter the details to verify the signatures of the incoming message.

Table 61: Parameters and Values of PKCS#7/CMS Signature Verifier

Parameters Description

Name Name for the Verifier step

Header is Base64 Encoded Select this option to verify if the Signed Data encoded in Base64 is included in the header

Body is Base64 Encoded Select this option to verify if the Signed Data encoded in Base64 is included in the message body

Public Key Alias Enter an alias name to select a public key and corre­sponding certificate from the keystore

5. Save the changes.

2.5.7.6 Verifying the XML Digital Signature

Context

The XML Signature Verifier validates the XML signature contained in the incoming message body and returns the content which was signed in the outgoing message body.

NoteFor enveloping and enveloped XML signatures the incoming message body must contain only one XML signature.

The Verifier supports enveloping and enveloped XML signatures and detached XML signatures. In the enveloping XML signature case, one reference whose URI references the only allowed 'Object' element via ID, and an optional reference to the optional KeyInfo element via ID is supported

170P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 171: Developer's Guide: Managing Integration Content - help.sap.com

Working of XML Signature Verifier

In the validation process, a public key is required and it is fetched from the worker node keystore. On receiving the XML message, the Verifier canonicalizes the data identified by the 'Reference' element and then digests it to give a digest value. The digest value is compared against the digest value available under the 'Reference' element of the incoming message. This helps to ensure that the target elements were not tampered with.

Then, the digest value of the canonicalized 'SignedInfo' is calculated. The resulting bytes are verified with the signature on the 'SignedInfo' element, using the sender's public key. If both the signature on the 'SignedInfo' element and each of the 'Reference' digest values verify correctly, then the XML signature is valid.

NoteXML Signature Verifier supports both enveloping and enveloped signatures

Procedure

1. In the Model Configuration editor, select Verifier element and from the context menu, select Switch to XML Signature Verifier option.

2. In the XML Signature Verifier tab page, enter the parameters to verify XML digital signature for the incoming message.

Table 62: Parameters and Values of XML Signature Verifier

Parameters Description

Name Name for the Verifier step

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 171

Page 172: Developer's Guide: Managing Integration Content - help.sap.com

Parameters Description

Expected Signature Type Select the expected Signature type:

○ Enveloping or Enveloped XML Signature: If the sig­nature is contained within the content or the signa­ture contains the signed data.Verifying Enveloping Signature: If the incoming message has enveloping signature○ an optional 'Reference' to the optional 'KeyInfo'

element via ID is supported○ 'References' can have one optional transform

whose algorithm must be a canonicalization method

So it implies, an enveloping XML signature with only the following structure is supported ("?" denotes zero or one occurrence, the brackets [] denotes vari­ables whose values can vary).

<Signature> <SignedInfo> <CanonicalizationMethod> <SignatureMethod> <Reference URI="#[object_id]"> (<Transform Algorithm=[canonicalization method]/>)? <DigestMethod> <DigestValue> </Reference> (<Reference URI="#[keyinfo_id]"> (<Transform Algorithm=[canonicalization method]/>)? <DigestMethod> <DigestValue> </Reference>)? </SignedInfo> <SignatureValue> (<KeyInfo (Id="[keyinfo_id]")?>)? <Object Id="[object_id]"/></Signature>

Verifying Enveloped Signature: If the incoming mes­sage has enveloped signature○ One reference with empty URI and an optional

reference to the KeyInfo element via its ID is al­lowed

○ An additional transform containing a canonicali­zation method is supported, beside the trans­form with algorithm "http://www.w3.org/2000/09/xmldsig#enveloped-signature".

172P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 173: Developer's Guide: Managing Integration Content - help.sap.com

Parameters Description

So it implies, an enveloped XML signature with only the following structure is supported ("?" denotes zero or one occurrence, the brackets [] denotes vari­ables whose values can vary).

<[parent]> <Signature> <SignedInfo> <CanonicalizationMethod> <SignatureMethod> <Reference URI=""> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> (<Transform Algorithm="[canonicalization method]"/>)? <DigestMethod> <DigestValue> </Reference> (<Reference URI="#[keyinfo_id]"> (<Transform Algorithm="[canonicalization method]"/>)? <DigestMethod> <DigestValue> </Reference>)? </SignedInfo> <SignatureValue> (<KeyInfo (Id="[keyinfo_id]")?>)? </Signature></[parent]>

○ Detached XML Signatures: If the signature is con­tained within the content or the signature contains the signed data.Verifying Detached Signature If the incoming mes­sage has detached signature:○ Signature element must be a sibling of the

signed element○ Signed element must have an attribute of type

ID○ Signature references signed element via the ID

valueSo it implies, a detached XML signature with only the following structure is supported ("?" denotes zero or one occurrence, the brackets [] denotes variables whose values can vary).

(<[signed element] Id="[id_value]">

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 173

Page 174: Developer's Guide: Managing Integration Content - help.sap.com

Parameters Description

<!-- signed element must have an attribute of type ID --> ... </[signed element]> <other sibling/>* <!-- between the signed element and the corresponding signature element, there can be other siblings --> <Signature> <SignedInfo> <CanonicalizationMethod> <SignatureMethod> <ReferenceURI="#[id_value]"type="[optional_type_value]"> <!-- reference URI contains the ID attribute value of the signed element --> <TransformAlgorithm=[canonicalization method]/> <DigestMethod> <DigestValue> </Reference> (<ReferenceURI="#[generated_keyinfo_Id]"> <TransformAlgorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> <DigestMethod> <DigestValue> </Reference>)? </SignedInfo> <SignatureValue> (<KeyInfoId="[generated_keyinfo_id]">)? <Signature>)+

Check for Key Info Element Select this option to check that the XML Signature con­tains a Key Info element

The KeyInfo element has to contain either the certificate chain, the certificate, the Issuer Distinguished Name and Serial Number, or the Key Value element (or combina­tions of these attributes).

NoteIn case multiple public key aliases are specified (using the Public Key Alias attribute), this option is manda­tory (to make sure that from the KeyInfo the public key can be derived).

174P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 175: Developer's Guide: Managing Integration Content - help.sap.com

Parameters Description

Disallow DOCTYPE Declaration Select this option to disallow DTD DOCTYPE declaration in the incoming XML message

Public Key Alias Enter an alias name to select a public key and corre­sponding certificate

Using the Public Key Alias, you can enter one or multiple public key aliases for the Verifier.

NoteIn general, an alias is a reference to an entry in a key­store. A keystore can contain multiple public keys. You can use a public key alias to refer to and select a spe­cific public key from a keystore.

You can use this attribute to support the following use cases:

○ Management of the certificate lifecycle: Certificates have a certain validity period. Using the Public Key Alias attribute in the Verifier step, you can enter both an alias of an existing certificate (which will expire within a certain time period) and an alias for a new certificate (which not necessarily has to exist already in the keystore). That way, the Verifier is configured to verify messages signed by either the old or the new certificate. As soon as the new certificate has been installed and imported into the keystore, the Verifier refers to the new certificate. That way, certifi­cates can be renewed without any downtime.

○ You can use different aliases to support different signing senders with the same Verifier step. Using the Public Key Alias attribute, you can specify a list signing senders.

3. Save the changes.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 175

Page 176: Developer's Guide: Managing Integration Content - help.sap.com

2.5.7.7 Encrypting and Signing the Message Content with PKCS#7/CMS

Context

You perform this task to protect the message content from being altered while it is being sent to other participants on the cloud, by encrypting the content. In the integration flow model, you configure the Encryptor by providing information on the public key alias, content encryption algorithm, and secret key length. The encryptor uses one or more receiver public key aliases to find the public key in the keystore. The encryption process uses a symmetric key of specified length for content encryption. The symmetric key is encrypted by the public recipient key with the cipher. The encryption is determined by the type of Content Encryption Algorithm that you select. The encrypted content and the receiver information containing the symmetric encryption key are placed in the message body.

In addition to encrypting the message content, you can also sign the content to make your identity known to the participants and thus ensure the authenticity of the messages you are sending. This task guarantees your identity by signing the messages with one or more private keys using a signature algorithm.

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.

2. Right-click a connection within the pool and choose Add Security Element Content Encryptor .3. In the Model Configuration editor, select Encryptor.4. To configure the encryptor with a saved configuration that is available as a template, choose Load Element

Template from the context menu of the Encryptor element.5. In the Properties view, specify the general settings for encryption.

Table 63:

Name Enter a name for the signer. It must consist of alphanu­meric ASCII characters or underscores and start with a letter. The minimum length is 3, the maximum length is 30.

Block Size (in bytes) Enter the size of the data that is to be encoded.

If you enter a value equal to or less than 0, the whole data is encoded.

Encode Body with Base64 Select this option if the message body will be base64-en­coded.

176P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 177: Developer's Guide: Managing Integration Content - help.sap.com

Signatures in PKCS7 Message Select one of the following options:

○ Enveloped Data OnlySelect this option if you want to apply encryption only.

○ Signed and Enveloped DataSelect this option if you want to apply both encryp­tion and signing.

6. Specify the settings for the encryption process (under Encryption).

Table 64:

Content Encryption Algorithm Specify the algorithm that is to be used to encrypt the payload.

Secret Key Length Specify the key length.

The offered key lengths depend on the chosen encryption algorithm.

Receiver Public Key Alias Specify one or more aliases.

You use the alias to select the public key from the key­store.

7. Specify the settings for the signing process under Signature (only if you selected Signed and Enveloped Data for Signatures in PKCS7 Message).

For each private key alias (specified under Signer Parameters), you define the following parameters:

Table 65:

Signature Algorithm Specify the signature (digest) algorithm.

Include Certificates If you activate this option (value true), the signer's certifi­cate chain will be added to the SignedAndEnvelopedData object of the message.

8. Save the changes.9. To save the configuration of the encryptor as a template, choose Save as Template from the context menu

of the Encryptor element.

NoteWhen you save the configuration of the Encryptor element as a template, the tool stores the template in the workspace as <ElementTemplateName>.fst.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 177

Page 178: Developer's Guide: Managing Integration Content - help.sap.com

2.5.7.8 Encrypting and Signing the Message Content with OpenPGP

You have the option to encrypt the message content using Open Pretty Good Privacy (OpenPGP).

Context

You have the following options to protect communication at message level based on the OpenPGP standard:

● You can encrypt a payload.● You can sign and encrypt a payload.

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.

2. Right-click a connection within the pool and choose Add Security Element Content Encryptor .3. In the Model Configuration editor, position the cursor on the Content Encryptor step and in the context

menu select Switch to PGP.4. Open the Properties view.5. Specify whether or not to sign the payload (in addition to applying payload encryption). To do this, select

one of the following options for Signatures in PGP Message:

Option Description

Include Signature Select this option if you want to apply both encryption and signing.

No Signature Select this option if you want to apply encryption only.

6. Under Encryption, specify the following parameters for message encryption:

Table 66:

Field Description

Content Encryption Algorithm In the dropdown list, select the algorithm you want to use to encrypt the payload.

Secret Key Length Enter the secret key length.

NoteThe length of the secret key depends on the encryp­tion algorithm that you choose.

178P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 179: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Compression Algorithm Select the algorithm you want to use to compress the payload.

Armored Select if you want the output to be radix 64 (base64) en­coded with additional header.

Integrity protected Data Packet Select if you want to create an Encrypted Integrity Pro­tected Data Packet. This is a specific format where an ad­ditional hash value is calculated (using SHA-1 algorithm) and added to the message.

This increases the message security level.

Encryption User ID of Key(s) from Public Keyring You can specify the encryption key user IDs (or parts of them). Based on this, system look for the public key in PGP public keyring.

You can specify multiple user IDs.

7. Under Signature, specify the following parameters for message signing (only if you have selected Include Signature for Signatures in PGP Message):

Option Description

Digest Algorithm Specify the digest algorithm (or hash algorithm) that is to be applied.

The sender calculates a digest (or hash value) from the message content using a digest algo­rithm. To finalize the payload signing step, this digest is encrypted by the sender using a pri­vate key.

Signer Key User ID Parts of Keys from the Secret Keyring

Specify the signer key user ID parts.

Based on the signer key user ID parts, the private key (for message signing) is looked up in the PGP secret keyring.

8. Save the changes.

Next Steps

You can provide a file name with the PGP message in the Literal Packet, according to the specification at https://tools.ietf.org/html/rfc4880 , chapter 5.9 Literal Data Packet (Tag 11).

By default, this file name is set to an empty string.

A file name that differs from an empty string can be specified by the header CamelFileName.

NoteThe SFTP adapter sets the header CamelFileName automatically.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 179

Page 180: Developer's Guide: Managing Integration Content - help.sap.com

2.5.7.9 Decrypting and Verifying the Message Content with PKCS#7/CMS

Context

You perform this task to decrypt messages received from a participant on the cloud.

Note that the related keystore must contain the private key, otherwise decryption of the message content will not work.

It is also possible to verify the signature of a SignedAndEnvelopedData object to ensure that the received signed message is authentic.

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.

2. Right-click a connection within the pool and choose Add Security Element Content Decryptor .3. In the Model Configuration editor, select Decryptor.4. In the Properties view, enter the details to decrypt the content of the incoming message.

Option Description

Name Name of the selected PKCS7 Decryptor element. The default name is PKCS7Decryptor.

If you add a second PKCS7 Decryptor to the integration flow, you have to change the name because the Decryptor name must be unique.

Body is Base64-En­coded

Select this option if a Base64-encoded message body is expected.

Signatures in PKCS7 Mes­sage

Specify which kind of content can be processed.

You can select one of the following options:

○ Enveloped Data OnlyEncrypted-only payloads can be processed.

○ Signed and Enveloped DataPayloads with content type Signed and Enveloped Data can be processed.

○ Enveloped or Signed and Enveloped DataBoth content types – Enveloped Data Only or Signed and Enveloped Data - can be processed.

5. Depending on the option you have chosen for Signatures in PKCS7 Message, you can specify further settings (only if you have specified Enveloped or Signed and Enveloped Data or Signed and Enveloped Data for Signatures in PKCS7 Message):

180P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 181: Developer's Guide: Managing Integration Content - help.sap.com

Option Description

Public Key Alias

Enter the public key aliases of all expected senders.

These are the public key aliases corresponding to the private keys (of the expected senders) that are used to sign the payload.

The public key aliases specified in this step restrict the list of expected senders and, in this way, act as an authorization check.

The public key alias list specified in this step is only required for signed content. The private key required to decrypt the payload automatically is found by the system; it is the private key deployed on the corresponding tenant.

Signed content is verified as follows: SAP HCI checks the list of aliases as specified in this step. As soon as a signature is found that is signed by a private key corresponding to one of the public keys listed in the alias list, the signature is verified by the public key. If the verification is successful, the payload is accepted. No further check is executed.

6. Save the changes.

2.5.7.10 Decrypting and Verifying the Message Content with OpenPGP

You have the option to decrypt the message content using Open Pretty Good Privacy (OpenPGP).

Context

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.

2. Right-click on a connection within the pool and choose Add Security Element Content Decryptor .3. In the Model Configuration editor, position the cursor on the Content Decryptor step and in the context

menu select Switch to PGP.4. Open the Properties view.5. Specify the following parameters for message decryption:.

Option Description

Name Name of the selected PGP Decryptor element. The default name is PGP Decryptor.

If you add a second PGP Decryptor to the integration flow, you have to change the name because the Decryptor name must be unique.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 181

Page 182: Developer's Guide: Managing Integration Content - help.sap.com

Option Description

Signatures in PGP Mes­sage

Specify the expected payload content type which is to be decrypted. You have the following options:○ No Signatures Expected

When you select this option, the decryptor expects an inbound message that doesn't contain a signature.

NoteIf you select this option, inbound messages that contain a signature cannot be processed.

○ Signatures OptionalWhen you select this option, the decryptor can process messages that either contain a signature or not.

○ Signatures RequiredWhen you select this option, the decryptor expects an inbound message that contains a signa­ture.

Signer User ID of Key(s) from the Public Key­ring

Specify the signer user ID of key(s) parts of all expected senders.

Based on the signer user ID of key(s) parts, the public key (for message verification) is looked up in the PGP public keyring.

The signer user ID of key(s) key parts specified in this step restrict the list of expected senders and, in this way, act as an authorization check.

6. Save the changes.

2.5.8 Defining Events

Context

Procedure

182P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 183: Developer's Guide: Managing Integration Content - help.sap.com

2.5.8.1 Scheduling a Process

Context

If you want to configure a process to automatically start in a particular schedule, you can use this procedure to set the date and time on which the process should run once or repetitively. The day and time combinations allow you to configure the schedule the process requires. For example, you can set the trigger just once on a specific date or repetitively on that date, or you can periodically trigger the timer every day, specific days in a week or specific days in a month along with the options of specific or repetitive time.

NoteYou cannot externalize the timer element in older integration flows. If you want to externalize the timer in existing integration flows, reconfigure the timer and save the integration flow. Extract parameters for the timer properties to appear in Externalized Parameters tab page.

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.2. From the Palette, expand the Event category.3. Select the Timer Start notation and drop it within the Integration Process pool wherever required.4. From the speed button of the Timer Start, select the sequence flow and connect to the following element

within the Integration Process pool of the integration flow.5. Select the Timer Start and in the Properties view, provide values in fields based on description in table.

Table 67: Parameters & Values of Timer

Field Description

Run once Runs a data polling process immediately after deploying the project

On Date Specific date on which the data polling process has to be initiated to fetch data from the SuccessFactors system

Daily Run message polling every day to fetch data from the SuccessFactors system

Weekly Run the message polling every week on specified days of the week to fetch data from the SuccessFactors system.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 183

Page 184: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Monthly on Day Execute the message polling every month on the specified date to fetch data from the SuccessFactors server.

NoteIf the specified date is not applicable to a month, the data polling is not executed in that specific month. For example, if 30th day is selected in the month of Febru­ary, polling is not executed as 30th is not a valid day for February.

Time The time at which the data polling cycle has to be initi­ated. For example, if you want the data polling to be started at 4.1PM, enter 16:10. Note that the time must be entered in 24-hour format.

Every xx minutes between HH hours and HH hours The connector fetches data from the SuccessFactors sys­tem, every ‘xx’ minutes between HH hours and HH hours.

NoteIf you want the polling to run for the entire day, enter 1 and 59.

Time Zone Select the Time Zone that you want to use as reference for scheduling the data polling cycle.

6. Save the changes.

2.5.8.2 Configuring an Escalation Event

An escalation event stops message processing. For synchronous messages, an error messages is sent to the sender.

Context

A retry or any other error handling mechanism is not triggered. The message status changes to ESCALATED.

In certain situations it does not make sense to retry the message processing until it finally gets delivered to the receiver. For example, in case a wrong receiver is configured in the integration flow, it does not make any sense to retry the processing of the message without having corrected the integration flow configuration. In that case, it makes more sense to stop message processing and notify the sender that an error occurred.

184P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 185: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.

2. From the Palette, expand the Event category.3. Select the Escalation notation and drop it within the Integration Process pool at the position where the

escalation should be placed.4. Specify the Escalation Category (in the Properties view).

There are the following Escalation Categories:

Table 68:

Escalation Event Routing condition has not been met.

Receiver not reachable Receiver could not be reached, because it is temporarily down or not accessible (for example, due to overload or maintenance work).

Receiver not found Receiver could not be found because the URL points to a non-existent resource (for example, HTTP 404 error).

Not authenticated to invoke receiver Receiver could not be called because authentication has failed (for example, HTTP 401 error).

Not authorized to invoke receiver Receiver could not be called because of insufficient per­missions (for example, HTTP 403 error).

Receiver tries to redirect Receiver could not be reached (HTTP 302 error).

Internal server error in receiver Internal server error occurred in the receiver system (for example, HTTP 500 error).

Others – not further qualified Escalation category has not been further qualified.

2.5.9 Defining Tasks

Context

Procedure

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 185

Page 186: Developer's Guide: Managing Integration Content - help.sap.com

2.5.9.1 Defining Service Call

Prerequisites

You have added the service call element to the integration flow model from the palette.

Context

Service Call is used to call an external system. Such calls enable transaction of data from or to the target system. It can be used for following types of operations:

1. Request-Reply2. Content Enrichment

2.5.9.1.1 Defining Request-Reply

Context

You can use this task to enable request and reply interactions between sender and receiver systems.

Example:

Suppose currency conversion is required for a transaction between Indian and German business partners. In such a scenario, using Request-Reply pattern, user can successfully convert Indian currency to German currency and vice versa. As shown in the integration flow, the request mapping converts the currency in payload to Euro and reply mapping converts the currency in payload back to Indian Rupee.

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.2. If you want to add a Request-Reply element in the integration flow, choose Add Service Call from the

context menu of a connection within the pool.

186P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 187: Developer's Guide: Managing Integration Content - help.sap.com

3. From the Palette, select Others Receiver , and drop it outside the Integration Process pool.4. From the speed button of the Request-Reply element, create a connection that represents a channel from

the Request-Reply element to the Receiver.5. Configure the channel with the required adapter details.6. You can add integration flow elements between the Request-Reply and End Message element, for

processing response payload from Receiver system.7. You can also connect End Message element back to the sender. Also, ensure that no adapter is configured

for this channel (as highlighted in the integration flow screenshot).

NoteIn this release, the channel connecting the external system with the Request-Reply element can be configured with the SOAP, SuccessFactors, HTTP and IDOC adapters.

2.5.9.1.2 Defining Content Enricher

Prerequisites

You have created an integration project and integration flow.

Context

The content enricher adds the content of a payload with the original message in the course of an integration process. This converts the two separate messages into a single enhanced payload. This feature enables you to make external calls during the course of an integration process to obtain additional data, if any.

Consider the first message in the integration flow as the original message and the message obtained by making an external call during the integration process as the lookup message. You can choose between two strategies to enrich these two payloads as a single message:

● Combine● Enrich

Consider the following original and lookup messages.

Original Message

<EmployeeList> <Employee> <id>111</id> <name>Santosh</name> <external_id>ext_111</external_id> </Employee> <Employee> <id>22</id>

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 187

Page 188: Developer's Guide: Managing Integration Content - help.sap.com

<name>Geeta</name> <external_id>ext_222</external_id> </Employee></EmployeeList>

Lookup Message

<EmergencyContacts> <contact> <c_id>1</c_id> <c_code>ext_111</c_code> <isEmergency>0</isEmergency> <phone>9999</phone> <street>1st street</street> <city>Gulbarga</city> </contact> <contact> <c_id>2</c_id> <c_code>ext_111</c_code> <isEmergency>1</isEmergency> <phone>1010</phone> <street>23rd Cross</street> <city>Chitapur</city> </contact> <contact> <c_id>3</c_id> <c_code>ext_333</c_code> <isEmergency>1</isEmergency> <phone>007</phone> <street></street> <city>Raichur</city> </contact></EmergencyContacts>

If you use Combine as the aggregation strategy, the enriched message appears in the following format.

Enriched Message

<multimap:messages xmlns:multimap=”http://sap.com/xi/XI/SplitAndMerge”> <message1><EmployeeList> <Employee> <id>111</id> <name>Santosh</name> <external_id>ext_111</external_id> </Employee> <Employee> <id>22</id> <name>Geeta</name> <external_id>ext_222</external_id> </Employee></EmployeeList></message1><message2><EmergencyContacts> <contact> <c_id>1</c_id> <c_code>ext_111</c_code> <isEmergency>0</isEmergency> <phone>9999</phone> <street>1st street</street> <city>Gulbarga</city> </contact> <contact> <c_id>2</c_id> <c_code>ext_111</c_code>

188P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 189: Developer's Guide: Managing Integration Content - help.sap.com

<isEmergency>1</isEmergency> <phone>1010</phone> <street>23rd Cross</street> <city>Chitapur</city> </contact> <contact> <c_id>3</c_id> <c_code>ext_333</c_code> <isEmergency>1</isEmergency> <phone>007</phone> <street></street> <city>Raichur</city> </contact></EmergencyContacts></message2></multimap:messages xmlns:multimap=”http://sap.com/xi/XI/SplitAndMerge”>

Enrich offers you control on how you can merge the original and lookup message. In this example, we consider the node <ext_111> as the reference to enrich the original message with the lookup message.

Consequently, you specify the following values while configuring the Content Enricher.

Table 69:

Section Field User input

Original Message Path to Node Employees/Employee

Key Element location

Lookup Message Path to Node EmployeeLocations\emplocation

Key Element locationid

The enriched message will be in the following format.

<EmployeeList> <Employee> <id>111</id> <name>Santosh</name> <external_id>ext_111</external_id> <contact> <c_id>1</c_id> <c_code>ext_111</c_code> <isEmergency>0</isEmergency> <phone>9999</phone> <street>1st street</street> <city>Gulbarga</city> </contact> <contact> <c_id>2</c_id> <c_code>ext_111</c_code> <isEmergency>1</isEmergency> <phone>1010</phone> <street>23rd Cross</street> <city>Chitapur</city> </contact> </Employee> <Employee> <id>22</id> <name>Geeta</name> <external_id>ext_222</external_id> </Employee></EmployeeList>

In the enriched message, you can see the content of the lookup message after the node <location>.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 189

Page 190: Developer's Guide: Managing Integration Content - help.sap.com

RememberIf lookup message contains more than one entry of the key element, content enricher enhances the enriched message with all the entries referred by the key element in lookup message. In the above example, the lookup message contains the key element ext_111 in two places. You can see that the enriched message contains both the <contact> entries that the key element refers to.

Procedure

You use this procedure to add Content Enricher element to an integration flow.1. Open the integration flow in Model Configuration editor.

2. From the context menu of integration flow, choose Add Tasks Service Call .3. From the context menu of the service call element, choose Switch to Content Enricher.4. In the Properties view, choose the Aggregation Strategy field.5. Perform the required subprocedure below based on the strategy you want to use.

Using Combine Strategy

Procedure

You use this subprocedure for using the Combine strategy.1. In the dropdown list, choose Combine.2. Save changes.

Using Enrich Strategy

Procedure

You use this subprocedure for using the Enrich strategy.1. In the dropdown list, choose Enrich.2. Provide values in fields based on description in table.

190P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 191: Developer's Guide: Managing Integration Content - help.sap.com

Table 70:

Section Field Description

Original Message Path to Node Path to the node in the original mes­sage where content has to be en­riched. Ensure that you provide it in the format <xx>/<yy>/<zz> with <xx> being the root node and <zz> being the node where new content will reside

Key Element Key element in the original message contained in the Path to Node speci­fied above. Ensure that you provide only the key element name.

Lookup Message Path to Node Path to the node that would be used in the lookup message to enrich the content. Ensure that you provide it in the format <xx>/<yy>/<zz> with <xx> being the root node and <zz> being the reference node

Key Element Key element in the lookup message contained in the Path to Node speci­fied above. Ensure that you provide only the key element name.

3. Save the changes.

2.5.10 Defining Additional Elements (Others)

Context

Procedure

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 191

Page 192: Developer's Guide: Managing Integration Content - help.sap.com

2.5.10.1 Defining a Local Integration Process

You can use this task if you want to simplify your integration process. It enables you to fragment your integration process into smaller processes (local integration processes), which are in turn called from the main integration process or from other local integration processes.

Context

NoteFor the main integration process the SAP icon is displayed in the top left corner, whereas for the local integration processes this icon is not displayed.

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.2. Add a local integration process.

a. If you want to add a local integration process to the integration flow, choose Others Local Integration Process from the palette. On the Properties tab, provide a name.

b. You can add various elements between the start event and end event of the process.A local integration process does not support multicast and splitter elements.

3. Invoke the local integration process.a. If you want to call the local integration process from the main integration process, add a process call in

the main integration process. To do this, choose Tasks Process Call from the palette.b. Choose Assign Local Integration Process from the context menu of the process call within the pool.

Select the local integration process that needs to be assigned to the process call in the integration flow.

4. Save the changes.

2.5.10.2 Defining Exception Subprocess

Context

You use this task if you want to catch any exceptions thrown in the integration process and process them.

192P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 193: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. Open the <integration flow>.iflw in the Model Configuration editor.

2. To add an exception subprocess to the integration flow, choose Others Exception Subprocess from the palette. The subprocess can be dropped into the integration process and should not be connected to any of the elements of the integration flow.

3. Select the exception subprocess you have added to the integration flow model to configure it.4. Start the process with an Error Start event always.5. End the process with either an End Message or an Error End event.

Note○ You can use an End Message event to wrap the exception in a fault message and send it back to the

sender in the payload.○ You can use an Error End event to throw the exception to default exception handlers.

6. If you want you can add various tasks between the start and end events. For example, you can choose Add Service Call from the context menu of a connection within the pool. This enables you to call another system to handle the exception.

7. Save the changes.

Note○ The message processing log will be in an error state even if a user catches an exception and

performs additional processing on it.○ You cannot enable exception subprocess for integration flow scenarios containing the timer

element.○ You can get more details on exception using ${exception.message} or $

{exception.stacktrace}.○ You cannot catch exceptions of local integration process in the main integration process.○ You can configure the following integration flow elements within an exception subprocess:

○ Content Modifier○ Service Call (Request/Reply)○ Process Call

2.5.11 Defining the Error Configuration

You can define how to handle errors when message processing fails at runtime.

Context

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 193

Page 194: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. In the Model Configuration editor, click on the graphical area outside the integration flow model.2. In the Properties view, select the Error Configuration tab.3. Select one of the following options.

Table 71: Error Configuration Parameters

Parameter Description

Error Handler Strategy Select one of the following options:

○ NoneWhen a message exchange could not be processed, no error handling strategy is used.

○ Raise ExceptionWhen a message exchange could not be processed, an exception is raised back to the sender.

○ Raise Exception (Deprecated)When a message exchange could not be processed and there is IDoc or SOAP SAP RM channel in the in­tegration flow, then an exception is raised back to the sender.

Return Exception to Sender When defining the error handling strategy for SOAP mes­sages, you can now define if in case of an exception the SOAP fault exception is to be returned to the sender. If you don’t select this option, an error message containing a URL is sent back to the sender instead. You can use this URL to access the message processing log.

2.5.12 Specifying Runtime Configuration

Context

Specify the runtime configurations for the integration flow that are required when the integration flow is executed in runtime. You configure the following parameters:

● Namespace Mapping: Maps a prefix to a namespace at runtime. This parameter is required for elements such as content-based router, content modifier or content filter that can use namespaces in their configuration. You can either enter the namespace-prefix pair or the tool automatically fills the namespace-prefix pair whenever a lookup is performed for the assigned WSDL.

194P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 195: Developer's Guide: Managing Integration Content - help.sap.com

ExampleSee the namespace mapping example below:

xmlns:ns0=https://hcischemas.netweaver.neo.com/hciflow

Here, ns0 is the prefix and https://hcischemas.netweaver.neo.com/hciflow is the namespace. So, in a gateway, you can specify the routing condition for an XML message as:

/ns0:HCIMessage/SenderID='Sender01'

To know where you need to specify namespace for content-based router, content modifier or content filter flowsteps, see the relevant step in the corresponding tasks Defining Gateway, Defining Content Modifier, Defining Content Filter.

● Message Processing Log: Allows you to configure the log level to display the logs in the Log view of the Message Monitoring editor in the Integration Operations perspective.

● Allowed Header(s): Allows you to specify the headers to be retained when the incoming message is processed. In general, headers used by the runtime components are retained and other headers are removed during message processing. This field is useful when you need specific header information along with the message body.

Procedure

1. In the Model Configuration editor page, select the graphical area outside the integration flow model.2. In the Properties view, choose the Runtime Configuration tab.3. In the Namespace Mapping field, enter a namespace-prefix pair with a format

xmlns:<prefix>=<namespace> or select it from the dropdown.

NoteThe field is required if the integration flow contains content-based routing. You can also enter multiple namespace-prefix as shown in the example- xmlns:test=http://sapcd.com/testABC;xmlns:test2=http://sapcd.com/testPQR

4. Select one of the log levels from the Message Processing Log dropdown.

NoteThe available logging levels are:○ All Events: Allows all messages to be logged and displayed○ Error Events: Allows only error messages to be logged and displayed○ No Logging: Hides logging information

5. In Allowed Header(s) field, enter one or more names of headers by separating them with pipe (|).

With this setting you can specify the header fields that are to be retained in the incoming message.6. Select Enable Debug Trace option to enable server log in case you need to obtain help from SAP Support

for troubleshooting issues.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 195

Page 196: Developer's Guide: Managing Integration Content - help.sap.com

CautionIf you select Enable Debug Trace option and if the SaaS Admin has set the log level for org.apache.cxf as INFO, the message payload is written into the log files. If the message payload contains sensitive data, then you should consider the settings as the message payload should not be logged.

7. Save the changes.

Related Information

Defining Gateway [page 134]Defining Content Filter [page 109]Defining Content Modifier [page 104]

2.5.13 Dynamic Parameters

You can define placeholders for attributes of certain adapters or step types. These attributes will then dynamically be 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.

196P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 197: Developer's Guide: Managing Integration Content - help.sap.com

2.6 Working with the Mapping Editor

Context

Procedure

2.6.1 Creating a Message Mapping

Context

You perform this task to create a message mapping when the receiver system accepts a different message format than that of the sender system. The message mapping defines the logic that maps input message structures with the required format of output message structures.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 197

Page 198: Developer's Guide: Managing Integration Content - help.sap.com

You define a message mapping using the mapping editor by following the steps below:

Procedure

1. Create a mapping object under the package src.main.resources.mapping under the Project Explorer view.2. Define the signature for message mapping by specifying the source and target elements under the

Signature section.3. Define the mapping logic in the Definition tab page.

2.6.1.1 Multi-Mappings

A multi-mapping is a mapping that allows you to transform a source (input) message to multiple target (output) messages or multiple source to multiple target messages.

Multi-mappings reference multiple message structures. You can, for example, use a multi-mapping to map a message to multiple different (and generally smaller) messages. In that case, the cardinality of the mapping is 1:n.

In your mapping, always add the namespace http://sap.com/xi/XI/SplitAndMerge to the root tag.

For the format of a multi-mapping, see below:

<?xml version="1.0" encoding="UTF-8"?> <sm:Messages xmlns:sm="http://sap.com/xi/XI/SplitAndMerge"><Message1>...</Message1><MessageN>...</MessageN> </sm:Messages>

2.6.1.2 Creating a Mapping Object

Context

You perform this task to create a mapping object required for message mapping.

198P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 199: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. In the Project Explorer, select the integration project.2. Expand the integration project and select the src.main.resources. mapping package.

3. From the context menu, choose New Other... .

4. In the New wizard, select SAP NetWeaver Cloud Integration Message Mapping .5. Choose Next.6. In the New Message Mapping wizard, enter a name for the mapping.7. Choose Finish.

Results

The new message mapping object is created under src.main.resources. mapping package and the Message Mapping Overview editor opens.

2.6.1.3 Defining the Mapping Signature

Context

You perform this task to define the signature of a mapping object.

Procedure

1. In the Message Mapping Overview editor, under the Signature Source Elements section, Add a file.

Note○ If you have selected an XSD or WSDL file, you can also perform multi mapping by selecting another

source WSDL or XSD.○ If you have selected an EDMX file as your first source element or you are choosing an edmx file as

your next source element then you will not be able to perform multi mapping. The new file will overwrite the existing file and only a single file can be seen as source elements.

2. If you are performing multi mapping then change the cardinality of mapping to the required cardinality.The default cardinality for single mapping is 1:1.

3. Choose OK.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 199

Page 200: Developer's Guide: Managing Integration Content - help.sap.com

4. Under Target Elements section, repeat steps 1 to 3.

2.6.1.4 Defining the Mapping

Context

You perform this task to the define a mapping for the mapping object.

Procedure

1. In the Definition tab page editor, to map a source field to target field, drag a source node and drop onto a target node in the tree structure.

Note○ Alternately, you right-click on the source field, drag and drop it onto the target node and select Map

automatically○ If you have selected multiple messages under source or target elements, system creates a new

node Messages, which has all the other nodes under it..

2. If you want to perform any of the actions such as duplicating the subtree, disabling a field or adding a variable, then from the context menu of the selected node, choose the required option.When you need to map different node structures of the source message to only one node structure of the target message you use the option of duplicating the subtrees.

3. If you want to map the child elements of a recursive node (if any), from the context menu choose the option of Expand Recursive Node.

Note○ Recursive node acts as a design time placeholder to indicate creation of a node at this location at

runtime of the type indicated in the repeatedNode property.○ In case you do not want to use the child elements or variable of the recursive node, then from the

context menu, choose the option of Collapse Recursive Node.

4. Double-click a node to view the graphical representation of mapping in the graphical editor.

NoteIf you want to perform mapping directly in the graphical editor, then drag the source and target nodes from the tree structure into the graphical area.

200P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 201: Developer's Guide: Managing Integration Content - help.sap.com

5. In the graphical editor, connect the source and target node using connectors.6. If you want to add a function to the connection between the source and target nodes, double-click on the

functions displayed under the Functions folder on the right-side of the graphical editor.7. Connect the function to the required node with the use of connectors.8. If you want to add parameters to a function, choose Properties from the context menu of the function.

Note○ You can also double-click on the function to add parameters○ The functions, in which you can add parameters, are displayed with a wheel symbol

a. Add a value for the parameter.b. Choose OK

9. If you want to find the hierarchy of the node in the tree structure, then from the context menu of the node in graphical editor, choose Find Field.

10. If you want to change context of the node, then from the context menu, choose Context and select an option.

11. If the resulting mapping layout in the graphical editor is not in order, from the toolbar of the Properties

view, choose (Organize Layout) to automatically arrange the layout.12. Save the mapping.

NoteTo check the correctness of the mapping, you can right-click on the editor and choose Execute Checks, if there are any errors, you get notified by a red error mark close to the field or in Problems view. Some such errors are described below:

○ In case, there are any unassigned mandatory fields, an error is indicated by a red error mark appears close to such fields in the Definition tab page.

○ If source or target messages are not assigned, an error message is displayed in the Problems view.○ If any of the source or target messages are not available in required location, an error mark in red

appears on the element in the Overview tab page.○ Also, if the mapping is not present in the folder src.main.resources.mapping then an error is shown in

the Problems view.○ The above errors are also displayed once you have saved the mapping.

2.6.2 Handling Inconsistencies in Mapping Editor

Context

You use this task to handle the inconsistencies in the message structures or mappings that occur due to modification of source or target elements.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 201

Page 202: Developer's Guide: Managing Integration Content - help.sap.com

Scenarios where such inconsistencies occur are:

● When you change an XSD or WSDL that are being used in existing mapping as source or target element● When you change the source or target nodes in the message mapping tree structure

NoteWhenever you open a mapping where any changes have been made to the source or target element, the editor notifies you about the change.

Procedure

1. In the Definition tab page editor, choose the icon ( Check for consistencies between changed message structures ).

2. In the Reload Confirmation dialog, choose OK to continue with correcting of structural inconsistencies.

NoteThis action discards any recent changes or additional mappings that you have done after changing the source or target element.

3. In the Missing Fields wizard, you can choose to reassign or delete the inconsistent fields.

Note○ A red mark appears on the fields with inconsistencies.○ If there are changes in both source and target structures, then in the Missing Fields wizard, changes

in source structure are displayed first and the follow on screen displays the changes in the target structure.

4. If you want to reassign the missing fields, then follow the substeps below:a. Right-click on the missing field in the old structure.b. Drag the missing field from the old structure and drop it on the required field in the new structure.c. If you want to map all the children fields related to the selected missing field in old structure with the

matching fields in the new structure, choose the option Map Automatically.d. If you want to map only the single selected field, then choose Create mapping option.

Note○ Alternatively, you can simply drag the fields from old structure and drop onto the fields in the new

structure.○ In case you have moved a disabled missing field, then the mapping also moves along with the field

but the new field is not marked as disabled.○ In case you have moved a missing field with a variable defined under it, then the variable also

appears under the new field, and the mapping of the old variable is assigned to the new variable.

5. If you do not require the missing fields in your mapping, then select the missing field and choose the icon (Delete Field) to mark for deletion.

202P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 203: Developer's Guide: Managing Integration Content - help.sap.com

NoteIf you want to use the field marked for deletion, then select the icon (Delete Field icon) again to cancel the delete action.

6. Choose Next to check the missing fields of target structure.7. Repeat the steps above to reassign or delete the missing fields of target structure.8. Choose Finish.

Now the fields are reassigned and the fields marked for deletion are removed from the structure.9. Save the mappings.

2.6.3 Exporting Mapping Details to Excel

Context

You use this procedure when you want to see the mapping details offline without signing into the Eclipse or NWDS.

Procedure

1. Select the required mapping from the package main.resources.mapping .2. From the context menu of the selected mapping, choose Export to Excel.3. In the Save As dialog, select the location for saving the excel containing the mapping details.4. Select Save.

Note○ If the mapping is exported to the selected location without any error, a dialog box with message

Export to excel is completed, is displayed.○ If you are performing Export to Excel on the mapping for the second time, then it displays a dialog to

replace the earlier excel with the new excel.○ If you trying to export a mapping, for which an excel is already created and in use by another user,

then the excel does not open and an error is displayed.○ If any target node is disabled in the mapping, then the node is greyed out in excel and it displays the

value Disabled under the under the corresponding cell of column Type.○ Similarly, if a node or field is recursive, it displays the value ...[Recursive] under the under the

corresponding cell of column Type.○ Also, currently only .xlsx format of excel is supported.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 203

Page 204: Developer's Guide: Managing Integration Content - help.sap.com

2.7 Testing an Integration Flow

Context

Procedure

2.7.1 Checking the Consistency

Context

You can execute consistency checks to validate if the configurations of the integration flow elements are adhering to their definition. This helps you validate the integration flow model and the configured attributes are supported at runtime. The inconsistencies can occur if the integration flow model does not adhere to the modeling constraints that SAP supports for specific scenarios. When you trigger consistency check execution, the tool validates the consistency of your integration flow model against the predefined constraints set by the SAP supported scenarios.

Procedure

1. Right-click on the project and choose Execute Checks.

TipYou can also click on the graphical model outside the Integration Process pool, and choose Execute Checks from the context menu.

2. Open the Problems view for the consistency check results.

204P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 205: Developer's Guide: Managing Integration Content - help.sap.com

2.8 Operations-Related Tasks

Context

Procedure

2.8.1 Deploying an Integration Project

Prerequisites

You have obtained the details about the system management node from the SaaS Admin and entered in Windows Preferences SAP HANA Cloud Integration Operations Server page.

You have ensured that the supported version of Eclipse IDE, Eclipse Juno (Classic 4.2.2), is installed on your system to avoid deployment failure.

Context

You perform this task to trigger deployment of the integration project. The deployment action triggers the project build and deployment on the Tenant Management Node (Secure).

Procedure

1. If you are deploying only one integration flow project, follow the steps below:a. Right-click on the project and choose Deploy Integration Content from the context menu.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 205

Page 206: Developer's Guide: Managing Integration Content - help.sap.com

NoteYou can distinguish each deployment of the project bundle by adding a qualifier in the MANIFEST.MF file. Open the MANIFEST.MF file of the project and enter the value for Bundle-Version as <version>.qualifier. For example, 1.0.0.qualifier.

b. In the Integration Runtime dialog, enter the Tenant ID of the Tenant Management Node.c. Choose OK.

2. Check the deployment status of the integration project in the runtime by following the steps below:

a. In the Node Explorer view, select the Tenant that is represented as <Tenant ID>.b. Open the Task view and check if the 'Generate and Build' task is available.

c. In the Node Explorer, select the worker node type represented as IFLMAP and check for the project bundle that is deployed in the Component Status view.

NoteYou can identify the project bundle by checking the Version column. If you have specified the qualifier, the Version column displays the bundle version along with the timestamp.

2.8.2 Viewing Error Logs

Context

You use this procedure to view the errors of an integration content artifact for monitoring purposes.

Procedure

1. Launch SAP HANA Cloud Integration.

2. Choose Window Open Perspective Other .3. In the Open Perspective dialog box, choose Integration Designer.4. Choose OK.

5. In the Node Explorer pane, expand cluster <node name> TM:<VM Name> .6. Choose the Component Status View tab.7. In the context menu of an artifact in error state, select Show Error Details.

206P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 207: Developer's Guide: Managing Integration Content - help.sap.com

2.8.3 Activating Tenant and Integration Flow Tracing

You activate tracing to track the message flow of processed messages, view the relevant message payload at various points of message flow, and identify if there is any error in the message execution.

Prerequisites

1. You have obtained the following roles to retrieve and view traces.

Table 72:

Operations Roles

View Message Trace IntegrationOperationServer.read

View Message Payload/Header esbmessagestorage.read

Export MPL IntegrationOperationServer.read

esbmessagestorage.read

NodeManager.read

2. You have verified that tracing is enabled for newly deployed integration flows.

Procedure

1. If you want to enable tracing at the tenant level, perform the following substeps:a. In the Node Explorer, double click on the tenant management node, which henceforth opens the

tenant editor.b. In the Tenant Configuration tab, add the following strings and set their value to True

○ wn.ifl.tracing.enable to enable tracing for worker node of type IFL.○ wn.iflmap.tracing.enable to enable tracing for worker node of type IFLMAP.

2. If you want to enable tracing at the integration flow level, perform the following substeps:a. In the In the Model Configuration editor page, select the graphical area outside the integration flow

pool.b. In the Properties view, choose the Trace Configuration tab.c. In the Property sheet, select trace level None, Message Body and Header, Header from the dropdown

menu of trace log.

Note○ You can retrieve tracing content if connection to the tenant management node exists.○ Post message processing, the trace data is deleted after 24 hours.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 207

Page 208: Developer's Guide: Managing Integration Content - help.sap.com

2.8.3.1 View MPL

You use this task to display message trace for a particular integration flow.

In the Message Monitoring editor, for a completed or failed message, the Properties view displays the message processing log (MPL) for this message. The MPL provides information on the steps during processing of a particular message and the View MPL button opens the particular integration flow with the message trace, displaying path of message flow. If the particular project does not exist in workspace then it automatically imports project.

If the current project state is different from deployed state then tracing of message flow occurs till the point, sequence of elements match.

View Trace imports trace content in project with name same as bundle id. If existing project name is not same as that of bundle id, then view trace creates a new project in the workspace with same bundle-id.

Payload and header tabs appear in property sheet, on clicking the message icon in the message trace. If in any case splitter is used, then there are multiple message payloads and the icon has multiple message symbols. In such a scenario, the message heading is displayed between dashed lines and below the heading, payload content appears. The same is shown below.

------------------------- Message 1------------------------<ns0:BSNMessage xmlns:ns0="https://bsnschemas.netweaver.neo.com/bsnflow"><SenderId>Token</SenderId><ReceiverId></ReceiverId><MessageType></MessageType><FileName></FileName><NumberOfRecords></NumberOfRecords><MessageId></MessageId><MessageContent></MessageContent> </ns0:BSNMessage>

There are multiple sequences which traverse one path. The property sheet displays this information. For example, “Displaying content for message 1 (out of 3)”. Here, ‘3’ denotes number of times the sequence traverses a particular path. Clicking on the text enables user to switch to a different sequence.

In case of huge payload, the whole information is not visible. In such a scenario, we can use ‘Export Payload’ button to view content using external tool/application.

2.8.3.2 Export MPL

Context

You enable this element to export and analyze a trace.

208P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 209: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

Select a processed message in Message Monitoring editor. On clicking the same, Message Processing Log dialog box opens. Select one of the following from the dialog box:

○ Export Log – Exports message flow sequence only○ Export Log with Trace – Exports message flow sequence, message payload and headers at different trace

points○ Export Log with Trace and Integration Project

2.8.3.3 Import Trace

Context

You can import the content by using Import Trace. Import Trace imports content with trace only.

Procedure

1. Right click on the Project Explorer.2. Select Import.3. Select Message Processing Log Archive and click on Next.4. In the dialog box, select the archived file where the content is saved.5. The integration flow opens with the message trace.

2.9 References to Additional Help

Cheatsheet

Cheatsheets guide you in performing simple end-to-end use cases. Cheatsheets are very useful if you are working with the tool for the first time and you want to understand the related steps to complete a task. It shows you the flow of steps and has UI controls to automatically open the relevant UI elements, such as a wizard or a view.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 209

Page 210: Developer's Guide: Managing Integration Content - help.sap.com

To open cheatsheets, follow the steps below:

1. From the main menu, choose Help Cheatsheets... .2. In the Cheatsheet Selection dialog, expand SAP HANA Cloud Integration folder.3. Select the most appropriate cheatsheet from the list and choose OK.4. Follow the instructions mentioned in the cheatsheet.

Context-sensitive Help

Context -sensitive help provides more details about a specific view, wizard or page. It is useful when you want more information about the parameters in the UI elements.

Select the UI element and press F1 .

210P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDeveloping Integration Content Using the Integration Designer

Page 211: Developer's Guide: Managing Integration Content - help.sap.com

3 Packaging Integration Content in SAP HCI Web Application

SAP HCI Web application allows you to assemble integration contents into packages and publish them, so that integration developers can use these packages in their integration scenarios.

As an integration developer, you can now create integration packages for your specific domain or organization. You can also view different packages published by other integration developers and consume them for your integration purposes. You can modify these packages based on your requirements and import them through the web application.

3.1 Importing Integration Packages

You use this procedure to import and upload your existing integration packages that fits your integration scenario in the application. This reduces redundancy and duplication efforts.

Context

Procedure

1. Choose Import in the Design tab to import an integration package.2. Browse and select the integration package for importing.3. Choose OK.

Imported file appears in the Design tab of the application.

Developer's Guide: Managing Integration ContentPackaging Integration Content in SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 211

Page 212: Developer's Guide: Managing Integration Content - help.sap.com

3.2 Creating an Integration Package

You use this procedure to create an integration package that is specific to your integration scenario.

Procedure

1. Launch SAP HCI Web application by accessing the URL provided by SAP.2. If you are a new user, choose Signup.3. If you have user credentials, choose Login.4. Choose the Design tab.5. Choose Create.6. In the <integration package name> editor page, enter the required data.7. Perform the following substeps as required:

○ If you want to add an integration flow as an artifact, perform the following substeps:

1. Choose Add Process Integration in the (Artifacts) section.2. Enter the required details in the Create Process Integration Artifact Artifact dialog box.3. Choose Browse in the Integration Flow field to import an integration flow from your local system.4. Choose the required file in the Open dialog box.5. Choose Open.6. Choose OK.

NoteCreate a zip file of the required integration flow in your project folder before importing it as an artifact. The zip file must not contain any bin folder, and you must not keep the integration flow in any sub folder.

○ If you want to add a file as an artifact, perform the following substeps:

1. Choose Add File in the (Artifacts) section.2. Enter the required details in the Create File Artifact dialog box.3. Choose Browse in the File Upload field to import a file form your local system.4. Choose the required file in the Open dialog box.5. Choose OK.

○ If you want to add a mapping as an artifact, perform the following substeps:

1. Choose Add Value Mapping in the (Artifacts) section.2. Enter the required details in the Create Value Mapping Artifact Artifact dialog box.3. Choose Browse in the File Upload field to import a file from your local system.

212P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentPackaging Integration Content in SAP HCI Web Application

Page 213: Developer's Guide: Managing Integration Content - help.sap.com

4. Choose the required file in the Open dialog box.5. Choose Open.6. Choose OK.

NoteCreate a zip file of the required value mapping in your project folder before importing it as an artifact.

○ If you want to add a URL as an artifact, perform the following substeps:

1. Choose Add URL in the (Artifacts) section.2. Enter the required details in the Create URL Artifact dialog box.3. Choose OK.

○ If you want to add a data integration as an artifact, perform the following substeps:

1. Choose Add Data Integration in the (Artifacts) section.2. Enter the required details in the Create Data Integration Artifact dialog box.3. Choose OK.

8. If you want to remove the integration package, choose Delete Package.9. If you want to keep the integration package, choose Save.10. If you want to terminate the creation of the integration package, choose Cancel before saving it.

3.3 Working with an Integration Package

You use this procedure to perform various miscellaneous functions with the artifacts of an integration package.

Procedure

1. Launch SAP HCI Web application by accessing the URL provided by SAP.2. Choose the Design tab to view the list of integration packages.3. If you want to view the details of an integration package, choose <integration package name>.

4. Choose View metadata to view the metadata of the artifact.

5. Choose Deploy to deploy the artifact.You can only deploy data flows, integration flows and value mappings. You can deploy multiple value mappings at a time.

6. Choose Configure to configure the artifact.

Developer's Guide: Managing Integration ContentPackaging Integration Content in SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 213

Page 214: Developer's Guide: Managing Integration Content - help.sap.com

You can configure only integration flows.

7. Choose Download to download an artifact.You can only download integration flow, files, and value mappings. Your local file system stores the downloaded artifact(s) with name as <IntegrationPackage>_artifact.zip file. If you want to use the artifact in eclipse, you need to import it in eclipse after extracting it from the zip file.

3.4 Editing an Integration Package

Procedure

1. Launch SAP HCI Web application by accessing the URL provided by SAP.2. If you are a new user, choose Signup.3. If you have user credentials, choose Login.4. Choose the Design tab.5. Select the required integration package.6. In the <integration package name> editor, choose Package Content.7. Choose Edit.8. If you want to edit integration content of type process integration, data integration, file, or value mapping,

choose You get the following functions:○ View metadata○ Delete○ Download○ Configure (only for integration flows)○ Deploy (only for data flows and integration flows)

9. If you want to edit artifact of type URL, choose .You get the following functions:○ View metadata○ Delete

10. If you want to edit the metadata of an artifact, then perform the following substeps:a. Choose View metadata.b. In the <Artifact Name Details> dialog box, choose Edit.c. Choose Save to keep the changes.d. Choose Save as version to retain a copy of the current artifact.

You can view the version history of an artifact by choosing the current version mentioned along with it. You can save versions of a single or multiple artifacts, or an integration package. You can also view the list of existing versions of the required artifact(s) or integration package(s). You can choose to make an existing version as the latest one with or without saving a draft of it.

e. Choose Cancel to revert the changes.

214P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentPackaging Integration Content in SAP HCI Web Application

Page 215: Developer's Guide: Managing Integration Content - help.sap.com

11. If you want to edit a specific integration package that is present in the Discover tab, then perform the following substeps:a. Choose the Discover tab.b. Select the integration package.

c. Choose to copy it to the Design tab.You can copy an integration package to the Design tab by opening the integration package in the Discover tab and choosing Copy in the integration package editor. If the copy fails, then choose Create copy to create a copy of the integration package or Overwrite to erase errors and register new information in the integration package.

12. If you want to download multiple artifacts at once, then perform the following substeps:a. Select the Artifacts checkbox.b. From the list of artifacts, select the ones you want to download.

c. Choose Actions Download all .13. If you want to keep the changes made to the integration package, choose Save.14. If you want to discard the changes, choose Cancel before saving it.

3.5 Locking Integration Packages

You use this procedure to restrict multiple users from editing an integration package.

Context

Procedure

1. Launch SAP HCI Spaces by accessing the URL provided by SAP.2. Choose the Design tab.3. Choose an integration package from the list.4. Choose the Edit button.

When you choose Edit in an integration package editor, it locks the integration package and prevents any other user from modifying it.

5. Choose Save after making the required changes.○ Choosing Save, Cancel or Delete releases the integration package and allows it to be modified by other

users.○ In case you close your browser without saving the integration package or there is a session timeout for

you, the integration package remains locked by you unless you edit and save, cancel or delete it.

Developer's Guide: Managing Integration ContentPackaging Integration Content in SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 215

Page 216: Developer's Guide: Managing Integration Content - help.sap.com

3.6 Updating Integration Packages and their Contents

You use this procedure to update integration content to existing integration packages, which ensures that the package is up-to-date with latest content. This also helps in bringing down your overall operational and maintenance cost.

Context

Procedure

1. Launch SAP HCI Web application.2. Choose the Design tab.3. Choose integration package with the Update Available option.

In the integration package, you can view all the artifacts that have available updates for them.4. Choose Package Content.

5. In the view, select the artifact that you want to update.

6. Choose .7. Select Update from the dropdown list.8. In the dialog box that appears, choose Yes.

The artifact gets updated.

Note○ If you want to update multiple artifacts simultaneously, then select the required artifacts and

choose Actions Update .○ You can update the entire package at once by choosing the Update package button.○ You can also see the statuses of artifacts:

Table 73: Artifact Status and Description

Status Description

Original from Catalog The original artifact has been retained and copied to workspace.

216P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentPackaging Integration Content in SAP HCI Web Application

Page 217: Developer's Guide: Managing Integration Content - help.sap.com

Status Description

Edited The artifact has been modified.

3.7 Exporting Integration Packages

You use this procedure to download your integration packages in your local system, so that you can provide it to your content management team to upload and publish them. Publishing integration packages makes them available to non-SAP integration developers.

Context

Procedure

1. Choose the Design tab.2. Select the required integration package from the list.3. 3. Choose Export.

The destination of export depends on the default browser setting. By default, the downloaded file takes the name of the integration package. In case the name contains special characters, the browser changes the file name by appending them.

Developer's Guide: Managing Integration ContentPackaging Integration Content in SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 217

Page 218: Developer's Guide: Managing Integration Content - help.sap.com

4 Designing Integration Content With the SAP HCI Web Application

The Web application helps you to access and design Cloud integration content available for a particular account on an OnDemand integration infrastructure.

The Web application provides you with an interface for accessing and managing integration content. You can either directly use the prepackaged integration content from the catalogue or import it to your workspace to adapt it to your requirements.

You can use the artifacts available in integration packages to solve the integration challenges of your scenario. Optionally, you can also import integration packages from your local folder and use them. You can use the integration flows available in packages by configuring and deploying them. You can also edit the integration flows by adding or removing elements, before you configure and deploy them.

The application consists of the following components which allow you to perform different tasks:

Table 74: Components of the Web Application

Component Allows you to...

Discover View all available integration packages.

Which integration packages are available to you depends on the permissions for the user (which has logged-in to the Web application). You can view the description of integra­tion packages and copy integration packages to your cus­tomer workspace (see Design tab below).

This component is also known as catalogue.

Design Configure or model integration flows.

After completing this task, you can save the changes, save as a version or deploy the integration flow.

This component is also known as customer workspace.

Monitor Monitor the message processing and manage integration artifacts such as integration flows, value mappings and se­curity-related artifacts.

You can check the status of messages and integration arti­facts for your tenant cluster.

You can also access the dedicated message monitor and in­tegration content monitor to view more information.

Settings Select the product profile to specify the target runtime for your content.

218P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 219: Developer's Guide: Managing Integration Content - help.sap.com

4.1 View Integration Packages in the Catalog

Prerequisites

You have access to the Web application with the integration developer role.

Context

the application offers integration packages that comprises of artifacts. These artifacts include integration flows, value mappings, and files. You use this procedure to view the artifacts in an integration package.

Procedure

1. Launch the Web application by accessing the URL provided by SAP.

Under Discover you can view the catalogue page. It lists all the integration packages that you can access.2. If you want to view the description of an integration package, mouse-over the integration package tile and

choose Flip ( ).3. If you want to filter the integration packages, perform the following substeps.

a. Choos Show Filter ( ) to activate the filter criteria.

The system activates the Apply Filters screen area.b. Select the Product and Keyword you want to filter for and choose OK.

4. If you want to sort integration packages according to name or date, choose and select the appropriate sorting option from dropdown list.

4.2 Add Integration Packages to the Customer Workspace

Prerequisites

You have logged-on to the Web application with the integration developer role.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 219

Page 220: Developer's Guide: Managing Integration Content - help.sap.com

Context

You have to add the integration packages to your customer workspace (Design tab page). This enables you to access the artifacts in that package, configure, and deploy them. There are two options to do this:

1. Copy integration package from catalog (Discover tab page) to your customer workspace.2. Upload integration package from your local file system to your customer workspace.

You use this procedure to add integration packages to your customer workspace.

Procedure

1. If you want to copy integration package in catalog to your customer workspace, mouse-over the

integration package tile and choose .2. If you want to upload an integration package from your local file system to your customer workspace,

perform the following substeps.

a. Choose Design .b. Choose Import.c. Navigate to the folder in your local file system in which you have saved the integration package.

NoteThe integration package must be a .zip file.

d. Choose Open.

You see the integration package that you uploaded in your customer workspace.

4.3 Add an Integration Flow to an Integration Package

You can add an integration flow to an integration package.

Prerequisites

● You have logged-on to the Web application with the integration developer role.● You have created an integration package.

220P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 221: Developer's Guide: Managing Integration Content - help.sap.com

Context

An integration flow is a graphical representation of the flow and processing of messages between two or more participants using an integration runtime platform, ensuring successful communication.

You can execute the following steps to create a new integration flow or import an existing one.

Procedure

1. Choose Design .2. Choose the integration package in which you want to add an integration flow.3. Choose Edit.4. Choose Add.5. Select Process Integration.6. In Create Process Integration Artifact dialog, choose create or import option as per the requirement.7. if you want to create a new integration flow, execute the following substeps.

a. Choose Create.b. Enter integration flow details.c. Choose OK.

8. If you want to import an integration flow, execute the following substeps.a. Choose Import.b. Choose Browse to select the integration project archive saved in your local file system.c. Choose OK.

You can access the integration flow that you created or imported in the Artifacts table.

4.4 Configure an Integration Flow

Prerequisites

● You have connected to the Web application.● Your user is assigned with the integration developer role.● You have accessed the customer workspace.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 221

Page 222: Developer's Guide: Managing Integration Content - help.sap.com

Context

the Web application allows you to configure an integration flow individually or multiple integration flows at once. You can configure the runtime, error configuration and also provide a description about the integration flow.

NoteIf you want timer or SuccessFactors sender adapter scheduler to be available in quick configuration, you need to externalize these parameters while creating the integration content.

If you want SucessFactors sender adapter scheduler to be available in quick configure for existing integration flows, you should externalize the scheduler parameters and republish the integration package.

For more information, see

● Externalizing Parameters of Integration Flow [page 27]

● Scheduling a Process [page 183]

RestrictionYou cannot use quick configure option for integration flows in Monitor and Discover tab pages. You can only configure integration flows in your customer workspace (Design tab page).

Procedure

1. In Design tab page, select the integration package that contains the integration flow you want to configure.2. Choose Package content.

You see an overview of all the artifacts available in the selected integration package.

3. In the Actions column for the integration flow you want to configure, choose Configure .4. Provide the relevant details in Sender, Receiver and Parameters tab pages.

NoteFor more information, see Configure Adapters in Communication Channels [page 227].

5. If you want to save this configured integration flow as a version, choose Save as version and specify the version details.

6. If you want to save or deploy this integration flow, choose the appropriate option.

NoteYou can use error configuration to handle errors when message processing fails at runtime. You select an error handling strategy based on the descriptions below:

222P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 223: Developer's Guide: Managing Integration Content - help.sap.com

Table 75: Error Handler Strategies

Option Description

None

(default setting)

No error handling strategy is used if a message exchange could not be processed .

Raise Exception (Deprecated) If a message exchange could not be processed and there is an IDoc or SOAP ( SAP RM) channel in the integration flow, an ex­ception is raised to the sender.

Raise Exception If a message exchange could not be processed, an exception is raised to the sender.

4.4.1 Configure a Product Profile for a Tenant

The tenant administrator can view and configure the product profile, to mark one of them as default for the tenant.

Prerequisites

● You have connected to SAP HANA Cloud Integration web tooling.● You have assigned WebToolingSettingsProductProfiles.savetenantconfiguration role or

AuthGroup.Administrator group.

Context

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.

The tool enables you to design for multiple runtimes at the same time. You should select specific product profile to develop content for the respective runtime. You can execute the following steps to configure a product profile for a tenant.

Procedure

1. Choose Settings tab page.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 223

Page 224: Developer's Guide: Managing Integration Content - help.sap.com

NoteYou can click on the product profile name under Name field to see the available capabilities for the relevant profile.

2. Choose Edit in the Product Profiles tab page.3. Select the radio button for the product profile you want to mark as default.4. Choose Save or Cancel as appropriate.

NoteYou can also configure product profile at integration flow level. For more details please refer to Define Product Profile [page 224].

4.4.2 Use Product Profiles

You can use product profile in an integration flow, to develop content for a particular runtime.

Prerequisites

● You have connected to SAP HANA Cloud Integration web tooling.● Your user is assigned with integration developer role.● You have opened an integration flow in the editor.

Context

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.

The tool enables you to design for multiple runtimes at the same time. You should select specific product profile to develop content for the respective runtime.

NoteIf a product profile does not support a particular capability then the checks report errors for unsupported components in the integration flow.

224P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 225: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. Choose Runtime Configuration tab page.2. Select Tenant Default, SAP HANA Cloud Integration or SAP Process Orchestration, 7.50 SP0 from the

Product Profile dropdown list.

Note○ If you select Tenant Default option from the drop down list, then integration flow uses the product

profile, which is set as deafult for the tenant.○ If you want to publish content in the catalog, then it is a recommendation to select a specific

product profile and not Tenant Default option.○ If you switch product profiles, then the system reloads the palette and display relevant capabilities.

3. Choose Save or Deploy as appropriate.

4.5 Configure Multiple Integration Flows

Prerequisites

You have copied the integration package to your workspace

Context

SAP standard integration packages offer a feature where you can configure multiple integration flows that connect to the same system at once. You need to enter the configuration details only once in the mass configuration screen. All the integration flows that connect to that system instance are updated with the details. This eliminates the need for individually entering the configuration details in each integration flow.

For example, consider a scenario in which all the integration flows connect to the same instance of SAP ERP. The configuration details like Host, Port and Client are the same for all the integration flows. Once you specify these details in the mass configuration screen, the application updates these details in all the relevant integration flows. This simplifies the task of configuring multiple integration flows that share common system properties.

Remember● The system consolidates field names into a single section only if they match exactly across all the

integration flows you select for configuration.● You can also configure authentication details during mass configuration.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 225

Page 226: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

You use this procedure to configure multiple integration flows.1. Launch SAP HCI Spaces using the application URL.

2. Choose Design .3. Select the package that contains the integration flows that you want to configure and choose Package

content.4. In the Artifacts screen area, select the integration flow(s) you want to configure.

5. Choose Actions Configure .

NoteYou can also download the artifacts to your local folder by choosing Download instead of Configure.

The system displays the externalized system properties pertaining to the selected integration flows that you want to configure. If there are common properties, the application displays them as a single entry.

6. If you want to save the configuration, choose Save.7. If you want to deploy the integration flows, choose Deploy.

4.6 Assign Adapters to Communication Channels

Prerequisites

● You have logged on to SAP HCI web tooling.● You have copied or imported the integration package to your workspace.

Context

You need to enable the communication between sender and receiver systems by assigning the communication channel with the appropriate adapters. The integration package that you have copied to workspace contain integration flows that have the relevant adapters assigned to their communication channels.

You use this procedure if you want to change the adapter assigned to the communication channel in integration flows.

226P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 227: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. Access SAP HCI Web tooling by launching the URL provided by SAP.

2. Choose Design .3. Select the integration package that contains the integration flow in which you want to assign adapter to

communication channel.4. Select the integration flow and choose Edit.5. If a communication channel does not exist, go to step 7.

6. If there is a communication channel, choose the channel and in the palette choose .

7. Choose .8. If you want to define sender channel, choose Sender and drag the pointer to Start.9. If you want to define receiver channel, choose End and drag the pointer to Receiver.10. In Adapter Type dialog, select the adapter you want to assign.11. If you have assigned SuccessFactors or SOAP adapter, in Message Protocol dialog, choose the message

protocol you want to use.12. Save or deploy the changes after configuring the adapter and other integration flow elements.

4.7 Configure Adapter in Communication Channels

You should configure the adapters assigned to communication channels before deploying the integration flow.

If you are quick configuring an integration flow, you can configure a few adapter parameters. Refer to the relevant adapter configuration details for information on those parameters.

Table 76:

Adapter Link to Adapter Configuration Guide

SOAP (SAP RM) Configure Communication Channel with SOAP (SAP RM) Adapter [page 232]

SOAP (1.x) Configure Communication Channel with SOAP (1.x) Adapter [page 234]

SuccessFactors (SOAP) Configure Communication Channel with SuccessFactors (SOAP) Adapter [page 239]

SuccessFactors (REST) Configure Communication Channel with SuccessFactors (REST) Adapter [page 243]

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 227

Page 228: Developer's Guide: Managing Integration Content - help.sap.com

Adapter Link to Adapter Configuration Guide

SuccessFactors (OData) Configure Communication Channel with SuccessFactors (OData) Adapter [page 245]

IDoc Configure Communication Channel with IDoc Adapter [page 248]

OData Configure Communication Channel with OData Adapter [page 250]

HTTP Configure Communication Channel with HTTP Adapter [page 254]

SFTP Configure Communication Channel with SFTP Adapter [page 258]

4.7.1 Configure a Channel with Mail Adapter

The receiver mail adapter allows you to send out encrypted messages by e-mail.

Context

The following prerequisites must be met:

● You have logged into your customer workspace in HCI web tooling.● You have assigned the mail adapter to the communication channel.

Procedure

1. Select the integration flow you want to configure and choose Edit.2. Choose the communication channel with mail adapter that you want to configure.3. In General tab page, provide channel name and description in the relevant fields if required.4. Choose the Connection tab page and enter the details as shown in the table below:

228P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 229: Developer's Guide: Managing Integration Content - help.sap.com

Table 77: Parameters and Values of Receiver Mail Adapter (General)

Section Parameters Description

Connection Details

Address Specifies the host name and optionally a port number of the SMTP server.

An external mail server can be used.

Use one of the following open ports for external mail servers:

○ 587 for SMTP+STARTTLS○ 465 for SMTPS

Note that connections to external email servers on port 25 are not sup­ported. To connect to servers on the public Internet, use one of the ports listed above.

When you use GMail Server, make sure that during server configuration you allow insecure applications (GMail considers only communication based on OAuth2 as secure).

Timeout (in ms) Specifies the network timeout for the connection attempt to the server.

This is only used for Transmission Control Protocol (TCP), there is no timeout for SMTP commands.

Protection Controls whether encryption is used. The possible values are:○ STARTTLS Mandatory

If the server does not support the STARTTLS command, the con­nection fails.

○ STARTTLS OptionalIf the server supports the STARTTLS command, the connection is upgraded to Transport Layer Security encryption. This works with the normal port 25.

○ SMTPSThe TCP connection to the server is encrypted using SSL/TLS. This usually requires an SSL proxy on the server side and access to the port it runs on.

○ Off No encryption is initiated, whether the server requests it or not.

Authentication Specifies which mechanism is used to authenticate against the server with a user name and password combination. Possible values are:○ None

No authentication is attempted. No credential can be chosen.○ Plain User Name/Password

The user name and password are sent in plain text. It is not recom­mended to use this method over a public or insecure network with­out a protected connection , but it may be necessary if the server does not support SSL or other authentication mechanisms.

○ CRAM-MD5 The user name and password are hashed before being sent to the server. This mechanism is secure even without encryption.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 229

Page 230: Developer's Guide: Managing Integration Content - help.sap.com

Section Parameters Description

Credential Name (only in case CRAM-MD5 or Plain User Name/Password has been chosen for Authentication)

Specifies the name of a deployed credential to use for authentication (if one of the mechanisms in Authentication Method is selected).

Mail Attributes From E-mail address that the message comes from.

To E-mail address that the message is sent to.

Cc Additional e-mail addresses that the e-mail is to be sent to.

These addresses are visible to the receiver.

Bcc Additional e-mail addresses that the e-mail is to be sent to.

These addresses are not visible to the receiver.

Subject Subject of the e-mail message.

Mail Body Specifies the text of an electronic mail message.

Body MIME Type Specifies the type of the message body. Depending on this type, the message will be displayed differently by different user agents.

Body Encoding Specifies the character encoding (character set) of the message body. The content of the input message will be converted to this encoding, and any character that is not available will be replaced with a question mark ('?'). To ensure that data is passed unmodified, select a Unicode encoding, for example UTF-8.

Attachments Name Specifies the file name of the attachment.

MIME Type The Multipurpose Internet Mail Extensions (Mime)-Type Specifies data format of the email.

You can select from the following Mime-Types:

○ Text/Plain○ Text/CSV○ Text/HTML○ Application/XML○ Application/JSON○ Application/Octet-Stream

Source Specifies the source of the data - either Body, meaning the body of the input message, or Header, meaning a header of the input message.

Header Name If the source is Header, this specifies the name of the header that is at­tached.

230P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 231: Developer's Guide: Managing Integration Content - help.sap.com

Section Parameters Description

Add Message Attachments

Select this option to add all attachments contained in the message ex­change to the e-mail.

5. Choose the Security tab page and enter the details as shown in the table below:

Table 78: Parameters and Values of Receiver Mail Adapter (Security)

Section Parameters Description

Security Encryption Type This parameter configures an encryp­tion scheme used for sending e-mails. The message body and attachments are encrypted with the selected scheme and can only be decrypted by the intended recipients.

Content Encryption Algorithm Specifies the symmetric (block) ci­pher. DESede should only be chosen if the destination system or mail client does not support AES.

Secret Key Length Specifies the key size of the previ­ously chosen symmetric cipher. To in­crease the security choose the maxi­mum key size supported by the desti­nation.

Receiver Public Key Alias Specify an alias for the public key that is to be used to encrypt the message. This key has to be part of the tenant keystore.

6. Save or deploy changes.

NoteThe 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.

For more information about Camel Simple Expressions, see the following: http://camel.apache.org/simple.html

Related Information

Dynamic Parameters [page 313]

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 231

Page 232: Developer's Guide: Managing Integration Content - help.sap.com

4.7.2 Configure Communication Channel with SOAP (SAP RM) Adapter

Prerequisites

● You have logged into your customer workspace in HCI web tooling.● You have assigned SOAP adapter to the communication channel.● You have specified SAP RM as the message protocol.

Context

You use this procedure to configure a communication channel with the SuccessFactors adapter.

You have the option to set SOAP headers using Groovy script (for example, using the Script step).

Procedure

1. Select the integration flow you want to configure and choose Edit.2. Choose the communication channel with SOAP (SAP RM) adapter that you want to configure.3. In General tab page, provide channel name and description in the relevant fields if required.4. Choose Adapter Specific tab page.5. Provide values in fields based on description in table.

Table 79: Field Name and Description for SOAP (SAP RM) Sender

Field Description

Address Relative endpoint address of the ESB that listens to in­coming requests.

URL to WSDL Choose Select and select the WSDL in Select WSDL Re­source. You can also upload the WSDL from local folder by choosing Upload from File System.

Robust One-Way Communication Select to ensure reliable one-way message transmission. System returns a status after message processing. Sys­tem returns a fault if the message processing fails.

NoteFor Exactly-Once handling, the sender SOAP (SAP RM) adapter save the protocol-specific message ID in the header SapMessageIdEx. If this header is set, SOAP (SAP RM) receiver use the content of this

232P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 233: Developer's Guide: Managing Integration Content - help.sap.com

header as the message ID for outbound communication. Usually, this is the desired behavior and enables the receiver to identify any duplicates. However, if the sender system is also the receiver system, or several variants of the message are sent to the same system (for example, in an external call or multicast), the receiver system will incorrectly identify these messages as duplicates. In this case, the header SapMessageIdEx must be deleted (for example, using a script) or overwritten with a new generated message ID. This deactivates Exactly-Once processing (that is, duplicates are no longer recognized by the protocol).

Table 80: Field Name and Description for SOAP (SAP RM) Receiver

Field Description

Address Relative endpoint address of the ESB that listens to in­coming requests. Example: /FSN/Payment

URL to WSDL Choose Select and select the WSDL in Select WSDL Re­source. You can also upload the WSDL from local folder by choosing Upload from File System.

Service Name of the service that the referenced WSDL contains

Endpoint Name of the endpoint of the selected service

Operation Name Name of the operation of the selected service that the ref­erenced WSDL contains

Timeout (in ms) Maximum time in milliseconds that the channel waits be­fore terminating message processing

Compress Message Select if you want to send compressed messages to the receiver and indicate that the endpoint can handle com­pressed response messages.

Allow Chunking Select to enable HTTP chunking of data while sending messages

Basic Authentication Select if you want to connect using basic authentication (Credential Name). Selecting this option enables the Credential Name field.

Credential Name Enter the credential name of the user specified while de­ploying the basic authentication credentials on the clus­ter.

NoteThis option is enabled only if you select Basic Authentication checkbox.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 233

Page 234: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Private Key Alias Enter the private key alias that enables the system to fetch the private key from keystore for authentication.

6. Save or deploy changes.

Related Information

Setting SOAP Headers [page 284]

4.7.3 Configure Communication Channel with SOAP (1.x) Adapter

Prerequisites

● You have logged into your customer workspace in HCI web tooling.● You have assigned SOAP adapter to the communication channel.● You have specified SOAP 1.x as the message protocol.

Context

You use this procedure to configure a communication channel with the SOAP (1.x) adapter.

You have the option to set SOAP headers using Groovy script (for example, using the Script step).

Procedure

1. Select the integration flow you want to configure and choose Edit.2. Choose the communication channel with SOAP (1.x) adapter you want to configure.3. In General tab page, provide channel name and description in the relevant fields if required.4. Choose Adapter Specific tab page.5. If you are configuring the SOAP 1.x adapter in sender channel, perform the following substeps.

a. Choose the General tab page and specify name and description for the channel if required.

234P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 235: Developer's Guide: Managing Integration Content - help.sap.com

b. Choose the Adapter Specific tab page and provide values in fields based on description in table.

Table 81: Field Name and Description for SOAP (1.x) Sender General Adapter Specific Settings

Field Description

Address Relative endpoint address of the ESB that listens to in­coming requests.

URL to WSDL Choose Select and select the WSDL in Select WSDL Re­source. You can also upload the WSDL from local folder by choosing Upload from File System.

Service Name of service that the referenced WSDL contains

Endpoint Name of the relative endpoint of the selected service that the referenced WSDL contains

Processing Settings Choose Standard or Robust from the dropdown list.

If you choose Robust, system returns a status after message processing. It returns a fault if the message processing fails.

c. Choose WS-Security tab page.d. In WS-Security Configuration field, if you want to manually configure WS-Security settings, select Via

Manual Configuration in Channel in dropdown list. Provide values in fields based on description in table.

Table 82:

Field Description

WS-Security Type Select Verify Message if you want to verify the signed payload from the tenant. Select Verify and Decrypt Message if you want the adapter to verify and decrypt the signed message from the tenant.

Save Incoming Signed Message Select this checkbox if you want the system to save the incoming (encrypted) message from the tenant.

Check Time Stamp Select this checkbox if the sender sends a time stamp with the incoming message

Sender is Basic Security Profile Compliant Select this checkbox by default. Deselect this only if the sender system does not have a dedicated security level that the basic security profile indicates.

Private Key Alias for Response Signing Specify an alias for the private key that is used to sign the response message.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 235

Page 236: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Public Key Alias for Response Encryption

NoteThis field is available only if Verify and Decrypt Message option is selected in WS-Security Type field.

Specify an alias for the public key that is used to en­crypt the response message.

Initiator Token Include Strategy This option is set as Always to Recipient by default to ensure that certificate is sent with the message.

X509 Token Assertion The certificate format that is sent with the message.

Recipient Token Include Strategy Select Always to Initiator if you want certificate to be added with the response message.

Algorithm Suite Assertion The algorithm that is to be used by the WS consumer.

6. If you are configuring the SOAP 1.x adapter in receiver channel, perform the following substeps.a. Choose General tab page and specify name and description for the channel if required.b. Choose the Adapter Specific tab page and provide values in fields based on description in table.

Table 83: Field Name and Description for SOAP (1.x) Receiver Adapter Specific Settings

Address Relative endpoint address of the ESB that listens to in­coming requests.

URL to WSDL Choose Select and select the WSDL in Select WSDL Re­source. You can also upload the WSDL from local folder by choosing Upload from File System.

Service Name of service that the referenced WSDL contains

Endpoint Name of the relative endpoint of the selected service that the referenced WSDL contains

Operation Name Name of the operation of the selected service that the referenced WSDL contains

Timeout (in ms) The maximum time in milliseconds system has to wait for a response before the connection is terminated.

Compress Message Select this checkbox to send compressed request mes­sages to the receiver and indicate that system can han­dle compressed response messages

236P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 237: Developer's Guide: Managing Integration Content - help.sap.com

Allow Chunking Select this checkbox to enable HTTP chunking while sending messages

Connect without Client Authentication Select this option if the client allows you to connect without authentication

Basic Authentication

NoteThis is enabled if you do not select Connect without Client Authentication checkbox.

Select this option if the client enables connection using basic authentication using the credentials deployed.

Credential Name

NoteThis is enabled if you do not select Connect without Client Authentication checkbox.

Enter the credential name of the user specified while deploying the basic authentication credentials on the cluster.

c. Choose WS-Security tab page.d. In WS-Security Configuration field, if you have selected None, save or deploy the changes.e. In WS-Security Configuration field, if you have selected Via Manual Configuration in Channel, provide

values in fields based on description in table.

Table 84:

Field Description

Options Choose None, Plain Text Password or Credential Name from dropdown list.

Credential Name

NoteThis field is enabled only of you select Plain Text Password or Hashed Password (Password Digest) in Options field.

Enter the credential name of the user specified while deploying the basic authentication credentials on the cluster.

WS-Security Type Select Sign Message if you want the system to sign the payload. Select Sign and Encrypt Message if you want the tenant to sign and encrypt the payload.

Set Time Stamp Select this checkbox if the tenant should send a time stamp with the payload

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 237

Page 238: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Sender is Basic Security Profile Compliant Select this checkbox by default.

Deselect this only if the sender system does not have a dedicated security level that the basic security profile indicates.

Private Key Alias for Signing Specify an alias for the private key that is used to sign the response message.

Public Key Alias for Response Encrypt

NoteThis field is available only if Verify and Decrypt Message option is selected in WS-Security Type field.

Specify an alias for the public key that is used to en­crypt the response message.

Initiator Token Include Strategy This option is set as Always to Recipient by default to ensure that certificate is sent with the message.

X509 Token Assertion The certificate format that is sent with the message.

Recipient Token Include Strategy Select Always to Initiator if you want certificate to be added with the response message.

Algorithm Suite Assertion The algorithm that is to be used by the WS consumer.

f. In WS-Security Configuration field, if you have selected Based on Policies in WSDL, provide values in fields based on description in table.

Table 85:

Field Description

Credential Name Enter the credential name of the user specified while deploying the basic authentication credentials on the cluster.

Private Key Alias for Signing Specify an alias for the private key that is used to sign the response message.

Public Key Alias for Response Encryption Specify an alias for the public key that is used to en­crypt the response message.

Sender is Basic Security Profile Compliant Select this checkbox if the sender system has a dedi­cated security level that the basic security profile indi­cates.

7. Save or deploy the changes.

238P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 239: Developer's Guide: Managing Integration Content - help.sap.com

Related Information

Setting SOAP Headers [page 284]

4.7.4 Configure Communication Channel with SuccessFactors (SOAP) Adapter

Prerequisites

● You have logged into your customer workspace in HCI web tooling.● You have assigned the SuccessFactors adapter to the communication channel.● You have selected SOAP message protocol while assigning the SuccessFactors adapter.

Context

The SuccessFactors adapter enables you to communicate with the SuccessFactors system. You use the SOAP message protocol to connect to the SOAP based web services of the SuccessFactors system.

You use this procedure to configure communication channel with SuccessFactors adapter.

Procedure

1. Select the integration flow you want to configure and choose Edit.2. Choose the communication channel you want to configure.3. In General tab page, provide channel name and description in the relevant fields if required.4. Choose Adapter Specific tab page and provide values in fields based on description in table.

Table 86: Field Name and Description for SuccessFactors SOAP Adapter Processing Details

field Description

SFSF Data Center SuccessFactors data center that you want to connect to

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 239

Page 240: Developer's Guide: Managing Integration Content - help.sap.com

field Description

Address

NoteThis field is enabled only if you choose Other in SFSF Data Center field.

URL of the SuccessFactors data center that you want to connect to

Address Suffix System automatically populates this value as /sfapi/v1/soap as you have selected the SOAP message protocol

Credential Name Credential name for your credentials that has been de­ployed on the tenant

Call Type It is Synchronous Query by default. If you want to execute an Adhoc operation, select Adhoc / Asynchronous from the dropdown list

Entity Entity that you want to access in SuccessFactors system.

Operation Operation that you want to perform on the entity that you are accessing on the SuccessFactors system

Query Query that you are executing

Page Size Maximum number of records to be fetched in one page of response

5. If you are configuring the sender channel, choose the Scheduler tab page and provide values in fields based on description in table.

Table 87:

Scheduler Option Field Description

Run Once NA Select to execute the operation im­mediately after deploying the integra­tion content

Schedule on Day On Date Specify the date on which you want the operation to be executed

On Time Specify the time on which you want the operation to be executed

Every Specify the interval in which the oper­ation has to be executed.

240P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 241: Developer's Guide: Managing Integration Content - help.sap.com

Scheduler Option Field Description

Time Zone Select the time zone that you want the scheduler to use as a reference for the date and time settings

Schedule to Recur Daily Select the time or interval and time zone for the schedule to recur

Weekly Select the checkboxes to indicate the days of the week on which the opera­tion has to be executed. Also, specify the time or interval for the schedule to recur

Monthly Select the day of the month on which the operation has to be executed. Also indicate the time or the interval during which the schedule has to re­cur

6. Save or deploy changes.

Modifying SuccessFactors SOAP Entity and Operation

Prerequisites

● You are configuring the communication channel that is assigned with SuccessFactors SOAP adapter.● Ensure that the TrustedCAs from the service provider you are connecting to are added to the system

keystore associated with your HCI account.

Context

SuccessFactors SOAP adapter enables you to modify the entity that you are accessing and the operation that you are performing on the entity. You can use this adapter to perform the following operations:

● Query● Insert● Update● Upsert

You use this procedure to change the entity and modify the operation for SuccessFactors SOAP adapter.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 241

Page 242: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. In Entity field, choose Select.

2. If you have not added the system with authentication details, choose and provide values in fields based on description in table. Choose Connect.

Table 88:

Fields Description

System Name of the SuccessFactors datacenter that you are con­necting to

Address URL of the SuccessFactors datacenter that you are con­necting to

Company ID Company ID for authentication

User ID User ID associated with the Company ID

Password Relevant password for the specified user ID

3. If you have added the system with authentication details, perform the following substeps.a. In System field, choose the system you want to connect to from the dropdown list.b. In Password field, provide the appropriate password.c. Choose Connect.

4. In Entity Selection dialog, select the entity that you want to access.5. In Query field, choose Modify.6. In Operation field, choose the operation you want to perform.

NoteYou can only perform Query operation in sender channel.

7. In the Fields dropdown list, select the fields that you want to perform the operation on.

NoteYou can select multiple fields by selecting their respective checkboxes.

8. If you want to specify filter conditions, choose and perform the following substeps.a. In Filter By field, choose the fields that you want filter.b. In Operator field, choose the operator that you want to use to define the filter condition.c. In Input Type field, select the type of input you want to provide for defining the filter condition.d. In Value field, provide value of the input for filter condition.e. Select AND or OR based on how you want this filter condition to be considered when the operation is

executed.

242P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 243: Developer's Guide: Managing Integration Content - help.sap.com

f. Choose to add more than one filter condition.

9. If you want to specify sorting conditions, choose and perform the following substeps.a. In Field, select the field you want to include in the sorting condition.b. If you want the sorting to be done in descending order, select the checkbox in Desc column.

c. Choose to add more than one filter condition.

Results

The system displays a prompt that a XSD file is created. You can use this XSD file for mapping steps.

4.7.5 Configure Communication Channel with SuccessFactors (REST) Adapter

Prerequisites

● You have logged into your customer workspace in HCI web tooling.● You have assigned the SuccessFactors adapter to the communication channel.● You have selected REST message protocol while assigning the SuccessFactors adapter.

Context

The SuccessFactors adapter enables you to communicate with the SuccessFactors system. You use the REST message protocol to connect to the REST based web services of the SuccessFactors system.

You use this procedure to configure communication channel with SuccessFactors adapter.

Procedure

1. Select the integration flow you want to configure and choose Edit.2. Choose the communication channel you want to configure.3. In General tab page, provide channel name and description in the relevant fields if required.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 243

Page 244: Developer's Guide: Managing Integration Content - help.sap.com

4. Choose Adapter Specific tab page and provide values in fields based on description in table.

Table 89: Field Name and Description for SuccessFactors REST Adapter Processing Details

Field Description

Address URL of the SuccessFactors LMS service

Address Suffix URL suffix for the SuccessFactors LMS service

Credential Name Name of the credentials deployed on the SuccessFactors LMS service for authentication

Operation Operation that you want to perform

NoteYou can only perform GET operation on sender chan­nel.

Entity LMS entity that you are accessing.

NoteRefer for the relevant LMS API documentation for more details.

Parameters Operation parameters that you want to send

Page Size Maximum number of records in one page of response

5. If you are configuring the sender channel, choose Scheduler tab page and provide values in fields based on description in table.

Table 90:

Scheduler Option Field Description

Run Once NA Select to execute the operation im­mediately after deploying the integra­tion content

Schedule on Day On Date Specify the date on which you want the operation to be executed

On Time Specify the time on which you want the operation to be executed

Every Specify the interval in which the oper­ation has to be executed.

244P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 245: Developer's Guide: Managing Integration Content - help.sap.com

Scheduler Option Field Description

Time Zone Select the time zone that you want the scheduler to use as a reference for the date and time settings

Schedule to Recur Daily Select the time or interval and time zone for the schedule to recur

Weekly Select the checkboxes to indicate the days of the week on which the opera­tion has to be executed. Also, specify the time or interval for the schedule to recur

Monthly Select the day of the month on which the operation has to be executed. Also indicate the time or the interval during which the schedule has to re­cur

6. Save or deploy the configuration.

4.7.6 Configure Communication Channel with SuccessFactors (OData) Adapter

Context

The SuccessFactors adapter enables you to communicate with the SuccessFactors system. You use the OData message protocol to connect to the OData based web services of the SuccessFactors system.

NoteOData message protocol for SuccessFactors adapter is available only in the receiver channel.

You use this procedure to configure communication channel with SuccessFactors adapter.

Procedure

1. Select the integration flow you want to configure and choose Edit.2. Choose the communication channel you want to configure.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 245

Page 246: Developer's Guide: Managing Integration Content - help.sap.com

3. In General tab page, provide channel name and description in the relevant fields if required.4. Choose Adapter Specific tab page and provide values in fields based on description in table.

Table 91: Field Name and Description for SuccessFactors OData Adapter Processing Details

Field Description

SFSF Data Center SuccessFactors data center that you want to connect to

Address

NoteThis field is enabled only if you choose Other in SFSF Data Center field.

URL of the SuccessFactors data center that you want to connect to

Address Suffix System automatically populates this value as /odata/v2 as you have selected the SOAP message protocol

Credential Name Credential name for your credentials that has been de­ployed on the tenant

Operation Operation that you want to perform on the entity that you are accessing on the SuccessFactors system

Resource Path Path for the OData resource that you are accessing

EDMX EDMX file for authentication

Request Payload Format The format in which the request payload should be sent to the system. You can choose Atom or JSON.

Page Size Maximum number of records to be fetched in one page of response

5. Save or deploy the changes.

Modifying SuccessFactors OData Operation

Prerequisites

● You are configuring the communication channel that is assigned with SuccessFactors OData adapter.● Ensure that the TrustedCAs from the service provider you are connecting to are added to the system

keystore associated with your HCI account.

246P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 247: Developer's Guide: Managing Integration Content - help.sap.com

Context

SuccessFactors OData adapter enables you to modify the entity that you are accessing and the operation that you are performing on the entity. You can use this adapter to perform the following operations:

● Query (GET)● Create (POST)● Update (PUT)● Read (GET)

You use this procedure to change the entity and modify the operation for SuccessFactors SOAP adapter.

Procedure

1. In Resource Path field, choose Modify.

2. If you have not added the system with authentication details, choose and provide values in fields based on description in table. Choose Connect.

Table 92:

Fields Description

System Name of the SuccessFactors datacenter that you are con­necting to

Address URL of the SuccessFactors datacenter that you are con­necting to

Company ID Company ID for authentication

User ID User ID associated with the Company ID

Password Relevant password for the specified user ID

3. If you have added the system with authentication details, perform the following substeps.a. In System field, choose the system you want to connect to from the dropdown list.b. In Password field, provide the appropriate password.c. Choose Connect.

4. In Entity Selection dialog, select the entity that you want to access.5. In Sub-Levels field, select the number of sub-levels in the entity that you want to access.6. In Operation field, select the operation you want to perform from the dropdown list.7. In the Top and Skip fields, specify the number of records from the top that should be fetched or the

number of records from the top that need to be skipped respectively.

ExampleIf you want only the top 8 records to be fetched, enter 8 in Top field. If you want to skip the top 8 records and fetch the rest, enter 8 in the Skip field.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 247

Page 248: Developer's Guide: Managing Integration Content - help.sap.com

8. In the Fields dropdown list, select the fields that you want to perform the operation on.

NoteYou can select multiple fields by selecting their respective checkboxes.

9. If you want to specify filter conditions, choose and perform the following substeps.a. In Filter By field, choose the fields that you want filter.b. In Operator field, choose the operator that you want to use to define the filter condition.c. In Input Type field, select the type of input you want to provide for defining the filter condition.d. In Value field, provide value of the input for filter condition.e. Select AND or OR based on how you want this filter condition to be considered when the operation is

executed.

f. Choose to add more than one filter condition.

10. If you want to specify sorting conditions, choose and perform the following substeps.a. In Field, select the field you want to include in the sorting condition.b. If you want the sorting to be done in descending order, select the checkbox in Desc column.

c. Choose to add more than one filter condition.11. Choose Ok.

Results

The system displays a prompt that an EDMX file is created. You can use this EDMX file for connecting to the system subsequently for modifying operations.

The system also displays a prompt that a XSD file is created. You can use this XSD file in mapping steps.

4.7.7 Configure Communication Channel with IDoc Adapter

Prerequisites

● You have logged into your customer workspace in HCI web tooling.● You have assigned the IDoc adapter to the communication channel.

248P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 249: Developer's Guide: Managing Integration Content - help.sap.com

Context

You use the IDoc adapter to communicate IDoc messages with other systems that support communication via SOAP web services.

Procedure

1. Select the integration flow you want to configure and choose Edit.2. Choose the communication channel you want to configure.3. In General tab page, provide channel name and description in the relevant fields if required.4. Choose Adapter Specific tab page and provide values in fields based on description in table.

Table 93: Field Name and Description for IDoc Adapter Sender Channel

Field Name Description

Address Relative endpoint address that you are sending the re­quest messages to.

For example, /file/GetEmployeeDetails.

URL to WSDL URL to the WSDL that defines the WS provider of the end­point. You can also upload the WSDL by choosing Upload from File System.

Table 94: Field Name and Description for IDoc Adapter Receiver Channel

Field Description

Address Relative endpoint address that you are sending the re­quest messages to.

For example, /file/GetEmployeeDetails.

URL to WSDL URL to the WSDL that defines the WS provider of the end­point. You can also upload the WSDL by choosing Upload from File System.

IDoc Content Type Application/x-sap.idoc: If you select this option, system allows one IDoc record per request, enables exactly-once processing and message sequencing.

Text/XML: If you select this option, system allows multi­ple IDoc records per request.

Timeout (in ms) The maximum time system has to wait before the con­nection is timed out.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 249

Page 250: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Compress Message Select if you want to send compressed messages to the receiver and indicate that the endpoint can handle com­pressed response messages.

Allow Chunking Select to enable HTTP chunking of data while sending messages

Basic Authentication Select if you want to connect using basic authentication (Credential Name). Selecting this option enables the Credential Name field.

Private Key Alias Enter the private key alias that enables the system to fetch the private key from keystore for authentication.

5. Save or deploy the integration flow.

4.7.8 Configure Communication Channel with OData Adapter

Prerequisites

● You have logged into your customer workspace in HCI web tooling.● You have assigned the OData adapter to the communication channel.

Context

You use the OData adapter to communicate OData messages with other systems that support communication with OData service providers.

NoteOData adapter is available only for the receiver channel.

Procedure

1. Select the integration flow you want to configure and choose Edit.2. Choose the communication channel you want to configure.

250P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 251: Developer's Guide: Managing Integration Content - help.sap.com

3. In General tab page, provide channel name and description in the relevant fields if required.4. Choose Adapter Specific tab page and provide values in fields based on description in table.

Table 95: Field Name and Description for OData Adapter

Field Description

Address URL of the OData service provider.

Proxy Type The type of proxy that you are using to connect to the tar­get system:○ Select Internet if you are connecting to a cloud sys­

tem.○ Select On-Premise if you are connecting to on-prem­

ise system using the SAP Cloud Connector.This option is only available if you have chosen prod­uct profile HANA Cloud Integration.

Authentication Select the type of authentication from dropdown list

Credential Name

NoteThis field is enabled only if you select Basic as authen­tication method.

Credential name for your credentials that has been de­ployed on the tenant

Private Key Alias

NoteEnabled only if you select Client Certificate as authenti­cation method.

Enter the private key alias that enables the system to fetch the private key from keystore for authentication.

Operation Operation that you want to perform on the entity that you are accessing on the OData service provider

Resource Path Path for the OData resource that you are accessing

EDMX EDMX file for authentication

Content Type The format in which the request payload should be sent to the system. You can choose Atom or JSON.

NoteThe response from OData service provider is in the same format as the request payload.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 251

Page 252: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Page Size Maximum number of records to be fetched in one page of response

5. Save or deploy the changes.

Modifying OData Operation

Prerequisites

● You are configuring the communication channel with OData adapter.● Ensure that the TrustedCAs from the service provider you are connecting to are added to the system

keystore associated with your HCI account.

Context

OData adapter enables you to modify the entity that you are accessing and the operation that you are performing on the entity. You can use this adapter to perform the following operations:

● Query (GET)● Create (POST)● Update (PUT)● Merge (MERGE)● Read (GET)

You use this procedure to change the entity and modify the operation for OData adapter.

Procedure

1. In Resource Path field, choose Modify.

2. If you have not added the system with authentication details, choose and provide values in fields based on description in table. Choose Connect.

Table 96:

Fields Description

System Name of the OData that you are connecting to

252P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 253: Developer's Guide: Managing Integration Content - help.sap.com

Fields Description

Address URL of the OData service provider that you are connect­ing to

Company ID Company ID for authentication

User ID User ID associated with the Company ID

Password Relevant password for the specified user ID

3. If you have added the system with authentication details, perform the following substeps.a. In System field, choose the system you want to connect to from the dropdown list.b. In Password field, provide the appropriate password.c. Choose Connect.

4. In Entity Selection dialog, select the entity that you want to access.5. In Sub-Levels field, select the number of sub-levels in the entity that you want to access.6. In Operation field, select the operation you want to perform from the dropdown list.7. In the Top and Skip fields, specify the number of records from the top that should be fetched or the

number of records from the top that need to be skipped respectively.

ExampleIf you want only the top 8 records to be fetched, enter 8 in Top field. If you want to skip the top 8 records and fetch the rest, enter 8 in the Skip field.

8. In the Fields dropdown list, select the fields that you want to perform the operation on.

NoteYou can select multiple fields by selecting their respective checkboxes.

9. If you want to specify filter conditions, choose and perform the following substeps.a. In Filter By field, choose the fields that you want filter.b. In Operator field, choose the operator that you want to use to define the filter condition.c. In Input Type field, select the type of input you want to provide for defining the filter condition.d. In Value field, provide value of the input for filter condition.e. Select AND or OR based on how you want this filter condition to be considered when the operation is

executed.

f. Choose to add more than one filter condition.

10. If you want to specify sorting conditions, choose and perform the following substeps.a. In Field, select the field you want to include in the sorting condition.b. If you want the sorting to be done in descending order, select the checkbox in Desc column.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 253

Page 254: Developer's Guide: Managing Integration Content - help.sap.com

c. Choose to add more than one filter condition.11. Choose Ok.

Results

The system displays a prompt that an EDMX file is created. You can use this EDMX file for connecting to the system subsequently for modifying operations.

The system also displays a prompt that a XSD file is created. You can use this XSD file in mapping steps.

4.7.9 Configure Communication Channel with HTTP Adapter

Context

You use the HTTP adapter to communicate with receiver systems using HTTP message protocol.

NoteYou can only configure a channel with the HTTP adapter type for outbound calls (from the tenant to a receiver system).

If you want to dynamically override the configuration of the adapter, you can set the following headers before calling the HTTP adapter:

Table 97: Headers

Header Description

CamelHttpUri Overrides the existing URI set directly in the endpoint.

This header can be used to dynamically change the URI to be called.

Camel­HttpQuery

Overrides the existing URI parameters set directly in the endpoint.

This header can be used to dynamically change the URI to be called.

Content-Type HTTP content type that fits to the message (such as text/html)

Content-Encod­ing

HTTP content encoding that fits the encoding during message transport (such as gzip)

You use this procedure to configure HTTP adapter in receiver channel.

254P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 255: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. Select the integration flow you want to configure and choose Edit.2. Choose the communication channel you want to configure.3. In General tab page, provide channel name and description in the relevant fields if required.4. Choose Adapter Specific tab page and provide values in fields based on description in table.

Table 98: Field Name and Description for HTTP Adapter

Field Description

Address URL of the target system that you are connecting to, for example, https://mysystem.com

Note that the authentication method Client Certificate requires the HTTPS protocol. For Basic authentication it is strongly recommended that you use the HTTPS protocol.

If you have selected one of these authentication methods, you therefore have to enter an https URL.

You can also specify HTTP parameters in the URL. How­ever, if you select the HTTP method POST, parameters are usually sent in the body. You therefore get a warning message if you configure this parameter-value combina­tion.

The following URL parameters are currently not allowed for technical reasons:

○ throwExceptionOnFailure○ bridgeEndpoint○ transferException○ client○ clientConfig○ binding○ sslContextParameters○ bufferSize

You can dynamically configure the Address field of the HTTP adapter.

When you specify the Address field of the HTTP adapter as ${header.a}, at runtime the value of header a (as contained in the incoming message) will be written into the Camel header CamelHttpUri.

Also in case the CamelHttpUri header has been set by another process step (for example, a Content Modifier), its value will be overwritten.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 255

Page 256: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Query Query string that you want to send with the HTTP request

Query strings must not be entered in the Address field.

This parameter can be externalized.

You can dynamically configure the Query field of the HTTP adapter.

When you specify the Query field of the HTTP adapter as ${header.a}, at runtime the value of header a (as con­tained in the incoming message) will be written into the Camel header CamelHttpQuery.

Proxy Type The type of proxy that you are using to connect to the tar­get system:○ Select Internet if you are connecting to a cloud sys­

tem.○ Select On-Premise if you are connecting to on-prem­

ise system using the SAP Cloud Connector.This option is only available if you have chosen prod­uct profile HANA Cloud Integration.

Method Action that the HTTP request should perform

○ POSTRequests that the receiver accepts the data enclosed in the request body.

○ GETSends a GET request to the receiver.

○ PUTUpdates or creates the enclosed data on the receiver side.

256P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 257: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Authentication Defines how the tenant (as the HTTP client) will authenti­cate itself against the receiver.

You can select one of the following authentication meth­ods:

○ None○ Basic

The tenant authenticates itself against the receiver using user credentials (user name and password).It is a prerequisite that user credentials are specified in a Basic Authentication artifact and deployed on the related tenant.

○ Client CertificateThe tenant authenticates itself against the receiver using a client certificate.It is a prerequisite that the required key pair is instal­led and added to a keystore. This keystore has to be deployed on the related tenant. The receiver side has to be configured appropriately.

Credential Name

NoteThis field is enabled only if you select basic authentica­tion.

Identifies the Basic Authentication artifact that contains the credentials.

Private Key Alias

NoteThis option is enabled only if you select client certifi­cate authentication.

Enter the private key alias that enables the system to fetch the private key from keystore for authentication.

Timeout (in ms) Maximum time that the tenant waits for a response be­fore terminating message processing

The default value is 60000 milliseconds (1 minute).

5. Save or deploy the integration flow.

Related Information

Using SAP HANA Cloud Connector with HCI Adapters [page 102]

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 257

Page 258: Developer's Guide: Managing Integration Content - help.sap.com

4.7.10 Configure Communication Channel with Ariba Adapter

Context

Procedure

4.7.11 Configure Communication Channel with SFTP Adapter

Prerequisites

● You have logged into your customer workspace in HCI web tooling.● You have assigned SFTP adapter to the communication channel.

Context

SFTP adapter uses a certificate and keystore to authenticate the file transfer unlike the standard FTP. The SFTP adapter achieves secure transfer by encrypting sensitive information before transmitting it on the network. It uses SSH protocol to transfer files.

Related Information

Configure Communication Channel with SFTP Sender Adapter [page 259]Configure Communication Channel with SFTP Receiver Adapter [page 264]

258P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 259: Developer's Guide: Managing Integration Content - help.sap.com

4.7.11.1 Configure Communication Channel with SFTP Sender Adapter

Context

Procedure

1. Select the integration flow you want to configure and choose Edit.2. Choose the communication channel you want to configure.

To configure a sender channel, click on a connection between a sender and the Integration Process component.

3. In General tab page, provide channel name and description in the relevant fields if required.4. Choose Adapter Specific tab page and provide values in fields based on description in table.

In tab Source of the sender channel specify the following attributes.

Table 99:

Field Description

Directory File path from where the file should be read, for example, <dir>/<subdir>.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 259

Page 260: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

File Name Name of the file to be read.

NoteIf you do not enter a file name and the parameter re­mains blank, all the files in the specified directory are read. Regular expressions, such as ab*, a.*, *a*, and so on are not supported.

CautionFiles with file names longer than 100 characters will be processed with the following limitations:

○ If two files longer 100 characters are available for processing, only one of these files will be proc­essed at a time. This means that both files will be processed, but not in parallel. This is also the case when two runtime nodes available. If the node fails multiple times while processing a file with a file name length of more than 100 characters, all files sharing the first 100 characters with that file will not be executed without manual intervention from the administrator.

○ The option Keep File and Mark as Processed in Idempotent Repository (for sender channels un­der Processing) will not work for these files.

Address Host name or IP address of the SFTP server and an op­tional port, for example, wdfd00213123:22.

User Name ID of the user performing the file transfer.

Timeout (in ms) Maximum time to wait for the SFTP server to be con­tacted while establishing connection or performing a read operation.

Default value: 10000 ms

Maximum Reconnect Attempts Maximum number of attempts allowed to reconnect to the SFTP server.

Default value: 3

Use 0 to disable this behavior.

Reconnect Delay (in ms) Time duration the system waits for before attempting to reconnect to the SFTP server.

Default Value: 1000ms

260P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 261: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Automatically Disconnect Disconnect from the SFTP server after each message processing.

5. Choose Processing tab page.

Table 100: Fields and Description for SFTP Adapter Sender Channel

Field Description

Read Lock Strategy Prevents files that are in the process of being written from being read from the SFTP server. The endpoint waits until it has an exclusive read lock on a file before reading it.

Select one of the following options based on the capabili­ties of the SFTP server:

None: Does not use a read lock, which means that the endpoint can immediately read the file. None is the sim­plest option if the SFTP server guarantees that a file only becomes visible on the server once it is completely writ­ten.

Rename: Renames the file before reading. The Rename option allows clients to rename files on the SFTP server.

Content Change: Monitors changes in the file length/modification timestamp to determine if the write opera­tion on the file is complete and the file is ready to be read. The Content Change option waits for at least one second until there are no more file changes. Therefore, if you se­lect this option, files cannot be read as quickly as with the other two options.

Change Directories Stepwise Select this option to change directory levels one at a time.

Include Sub-Directories Selecting this option allows you to look for files in all the subdirectories of the directory.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 261

Page 262: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Post-Processing Allows you to specify how files are to be handled after processing. You can select one of the following options from dropdown list:

Delete File: The file is deleted after it has be

Keep File and Mark as Processed in Idempotent Repository: Enables an idempotent repository to prevent a file from being consumed twice. Select this option for SFTP servers that do not allow deletion or moving of files, but the files are to be read only once. You can select one of the following idempotent repository options:

In Memory: Keeps the file names in the memory. Files are read again from the SFTP server when the runtime node is restarted.

NoteIf there is a system crash or disaster, this data will be lost and cannot be recovered later.

Database: Stores the file names in a database to prevent the files from being read again when the runtime node is restarted. File name entries are deleted by default after 90 days.

NoteThe database uses the server name, directory, and file name as key values to identify files uniquely across in­tegration flows of a tenant.

Keep File and Process Again: The file is kept on the SFTP server and file processing is repeated. You can use this option, for example, for testing purposes.

Move File: The file is moved to another directory. If you se­lect this option, you need to specify the target directory. You can specify the target directory dynamically, for ex­ample, using the timestamp of the message. The follow­ing example uses backup folders with timestamps and re­places the file extension with bak: backup/${date:now:yyyyMMdd}/${file:name.noext}.bak

262P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 263: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Retry Threshold for Alerting If the number of attempts to retry polling a message from the SFTP server exceeds this threshold value, an alert is raised. The default value '0' indicates that the alert is not raised.

NoteIf two or more sender channels are configured with the SFTP connector, the value for the Alert Threshold for Retry parameter should be the same.

6. Choose Advanced tab page.

Table 101:

Field Description

Buffer Size Write file content using the specified buffer size.

Default: 128 KB

Log Level The level of information to be logged during message processing.

Flatten File Names Flatten the file path by removing the directory levels so that only the file names are considered and they are writ­ten under a single directory.

Max. Messages per Poll (For sender channel only) Maximum number of messages to gather per poll.

Default: 0 Example: 1000 can be set as a limit.

NoteWhen you use the sender SFTP adapter in combination with an Aggregator step and you expect a high mes­sage load, consider the following recommendation:

Set the value for Maximum Messages per Poll to a small number larger than 0 (for example, 20). This en­sures a proper message processing status logging at runtime.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 263

Page 264: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Prevent Directory Traversal If the file contains any backward path traversals such as \..\ or /../.. , this can lead to a potential risk of directory traversal. In such a case message processing is stopped with an error. The unique message ID is logged in the Message Processing Log.

NoteWe recommend that you specify the Directory and File Name fields to avoid any security risks. If you provide these fields, the header is not considered.

7. Choose Scheduler tab page.

Table 102:

Field Description

Initial Delay (in ms) Time duration the system waits after deploying the inte­gration flow.

Recurrent Delay (in ms) Time duration the system waits before executing the inte­gration flow again.

8. Save or deploy the configuration.

SFTP polling is supported in the following way: The same file can be polled by multiple endpoints configured to use the SFTP channel. This means that you can now deploy an integration flow with a configured SFTP channel on multiple runtime nodes (which might be necessary to meet failover requirements) without the risk of creating duplicates by polling the same file multiple times. Note that to enable the new option, integration flows (configured to use SFTP channels) that have been developed prior to the introduction of this feature have to be regenerated.

4.7.11.2 Configure Communication Channel with SFTP Receiver Adapter

Context

264P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 265: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. Select the integration flow you want to configure and choose Edit.2. Choose the communication channel you want to configure.

To configure a receiver channel, click on a connection between Integration Process component and a receiver.

3. In General tab page, provide channel name and description in the relevant fields if required.4. Choose Adapter Specific tab page and provide values in fields based on description in table.

In tab Target of the receiver channel specify the following attributes.

Table 103:

Field Description

Directory File path from where the file should be read, for example, <dir>/<subdir>.

File Name Name of the file to be read.

NoteIf you do not enter a file name and the parameter re­mains blank, all the files in the specified directory are read. Regular expressions, such as ab*, a.*, *a*, and so on are not supported.

CautionFiles with file names longer than 100 characters will be processed with the following limitations:

○ If two files longer 100 characters are available for processing, only one of these files will be proc­essed at a time. This means that both files will be processed, but not in parallel. This is also the case when two runtime nodes available. If the node fails multiple times while processing a file with a file name length of more than 100 characters, all files sharing the first 100 characters with that file will not be executed without manual intervention from the administrator.

○ The option Keep File and Mark as Processed in Idempotent Repository (for sender channels un­der Processing) will not work for these files.

Address Host name or IP address of the SFTP server and an op­tional port, for example, wdfd00213123:22.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 265

Page 266: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

User Name ID of the user performing the file transfer.

Timeout (in ms) Maximum time to wait for the SFTP server to be con­tacted while establishing connection or performing a read operation.

Default value: 10000 ms

Maximum Reconnect Attempts Maximum number of attempts allowed to reconnect to the SFTP server.

Default value: 3

Use 0 to disable this behavior.

Reconnect Delay (in ms) Time duration the system waits for before attempting to reconnect to the SFTP server.

Default Value: 1000ms

Automatically Disconnect Disconnect from the SFTP server after each message processing.

5. Choose Processing tab page.

Table 104: Parameters and Description for SFTP Adapter Receiver Channel

Field Description

Handling for Existing Files If the file already exists in the target, allow the following:

Override: Replace the existing file content with the new one.

Append: Add the new file content to the end of the exist­ing one.

Fail: Do not perform any action and raise a failure.

Ignore: Do not perform any action.

Change Directories Stepwise Changes directory levels one at a time.

Create Directories Automatically creates missing directory levels as pro­vided in the file's path name.

6. Choose Advanced tab page.

266P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 267: Developer's Guide: Managing Integration Content - help.sap.com

Table 105:

Field Description

Buffer Size Write file content using the specified buffer size.

Default: 128 KB

Log Level The level of information to be logged during message processing.

Flatten File Names Flatten the file path by removing the directory levels so that only the file names are considered and they are writ­ten under a single directory.

Max. Messages per Poll (For sender channel only) Maximum number of messages to gather per poll.

Default: 0 Example: 1000 can be set as a limit.

NoteWhen you use the sender SFTP adapter in combination with an Aggregator step and you expect a high mes­sage load, consider the following recommendation:

Set the value for Maximum Messages per Poll to a small number larger than 0 (for example, 20). This en­sures a proper message processing status logging at runtime.

Prevent Directory Traversal If the file contains any backward path traversals such as \..\ or /../.. , this can lead to a potential risk of directory traversal. In such a case message processing is stopped with an error. The unique message ID is logged in the Message Processing Log.

NoteWe recommend that you specify the Directory and File Name fields to avoid any security risks. If you provide these fields, the header is not considered.

7. Save or deploy the configuration.

SFTP polling is supported in the following way: The same file can be polled by multiple endpoints configured to use the SFTP channel. This means that you can now deploy an integration flow with a configured SFTP channel on multiple runtime nodes (which might be necessary to meet failover requirements) without the risk of creating duplicates by polling the same file multiple times. Note that to enable the new option, integration flows (configured to use SFTP channels) that have been developed prior to the introduction of this feature have to be regenerated.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 267

Page 268: Developer's Guide: Managing Integration Content - help.sap.com

4.7.12 Configure Communication Channel with Twitter Adapter

Context

You can use the Twitter receiver adapter to extract information from the Twitter platform (which is the receiver platform) based on certain criteria such as keywords, user data, for example. As one example, you can use this feature to send, search for and receive Twitter feeds.

The connection works that way that the tenant logs on to Twitter based on an OAuth authentication mechnism and searches for information based on criteria as configured in the adapter at design time. OAuth allows the tenant to access someone else’s resources (of a specific Twitter user) on behalf of the tenant. As illustrated in the figure, the tenant (through the Twitter receiver adapter) calls the Twitter API to access resources of a specific Twitter user. Currently, the Twitter adapter can only be used as receiver adapter. For more information on the Twitter API, go to: https://dev.twitter.com/ .

NoteNote that externalization is supported only for string fields of the adapter (User, Keywords, User Name, and OAuth settings).

Do not externalize other properties. Although the user interface allows this, the integration flow check will be erroneous.

Procedure

1. Select the integration flow you want to configure and choose Edit.2. Choose the communication channel you want to configure.3. In General tab page, provide channel name and description in the relevant fields if required.4. Choose the Adapter-Specific tab page and enter the details as shown in the table below:

268P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 269: Developer's Guide: Managing Integration Content - help.sap.com

Table 106: Attributes of the Twitter Receiver Adapter (Twitter Components)

Field Description

Endpoint To access Twitter content, you can choose among the following general options.

○ Query Timeline / UserAllows you to search for Twitter content related to a specific user timeline.

○ SearchAllows you to do a search on Twitter content by specifying keywords.

○ Send Direct MessageAllows you to send messages to Twitter (write access, direct message).

User Specifies the Twitter user from which account the information is to be extracted.

Page Size Specifies the maximum number of results (tweets) per page.

Number Of Pa­ges

Specifies the number of pages which you want the tenant to consume.

Table 107: Attributes of the Twitter Receiver Adapter (Filter Settings)

Field Description

Locations Specifies bounding boxes to define the geographic coordinates (according to which the results are to be filtered).

A bounding box is the smallest rectangular shape which encloses the entity in question. It is an area defined by two longitudes and two latitudes. Hereby, latitude is a decimal number between -90.0 and 90.0, and longitude is a decimal number between -180.0 and 180.0.

Example: 49.293337, 8.640392, 49.294022, 8.642677

Keywords Specifies the keywords used to filter the results.

Use commas to separate different keywords or a valid Twitter Search API query (for more informa­tion, go to https://dev.twitter.com/rest/public/search ).

User Names Specifies the users for which content is to be searched on Twitter.

Language Specifies the search language.

Table 108: Attributes of the Twitter Receiver Adapter (OAuth Settings)

Field Description

Consumer Key An alias by which the consumer (tenant) that requests Twitter resources is identified

Consumer Se­cret

An alias by which the shared secret is identified (that is used to to define the token of the consumer (tenant))

Access Token An alias by which the access token for the Twitter user is identified

In order to make authorized calls to the TwitterAPI, your application must first obtain an OAuth ac­cess token on behalf of a Twitter user

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 269

Page 270: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Access Token Secret

An alias by which shared secret is identified that is used to define the token of the Twitter user

The authorization is based on shared secret technology. This method relies on the fact that all parties of a communication share a piece of data that is known only to the parties involved. Using OAuth in the context of this adapter, the Consumer (that calls the API of the receiver platform on behalf of a specific user of this platform) identifies itself using its Consumer Key and Consumer Secret, while the context to the user itself is defined by an Access Token and an Access Token Secret. These artifacts are to be generated for the receiver platform app (consumer) and should be configured that way that they will never expire. This adapter only supports consumer key/secret and access token key/secret artifacts that do not expire.

To finish the configuration of a scenario using this adapter, the generated consumer key/secret and access token key/secret artifacts are to be deployed as Secure Parameter artifact on the related tenant. To do this, use the Integration Operations feature, position the cursor on the tenant and chosen Deploy Artifact .... As artifact type, choose Secure Parameter.

5. Save the configuration of the channel editor.

4.8 Define Events

4.8.1 Define an Escalation Event

Context

Procedure

1. In the palette, choose Escalation Event .2. Specify the Escalation Category.

270P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 271: Developer's Guide: Managing Integration Content - help.sap.com

There are the following Escalation Categories:

Table 109:

Escalation Event Routing condition has not been met.

Receiver not reachable Receiver could not be reached, because it is temporarily down or not accessible (for example, due to overload or maintenance work).

Receiver not found Receiver could not be found because the URL points to a non-existent resource (for example, HTTP 404 error).

Not authenticated to invoke receiver Receiver could not be called because authentication has failed (for example, HTTP 401 error).

Not authorized to invoke receiver Receiver could not be called because of insufficient per­missions (for example, HTTP 403 error).

Receiver tries to redirect Receiver could not be reached (HTTP 302 error).

Internal server error in receiver Internal server error occurred in the receiver system (for example, HTTP 500 error).

Others – not further qualified Escalation category has not been further qualified.

3. Save the changes.

4.9 Define Message Transformers

Message transformers enable you to convert messages in one format to another.

4.9.1 Configure CSV to XML Converter

Prerequisites

● You have logged into your customer workspace in SAP HCI web tooling.● You are editing the integration flow in the editor.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 271

Page 272: Developer's Guide: Managing Integration Content - help.sap.com

Context

The CSV to XML converter converts content in CSV format into XML format.

You use this procedure to configure CSV to XML converter.

Procedure

1. In the palette, choose Converter CSV to XML Converter .2. Place the CSV to XML converter in the integration process and define the message path.3. Choose CSV to XML Converter and provide values in fields based on description in table.

Table 110:

Field Description

XML Schema Choose Browse. Select the XML schema you want to use.

Optionally, you can also upload the XML schema from your local file system by choosing Upload from File System.

Path to Target Element in XSD XPath in the XML schema file where the content from CSV file has to be placed.

Record Marker in CSV The record in CSV file that indicates the entry which the converter has to consider as the starting point of the con­tent.

NoteIf you do not provide a value for this field, all the re­cords in the CSV file are considered for conversion

Field Separator in CSV Select the character from dropdown list that is used as the field separator in CSV file.

4. Save or deploy the configuration.

272P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 273: Developer's Guide: Managing Integration Content - help.sap.com

4.9.2 Configure XML to CSV Converter

Prerequisites

● You have logged into your customer workspace in SAP HCI web tooling.● You are editing the integration flow in the editor.

Context

The XML to CSV converter converts content in XML format into CSV format.

You use this procedure to configure XML to CSV converter.

Procedure

1. In the palette, choose Converter XML to CSV Converter .2. Place the XML to CSV converter in the integration process and define the message path.3. Choose XML to CSV Converter and provide values in fields based on description in table.

Table 111:

tab Page Field Description

XML to CSV Converter Path to Source Element Path to the source element in the XML file

Field Separator in CSV Select the character that you want to use as the field separator in CSV file from dropdown list

Field Names as Headers in CSV Select this checkbox if you want to use the field names as the headers in CSV file

Advanced Include Parent Element Select this checkbox if you want to in­clude the parent element of the XML file in CSV file

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 273

Page 274: Developer's Guide: Managing Integration Content - help.sap.com

tab Page Field Description

XPath of master record identifier (en­abled only if you select Include Parent Element checkbox)

Xpath of the master record identifier in CSV file

Include Attribute Values Select this checkbox if you want to in­clude attribute values in the CSV file

4. Save or deploy the configuration.

4.9.3 Define the XML-to-JSON Converter

The XML-to-JSON converter enables you to transform messages in XML format to JSON format.

Context

The conversion from XML to JSON format and JSON to XML format follows the following rules:

● An element is represented as a JSON member whose name is the concatenation of the JSON prefix corresponding to the XML namespace, the JSON delimiter, and the element name. If the element has no namespace, then no prefix or JSON delimiter is added to the JSON name.

● An attribute is represented as a JSON member whose name is the concatenation of '@' , the JSON prefix corresponding to the XML namespace, the JSON delimiter, and the attribute name. If the attribute has no namespace, then no prefix or JSON delimiter is added to the JSON name.

● An element with no characters or child elements is represented by "element" : "" .● Multiple elements with the same name are represented by an array. For example, <A>a1</A><A>a2</A>

is transformed to “A”:[“a1”,”a2”].● The value of a complex element (with attributes, for example) is represented by a separate member

"$":"value" .

The conversion from XML to JSON format follows the following rules:

● Elements with mixed content (for example, <A>mixed1_value<B>valueB</B>mixed2_value</A>) are not supported. You will get incorrect results for XML to JSON: {"A":{"B":"valueB","$":"mixed1_valuemixed2_value"}}.

● No namespace declaration is written into the JSON document.● Tabs, spaces, and new lines between elements and attributes are ignored.● If you have an element with a namespace but no XML prefix whose namespace is not contained in the

XML-Namespace-to-JSON-Prefix map, you get an exception: <A xmlns="http://test"/> -> IllegalStateException Invalid JSON namespace: http://test.

274P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 275: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. Launch SAP HCI Spaces by accessing the URL provided by SAP.2. Choose the Design tab.3. Select the required integration package.4. In the Package content view, choose the integration flow you want to edit.5. In the Integration Package Editor page, choose Edit.6. In the graphical editor of integration flow, choose the XML-to-JSON Converter element..7. Define the parameters to convert the XML data format to JSON data format.

Table 112:

Option Description

Name Enter the name of the converter.

JSON Output Encoding Enter the JSON output encoding. The default value is from header or property.

If you select from header or property, the converter tries to read the encoding from the message header or ex­change property CamelCharsetName. If there is no value defined, UTF-8 is used.

XML Namespace (only if the option Namespace Mapping is selected)

If you select from header or property, the converter tries to read the encoding from the message header or ex­change property CamelCharsetName. If there is no value defined, UTF-8 is used.

JSON Prefix Separator (only if the option Namespace Mapping is selected)

Enter the JSON prefix separator to be used to separate the JSON prefix from the local part. The value used must not be used in the JSON prefix or local name.

The following characters are allowed: colon(:), comma(,), dot(.), pipe(|), semicolon(;), and space.

Suppress JSON Root Element Choose this option to create the JSON message without the root element tag.

8. Specify whether to enable Streaming or not.

You can specify whether the whole XML document or only specified XML elements are to be presented by JSON arrays.

Table 113:

All All elements are presented as JSON arrays.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 275

Page 276: Developer's Guide: Managing Integration Content - help.sap.com

Specific Ones Only the specified elements will be represented as JSON arrays, the others as JSON objects.

NoteA JSON object is an unordered set of name/value pairs that begins with { and ends with }. Each name is fol­lowed by : and the name/value pairs are separated by ,.

A JSON array is an ordered collection of values. An ar­ray begins with [ and ends with ]. Values are sepa­rated by ,.

Enter the absolute paths to the XML elements to be con­verted to JSON arrays. Specify all elements with a multi­plicity larger than one. Otherwise, it cannot be ensured that streaming will result in a valid JSON document.

Familiarize yourself with streaming in the XML-to-JSON converter, as documented in a separate topic.

9. If you want to continue editing the integration package without exiting, choose Save.10. Choose Save as version to retain a copy of the current artifact.11. If you want to terminate the creation of package, choose Cancel before saving it.

Related Information

Conversion Rules [page 276]How Streaming in the XML-to-JSON Converter Works [page 277]Example: JSON Message without Root Element Tag [page 279]Limitations for XML-to-JSON Conversion [page 280]

4.9.3.1 Conversion Rules

The conversion follows the following rules which are valid both for XML to JSON and JSON to XML, if not mentioned otherwise.

● An element is represented as JSON member whose name is the concatenation of JSON prefix corresponding to the XML namespace, JSON delimiter, and the element name. If the element has no namespace, no prefix and JSON delimiter is added to the JSON name.

● An attribute is represented as JSON member whose name is the concatenation of '@' , the JSON prefix corresponding to the XML namespace, JSON delimiter, and the attribute name. If the attribute has no namespace, no prefix and JSON delimiter are added to the JSON name.

● An element with no characters or child elements is represented by "element" : ""

276P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 277: Developer's Guide: Managing Integration Content - help.sap.com

● An element with multiple child elements of the same name is represented by an array. This also holds if between the children with the same name other children with another name reside.Example: <root><childA>A1</childA><childB>B</childB><childA>A2</childA></root> is transformed in the non-streaming case to {"root":{"childA":["A1","A2"],"childB":"B"}}, which means that the order of the children is not preserved.In the streaming case, the result is: {"root":{"childA":["A1"],"childB":"B","childA":["A2"]"}}, which means that a non-valid JSON document is created because the member "childA" appears twice.

● The value of a complex element (having attributes for example) is represented by a separate member "$":"value".

● Only for XML to JSON: Elements with mixed content (for example. <A>mixed1_value<B>valueB</B>mixed2_value</A>) are not supported. Currently you get wrong results for XML to JSON: {"A":{"B":"valueB","$":"mixed1_valuemixed2_value"}} in the non-streaming case or {"A":"$":mixed1_value","B":"valueB","$":"mixed2_value"}} in the streaming case.

● Only for XML to JSON: All element/attribute values are transformed to JSON string.● Only for XML to JSON: No namespace declaration is written into the JSON document.● Only for XML to JSON: Tabs, spaces, new lines between elements and attributes are ignored. However, a

white space value of an element with simple type is represented in JSON; example <A> </A> is represented by "A":" ".

● Special case (only for XML to JSON): If you have an element with namespace but without XML prefix whose namespace is not contained in the XML-namespace-to-Json-prefix map, then you get an exception: <A xmlns="http://test"/> leads to IllegalStateException Invalid JSON namespace: http://test.This is not the case if you choose the streaming option. With streaming the namespace is just ignored: <A xmlns="http://test"/>v</A> leads to {"A":"v"}.

● Special case (only for XML to JSON): If you have an element with namespace and XML prefix whose namespace is not contained in the XML-namespace-to-Json-prefix map then the XML prefix is used as JSON prefix <ns:A xmlns:ns:="http://test"/> leads to "ns.A":"" (if JSON delimiter is '.').

● Special case (only for JSON to XML): a member with JSON null value is transformed to empty element; example: "C":null is converted to <C/>.

● Special case (only for JSON to XML): Conversion of "@attr":null to XML is not supported (you get a NullPointerException, since cluster version 1.21 you get a JsonXmlException).

● Only for JSON to XML: The result XML document is encoded in UTF-8 and gets the XML header "<?xml version='1.0' encoding='UTF-8'?>".

● Only for JSON to XML: The content of the XML-Namespace-to-JSON-Prefix map is transformed to namespace prefix declarations on the root element.

● Special case (only for JSON to XML): If for a JSON prefix no XML Namespace is defined then the full member name with the prefix and JSON delimiter is set as element name: "p.A" leads to <p.A>.

4.9.3.2 How Streaming in the XML-to-JSON Converter Works

During streaming the XML document is processed in parts or segments:

The individual tags of an XML document are processed consecutively,irrespective of where in the overall structure the tag occurs and how often (multiplicity). This means that during the streaming process the

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 277

Page 278: Developer's Guide: Managing Integration Content - help.sap.com

converter cannot know if an element occurs in the structure more than once. In other words, during the streaming process the object model that reflects the overall structure of the XML document (and, therefore, also all information that can only be derived from the object model, like the multiplicity of elements) is not in place. This is different to the non-streaming case, where the converter can calculate the multiplicity of the XML elements from the object model of the complete XML document. The multiplicity is needed to create a correct JSON document. Elements whose multiplicity is greater than one must be transformed to a JSON member with an array. For example, you may think that for the XML document <root><B>b1</B><B>b2</B></root>, you create the JSON document {“root”:{“B”:”b1”,”B”:”b2”}}. However, this JSON document is invalid, because the member name “B” occurs twice on the same hierarchy level.

To ensure nevertheless a conversion that creates correct JSON documents during streaming, you need to either manually provide the information about which XML elements are multiple in advance, or decide that every XML element is converted to a JSON array (when configuring the converter in the Integration Designer).

To illustrate this behavior, let’s consider how the following simple XML structure has to be converted to JSON:

<root> <A>a</A> <B>b1</B> <B>b2</B> <C>c</C> </root>

Note that the element root/B occurs twice (multiplicity = 2).

Without streaming, the converter would produce the following JSON structure:

{"root":{"A":"a","B":["b1","b2"],"C":"c"}}

As expected, the XML element root/B would transform into a JSON member with an array as value, where the array has two values (b1 and b2) – according to the multiplicity of root/B. Note that a JSON array is indicated by the following type of brackets: [ … ].

With streaming with all elements to JSON arrays, the converter would produce the following JSON structure:

{"root":[{"A":["a"],"B":["b1","b2"],"C":["c"]}]}

All XML elements are transformed into members with a JSON array as value.

With streaming and specific elements as arrays (where root/A and root/B are specified), the converter would produce the following JSON structure:

{"root":{"A":["a"],"B":["b1","b2"],"C":"c"}}

An array is produced only for the XML elements root/A and root/B, but not for root/C.

With streaming and specific elements as arrays (where only root/A is specified), the converter would produce the following invalid JSON structure:

{"root":{"A":["a"],"B":"b1",”B”:"b2","C":"c"}}

278P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 279: Developer's Guide: Managing Integration Content - help.sap.com

4.9.3.3 Example: JSON Message without Root Element Tag

Examples and Special Cases of JSON Message without Root Element Tag

The following examples apply to XML-to-JSON conversion:

ExampleThe following example shows the transformation from XML to JSON (option Suppress JSON Root Element is selected).

Input XML Message

<root> <A>a</A> <B>b</B> <C>c</C> <D>d</D> </root>

Output JSON Message

{ "A": "a", "B": "b", "C": "c", "D": "d" }

Special Cases

Input XML Message: Root Element with Simple Value

<root>v</root>

Output JSON Message

"v"

Input XML Message: Root Element with no Value

<root></root>

Output JSON Message

""

Input XML Message: Root Element with Simple Value (options Suppress JSON Root Element, Steaming All are selected)

<root><A>a<A><B><C>c</C></B></root>

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 279

Page 280: Developer's Guide: Managing Integration Content - help.sap.com

Output JSON Message

{"A":["a"],"B":[{"C":["c"]}]}with dropRootElement=false{"root":{["A":["a"],"B":[{"C":["c"]}]]}}

4.9.3.4 Limitations for XML-to-JSON Conversion

The following limitations apply to XML-to-JSON and JSON-to-XML conversion:

● The XML element and attribute names must not contain any delimiter characters, because the delimiter is used in JSON to separate the prefix from the element name.

● Elements with mixed content are not supported.

The following limitations apply only to XML-to-JSON conversion:

● XML comments (<!-- comment -->) are not represented in the JSON document; they are ignored.● DTD declarations are not represented in the JSON document; they are ignored.● XML processing instructions are not represented in the JSON document; they are ignored.● No conversion to JSON primitive types for XML to JSON. All XML element/attribute values are

transformed to a JSON string.● Entity references (except the predefined entity references &amp; &lt; &gt; &quot; &apos;) are not

represented in the JSON document; they are ignored.● If a sibling with another name resides between XML sibling nodes with the same name, then the order of

the siblings is not kept in JSON in the non-streaming case, because siblings with the same name are represented by one array. Example: <root><childA>A1</childA><childB>B</childB><childA>A2</childA></root> leads to {"root":{"childA":["A1","A2"],"childB":"B"}}.In the streaming case this leads to an invalid JSON document: {"root":{"childA":["A1"],"childB":"B","childA":["A2"]}.

● If you have an element with a namespace but no XML prefix whose namespace is not contained in the XML-namespace-to-JSON-prefix map, you get an exception: <A xmlns="http://test"/> -> IllegalStateException Invalid JSON namespace: http://test.If you choose the streaming option, the namespace is ignored: <A xmlns="http://test"/>v</A> leads to {"A":"v"}.

The following limitations apply only to JSON-to-XML conversion:

● Conversion of "@attr":null to XML is not supported. You get a NullPointerException; as of cluster version 1.21 you get a JsonXmlException.

● JSON member names must not contain in their local or prefix part any characters that are not allowed for XML element/attribute names (for example, space or column (':') are not allowed). XML element/attribute names are of type NCName (see http://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-NCName ).

● JSON texts that start with an array (for example, [{"a":{"b":"bvalue"}}] ) are not supported. The JSON text must start with a JSON object such as {{"a":{"b":"bvalue"}}}. A javax.xml.stream.XMLStreamException is thrown. As of cluster version 1.21, a JsonXmlException is thrown.

280P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 281: Developer's Guide: Managing Integration Content - help.sap.com

● The root JSON object must contain exactly one member. If the root JSON object contains more than one member (for example, {"a":"avalue","b":"bvalue"}), a javax.xml.stream.XMLStreamException is thrown. If the root JSON object is empty ({}), a javax.xml.stream.XMLStreamException is thrown. As of cluster version 1.21, a JsonXmlException or IllegalStateException (for {}) is thrown.

● If no XML namespace is defined for a JSON prefix, the full member name with the prefix and JSON delimiter is set as the element name: "p:A" -> <p:A>.

4.9.4 Define Content Modifier

Prerequisites

● You have logged into your customer workspace in SAP HCI web tooling.● You are editing the integration flow in the editor.

Context

You use the content modifier to modify the content of incoming message by providing additional information in the header or body of the message.

Procedure

1. If Content Modifier element is present in the integration flow, choose it to edit properties.2. If you want to add Content Modifier to the integration flow, perform the following substeps:

a. In the palette, choose Modifier .b. Place Content Modifier in integration process and define message path.

3. Choose Message Header tab.4. Choose Add.5. In Name column, enter a name.6. In Type column, select value from dropdown list based on type of header information you want to add to

the headers or set values of existing headers in incoming message.7. In Value column, define value for the header.8. Choose Message Body tab.9. Enter the content expected in the outgoing message.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 281

Page 282: Developer's Guide: Managing Integration Content - help.sap.com

RememberEnsure that you set a placeholder for the existing header information.

10. Choose Exchange Property tab.11. Choose Add to add a property.12. In Name column, define the property name.13. In Type column, select the type of property you want to define from dropdown list.14. In Value column, define a value for the property.15. Save or deploy the changes.

ExampleSuppose the incoming message has the following information:

<order> <book> <BookID>A1000</BookID><Count>5<Count></book></order>

In the Body tab of the Content Modifier, you specify the content expected in the outgoing message. Keep a placeholder for the header information to modify the content as shown below:

<invoice> <vendor>${header.vendor}</vendor>${in.body}<deliverydate>${header.date}</delivery></invoice>

In the Header tab of the Content Modifier, enter the following:

Table 114:

Name Type Value

vendor constant ABC Corp

delivery date constant 25062013

The output message would look like this:

<invoice> <vendor>ABC Corp</vendor> <order> <book> <BookID>A1000</BookID><Count>5<Count></book></order><deliverydate>25062013</deliverydate></invoice>

282P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 283: Developer's Guide: Managing Integration Content - help.sap.com

4.9.5 Define Script

Context

You use this task to execute custom java script or groovy script for message processing.

Procedure

1. In the palette, choose Message Transformers Script .2. Choose Groovyscript or Javascript.3. In the Properties view, specify the script step name in Name.4. In the Properties view, specify a custom function that will take the “message” object as the argument in

Script Function.

In the script you require Script Function, which will be executed at runtime.5. Add or modify Header, Body, and Property by using the interfaces below on the "message" object.

1. You can use the following interfaces for Header:○ public java.util.Map<java.lang.String,java.lang.Object> getHeaders()○ public void setHeaders(java.util.Map<java.lang.String,java.lang.Object> exchangeHeaders)○ public void setHeader(java.lang.String name, java.lang.Object value)

2. You can use the following interfaces for Body:○ public java.lang.Object getBody()○ public void setBody(java.lang.Object exchangeBody)○ public java.lang.Object getBody(java.lang.String fullyQualifiedClassName)

NoteHCI framework supports conversion of payload into the following formats:○ String○ InputStream○ byte[]

To convert the payload into String or InputStream use the following fullyQualifiedClassName:○ java.lang.String○ java.io.InputStream

To convert the payload into byte[] use the following:○ For groovy script - def body = message.getBody(java.lang.String) as byte[]○ For java script - var body = [message.getBody()]

3. You can use the following interfaces for Property:○ public java.util.Map<java.lang.String,java.lang.Object> getProperties()

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 283

Page 284: Developer's Guide: Managing Integration Content - help.sap.com

○ public void setProperties(java.util.Map<java.lang.String,java.lang.Object> exchangeProperties)○ public void setProperty(java.lang.String name, java.lang.Object value)

Note○ You should not add or modify a Property name starting with sap.○ If no Script Function is specified in the script flow step, the Script Function name will be

processData by default.

6. Save the changes.

Note○ The script should be saved in the src.main.resources.script folder.○ In the Properties view, you can also choose Browse to select java scripts or groovy scripts for

custom processing.○ You can also store external jar(s) in src.main.resources.lib. You can then invoke functions from

these external jar(s) in the script.

Related Information

Setting SOAP Headers [page 284]

4.9.5.1 Setting SOAP Headers

You can use Groovy programming language (Groovy script) to set SOAP headers.

The following example shows a SOAP message with a SOAP header.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <AuthHeader soap:actor="actor_test" soap:mustUnderstand="1" xmlns="http://www.Test.com/"> <ClientId>username</ClientId>mustUnderstand <Password>password</Password> </AuthHeader> </soap:Header> <soap:Body> <test:TestMessage xmlns:test="http://hci.sap.com/ifl/test"> <MessageContent>customer1</MessageContent> </test:TestMessage> </soap:Body> </soap:Envelope>

To set such a SOAP header, use the following script.

import com.sap.gateway.ip.core.customdev.util.Message; import java.util.ArrayList;import java.util.List;import javax.xml.namespace.QName;

284P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 285: Developer's Guide: Managing Integration Content - help.sap.com

import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.apache.cxf.binding.soap.SoapHeader;import org.w3c.dom.Document;import org.w3c.dom.Element;import com.sap.it.api.ITApiFactory;import com.sap.it.api.securestore.SecureStoreService;import com.sap.it.api.securestore.UserCredential;def Message processData(Message message) { // First fetch user name and password which must be entered into the SOAP header from the secure store service. // This is not necessary if your SOAP header does not require data from the secure store service. def service = ITApiFactory.getApi(SecureStoreService.class, null); def credential = service.getUserCredential("partner1_credential_alias"); if (credential == null){ throw new IllegalStateException("No credential found for alias 'partner1_credential_alias'"); } String userName = credential.getUsername(); String password = new String(credential.getPassword()); // Create Soap Header as DOM Element; the attributes "actor" and "mustUnderstand" must not be added; // these attributes can be added later see below. // The following lines create the DOM Element. //<AuthHeader xmlns=http://www.Test.com/><ClientId>"+userName+"</ClientId><Password>"+password+"</Password></AuthHeader>" DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); dbf.setIgnoringElementContentWhitespace(true); dbf.setValidating(false); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.newDocument(); Element authHeader = doc.createElementNS("http://www.Test.com/", "AuthHeader"); doc.appendChild(authHeader); Element clientId = doc.createElementNS("http://www.Test.com/", "ClientId"); clientId.setTextContent(userName); authHeader.appendChild(clientId); Element passwordEl = doc.createElementNS("http://www.Test.com/", "Password"); passwordEl.setTextContent(password); authHeader.appendChild(passwordEl); // Create SOAP header instance. SoapHeader header = new SoapHeader(new QName(authHeader.getNamespaceURI(), authHeader.getLocalName()), authHeader); header.setActor("actor_test"); header.setMustUnderstand(true); // Add the SOAP header to the header list and set the list to the message header "org.apache.cxf.headers.Header.list". List headersList = new ArrayList<SoapHeader>(); headersList.add(header); message.setHeader("org.apache.cxf.headers.Header.list", headersList); return message; }

4.10 Define Message Routers

Message routers enable you to define the message path. You can also perform operations like splitting the message based on configured conditions and routing the split messages to different message paths.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 285

Page 286: Developer's Guide: Managing Integration Content - help.sap.com

4.10.1 Define General Splitter

Prerequisites

● You have logged into your customer workspace in SAP HCI web tooling.● You are editing the integration flow in the editor.

Context

The general splitter breaks down a composite message containing ‘n’ number of messages into ‘n’ individual messages. Each individual message is enveloped by the same elements that enveloped the composite message.

Procedure

1. In the palette, choose Splitter General Splitter .2. Place General Splitter in integration process and define the message path.3. Choose Splitter and provide values in fields based on description in table.

286P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 287: Developer's Guide: Managing Integration Content - help.sap.com

Table 115:

Field Description

XPath Expression XPath to the split term. You can specify the absolute or relative path.

Note that only the following types of XPath expressions are supported:

○ Absolute XPath expressions, for exam­ple, /A/B/C/D

○ Relative XPath expressions, for example, //D

Note that each element with a namespace prefix has to be explicitly declared in the following form (example):

xmlns:ns:="http://test"

If there are multiple elements with a namespace prefix, add the additional namespace declarations after the XPath expression (separated by blank spaces).

Grouping The group size into which the composite message has to be split.

For example, if a message has 10 nodes and grouping is defined as 2, the message is split into 5 messages with 2 nodes each.

Timeout (in s) Maximum time in seconds the system will wait for the processing to complete before it is aborted.

Streaming Select this option if you want to stream the process of splitting a large composite message.

When you have activated streaming, the system starts al­ready processing parts (chunks) of the composite mes­sage even when the message has not been transferred entirely into the memory (of the runtime node).

When you have deactivated this option, the message first is transferred into the memory entirely, and thereafter is split and further processed. Deactivating streaming is more memory-intensive than activating this option.

Parallel Processing Select this checkbox if you want to enable processing of all the split messages at once.

Stop On Exception Select this option to stop message processing if an excep­tion occurs.

4. Save or deploy the configuration.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 287

Page 288: Developer's Guide: Managing Integration Content - help.sap.com

Related Information

General and Iterating Splitter [page 291]

4.10.2 Define Iterating Splitter

Prerequisites

● You have logged into your customer workspace in SAP HCI web tooling.● You are editing the integration flow in the editor.

Context

The iterative splitter splits a composite message into a series of smaller messages without copying the enveloping elements of the composite message.

Procedure

1. In the palette, choose Splitter General Splitter .2. Place General Splitter in integration process and define the message path.3. Choose Splitter and provide values in fields based on description in table.

Table 116:

Field Description

Expression Type Specify the expression type you want to use to define the split point (the element in the message structure below which the message is to be split). You can choose Token or XPath.

Token (enabled only if you choose Token in Expression Type field)

The keyword or token that should be used as a reference for splitting the composite message

XPath (enabled only if you choose XPath in Expression Type field)

Absolute or relative XPath of the node to be used as a ref­erence for splitting the message

288P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 289: Developer's Guide: Managing Integration Content - help.sap.com

Field Description

Grouping The group size into which the composite message has to be split.

For example, if a message has 10 nodes and grouping is defined as 2, the message is split into 5 messages with 2 nodes each.

Timeout (in s) Maximum time in seconds the system will wait for the processing to complete before it is aborted.

Streaming Select this option if you want to stream the process of splitting a large composite message.

When you have activated streaming, the system starts al­ready processing parts (chunks) of the composite mes­sage even when the message has not been transferred entirely into the memory (of the runtime node).

When you have deactivated this option, the message first is transferred into the memory entirely, and thereafter is split and further processed. Deactivating streaming is more memory-intensive than activating this option.

Parallel Processing Select this checkbox if you want to enable processing of all the split messages at once.

Stop On Exception Select this option to stop message processing if an excep­tion occurs.

4. Save or deploy the configuration.

Related Information

General and Iterating Splitter [page 291]

4.10.3 Define PKCS#7/CMS Splitter

Prerequisites

● You have logged into your customer workspace in SAP HCI web tooling.● You are editing the integration flow in the editor.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 289

Page 290: Developer's Guide: Managing Integration Content - help.sap.com

Context

You use PKCS#7/CMS splitter when you want to break down PKCS7 Signed Data message into two files that contain signature and content respectively.

Procedure

1. In the palette, choose Splitter General Splitter .2. Place General Splitter in integration process and define the message path.3. Choose Splitter and provide values in fields based on description in table.

Table 117:

Field Description

Payload File Name Name of the file that should contain the payload after the splitting step

Signature File Name Name of the file (extension .sig) that should contain the signature after the splitting step

Wrap by Content Info Select if you want to wrap PKCS#7 signed data containing the signature into PKCS#7 content.

PayloadFirst Select if you want the payload to be the first message re­turned.

BASE64 Payload Select if you want to encode the payload with BASE64 en­coding scheme after splitting.

BASE64 Signature Select if you want to encode the signature using BASE64 encoding scheme after splitting.

4.10.4 Define Sequential Multicast

Prerequisites

● You have accessed the customer workspace in SAP HCI web tooling.● You are editing the integration flow containing local integration process element.

290P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 291: Developer's Guide: Managing Integration Content - help.sap.com

Context

You can use the sequential multicast element to send copies of the same message to multiple routes. This allows you to perform multiple operations on the same message in a single integration process. Without multicast, you needed multiple integration processes to perform this task.

In sequential multicast, you define the sequence in which the system initiates message transfer to the different routes.

NoteYou can only edit the properties of sequential multicast and the integration elements of the integration flow that support editing. Modeling palette is not available for integration flows containing sequential multicast.

Procedure

1. Choose the sequential multicast element you want to configure.

2. Use and buttons to change the sequence order.3. Save or deploy the configuration.

4.10.5 General and Iterating Splitter

The two splitter types General Splitter and Iterative Splitter behave differently in their handling of the enveloping elements of the input message.

The General Splitter splits a composite message comprising of N messages into N individual messages, each containing one message with the enveloping elements of the composite message. We use the term enveloping elements to refer to the elements above and including the split point.

The Iterative Splitter splits a composite message into a series of messages without copying the enveloping elements of the composite message.

The following figure illustrates the behavior of both splitter types; in both cases an input message comprising four items is split into individual messages.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 291

Page 292: Developer's Guide: Managing Integration Content - help.sap.com

4.10.6 Define Gather

Prerequisites

● You have accessed the customer workspace in SAP HCI web tooling.● You are editing the integration flow containing

Context

The Gather step enables you to merge messages from more than one route in an integration process. You define conditions based on the type of messages that you are gathering using the Gather step. You can choose to gather:

● XML messages of different format● XML messages of the same format● Plain text messages

Based on this, you choose the strategy to combine the two messages.

292P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 293: Developer's Guide: Managing Integration Content - help.sap.com

● For XML messages of the same format, you can combine without any conditions (multimapping format) or specify the XPath to the node at which the messages have to be combined

● For XML messages of different formats, you can only combine the messages For plain text messages, you can only specify concatenation as the combine strategy

● Specify valid xpath expression that includes namespace prefixes if incoming payload contains namespace declarations, including default namespace declarations

If your incoming payload contains namespace declarations including default namespace, ensure that you specify xpath with namespace prefixes. Also ensure that the namespace prefix mapping is defined in the runtime configuration. If the xpath you have defined does not exist in any of the branches of the incoming XML, the scenario fails with an exception.

Consider the following XML:

Sample Code

<root xmlns="http:defaultnamespace.com"> <f:table xmlns:f="http://www.w3schools.com/furniture"> <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table> <table> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table> </root>

f and d are the prefixes defined in the Namespace Mapping field of Runtime Configuration and mapped to the namespaces http://www.w3schools.com/furniture and http:defaultnamespace.com respectively. Examples of valid xpaths for the above XML are:

● //f:table● /d:root/f:table● /d:root/d:table

NoteYou can only edit the properties of gather and the integration elements of the integration flow that support editing. Modeling palette is not available for integration flows containing gather.

Procedure

1. Choose the gather element you want to configure.2. In Incoming Format dropdown list, select value based on description in table.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 293

Page 294: Developer's Guide: Managing Integration Content - help.sap.com

Value Description

XML (Same Format) If messages from different routes are of the same format

XML (Different Format) If messages from different routes are of the different for­mat

Plain Text If messages from different routes are of the plain text for­mat

3. In Aggregation Algorithm dropdown list, select value based on description in table.

Incoming Format Aggregation Algorithm Description Additional Fields Description

XML (Same Format) Combine Combine the incoming messages without any conditions. The messages are combined in Multimapping format.

NoteIn case you are using the mapping step to map the output of this strategy you can have the source XSD in the LHS and specify the Occurrence as 0..Unbounded.

NA NA

Combine at XPath Combine the incoming messages at the specified XPath

Combine from Source (XPath)

XPath of the node that you are using as reference in the source message to retrieve the information.

Combine at Target (Path)

Path to node which would act as the root for combined message

XML (Different Format)

Combine Combine the incoming messages

NA NA

294P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 295: Developer's Guide: Managing Integration Content - help.sap.com

Incoming Format Aggregation Algorithm Description Additional Fields Description

without any conditions in multi mapping format.

NoteIn case you are using the mapping step to map the output of this strategy you can add the XSD’s from the different multicast branches one after another in LHS. The sequence of the messages is important and so this strategy makes sense only with the sequential multicast.

Plain Text Concatenate Concatenate the information from the different sources one after another

NA NA

4. Save or deploy the changes.

4.11 Define Security Elements

Security elements in the integration flow enable you to encrypt, decrypt, sign and verify messages. This ensures that the message is secure and can only be accessed by the intended recipient. Encryption also prevents non-repudiation of messages during message exchange.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 295

Page 296: Developer's Guide: Managing Integration Content - help.sap.com

4.11.1 Sign the Message Content with PKCS#7/CMS Signer

Context

You work with the PKCS#7/CMS signer to make your identity known to the participants and thus ensure the authenticity of the messages you are sending on the cloud. This task guarantees your identity by signing the messages with one or more private keys using a signature algorithm.

The following prerequisites must be met:

● You have logged into your customer workspace in HCI web tooling.● You are editing the integration flow in the editor.

Procedure

1. In the palette, choose Signer PKCS7#7 Signer .2. Place PKCS7#7 Signer in integration process and define the message path.3. In Name field, provide a name for the element.4. In the Properties view, enter the details to sign the incoming message with one or more signatures.

Table 118: Parameters and Values of PKCS#7/CMS Signer

Parameters Description

Name Name for the signer step

Block Size (in bytes) Enter the size of the data that is to be encoded.

If you enter a value equal to or less than 0, the whole data is encoded.

Include Content in Signed Data You can choose to include the original content that is to be signed in the Signed Data element. This Signed Data element is written to the message body. Otherwise, you can choose to include the Signed Data in the SapCmsSignedData header and only keep the original content in the message body.

296P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 297: Developer's Guide: Managing Integration Content - help.sap.com

Parameters Description

Encode Signed Data with Base64 You can also Base64-encode the Signed Data in either the message body or the message header, to further protect it during message exchange.

NoteWhen you Base64-encode the Signed Data, you en­code either the message header or body, depending on where the Signed Data is placed. When verifying the message, make sure you specify which part of the message (header or body) was Base64-encoded.

Signer Parameters The following parameters can be defined:

○ Private Key Alias○ Signature Algorithm○ Include Certificates○ Include Signing Time

5. Save the changes.

4.11.2 Encrypt and Sign the Message Content with PKCS#7/CMS

Context

You perform this task to protect the message content from being altered while it is being sent to other participants on the cloud, by encrypting the content. In the integration flow model, you configure the Encryptor by providing information on the public key alias, content encryption algorithm, and secret key length. The encryptor uses one or more receiver public key aliases to find the public key in the keystore. The encryption process uses a symmetric key of specified length for content encryption. The symmetric key is encrypted by the public recipient key with the cipher. The encryption is determined by the type of Content Encryption Algorithm that you select. The encrypted content and the receiver information containing the symmetric encryption key are placed in the message body.

In addition to encrypting the message content, you can also sign the content to make your identity known to the participants and thus ensure the authenticity of the messages you are sending. This task guarantees your identity by signing the messages with one or more private keys using a signature algorithm.

The following prerequisites must be met:

● You have logged into your customer workspace in HCI web tooling.● You are editing the integration flow in the editor.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 297

Page 298: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. In the palette, choose Encryptor PKCS7 Encryptor .2. Place PKCS7 Encryptor in integration process and define the message path.3. Select the PKCS7 Encryptor element.4. In the Properties view, specify the general settings for encryption.

Table 119:

Name Enter a name for the signer. It must consist of alphanu­meric ASCII characters or underscores and start with a letter. The minimum length is 3, the maximum length is 30.

Block Size (in bytes) Enter the size of the data that is to be encoded.

If you enter a value equal to or less than 0, the whole data is encoded.

Encode Body with Base64 Select this option if the message body will be base64-en­coded.

Signatures in PKCS7 Message Select one of the following options:

○ Enveloped Data OnlySelect this option if you want to apply encryption only.

○ Signed and Enveloped DataSelect this option if you want to apply both encryp­tion and signing.

5. Specify the settings for the encryption process (under Encryption).

Table 120:

Content Encryption Algorithm Specify the algorithm that is to be used to encrypt the payload.

Secret Key Length Specify the key length.

The offered key lengths depend on the chosen encryption algorithm.

Receiver Public Key Alias Specify one or more aliases.

You use the alias to select the public key from the key­store.

6. Specify the settings for the signing process under Signature (only if you selected Signed and Enveloped Data for Signatures in PKCS7 Message).

For each private key alias (specified under Signer Parameters), you define the following parameters:

298P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 299: Developer's Guide: Managing Integration Content - help.sap.com

Table 121:

Signature Algorithm Specify the signature (digest) algorithm.

Include Certificates If you activate this option (value true), the signer's certifi­cate chain will be added to the SignedAndEnvelopedData object of the message.

7. Save the changes.8. To save the configuration of the encryptor as a template, choose Save as Template from the context menu

of the Encryptor element.

NoteWhen you save the configuration of the Encryptor element as a template, the tool stores the template in the workspace as <ElementTemplateName>.fst.

4.11.3 Define PGP Encryptor

Prerequisites

● You have logged into your customer workspace in SAP HCI web tooling.● You are editing the integration flow in the editor.

Context

You use the PGP Encryptor to encrypt or sign and encrypt the payload using OpenPGP standard.

Procedure

1. In the palette, choose Encryptor PGP Encryptor .2. Place PGP Encryptor in integration process and define the message path.3. In Name field, provide a name for the element.4. If you want to sign the payload with a signature, in Signatures field, choose Including.5. In Encryption section, provide values in fields based on description in table.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 299

Page 300: Developer's Guide: Managing Integration Content - help.sap.com

Table 122:

Field Description

Content Encryption Algorithm In the dropdown list, select the algorithm you want to use to encrypt the payload.

Secret Key Length Enter the secret key length.

NoteThe length of the secret key depends on the encryp­tion algorithm that you choose.

Compression Algorithm Select the algorithm you want to use to compress the payload.

Armored Select if you want the output to be radix 64 (base64) en­coded with additional header.

Integrity protected Data Packet Select if you want to create an Encrypted Integrity Pro­tected Data Packet. This is a specific format where an ad­ditional hash value is calculated (using SHA-1 algorithm) and added to the message.

This increases the message security level.

Encryption User ID of Key(s) from Public Keyring You can specify the encryption key user IDs (or parts of them). Based on this, system look for the public key in PGP public keyring.

You can specify multiple user IDs.

6. Save or deploy the configuration.

4.11.4 Define PGP Decryptor

Prerequisites

● You have logged into your customer workspace in SAP HCI web tooling.● You are editing the integration flow in the editor.

Context

You use the PGP Decryptor to decrypt a message using OpenPGP standards.

300P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 301: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. In the palette, choose Decryptor PGP Decryptor .2. Place PGP Decryptor in integration process and define the message path.3. In Name field, provide a name for the element.4. In Signatures dropdown list, select option based on description in table.

Table 123:

Option Description

None Expected Select if you do not expect a signature in the inbound message.

Optional Select if you are not sure of the inbound message con­taining a signature. This enables the decryptor to decrypt messages that contain signature and do not contain sig­nature.

Required Select if you are sure of the inbound message containing a signature.

5. If you have selected Optional or Required in Signatures field, choose to add signer user ID.

NoteThis field is disabled if you select None Expected in Signatures field.

6. Save or deploy the configuration.

4.11.5 Define PKCS7 Decryptor

Prerequisites

● You have logged into your customer workspace in SAP HCI web tooling.● You are editing the integration flow in the editor.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 301

Page 302: Developer's Guide: Managing Integration Content - help.sap.com

Context

You use the PKCS7 decryptor to decrypt messages from a participant on the cloud. You can also verify the authenticity of a signed message by verifying the signature of SignedAndEnvelopedData object.

Procedure

1. In the palette, choose Decryptor PKCS7 Decryptor .2. Place PKCS7 Decryptor in integration process and define the message path.3. In Name field, provide a name for the element.4. In Signatures dropdown list, select option based on description in table.

Table 124:

Option Description

Enveloped Data Only Select if you want decryptor to process only encrypted payloads.

Signed and Enveloped Data Select if you want decryptor to process payloads that are signed and encrypted.

Enveloped or "Signed and Enveloped" Data Select if you want decryptor to process both encrypted payloads and, encrypted and signed payloads.

5. If you expect the body of payload to be Base64 encoded, select Body is Base64 Encoded.

6. Choose Add to enter the public key alias of the expected senders.

Note○ You can add multiple aliases of all the expected senders.○ This option is enabled only if you have selected Signed and Enveloped Data or Enveloped or "Signed

and Enveloped" Data in Signatures field.

7. Save or deploy the configuration.

4.12 Define Message Persistence

302P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 303: Developer's Guide: Managing Integration Content - help.sap.com

4.12.1 Define Data Store Operations

You can use the transient data store to temporarily store messages.

Context

The transient data store (data store for sakes of simplicity) supports four types of operations:

Table 125: Data Store Operations

Operation Used to ...

Write Store the messages temporarily in the data store.

If you use a Write operation, you can store the messages in the data store by configuring the data store name and a unique Entry ID.

Delete Trigger the deletion of messages in the data store.

Select Fetch messages in bulk from the data store.

You can also specify the number of messages you fetch in each poll.

Get Fetch a specific message from the data store.

Procedure

1. In the palette, choose Data Store Operations .2. Position the cursor on the step and in the context menu select the operation.3. Specify the attributes of the data store operation. The set of attributes depends on the chosen operation.

Attribute Description

Data Store Name Specifies the name of the data store (maximum 20 characters, no white spaces).

The default data store name for variables is sap_global_store. You must not use this name for data store operations.

Visibility Defines if the data store is shared by all integration flows (deployed on the tenant) or only by one specific integration flow.

○ Global: Data store is shared across all integration flows deployed on the tenant.

○ Integration Flow: Data store is used by one integration flow.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 303

Page 304: Developer's Guide: Managing Integration Content - help.sap.com

Attribute Description

Entry ID (only for Write, Delete and Get operation)

Specify an entry ID that will be stored together with the message content.

Details for the entry ID are read from the incoming message. You can enter the following kind of expressions:

○ ${header.<name>} to generate the entry ID from the message header

○ ${xpath.<xpath>} to generate the entry ID from an element in the message indicated by an xPath expression

In the case of Write operations, if the Entry ID is not defined, the data store component generates an entry ID.

In the case of Delete and Get operations, you can explicitly define an Entry ID or pass header SapDataStoreId.

Retention Threshold for Alerting (only for Write operation)

Time period (in days) by which the messages have to be fetched before an alert is raised.

Expiration Period (only for Write operation)

Number of days after which the stored messages are deleted (default is 90 days).

The minimum value of Expiration Period should be at least twice that of Retention Threshold for Alerting.

Encrypt Stored Message (only for Write operation)

Select this option to encrypt the message in the data store.

Overwrite Existing Message (only for Write operation)

Select this option to overwrite an existing message in the data store.

Number of Polled Messages (only for Select operation)

Specifies number of messages to be fetched from the data store within one poll (default is 1).

Delete After Fetch (only for Select and Get operation)

Select this option to delete a message from the data store after successfully having fetched the message.

4. Save the changes.

4.12.2 Define Write Variables

Prerequisites

● You have logged into your customer workspace in SAP HCI web tooling.● You are editing the integration flow in the editor.

304P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 305: Developer's Guide: Managing Integration Content - help.sap.com

Context

You define variables and specify values to use them in integration flows to support message flow execution. You can also use these variables across multiple integration flows.

Procedure

1. If Write Variables element is present in the integration flow, choose it to define variables.2. If you want to add Write Variables to the integration flow, perform the following substeps:

a. In the palette, choose Write Variables .b. Place Write Variables in integration process and define message path.

3. Choose Add to add a new variable.4. In the Name column, enter variable name.5. In the Type column, select value from dropdown list based on description in table.

Table 126: Variable Types

Variable Type Description

Constant If you want variable to contain a constant

Header If you want variable to contain header information

Xpath If you want variable to contain Xpath

RememberYou need to enter a valid Java data type when you de­fine a variable of type Xpath

Expression If you want variable to contain an expression

Property If you want variable to contain property

6. In Value column, enter value for the variable.

NoteEnsure that the value matches the type of variable you are defining.

7. If you want the variable to be used in other integration flows, in Global column, set value to ON.8. Save or deploy the configuration.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 305

Page 306: Developer's Guide: Managing Integration Content - help.sap.com

4.13 Validating Message Payload against XML Schema in Web UI

The XML validator validates the message payload in XML format against the configured XML schema.

Prerequisites

You have the XML schema (XSD files) added in the .src.main.resources.xsd location of your integration flow project. If you do not have the specified location in your project, you need to create one first and then add the XSD files.

Context

You use this procedure to assign XML schema (XSD files) to validate the message payload in a process step. The validator checks the message payload against configured XML schema, and report discrepencies in message payload. If the validation fails, the HCI system stops the whole message processing by default.

Procedure

1. In the palette, choose XML Validator .2. Position the cursor on the step and right-click to create the XML Validator step.3. Select the XML Validator step.4. In the Name field, enter an appropriate validator flow step name.5. In the XML Schema field, select Browse.6. Choose an XSD file that you want to use to validate the format.

NoteYou can have references to other XSDs within the same project. XSDs residing outside the projects cannot be referred.

7. If you want to continue the processing even if the system encounters error while validating, then select the check box Prevent Exception on Failure.

8. Save the changes.

306P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 307: Developer's Guide: Managing Integration Content - help.sap.com

4.14 Define Additional Elements

4.14.1 Define Local Integration Process

You use the local integration process to simplify your integration process. You can break down the main integration process into smaller fragments by using local integration processes. You combine these fragments to achieve your main integration process.

Prerequisites

● You have accessed the customer workspace in SAP HCI web tooling.● You are editing the integration flow containing local integration process element.

Procedure

1. Choose the local integration process element you want to configure.2. If you want to provide a name for the local integration process element, in the Name field, enter name.3. If you want to configure the elements inside the local integration process, refer to the documentation

relevant to those elements.4. If you want to add the local integration process to a process call element, perform the following substeps:

a. Select the process call element in integration flow editor.b. In Local Integration Process field, choose Select.c. In Select Local Integration Process window, select the local integration process you want to assign to

the process call.5. Save or deploy the configuration.

4.15 Define External Call

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 307

Page 308: Developer's Guide: Managing Integration Content - help.sap.com

4.15.1 Define Content Enricher

Prerequisites

● You have accessed your customer workspace in SAP HCI web application.● You are editing the integration flow in integration flow editor.

Context

The content enricher adds the content of a payload with the original message in the course of an integration process. This converts the two separate messages into a single enhanced payload. This feature enables you to make external calls during the course of an integration process to obtain additional data, if any.

Consider the first message in the integration flow as the original message and the message obtained by making an external call during the integration process as the lookup message. You can choose between two strategies to enrich these two payloads as a single message:

● Combine● Enrich

Consider the following original and lookup messages.

Original Message

<EmployeeList> <Employee> <id>111</id> <name>Santosh</name> <external_id>ext_111</external_id> </Employee> <Employee> <id>22</id> <name>Geeta</name> <external_id>ext_222</external_id> </Employee></EmployeeList>

Lookup Message

<EmergencyContacts> <contact> <c_id>1</c_id> <c_code>ext_111</c_code> <isEmergency>0</isEmergency> <phone>9999</phone> <street>1st street</street> <city>Gulbarga</city> </contact> <contact> <c_id>2</c_id> <c_code>ext_111</c_code> <isEmergency>1</isEmergency>

308P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 309: Developer's Guide: Managing Integration Content - help.sap.com

<phone>1010</phone> <street>23rd Cross</street> <city>Chitapur</city> </contact> <contact> <c_id>3</c_id> <c_code>ext_333</c_code> <isEmergency>1</isEmergency> <phone>007</phone> <street></street> <city>Raichur</city> </contact></EmergencyContacts>

If you use Combine as the aggregation strategy, the enriched message appears in the following format.

Enriched Message

<multimap:messages xmlns:multimap=”http://sap.com/xi/XI/SplitAndMerge”> <message1><EmployeeList> <Employee> <id>111</id> <name>Santosh</name> <external_id>ext_111</external_id> </Employee> <Employee> <id>22</id> <name>Geeta</name> <external_id>ext_222</external_id> </Employee></EmployeeList></message1><message2><EmergencyContacts> <contact> <c_id>1</c_id> <c_code>ext_111</c_code> <isEmergency>0</isEmergency> <phone>9999</phone> <street>1st street</street> <city>Gulbarga</city> </contact> <contact> <c_id>2</c_id> <c_code>ext_111</c_code> <isEmergency>1</isEmergency> <phone>1010</phone> <street>23rd Cross</street> <city>Chitapur</city> </contact> <contact> <c_id>3</c_id> <c_code>ext_333</c_code> <isEmergency>1</isEmergency> <phone>007</phone> <street></street> <city>Raichur</city> </contact></EmergencyContacts></message2></multimap:messages xmlns:multimap=”http://sap.com/xi/XI/SplitAndMerge”>

Enrich offers you control on how you can merge the original and lookup message. In this example, we consider the node <ext_111> as the reference to enrich the original message with the lookup message.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 309

Page 310: Developer's Guide: Managing Integration Content - help.sap.com

Consequently, you specify the following values while configuring the Content Enricher.

Table 127:

Section Field User input

Original Message Path to Node Employees/Employee

Key Element location

Lookup Message Path to Node EmployeeLocations\emplocation

Key Element locationid

The enriched message will be in the following format.

<EmployeeList> <Employee> <id>111</id> <name>Santosh</name> <external_id>ext_111</external_id> <contact> <c_id>1</c_id> <c_code>ext_111</c_code> <isEmergency>0</isEmergency> <phone>9999</phone> <street>1st street</street> <city>Gulbarga</city> </contact> <contact> <c_id>2</c_id> <c_code>ext_111</c_code> <isEmergency>1</isEmergency> <phone>1010</phone> <street>23rd Cross</street> <city>Chitapur</city> </contact> </Employee> <Employee> <id>22</id> <name>Geeta</name> <external_id>ext_222</external_id> </Employee></EmployeeList>

In the enriched message, you can see the content of the lookup message after the node <location>.

RememberIf lookup message contains more than one entry of the key element, content enricher enhances the enriched message with all the entries referred by the key element in lookup message. In the above example, the lookup message contains the key element ext_111 in two places. You can see that the enriched message contains both the <contact> entries that the key element refers to.

Procedure

1. If you want to add Content Enricher to the integration process, perform the following substeps.

a. In the palette, choose Content Enricher .

310P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 311: Developer's Guide: Managing Integration Content - help.sap.com

b. Place Content Enricher in the integration process and define message path.2. Choose the Content Enricher.3. In Content Enrichment Type field, select value from dropdown list based on description in table.

Table 128:

Value Description

Combine Combines the original and lookup messages. You cannot define any rules for combining messages.

Enrich You can define the path to node and key element based on which the original message is enriched with the lookup message.

4. If you have selected Enrich as the Content Enrichment Type, provide values in fields based on description in table.

Table 129:

Section Field Description

Original Message Path to Node Path to the reference node in the orig­inal message

Key Element Key element in the original message

Lookup Message Path to Node Path to the reference node in the lookup message

Key Element Key element in the lookup message

5. Save or deploy the configuration.

4.15.2 Define a Send Step

You use a Send step type to configure a service call to a receiver system for scenarios and adapters where no reply is expected.

Context

You can use this step in combination with the following adapter types (for the channel between the send step and the receiver):

● Mail adapter● SFTP adapter

The following prerequisites must be met:

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 311

Page 312: Developer's Guide: Managing Integration Content - help.sap.com

● You have logged into your customer workspace in the web tooling.● You are editing the integration flow in the editor.

Procedure

1. In the Palette, choose External Call Send , and drop it inside the Integration Process pool.

Choose this icon in the palette to find this step type:

2. From the Palette, select Receiver (under Participants), and drop it outside the Integration Process pool.

Choose this icon in the palette to find this step type:

3. Create a connection between the Send step and the Receiver and configure the channel (use either an SFTP or a Mail adapter).

4.16 Define Error Configuration

You can define how to handle errors when message processing fails at runtime.

Context

Procedure

1. Open the Design tab and select the integration flow.2. Choose Error Configuration.3. Specify the following parameters.

312P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 313: Developer's Guide: Managing Integration Content - help.sap.com

Table 130: Error Configuration Parameters

Parameter Description

Error Handler Strategy Select one of the following options:

○ NoneWhen a message exchange could not be processed, no error handling strategy is used.

○ Raise ExceptionWhen a message exchange could not be processed, an exception is raised back to the sender.

○ Raise Exception (Deprecated)When a message exchange could not be processed and there is IDoc or SOAP SAP RM channel in the in­tegration flow, then an exception is raised back to the sender.

Return Exception to Sender When defining the error handling strategy for SOAP mes­sages, you can now define if in case of an exception the SOAP fault exception is to be returned to the sender. If you don’t select this option, an error message containing a URL is sent back to the sender instead. You can use this URL to access the message processing log.

4.17 Dynamic Parameters

You can define placeholders for attributes of certain adapters or step types. These attributes will then dynamically be 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.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 313

Page 314: Developer's Guide: Managing Integration Content - help.sap.com

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.

4.18 Viewing Mapping Details in Mapping Viewer

Context

You use this procedure to view mapping details of mappings appearing in an integration flow.

314P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 315: Developer's Guide: Managing Integration Content - help.sap.com

To familiarize yourself with the various features and behavior of elements in the mapping viewer, see the screenshot below:

Sections marked in above screenshot Description

1 Represents the source structure.

2 Represents the target structure.

3 If any of the entities (source or target) are not visible, a dotted line indicates the calculated position of the invisible entity.

4 Solid lines represent visible source and target entities.

5 If you select a line, both source and target entities come to the center in the table, and the line becomes solid.

6 This section represents the functions of the selected mapping.

Procedure

1. If you are viewing an integration flow from the Catalog view, follow the sub-steps below:a. Select an integration package.b. In the Artifacts table, select the integration flow name from the Name column.

NoteIn the Artifact table, the integration flow Type appears as Process Integration.

2. If you are viewing an integration flow from the My Projects view, select an integration flow from the AVAILABLE INTEGRATION FLOWS table

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 315

Page 316: Developer's Guide: Managing Integration Content - help.sap.com

3. In the integration flow diagram, select the mapping element.Hover over the different entities in the diagram to identify mapping elements.The mapping name appears as a link in the parameter section below the diagram.

4. To view the mapping in the mapping viewer, select the link with the mapping name.

NoteIf a mapping is invalid or unsupported, the mapping viewer does not open the mapping. If you hover over the mapping name link you can view the associated error message.

5. In the mapping viewer, select a source or target entity to highlight all mappings from that entity.You can select message mappings between source and target entities to view the functions associated with them. The application displays the functions in the Mapping Expression section.

4.19 Editing Mapping Details

Prerequisites

You have opened the mapping in mapping viewer.

Context

You use this procedure to edit the mappings of an integration flow in SAP HCI Web application.

Procedure

1. Choose the Design tab.2. Choose an integration package.3. To edit a mapping in mapping viewer, choose the required integration flow.4. Choose Edit.5. To add a mapping , connect source elements to target elements using connectors.

NoteOnly direct mappings, that is, 1:1 mapping can be created

6. To edit a mapping graphically, perform the following substeps:

316P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 317: Developer's Guide: Managing Integration Content - help.sap.com

a. Choose the required integration package.b. Choose Edit.c. Select the required mapping in the integration flow editor.d. In the Mapping section, choose <mapping name>.e. In the <mapping name> editor, choose the required mapping expression.f. In the Mapping Expression section, edit the mapping accordingly by providing the required functions

and values.7. To delete any existing mapping, select the mapping and delete.

Note○ You can also select Delete from the context menu of the mapping connector.○ You cannot perform a partial deletions in mapping viewer, you can only delete the entire mapping.○ If you delete a mapping with functions, all the associated functions are also lost and cannot be

recreated in Web.

8. Choose Ok.This action triggers a validation check, which reports an error if there are any unassigned mandatory fields.

9. To revert the changes, choose Cancel.If you have performed series of changes to the mapping then all your changes will be lost .

10. In the integration flow viewer, select Deploy.If you select Cancel, all the changes to the mapping will be lost.

4.20 Editing Scripts of a Mapping

You use this procedure to modify scripts of a mapping.

Context

Procedure

1. Launch SAP HANA Cloud Integration Web application.2. Choose you required integration package in the Overview section of the Design tab.3. In the Artifacts section of the <integration package name> editor, choose the artifact.4. In the <artifact name> editor, choose the required mapping.5. Choose Edit.6. In the Mapping section, choose the mapping name to open the mapping editor.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 317

Page 318: Developer's Guide: Managing Integration Content - help.sap.com

7. Choose the function whose script you want to change.8. In the Mapping expression section, double-click on the function to edit it.9. Choose Save.

4.21 Changing Source and Target Message Structuring

You use this procedure to extend the source or target or both message structures of a message mapping to the original message for containing extended fields.

Context

Procedure

1. Launch SAP HCI Web application by accessing the URL provided by SAP.2. Choose the Design tab.3. Select the required integration flow with mapping.4. Choose the mapping to view it in Mapping Viewer.

5. Choose (Edit) to open the mapping in Mapping Editor.

6. In the Source and Target Messages view, choose (Edit) to modify the required source or target message.

7. Choose the required file in the dialog box that appears.The file gets replaced with the chosen file.

8. Choose Open.

4.22 Working with Value Mappings

You use this procedure to perform various functions in a value mapping.

Context

318P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 319: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. Launch SAP HCI Web application by accessing the URL provided by SAP.2. Choose the Design tab to view the list of integration packages.3. Choose an integration package.4. From the list of artifacts, choose the required value mapping.5. Choose Edit.6. In the Bi-directional mappings for section, choose Add to add a bi-directional mapping.7. In the Value mappings for section, choose Add to add a value mapping.

8. Choose to remove a bi-directional or value mapping.You can choose Delete All to remove all bi-directional and value mappings from the respective sections.

9. Choose Save to keep the changes.10. Choose Save as version to retain a copy of the current artifact.

You can view the version history of an artifact by choosing the current version mentioned along with it.11. Choose Cancel to revert the changes.

NoteIf you edit a web edited value mapping in eclipse, then you get a default value for 1:N, M:,1 and M:N mappings. SAP recommends that all groups should contain only one agency identifier and value pair.

Some of the function names in web UI differ from the ones in Eclipse.

4.23 Testing a Message Mapping

Context

You use this design time test to validate the correctness of the mappings with the given test inputs.

Procedure

1. Launch SAP HCI Web application by accessing the URL provided by SAP.

NoteBrowsers that support the application are Internet Explorer 10, Google Chrome, and Safari.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 319

Page 320: Developer's Guide: Managing Integration Content - help.sap.com

2. Choose .

3. Select Design Integration Package tab page.4. Choose the Integration Flow.

The Integration Flow page opens in Read-only mode.

NoteYou can edit the integration flow only if you choose Edit.

5. If you want to edit the mapping, select Edit.

The Integration Flow page opens in edit mode.6. In the Integration Flow page, select the mapping that you want to test.

The name of the mapping is displayed under the Mapping section.

7. If you want to test the mapping, choose Simulate Upload Input .8. Select the input XML file that you want to test from the file system, and choose Open.

The input XML file data is displayed on the source message table.9. Choose Test.

The output XML file data is displayed on the target message table.10. If you want to download the output test XML, choose Download.

Note○ You do not have to save the mapping to perform simulation.○ You can also a test a message mapping with scripts.○ You can also modify any of the following operations in the graphical editor:

○ New function○ Properties

Then, you can again validate if the mapping is working correctly.

4.24 Deploying Data Flows

Context

320P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

Page 321: Developer's Guide: Managing Integration Content - help.sap.com

Procedure

1. In the Integration Package Editor, in the Artifacts section, select the required data flow from the list.

2. Choose Deploy.3. In the Settings dialog box that appears, enter the following details:

○ Data Center URI○ Application Name○ Organization Name

Once you enter the above mentioned details, the application forms the Data Service URL.4. Choose OK.5. In the LOG ON screen that appears, enter the organization name.6. Choose Log On.

The Data Integration application opens its Projects tab.7. In the dialog box that appears, enter the following details as required:

○ Name○ Source○ Target

8. Choose OK.The newly deployed data flow appears as an entry in the Projects tab page. If required, you can switch back to the SAP HCI Spaces application.

NoteTo switch to SAP HCI Spaces Catalog view from Data Integration using the Back Button in the browser, perform the required substeps:○ If you use Internet Explorer, from the context menu of Back Button , select HCI.○ If you use Google Chrome, click twice on Back Button .○ If you use Mozilla Firefox, from the context menu of Back Button , select HCI.

If you want to switch to SAP HCI Spaces Catalog view from Data Integration using the Forward Button in the browser then by default, it displays the Projects tab page without the Settings option. This behavior remains the same for Internet Explorer, Google Chrome, and Mozilla Firefox.

If you do not have authorization to access the Data Integration application then you get the following error messages:○ Error message for Google Chrome and Mozilla Firefox:

User is not included in the organization. Contact your security administrator for assistance.○ Error message for Internet Explorer:

HTTP 404: Not found error

Developer's Guide: Managing Integration ContentDesigning Integration Content With the SAP HCI Web Application

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 321

Page 322: Developer's Guide: Managing Integration Content - help.sap.com

Important Disclaimers and Legal Information

Coding SamplesAny software coding and/or code lines / strings ("Code") included in this documentation are only examples and are not intended to be used in a productive system environment. The Code is only intended to better explain and visualize the syntax and phrasing rules of certain coding. SAP does not warrant the correctness and completeness of the Code given herein, and SAP shall not be liable for errors or damages caused by the usage of the Code, unless damages were caused by SAP intentionally or by SAP's gross negligence.

AccessibilityThe information contained in the SAP documentation represents SAP's current view of accessibility criteria as of the date of publication; it is in no way intended to be a binding guideline on how to ensure accessibility of software products. SAP in particular disclaims any liability in relation to this document. This disclaimer, however, does not apply in cases of wilful misconduct or gross negligence of SAP. Furthermore, this document does not result in any direct or indirect contractual obligations of SAP.

Gender-Neutral LanguageAs far as possible, SAP documentation is gender neutral. Depending on the context, the reader is addressed directly with "you", or a gender-neutral noun (such as "sales person" or "working days") is used. If when referring to members of both sexes, however, the third-person singular cannot be avoided or a gender-neutral noun does not exist, SAP reserves the right to use the masculine form of the noun and pronoun. This is to ensure that the documentation remains comprehensible.

Internet HyperlinksThe SAP documentation may contain hyperlinks to the Internet. These hyperlinks are intended to serve as a hint about where to find related information. SAP does not warrant the availability and correctness of this related information or the ability of this information to serve a particular purpose. SAP shall not be liable for any damages caused by the use of related information unless damages have been caused by SAP's gross negligence or willful misconduct. All links are categorized for transparency (see: http://help.sap.com/disclaimer).

322P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved.

Developer's Guide: Managing Integration ContentImportant Disclaimers and Legal Information

Page 323: Developer's Guide: Managing Integration Content - help.sap.com

Developer's Guide: Managing Integration ContentImportant Disclaimers and Legal Information

P U B L I C© 2015 SAP SE or an SAP affiliate company. All rights reserved. 323

Page 324: Developer's Guide: Managing Integration Content - help.sap.com

www.sap.com/contactsap

© 2015 SAP SE or an SAP affiliate company. All rights reserved.No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP SE or an SAP affiliate company. The information contained herein may be changed without prior notice.Some software products marketed by SAP SE and its distributors contain proprietary software components of other software vendors. National product specifications may vary.These materials are provided by SAP SE or an SAP affiliate company for informational purposes only, without representation or warranty of any kind, and SAP or its affiliated companies shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP or SAP affiliate company products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other countries. All other product and service names mentioned are the trademarks of their respective companies.Please see http://www.sap.com/corporate-en/legal/copyright/index.epx for additional trademark information and notices.