SAP Integration Suite - Course
SAP Integration Suite - Course
Release management
Monitoring
Latency
Quality of service
Security
Availability of implementations
Observability
Documentation
Summary
Business Example
You are part of the IT Team, which must identify all orders impacted by the
delivery delays.
Description
3. First, the list gets split and processed for each product In the list one
after the other (sequentially). To do this, the process runs through a
loop.
6. We get the matching order data to our products from the database.
7. For each product there is various order information associated to
different customers. To find out all customers for each order
information another request needs to be sent to the database.
9. Once all products from the list have been processed and the
customer information has been saved, the process ends.
Authorization takes place via the SAP Cloud Identity Service (5).
Prerequisites
API Management
Cloud Integration
The appropriate role collections must then be assigned to the user. We will
build on this later in the exercises.
If you decide to proceed using a SAP BTP trial account, the following blog
post will show you how to set up an SAP BTP trial account and how to
enable SAP Integration Suite: SAP BTP Trial Account Creation and Enabling
Integration Suite service
Business Scenario
Task Flow
Prerequisites
You need an SAP account. You created one in the previous task.
The description is for those who do not yet have a free account on
the SAP Gateway Demo System (ES5).
A working account in the SAP Gateway Demo System (ES5) with which
you can consume OData APIs based on the EPM SalesOrder model.
You learn how to create a free account in the SAP Gateway Demo System
(ES5).
Steps
2. Go to https://register.sapdevcenter.com/SUPSignForms/.
________________________________________________
Steps
1. Open https://sapes5.sapdevcenter.com/sap/bc/gui/sap/its/
webgui# and log in with your user and password.
2. Check that you have successfully logged on to the Gateway
Demo System.
Business Scenario
Task Flow
Prerequisites
You can log in your SAP BTP Trial Account. You can log in your configured
SAP Integration Suite as a developer. You can identify and test the
capabilities assigned to your user.
Steps
Steps
If you have only just created your SAP BTP Trail Account, no API proxies
and integration packages are visible when you call up the corresponding
capability.
Types of APIs.
An API First Approach means that your APIs are treated as first class
citizens. Everything revolves around the end product being used by
mobile devices and client applications. An API First approach involves
developing APIs that are consistent and reusable. This is achieved by
using an API description language.
Explanation:
API Provider
API Consumer
It is not Cloud first or API first but Strategy first. API Management
Strategy in Multicloud Environments | SAP Blogs.
Types of APIs
Here, four different APIs are defined under the superset of APIs, based on
their use.
Databased APIs
These are intended for file exchange between systems. Files can be, for
example, configuration files.
Object-orientated APIs
This includes today's important web APIs, such as REST and SOAP APIs.
REST itself is not a protocol but a software architectural style.
These are asynchronous APIs that send events based on events. These are
used in Event Driven architectures.
o OData 2.0.
You will find more information about WSDL here: Web Services Description
Language
RAML
OpenAPI
RAML
OpenAPI
The implementation is first created on the part of the API provider. The
description (contract) is then generated automatically. This is used by the
consumer API.
In an API First Approach, only the provided APIs are of interest. By using
standardized communication protocols and concepts, such as REST and
OData, almost any use case can be mapped across all borders.
Communication takes place between an API provider who has the
interface available and the API consumer who consumes this interface.
The APIs are described with standardized description languages, such as
RAML or OpenAPI. The implementation can be created at first at the API
provider and then at the description (implementation - first approach
based on it) or the other way round by first creating the description and
then automatically creating server and client stubs from it (contract - first
approach). We see that SOAP APIs, OData 2.0, and 4.0 APIs, as well as SAP
Graph play the leading role in the SAP universe.
A "core" serves as the foundation of IT's ability to support and enable the
strategy.
Metadata in XML
Descriptive Information
Structural Information
1. Schema Location: Points to the schema file (XSD) that defines the
structure of the document.
Technical Information
Provenance Information
To use the $metadata functionality, use the following GET URL, where you
need to insert your individual parameters as follows:
Code Snippet
123
http://<yourAPI>:<PORT>/$metadata
Summary
Request-driven architecture.
Event-driven architecture.
Sample Request
Sample Response
Event-Driven Architecture
SAP offers the Event Enablement add-on in ECC and SAP S/4HANA (Cloud
and On-Premise) to support you.
Pull Variant
Push Variant
Summary
There are two types of operating the API First Approach. The one, request-
driven, is based on synchronous communication of the partners involved.
The second, event-driven, works asynchronously and decouples the
transmitter from the receiver in terms of time and content. This loose
coupling offers many advantages. Both types are often used one after the
other.
What is REST?
What Is REST?
Architectural Constraints
The REST architectural style defines the following six guiding constraints:
Client–server architecture
Stateless
Cache-ability
Layered system
Uniform interface
Web service APIs that adhere to the REST architectural constraints and
properties are called RESTful APIs. HTTP-based RESTful APIs are defined
with the following aspects:
Summary
A RESTful web API is created with the REST software architecture style.
The interface must correspond to both the architectural properties and the
constraints. This results in an implementation that, in addition to a
base URI, uses standard HTTP methods and supports many media types.
This places RESTful Web APIs at the heart of an API First Approach
(architecture).
Introduction to OData
What is OData?
Architectural constraints
What Is OData?
Architectural Constraints
Resource identification
Fixed documents
Dynamic resources
Resource operation
Querying
Resource representation
Resource identification
OData uses URLs to identify resources. We use the following base URL
with:
https://sapes5.sapdevcenter.com/sap/opu/odata/iwbep/GWSAMPLE_BASIC/
Fixed documents
The metadata document describes the types, sets, functions, and actions
understood by the OData service. Clients can use the metadata document
to understand how to query and interact with entities in the service.
The metadata document is available
at: https://sapes5.sapdevcenter.com/sap/opu/odata/iwbep/GWSAMPLE_BA
SIC/$metadata.
Dynamic resources
The URLs for the dynamic resources can be computed from the
hypermedia information in the service and metadata documents. The data
feed for the ProductSet collection also contains links to other entities. The
URL is as
follows: https://sapes5.sapdevcenter.com/sap/opu/odata/iwbep/GWSAMPL
E_BASIC/ProductSet
Resource operation
OData uses the HTTP verbs to indicate the operations on the resources.
This is a REST aspect, as we have already seen.
Querying
OData uses different formats for representing data and the data model.
In OData protocol version 4.0, JSON format is the standard for
representing data, with the Atom format still being in the committee
specification stage. For representing the data model, the Common
Schema Definition Language (CSDL) is used, which defines
an XML representation of the entity data model exposed
by OData services.
In JSON
The URL
is: https://sapes5.sapdevcenter.com/sap/opu/odata/iwbep/GWSAMPLE_BAS
IC/ProductSet('HT-1000')?$format=json
In XML
The URL
is: https://sapes5.sapdevcenter.com/sap/opu/odata/iwbep/GWSAMPLE_BAS
IC/ProductSet('HT-1000')?$format=xml
Where OData came from and why it’s designed the way that it is.
What the standard OData operations are and how they relate
to HTTP.
Summary
Business Scenario
Task Flow
3. Find the respective customer for each order of the productID HT-
1000.
Prerequisites
You check whether all OData APIs required later can be called up and that
technical data, for example, the productID HT-1000, is available.
What Do You Learn Within This Exercise
You get to know the OData APIs to be used later. You understand the
OData model.
Steps
Steps
1. How many sales orders are there for the product HT-1000?
Note
It is possible that the count gives you a different value than the one shown
in the screenshot. The reason for that is that the system is reloaded
cyclically with products.
2. Find the Sales Order ID and Item Position for the productID HT-1000.
Task 3: Find the Respective Customer for Each Order of the ProductID HT-
1000
Steps
SAP Graph
SAP Graph is a unified API for SAP, using modern open standards like
OData v4. SAP Graph is one connection to your business data. SAP Graph
introduces a new, unified API to access all business data as a single,
semantically connected, Business Data Graph.
Summary:
SAP Graph is based on *OData v4*.
Data graphs support queries that explore the data and the relationships.
There are two options to create an SAP Graph API. You can create APIs
directly via an implementation with the SAP Graph module in Node.js.
Under Source, you will find 26 video tutorials that show all the
development steps in detail. A second approach from the field of low code
is offered via SAP API Management.
Resources
Blogs: SAP Graph Multi-Part Tutorial: Information Map
Summary
SAP has outlined its strategy and road map for the integration of end-to-
end processes of its intelligent suite (SAP software to SAP software) based
on well-defined suite qualities. As an example, the alignment of domain
models helps to ensure that master data can be exchanged in an efficient
and convenient way between SAP applications, including prebuilt
integrations in SAP Business Accelerator Hub.
If we look at the positioning of SAP BTP, we see that one of the most
important pillars is integration.
Summary
1. Predefined integration
2. Open integration
3. Holistic integration
4. AI-driven integration
Sources.
The following shows the SAP Integration Suite with its core capacities.
The capabilities are as follows:
Integration Assessment
Cloud Integration
API Management
Integration Advisor
Open Connectors
2. Utilize RESTful APIs and JSON for your work: Benefit from open data
formats, irrespective of the underlying architecture of third-party
services.
Event Mesh
SAP Graph
Unified API for accessing SAP-managed data that can be used to create
new extensions and applications using SAP data.
Resources
Summary
We distinguish between core capabilities, add-on capabilities, and add-on
capabilities. The core capabilities are implemented in the Integration
Suite. The most important capabilities are API Management and Cloud
Integration.
Managing APIs
User roles
SAP API Management is a solution that maps the entire life cycle of an API.
Building APIs
Publishing APIs
Analyzing APIs
Consuming APIs
API Business Hub Enterprise is an application that provides a common
platform for application developers to consume APIs. Every API
Management customer is provided with their own API Business Hub
Enterprise application in the cloud. The API Business Hub Enterprise offers
capabilities to onboard application developers, explore and test APIs,
create and subscribe to applications.
Monetizing APIs
You can also view bill details of each developer in the API Portal. As an
application developer, in the API Business Hub Enterprise, you can create
an application and add products to the application. Based on the product
usage, you can view the corresponding bill details.
API Designer
Model APIs using the API designer. The API designer is based on the
OpenAPI Specification (OAS) standard, which is an open source
collaborative project. The API designer allows you to seamlessly create
and edit APIs, and view its corresponding documentation in a single
window frame. It has rich inbuilt capabilities, which cannot be limited to
conversion of APIs from one format to another (for example, from RAML to
YAML, JSON to YAML, and vice versa), generate server and client stubs,
download API specifications, and so on. The OpenAPI specification, which
is created by the API designer, can be published as APIs on the SAP
Business Accelerator Hub.
Enterprise Microservices
User Roles
Resources
Summary
With API management, the entire life cycle of an API can be mapped. It
begins with the creation, publication, and maintenance over the entire
term. In an API first architecture, API management is the central building
block and is used in every specific use case of a customer.
Describing the Technology in an Overview
Components of SAP API Management
The important components are numbered. In the following list, you will
find a first overview:
Resources
Summary
3.
4. Enter the connection data in the Connection tab.
Note
You use your own Host details to connect to your backend system.
Internet: No. 4
On-Premise: No. 2
6. Test your API Provider. When you save the entries, the created API
provider can be tested. To do this, use the Save button first.
Depending on the Type, a successful test is one of the following:
The HTTP Status code 200 means that the connection to the backend
system is correctly set up:
Type Open Connectors and Cloud integration
The HTTP status code is not 200, but in this case it is correct since this is
only a ping:
Sources
The following sources can be found at the SAP Help Portal: API Providers
Summary
Business Scenario
For the utilization of the GWSAMPLE_BASIC API via the ES5 database, we
are creating an API provider, which encapsulates the original interface.
The API provider components and accompanying artifacts are marked in
red in the following diagram.
Task Flow
Prerequisites
You have a functioning API Management within the SAP Integration Suite.
You get familiar with how to create and use an API provider of type
internet into the API Management.
Steps
In the Configure tab, choose the API Providers tab to create an API
Provider.
Now, choose the Create button to set up an API Provider. It opens a new
user interface to set up your API Provider.
Field Value
Name SAPGatewayDemoSystemES5_Provider
Connection tab
Host sapes5.sapdevcenter.com
Field Value
Port 443
Authentication
Basic
type
1. On the Overview tab, in the Name field, enter the name from
preceding the table.
sapes5.sapdevcenter.
Host
com
Port 443
4. Enter the following data (excerpt from the table before this):
Authentication
Basic
type
6. Choose Save.
Steps
Create an API using the Create button with the following options:
API proxy
This is probably the most common case. With this option, you can create
an API with an API provider, a provided URL, or an existing API.
Procedure
When the API Provider is chosen, a new list box with the name Discover is
available. Some data, such as the host and the type of API, have already
been entered.
When the list box is chosen, all available services listed within the catalog
service are displayed.
What exactly is displayed here depends on the type of API Provider. In the
case of Open Connectors, for example, all instances are displayed. For the
type Cloud Integration, the available integration flows are displayed.
The following figure shows a list of available services, which are usable
from the SAP backend system. The API provider gets defined by choosing
one service from the provided catalog services.
You can choose exactly one of the offered services. After that, further data
is added to the mask.
When you finish creating this API (proxy), it has to be deployed so that it
can be used. After that, the API (proxy) is ready for testing. The service
type is automatically defined. In this case, it is OData.
In this case, you must enter the data manually (marked). The Service
Type can only be REST or SOAP.
Start creating an API by choosing the menu link, Create in API Designer.
Switch to the openAPI editor. You can manually create your API there
through the openAPI language in YAML. In this case, all entries must be
created manually. The server URL is automatically adjusted after saving.
The Service Type can only be REST.
Before Saving
After Saving
Note
Be aware that the shown URL is a sample and will not work.
Resource
Summary
Business Scenario
Task flow
Prerequisites
After this exercise, you can create and configure an API proxy based on an
API provider. This allows you to call the GWSAMPLE_BASIC OData interface
on the ES5 backend.
Steps
Steps
2. Open the detail page of your API proxy by clicking on the row
containing your API proxy. Then, switch to the Resources tab.
6. Scroll further down until you see the blue Execute bar.
7. Choose the Execute bar to send your request.
8. The request fails with an HTTP code 401 - Unauthorized, as we
have not enabled authorization for the call. We do this in a
later exercise by involving policies. The authorization set
during the creation of the API provider was solely for calling
the Catalog Service.
We have observed that the API proxy URL results in an authorization error
when the resource GET /ProductSet is invoked. This error is due to missing
authentication involving a user and password connected to the original
interface.
2. Choose your API proxy from the left side, for example,
GWSAMPLE_BASIC_date_subaccountnumber.
5. Enter the user and password for the ES5 system. Afterwards,
choose the OK button.
6. Choose the Send button on the bottom right.
If the call was successful, as in the screenshot shown, all the data records
hosted on the database are displayed as a feed in the response. If you
don't get an HTTP status code 200, check your authentication credentials.
Using Policies
Usage of Policies
Policy types.
Policies provide features to secure APIs, control the API traffic, and
transform message formats. You can also customize the behavior of an API
by adding scripts and attaching them to policies.
You can apply a policy on the request or response stream. You can also
specify if it is applicable on the proxy endpoint or target endpoint. For
information on the types of policies supported by API Management, see
Policy Types.
Policy types
Access Control
Access Entity
Assign Message
Basic Authentication
Extract variables
Invalidate Cache
JavaScript
JSON to XML
Lookup Cache
OAuth v2.0
Populate Cache
Python Script
Quota
Raise Fault
Reset Quota
Service Callout
Spike Arrest
XML to JSON
XSL Transform
Response Cache
Security - Policies
SAP BTP, API Management offers many out-of-the-box API security policies
based on the Open Web Application Security Project (OWASP). API security
best practices can be customized for your enterprise requirements.
There is a blog series that showcases the security policies from SAP BTP,
API Management to secure and protect the enterprise APIs as shown in the
following figure, SAP Cloud Platform API Management.
You will find the blog series here: SAP Cloud Platform API Management –
API Security Best Practices Blog Series
The Message Logging policy lets you send syslog messages to third-party
log management services, such as Splunk, SumoLogic, Loggly, or similar
log management services.
A blog with the Message Logging Policy and Splunk can be found
here: Splunk – Part 1 : SAP APIM Logging & Monitoring | SAP Blogs
A blog with the Message Logging Policy and Loggly can be found
here: Part 7 – API Security Best Practices – Log all API interactions | SAP
Blogs
There are predefined sets of policies for specific applications. They can be
found in the SAP Business Accelerator Hub.
Switch to the Develop view and choose the Policy Templates tab.
Now, choose the Apply button to import the policy template. Then select
the previously imported policy template and choose Apply.
The policy template has been imported and inserted into the
corresponding flow.
After the update, save and redeploy, the policy template is active.
Summary
Business Scenario
Task flow
Steps
5. You can see the grey plus symbols on the right side.
6. Choose the following: Flows → TargetEndpoint → PostFlow. The
plus signs are now black and usable.
Note
To implement the policies in your API proxy, you must have a working
concept on how the policies work.
8. Choose the plus sign at the Assign Message policy symbol. To
add the following:
Assign
Policy Type
Message
Policy
setCredentials
Name
Endpoint
TargetEndpoint
Type
Incoming
Stream
Request
10.
Note
Code Snippet
12345678910111213141516171819
<!-- This policy can be used to create or modify the standard HTTP request
and response messages -->
<Set>
<Payload contentType="application/json" variablePrefix="@"
variableSuffix="#">{"name":"foo",
"type":"@apiproxy.name#"}</Payload>
</Set>
<AssignVariable>
<Name>request.header.username</Name>
</AssignVariable>
<AssignVariable>
<Name>request.header.password</Name>
</AssignVariable>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
</AssignMessage>
Note
Note
You can also download the code snippets via Github for this learning
journey:
integration-suite-learning-journey/src/rev_20 at main ·
SAP-samples/integration-suite-learning-journey · GitHub
14. Be aware before your update and save this entry, to set
a second policy that uses the variables for basic
authentication.
Steps
Basic
Policy Type
Authentication
Policy setBasicAuthenticat
Name ion
Endpoint
TargetEndpoint
Type
5. Check the entries and choose the update button (on top right
of the screen).
Switch back to the detail view of your API Proxy and choose
the Save button.
6. After saving a navigation bar at the top of the API Proxy details
window with a request to deploy, the API Proxy shows.
Steps
After the set up of the automatic authentication, you can now test your
configured policy via the resources. You receive a status code 200.
If you don't get an HTTP status Code with response 200, check your
username and password in the policy. Be sure that your backend system
account is not blocked by too many failed logons.
Steps
We use the API Monitor to examine the metrics of the API calls made so
far. An extra app is available.
Business Scenario
Task flow
Prerequisites
By exploring the SAP Business Accelerator Hub, you can discover and
analyze API Management Policies, allowing you to determine their
suitability for various purposes based on your needs and objectives.
Steps
2. Now, you can check out all the available policies, which you
can use in your SAP API Management.
Steps
You get an HTTP Status Code 200 and a filled Response Body and
Response Header.
Editing APIs
Edit an API
When you create and deploy an API, it is displayed in the API view. The
following is the example of the GWSAMPLE_BASIC API.
On the right panel, you find the API Health, active calls made, and related
usage information about the API.
Since we have not yet used this API, there is no usage information
available.
API URL - Proxy URL (No. 1)
At No. 1, you can see the new URL (proxy URL) with which you can now
call the original source API. The URL consists of the following elements:
Virtual Host
The virtual host was created during the provisioning of API management
and can be changed at any time using Settings → APIs. Check and see
your Host Alias name.
API Host
Overview
Proxy Endpoint
Target EndPoint
Resources
Revisions
Tab 1: Overview
In this Overview tab, you will find all major information about your API.
Title
Host Alias, that is the host from your Proxy URL on top of this page
Description
On the bottom of the interface, there is a Product Associated area. Later,
we create a product based on our API. Every entry can be changed.
Here, you can add some Proxy Endpoint Properties and Route Rules. Read
more here: API Proxy Structure
Here, you find the configured API Provider or the URL. In this case, we see
the SAPGatewayDemoSystemES5_Provider. It is also possible to use Load
Balancing.
Tab 4: Resources
This is the most important area of an API. It shows with a Swagger UI all
the possible resource paths and REST actions (GET, PUT, DELETE..) with all
necessary parameters.
While creating APIs for SOAP and REST, API resources are not auto
generated; you must add them manually. While creating the API for
ODataAPI, auto generation of resources can be possible in some cases.
This is the case if you use an API provider of type On-Premise with SAP
backend or one from Type Open Connectors. The visualization of the
resources is carried out by the Swagger UI implementation. It interprets
the openAPI spec of this API.
Tab 5: Revisions
With API revisions, you can make incremental changes to an API proxy
without disrupting the deployed API. You can access previous changes
made to the API proxy and even restore the API to any of its earlier states.
In the Configure view of your APIs, choose the link, Create in API Designer,
to open the API Designer. You will find a simple start template in YAML.
You can now start to write your own openAPI spec. To edit an openAPI
spec, you use the same editor. You can also use other editors, such as
IDEs, Visual Code, and others, and copy the result into it.
Resources
OpenAPI Specification
https://swagger.io/docs/specification/about/
Help Portal: Edit an API Proxy
Summary
The proxy URL is the new URL to ultimately consume the resource API. The
virtual host name is defined by you. It is used as an API host (API proxy
URL) in the subaccount.
The proxy URL is the new URL to ultimately consume the resource API. The
virtual host name is defined by you. It is used as an API host (API proxy
URL) in the subaccount. There can also be a custom domain here. SAP API
Management offers different tabs with different functionalities in
the View API. The Resources tab is the most important. The resources
describe the REST functionalities (GET, POST, and so on) and the paths to
the actual data (/ProductSet, /BusinessPartnerSet...). The description is
based on the openAPI specification. The visualization of the openAPI
specification is carried out with the Swagger UI. The Swagger UI is an
open-source JavaScript framework to make APIs tangible.
Business Scenario
Task flow
Prerequisites
You will gain the knowledge in how to use the API Designer to transform
your API into the SAP API Management.
Steps
Creating a Product
Product Creation
Products are artifacts that appear on the SAP API Business Hub
Enterprise portal. The SAP API Business Hub Enterprise portal is accessed
using its own URL. It is accessible in the SAP Integration Suite
cockpit through the navigation in the upper right corner of the interface.
After opening the API Business Hub Enterprise portal, the products are
displayed as tiles. The API used under a product corresponds to the API
Proxy URL of the corresponding API.
Needed Roles (Role Collection) to Use the API Business Hub Enterprise
To open the API Business Hub Enterprise portal, one of the following role
collections is required:
AuthGroup.API.Admin
AuthGroup.API.ApplicationDeveloper
If you are coming via learning.sap.com, then you have to assign your user
account to the mentioned role collections.
Note
Tab: Overview
The Name and Title should be the same. The Title is the heading of the
tile. The description is also displayed on the tiles and is intended to give
the user the most important information about the API.
Example
The other entries such as Quota, Requests Every, and Scope are optional
and must be defined by policies.
Tab: APIs
Here, you can choose your previously created API proxy, which you can
add to your API product. When you select the Add button, all available
APIs are displayed. You can assign any combination of the displayed APIs.
It is also possible to combine individual resources.
After the product has been configured, the product implementation must
be published on the API Business Hub Enterprise portal. It is called Publish.
The API Business Hub Enterprise portal is its own application. This was
provisioned together with SAP management.
At the moment, you still have the possibility to choose between two
representations. We use the new design. Navigate into the tile, you are
routed to the Test Environment tab.
Explanations:
No. 1: Here is your description of the product
To test the API, navigate to the APIs tab. Here, you can now see the title of
the assigned API. In this case, it is GWSAMPLE_BASIC. The name of this API
is GWSAMPLE_BASIC_v1. The product name is P_GWSAMPLE_BASIC_v1.
When you select the tile with the title of the associated API, you are in the
API. Under the tab, API Reference, you will find the Swagger UI for calling
the assigned resources.
If you successfully test a selected resource, here GET/ProductSet, you will
see the well-known Proxy URL from SAP API Management as a Request
URL.
Resources
Resources are also available at Blogs: Protect Your API Proxy by Adding
Application Key Verification | Tutorials for SAP Developers
Summary
A product in the context of SAP API Management is its own artifact that
encapsulates created APIs or parts of them (resources). The product is
configured and deployed (published) on the API Business Hub Enterprise
portal. The product can be tested on the API Business Hub Enterprise
portal. Access to the products is restricted through roles.
Business Scenario
Task flow
Prerequisites
By the end of this learning, you will be equipped with the knowledge and
skills to maximize the potential of the API Business Hub Enterprise,
enhancing your ability to streamline integrations and drive innovation in
your organization.
What do you learn within this exercise
You can create an API based on a deployed Product at the API Business
Hub Enterprise portal.
Steps
Field Input
Name API_GWSAMPLE_BASIC_XXX
Field Input
Title API_GWSAMPLE_BASIC_XXX
3.
4. Choose the APIs tab and the Add button, choose your API
Proxy and then choose the OK button.
The Permission, Rate plans, and Custom Attribute tabs are primarily not
necessary for this exercise and can be skipped.
10. If everything works correctly, you will see the entry with
the API proxy URL and the status of the published Product.
Task 2: Test your deployed API in the API Business Hub Enterprise
Steps
4. On (1) you can see the API proxy URL that you know from the
API management.
5. On (2) you can see the response that comes from the ES5
system.
Using Logging and Monitoring
Logging and Monitoring
Analyze API usage and performance with the build-in: Advanced API
Analytics
Inspection
In the Health Monitoring application, you can check the health of your
monitored cloud service and technical systems from an application and
customer perspective. Technical metrics are collected regularly and can be
used to calculate the overall health of the monitored object. The
monitored metrics are defined by the service itself and can differ for each
service type.
At the moment, only health monitoring with the SAP Cloud ALM solution is
possible.
Analyze API usage and performance with the build-in Advanced API
Analytics
If you want to use a logging solution, the SAP API Management lets you
send syslog messages to the third-party log management service. If you
want to send syslog to a third-party service, follow the service
documentation.
Splunk
Sumo Logic
Loggly
Others
Message ( Payload)
Host
Port
Protocol
Analyze API usage and performance with the build-in Advanced API
Analytics
Read more in a blog to use Loggly and Message Logging Policy: Part
7 – API Security Best Practices – Log all API interactions | SAP Blogs.
Inspection
Read more in a blog to use: Inspecting and Understanding Resource
Consumption ... - SAP Community
Summary
Key Features
Key Features
An integration flow has a 0-1 sender adapter. The message is delivered via
an endpoint if an adapter is configured. Various sender adapters are
available on the sender side. (No. 1) After receipt of the message, the
process is started via a startup event Start. This is followed by predefined
processing steps. (No. 2) There is a wide range of integration capabilities
that define different ways that messages can be processed on the
integration platform. Ultimately, receiver adapters can be configured to
complete the business process. Message processing can be carried
out synchronously or asynchronously. With this concept, a lot of well-
known enterprise integration patterns can be mapped.
Connectivity
The sender and receiver adapters are different. You are able to build your
own adapter. To do this, you can use the provided Software Development
Kit.
2. Draw a line from the channel to the Start event. The available
adapters are displayed:
3. Proceed with the same procedure on the recipient's side:
Integration Capabilities
Procedure
Choose the second product which will be integrated with the first
one
Here, you will find all the information to understand this integration flow:
And more
Sources
Read more:
About connectivity:
Summary
Business Scenario
The consultant's integration concept is divided into seven key steps, which
will be presented to you.
Task Flow
In this exercise, you will perform the following steps in one task:
Steps
Code Snippet
12345678910111213141516171819202122232425262728293031323334
35363738394041
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<List>
<Product>
<ProductID>HT-2001</ProductID>
</Product>
<Product>
<ProductID>HT-1020</ProductID>
</Product>
<Product>
<ProductID>HT-1035</ProductID>
</Product>
<Product>
<ProductID>HT-6101</ProductID>
</Product>
<Product>
<ProductID>HT-7000</ProductID>
</Product>
<Product>
<ProductID>HT-2026</ProductID>
</Product>
<Product>
<ProductID>HT-6100</ProductID>
</Product>
<Product>
<ProductID>HT-9994</ProductID>
</Product>
<Product>
<ProductID>HT-1254</ProductID>
</Product>
<Product>
<ProductID>HT-1031</ProductID>
</Product>
<Product>
<ProductID>HT-1036</ProductID>
</Product>
</List>
</soapenv:Body>
</soapenv:Envelope>
Code Snippet
Code Snippet
123
for example:
https://group00-xxxxxxxx-
yyyyyy.prod.apimanagement.eu10.hana.ondemand.com/v1/
GWSAMPLE_BASIC/ProductSet('HT-1000')
Code Snippet
1234567
<ProductSet>
<Product>
<Category>Notebooks</Category>
<ProductID>HT-1000</ProductID>
</Product>
</ProductSet>
2. Check that the following feed for each ProductID with the
following URL displays:
Code Snippet
1234
https://group00-cld900-
d052537.prod.apimanagement.eu10.hana.ondemand.com/v1/
GWSAMPLE_BASIC/ProductSet('HT-1035')/ToSalesOrderLineItems?
$select=SalesOrderID,ItemPosition,DeliveryDate
Code Snippet
1234
for example:
https://group00-cld900-
d052537.prod.apimanagement.eu10.hana.ondemand.com/v1/
GWSAMPLE_BASIC/ProductSet('HT-1035')/ToSalesOrderLineItems/$count
Code Snippet
1234
https://< host
>v1/GWSAMPLE_BASIC/SalesOrderLineItemSet(SalesOrderID='<
SalesOrderId >',ItemPosition='< ItemPositoion >')/ToHeader?
$select=CustomerID,CustomerName,DeliveryStatus
e.g:
https://group00-cld900-
d052537.prod.apimanagement.eu10.hana.ondemand.com/v1/
GWSAMPLE_BASIC/
SalesOrderLineItemSet(SalesOrderID='0500000001',ItemPosition='00000
00040')/ToHeader?$select=CustomerID,CustomerName,DeliveryStatus
3. Below is the Data Store with the customer IDs matching the
list.
Business Scenario
Task Flow
Prerequisites
Get familiar with the key navigation elements in cloud integration and
their functions.
Steps
Steps
Manage Security
Manage Stores
Access Logs
Manage Locks
View Usage Details
Runtime Profiles
Transport
System
Custom Tags
Malware Scanner
Software Updates
Design Guidelines
Technical Implementation
You can work with any device as long as the screen is large enough,
an updated Chrome browser is available, and there is a sufficient
Internet connection.
Technical Implementation
A load balancer (IP5) is connected to the sender input (No. 3), and
interestingly, it does not go directly to the runtime.
Resources on a Tenant
Find the list of required API with all its metadata, such as
credentials, headers, and more.
The next step involves providing integration developers with the relevant
role collections, enabling them to work on the appropriate Integration
Suite. This is coordinated with the administrators.
Find the List of Required API with all its Metadata, Such as Credentials,
Headers, and More
If all APIs are listed in an API Business Hub Enterprise, you are fortunate
and the work of obtaining the necessary URL and parameters is
completed. However, if not, you can plan enough time to obtain this data
and test the interfaces.
To start, select the integration flow artifact and an empty template will be
created automatically. If an incoming message is needed, it can be
simulated using a Timer event to start and a Content Modifier to simulate
the message. This approach facilitates faster and easier development
cycles.
There are various ways to develop integration flows depending on the use
case. For the practical exercise, it is recommended to start with the API
calls. Once the connections are established, it becomes easier to
determine the required input and output. Unlike XI or PI with its XI
message protocol, there is no internal format in cloud integration. Thus, it
is important to consider the internal formats and transformations needed.
The help section for each integration flow component can be used to find
the appropriate configurations. This process is also demonstrated in the
exercises. After configuring a component, it is essential to debug and
verify that the output meets our expectations. Generally, there are two
ways to test our integration flow.
These are:
Test with real deploying and debugging. This approach is used in the
exercises.
Iterate through the steps until your integration flow functions as intended.
The first step is to test the process, and various testing procedures are
discussed in detail later. Once the testing is successful, the integration
flow is be transported to the production subaccounts. A continuous
monitoring of the processing or implementation of alert management to
respond to unforeseen events is the responsibility of the administrators,
and will not be addressed separately here.
Choose a spot in the white space outside the integration flow swim
lane.
Example
Start the simulation with the Start button of the navigation bar.
Choose all envelopes between the start point and the endpoint to
explore the results.
After the testing, choose the Clear button of the navigation bar.
Summary
The process of creating an integration flow involves using a graphical
editor in the remote cloud integration application. Simulations can be
conducted on individual parts or the entire integration flow to verify that
values are correctly set in content modifiers, scripts, or mappings. Once
the integration flow is complete, it is versioned and deployed, resulting in
the creation and deployment of a Java application in a runtime. The
integration flow can then be executed. The development process can be
approached as cycles, where the placement and configuration of
components, debugging using trace log levels, and testing are repeated
until the desired result is achieved.
Business Scenario
Task Flow
Prerequisites
You are capable of creating and working with an initial integration flow.
Steps
3. If you are visiting the Classroom Training, your trainer provides you
with a number to use for the creation of your iFlow package.
Field Input
DelayedDelivery_Package_CLD900_Date_Numbe
Name
r
Technical DelayedDeliveryPackageCLD900DateNumber
Name (created automatically)
Short
Package for exercises with the CLD900 course.
Description
Version 1.0.0
Vendor SAP
3.
4. Choose the Save button and then choose the Artifacts tab to
be able to add an artifact.
Flied
Input
Name
Name DelayedDelivery_Process_Number
Types of Monitoring.
External Logging.
Types of Monitoring
In addition to the standard built-in monitor, various tools can be used with
Cloud Integration Monitoring. It offers different categories including
message monitoring, content management, and alert management. In
this discussion, we focus on message monitoring using the built-in monitor
for messages and the SAP Cloud Integration API for Message Processing
Logs API.
Completed
Processing
Retry
Escalated
Failed
Canceled
Discarded
Abandoned
On the right side of the windows, there is another section that provides a
wealth of information about message processing. When the log level is set
to info, this section serves as the primary monitor.
However, if the log level is set to trace, you can access the debugging
mode of the process flow, which we have already encountered in the
exercise.
Jump in Directly from Your Integration Flow
A more concise version could be: "You can navigate from the integration
flow to the monitor artifacts section using the link Navigate to Manage
Integration Content, which opens the monitor in a new tab for easier
navigation." This is used in the exercises, and provides access to all
information about the processing through various tabs.
The Access Logs section in the Build-In Monitor provides direct access to
the System Log files via the System Log Files tile. These files include the
HTTP's access and trace, and are retained for 30 days.
After having opened the tile, you have access to the system logs.
https://{{host}}/api/v1/
External Logging
Resources
Read more:
Types of Monitoring
Read the whole story: Monitoring tools for Cloud Integration Capability of
SAP Integration Suite | SAP Blogs
Build-In Monitor for Message Monitoring
Message Status
External Logging
External Logging
Summary
Business Scenario
You have implemented the initial integration process and now you want to
start developing the actual integration process. To do this, you will learn
the most important basic functions, such as saving and deploying your
developments, and examining them in monitoring.
Task Flow
Prerequisites
Steps
2. Choose the Edit button on the top right. The palette with
the Integration Flow Components is now active.
Steps
Event
Connectors
Mapping
Message Transformers
Call
Message Routing
Security Elements
Persistence
Message Validators
Before you can work on the integration flow again, you must set the
integration flow into the edit mode.
4. Explore the navigation bar on the bottom. This element helps you to
work efficiently and with high performance.
Steps
5. To hide the context menu, choose the white area within the
swim lane.
Steps
1. Choose the Deploy button. You will get a demand. Confirm this
by choosing the Yes button.
Steps
1. Jump to the monitor from your integration flow – the easy way.
Note
The menu options display when you click in the white canvas space as
previously mentioned.
4. A new tab will always open when you choose this link.
5. You will find your integration flow, its status, and a link for
monitoring your integration flow.
6. Choose the active Monitor Message Processing link. You are
switched to a new page Overview → Monitor Message
Processing.
Headers
Properties
Attachment
Body
Others
Headers
Header data contains information related to the message, such as the
message sender's address, and is automatically included in any
subsequent HTTP call.
Properties
Attachments
Body
Header
Properties
Body
Samples:
Code Snippet
1234
${property.MyNumericProperty} > 0
property.ProductCoderegex‚[a−z]5\d3‘
${date:now:dd-MM-yyyy HH:mm}
${in.body}
Properties
${property.}
Message Headers
${header.}
In XSLT Mappings.
Resources
SAP Integration Suite - Deep dive into Content Modifier | SAP Blogs
Summary
Business Scenario
Task Flow
Prerequisites
The step of creating a timer event instead of the message start event has
been completed.
A Content Modifier with sample data as the payload is provided for use.
Steps
Steps
Field
Input
Name
Modify_setPaylo
Name
ad
3.
4. Switch to the Message Body tab and enter the following SOAP
payload.
Code Snippet
12345678910111213141516171819202122232425262728293031323334
353637383940414243444546474849
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<List>
<Product>
<ProductID>HT-2001</ProductID>
</Product>
<Product>
<ProductID>HT-1020</ProductID>
</Product>
<Product>
<ProductID>HT-1035</ProductID>
</Product>
<Product>
<ProductID>HT-6101</ProductID>
</Product>
<Product>
<ProductID>HT-7000</ProductID>
</Product>
<Product>
<ProductID>HT-2026</ProductID>
</Product>
<Product>
<ProductID>HT-6100</ProductID>
</Product>
<Product>
<ProductID>HT-9994</ProductID>
</Product>
<Product>
<ProductID>HT-1254</ProductID>
</Product>
<Product>
<ProductID>HT-1031</ProductID>
</Product>
<Product>
<ProductID>HT-1035</ProductID>
</Product>
<Product>
<ProductID>HT-1601</ProductID>
</Product>
<Product>
<ProductID>HT-2025</ProductID>
</Product>
<Product>
<ProductID>HT-1067</ProductID>
</Product>
</List>
</soapenv:Body>
</soapenv:Envelope>
6. To ensure that the ProductIDs used return data, you can check
with the API beforehand. For
example: https://sapes5.sapdevcenter.com/sap/opu/odata/iwb
ep/GWSAMPLE_BASIC/ProductSet('HT-1000')
Note
Be careful while copying the URLs. Ensure that there are single quotes in
the URL and not apostrophes.
Steps
You must confirm the change of the Log Level within a pop-up message.
Note that the modified log level will only be applicable from the next
instance of the deployed process. In this particular case, it will be effective
immediately after deployment.This means you must redeploy your
integration flow before your can trace your flow messages.
5. Choose the step End (No. 1). You see that the corresponding
part of the Integration Flow Model is also marked.
6. Choose the Log Content tab (No. 3). You see the log entries for
this step
7. Choose the Message Content tab (No. 4).
You can easily deploy and execute each integration flow with
minimal effort, allowing you to test each guideline or pattern on
your own.
Each reference integration flow can serve as a foundation for
developing more intricate scenarios.
The last three exercises taught you how to implement and use a sample
integration flow from the "Learn the Basics" package.
Learn how to retrieve only delta data from the source system using
the current date or the latest date in the payload.
Learn how to use steps that store the message on the tenant
database.
In the integration flow, you are now able to Execute Guidelines checks into
your integration flow with an analyze view or Report of violated
components.
Resources
Basic Documentation
Summary
Business Scenario
Prerequisites
The step of creating a Content Modifier with sample data as payload (XML)
has been completed.
Steps
Expression
XPath
Type
//
XP Expression
Product
Grouping 1
Streaming flagged
Stop on
flagged
Exception
4.
1. Save as version.
2. Deploy.
5. Deploy again.
4. By choosing the first End artifact, you notice that the message
is being processed. You can check the payload of
multiple End artifacts to see the single product by using
the navigation menu on the top-left side.
5. Choose the last End step to see a different product.
3. You can directly access the help site of the General Splitter by
choosing the question mark symbol in the configuration bar of
the Splitter, which takes you there.
Learning the Basics
The Basics of Process Modeling
Handle Attachments.
File Transfer.
Use Converters.
Handle Attachments
In this lesson, you are not using attachments, but you will learn how to
handle them effectively in integration flows, where a file is specified in a
format such as text files, and attached as an exchange parameter.
Create Attachments
File Transfer
This lesson covers transferring files from a server, although it does not
involve the use of attachments.
Decouple Sender and Flows Using Persistence (using either the data
store or JMS message queues)
This lesson uses a specific configuration for the SOAP adapter, which
invokes the integration flow asynchronously. The configuration is as
follows:
Use Converters
Summary
Attachments can be created, modified, and combined, while files can be
retrieved using the SFTP adapter in various ways. Asynchronous
decoupling of integration flows separates the call time from the
processing time. It's also important to note that XML or JSON formats are
necessary for message mapping and XPATH operations.
Business Scenario
To expand your integration process, you now want to store the currently
processed ProductID and enrich it in this process. The option to use an
Exchange Property into a Content Modifier enables you to enrich your
Message.
Task Flow
Prerequisites
You have completed the task of creating and configuring an OData call.
You learn how to use and configure a Content Modifier with an Exchange
Property.
Steps
Steps
1. Keep adjusting the right border of your swim lane until the
border line becomes active.
2. Use the mouse to drag the center point towards the right side.
Name ProductID
Source
XPATH
Type
Source
//ProductID
Value
case)
Steps
1. Save as version.
2. Deploy.
5. Deploy again.
2.
4. You are taken directly to the help site of the Content Modifier.
Using Adapters
Adapters
Adapters in an overview.
Adapters in an overview
TCP-based.
Non TCP-based.
Often these adapters are simply called: HTTP-based and non HTTP-based.
Detail Outcome
Category HTTP-based
Transport
TCP/IP
protocol
Application
HTTP/HTTPS
protocol
You have the option to visit the help page or view the available adapters
on an integration flow, based on your license, as demonstrated earlier
with connectivity.
In case none of the previously mentioned sources are helpful in finding the
desired adapter, you can also create your own adapter.
The OData adapter is applied in the exercises. What sets the OData
adapter apart, and why is it selected for use in the exercise? This is
discussed in the following paragraphs.
The OData Sender Adapter features a wizard that allows users to navigate
to the interface to be accessed by using a metadata document. This
approach makes it possible to configure the adapter even if the interface
details are not fully known. However, this procedure is restricted to OData
V2.0 and is only appropriate for a small hierarchy structure.
The Page Processing Mode
OData interfaces transmit data in the form of a feed using the Atom Pub
protocol, with namespaces and their respective prefixes used for added
clarity.
No Page Processing
At No. 1, the Scenario has a looping Process Call. At No. 2, the OData
Adapter calls an OData API.
The Result is:
With Page Processing
Apart from the option to gather data in packages, the namespaces and
their prefixes are also automatically eliminated. It enables the data to be
processed directly with XPATH. During the practice session, the HTTP
adapter is used for the other calls. However, it does not automatically
remove the namespaces, needing extra mapping.
Summary
SAP provides a range of adapters in cloud integration, which vary based
on their direction (inbound or outbound) and the transport, application,
and message protocols employed. Broadly speaking, these adapters can
be classified as HTTP-based, TCP/IP-based, or nonHTTP/non TCP/IP-based.
For instance, the OData receiver adapter offers several unique features,
such as a wizard that facilitates easy configuration of the OData API to be
called and the capability for page processing to handle large data
volumes. Also, the adapter removes namespaces and their respective
prefixes from the response, which is another significant advantage.
Business Scenario
Task Flow
Prerequisites
You have completed the final step of creating and configuring a Content
Modifier.
Steps
Steps
1. Set a Receiver.
2. Name it Call_checkProductID.
3. Configure the OData Adapter.
Code Snippet
123
Proxy
Internet
Type
Authenti
None
cation
Reuse
Connecti Labeled
on
6.
12. Select the fields of this entity that should be read. These
include:
ProductID
Category
Name
13. The selected data displays below as a query.
The fields Operation Details, Resource Path, and Query Options are
automatically set. Make sure to also copy over the content
type and timeout.
Steps
1. Save as version.
2. Deploy.
5. Deploy again.
3. Choose the End artifact and choose the Message Content tab.
Business Scenario
After extra exchange properties have been used with the content modifier
and the message query has been expanded, empty information must be
filtered out. This can be made visible using the router artifact.
Task Flow
Prerequisites
The creation of a Content Modifier with the Exchange Properties has been
completed by you in the last step.
Steps
Steps
1. Set a Router.
/ProductSet/count(Product)>0.
Name Input
Conditio /ProductSet/
n count(Product)>0
Steps
1. Save as version.
2. Deploy.
5. Deploy again.
3. As the product list contains both existing and non existent IDs,
it is necessary to follow both paths.
3.
Business Scenario
To obtain the customer names in a list, you must retrieve more detailed
information via the GWSAMPLE API. Specifically, you will need the
SalesOrderID, ItemPosition, and ProductID, which can be found in the
ToSalesOrderLineItems via the Productset Resource.
Task Flow
Prerequisites
An external OData adapter has been configured for a second Request and
Reply call that is currently running.
What do you learn within this exercise?
Steps
Steps
Call_fetchLineItems to
API_SalesOrder_ProductSet_ToSalesOrderLineItems.
You get your API address from your SAP Integration Suite
under Configure → APIs
123
Field Name Input
https://<yourAPI>/<version>/
GWSAMPLE_BASIC
Authentication None
Reuse
flagged
Connection
Operation
Query (Get)
Details
Choose
Resource Path
the Select button.
Connection
Remote
Source
*automatically filled
Address
in*
Authentication None
In the fields section, choose ToSalesOrderLineItems and the
subfields SalesOrderID, ItemPosition, DeliveryDate.
Field
Input
Name
Query
Operation
(Get)
Sub Levels 1
Select ProductSe
Entity t
Now, the wizard generates a query for you, check your query and if
everything is matching, choose the Step 3 button.
Field
Input
Name
ToSalesOrderLineIte
Fields
ms
Subfield SalesOrderID
Subfield ItemPosition
Subfield DeliveryDate
The last step is configuring a filter with your already set exchange
property.
Choose the
Code Snippet
123
4. Now, you can verify the number of available data records with a
request as follows:
Steps
1. Save as version, deploy, and debug your integration process.
1. Save as version.
2. Deploy.
5. Deploy again.
Here, you can check and see that the system has limited the message
output on two messages entries. Try it out.
Mappings in an overview.
Mappings in an Overview
Message Mapping.
XSLT Mapping.
Message Mapping
The Java SDK for message mapping and user-defined functions (UDFs) is
the same as for the process integrations. To use them, you need the body
in XML or JSON format. The source and destination mapping can be
defined using one of the following file types:
WSDL
Mapping Editor
This lesson does not involve the use of a message mapping. The mapping
editor, however, provides all the necessary tools to map XML or JSON
messages.
No. 1: Adding the source structure.
Testing
Videos
Message Mapping
XSLT Mapping
Sample
This example copies the content of the source file without any
namespaces and their corresponding prefixes, and generates a target file.
xmlns:m=„http://schemas.microsoft.com/ado/2007/08/
dataservices/metadata"
xmlns:d=„http://schemas.microsoft.com/ado/2007/08/dataservices"
xml:base=„https://sapes5.sapdevcenter.com/sap/opu/odata/iwbep/
GWSAMPLE_BASIC/"
Learn the Basics → Access Header and Properties → Access Header and
Properties in XSLT Mapping: Access Header and Properties in XSLT
Mapping
Blogs
Sample
Once you have configured the connection to the ES Repository, you can
proceed to import the content from it through the "Resources" tab in the
integration flow editor. Now, you are able to import:
Message mapping
Value mapping
Operation mapping
WSDL
Summary
Business Scenario
To expand your integration process, you want now to store the currently
processed SalesOrderID and ItemPosition and enrich it in this process. The
option to use an Exchange Property into a Content Modifier enables you to
enrich your Message.
Task Flow
Prerequisites
You have completed the task of creating and configuring an OData call.
You learn how to use and configure a Content Modifier with an Exchange
Property.
Steps
1. Log on to the integration flow DelayedDelivery_Process via SAP
Integration Suite.
Steps
1. Keep adjusting the right border of your swim lane until the
border line becomes active.
2. Use the mouse to drag the center point towards the right side.
Action Create
Name SalesOrderID
Source
XPATH
Type
Source
//SalesOrderID
Value
java.lang.String (S in upper
Data Type
case)
Second
Value
Action Create
Name ItemPositionID
Source
XPATH
Type
Source
//ItemPositionID
Value
case
Steps
1. Save as version.
2. Deploy.
5. Deploy again.
4. You are taken directly to the Help site of the Content Modifier.
Create and Configure a second Router
Business Scenario
After extra exchange properties have been used with the Content Modifier
and the message query has been expanded, empty information must be
filtered out. This can be made visible using the router artifact.
Task Flow
Prerequisites
The creation of a Content Modifier with the Exchange Properties has been
completed by you in the last step.
Get familiar with on how to use and set up a Router that consists of two
routes.
Steps
Steps
1. Set a Router.
/ProductSet/Product/ToSalesOrderLineItems/SalesOrderLineItem/
count(SalesOrderID)>0.
Name Input
Condi /ProductSet/Product/ToSalesOrderLineItems/
tion SalesOrderLineItem/count(SalesOrderID)>0
Steps
1. Save as version, deploy, and debug your integration process.
1. Save as version.
2. Deploy.
5. Deploy again.
3. As the product list contains both existing and non existent IDs,
it is necessary to follow both paths.
Now, you see entries for some SalesOrderIDs without any entries.
4. Learn more about the Router component.
The establishment of a secure TCP connection requires the use of TLS with
certificates. SAP provides a dedicated tool for verifying and importing the
necessary certificates specific to the recipient.
The authentication and authorization process is adapter-specific and is
described below for the OData adapter.
Locate and Import the Certificates for the Receiver and the Certificate
Chain for the Server
Procedure
Note
Further explanations:
The Connection tab of the OData Adapter offers various options for
authentication and authorization.
These are:
Basic
Client Certificate
None
OAuth2 Client Credentials
Procedure
Basic
Client Certificate
None
OAuth2 Client Credentials
Business Scenario
Task Flow
Prerequisites
You have completed the final step of creating and configuring a Router.
Steps
Steps
1. Set a Receiver.
5. Set your known API URL from the API Management in the
OData Connection tab. (e.g. "<API
URL>/<version>/GWSAMPLE_BASIC")
4. Use the following selection for the Entity and Operations. After
you have selected all, you move forward by choosing the Step
3 button.
Select the following fields:
ToHeader
CustomerID
CustomerName
DeliveryStatus
Filter SalesOrderID
Operation Equal
$
Value {property.SalesOderID
}
Second
Filter
Filter ItemPositionID
Operation Equal
Value $
Field Name Input
{property.ItemPosition
ID}
Steps
1. Save as version.
2. Deploy.
5. Deploy again.
5. Save and deploy again. Check your trace. The result must
have some CustomerNames and CustomerIDs entries.
3. Here, you find all the information about the different adapters
and how they can be used in a familiar way.
Business Scenario
You want to read the customer name via an exchange property. To do this,
you use a Content Modifier.
Task Flow
In this exercise, you will perform the following tasks:
Prerequisites
Steps
Name CustomerID
Source
XPATH
Type
Source
//CustomerID
Value
java.lang.String (S is upper
Data Type
case)
1. Save as version.
2. Deploy.
3. Jump to Overview → Manage Integration Content.
5. Deploy again.
Business Scenario
The preceding step involves writing the CustomerNames stored
as Exchange Properties in each loop to a Data Store, and removing
duplicates.
Task Flow
In this exercise, you will perform the following steps in one task:
Prerequisites
The step to create and configure a Content Modifier has been completed
by you.
Steps
2. Rename it to Write_CustomerName.
3. Configure a Data Store Operation.
DelayedDelivery_CustomerName_List_Nu
Data Store Name
mber
RetentionThreshol
2
d for Alerting (in d)
Expiration Period
3
(in d)
Encrypt Stored
flagged
Message
Overwrite Existing
flagged (remove duplicates )
Message
Include Message
flagged
Headers
2.
4. Rename
the End_Message_with_SalesOrderID to End_Message_with_Cu
stomerName.
1. Save as version.
2. Deploy.
5. Deploy again.
4. After selecting the correct Data Store name, you are able to
see the entries. Choose the Data Store name.
What is an Exception?
Error Handler.
The focus now shifts to unexpected exceptions and their handling, and for
the remainder of this discussion, the terms "unexpected exceptions",
"exceptions", and "errors" will be used interchangeably.
Define Error Configuration for One Integration Flow to Inform the Sender
You can specify the error handling mechanism for handling runtime
failures during message processing. The primary objective of this
approach is to communicate error details to the sender for better
awareness. To achieve this, you can enable the Return Exception to
Sender flag in the integration flow settings.
Procedure
Sample
The starting event is an Error Start event. This component fetches the
exception.
The monitor with the exception subprocess:
You can view the detailed error information inside the Message Processing
Run.
Error Handler
If the error is caught by an Error Start event, any further processing can
be implemented as in a regular process. Scripts, like the one
demonstrated in Handle Exceptions, are especially common.
Setting an Error End event at the end of an integration flow will always
cause it to enter the Fail status, which can be used as a design element.
The Error End event serves as the endpoint of the main process, and in
case of any errors, the Exception Subprocess always intercepts it.
If you get the Failed status, then the process worked correctly.
The Escalation End event generates an error without interrupting the main
process.
If you get the Escalated status, then the process worked correctly.
Summary
Business Scenario
Task Flow
In this exercise, you will perform the following steps in one task:
Prerequisites
Steps
Scripting overview.
Scripting Overview
You can use Java or Groovy scripts for message processing, which can be
useful in the following scenarios:
You can use the Script step to add information to the message processing
log (MPL).
You can use the Script step to address (get, add, modify, or delete) the
message header, the message body, and exchange properties, using the
interface Message object.
You can use the Script step to address Partner Directory content.
Handle Exceptions
You can use the Script step to identify exceptions that arise when sending
messages using the HTTP or OData V2 receiver adapter.
You can use the Script step to address security-related artifacts (for
example, keystore entries).
You can use the inLine editor directly in the following manner.
Procedure
After that, you are in the inline editor of the Groovy script. There is
already a basic script created, on which you can build.
There is also an online editor with which you can write and test directly.
Use Groovy IDE for easy development and testing of your scripts. All
necessary SDKs are already implemented.
After copying the code, paste it into the scripting component, and proceed
as usual.
Resources
There is a whole range of examples and demos in the SAP Help Portal:
Blogs:
Samples
Summary
Scripts in Java or Groovy can be created using a Script SDK, which allows
for processing messages and their metadata in various ways. The SDK
allows for setting and reading exchange parameters, writing logs,
intercepting exceptions, and more. These scripts can be created using
both the Inline Editor and an online IDE that includes all the necessary
SDKs, making it possible to test the script directly.
A Groovy Script is required for error handling to work and take effect. It is
used to record error information in the event of an error. To do this, the
script must be stored within the exception subprocess.
Task Flow
Prerequisites
Steps
1. Log on to the integration flow DelayedDelivery_Process via
Integration Suite.
3. Let's assume that the integration flow has been further edited.
Steps
Code Snippet
1234567891011121314151617181920212223242526
import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
import groovy.xml.MarkupBuilder;
//Body
exceptionBuiler.exception {
exceptionMessage(exMessage)
stacktrace(exStacktrace)
message.setHeader("Content-Type", "application/xml")
message.setHeader("CamelHttpResponseCode", 500)
message.setBody(stringWriter.toString());
if(messageLog != null) {
messageLog.addAttachmentAsString("Exception Messages",
message.getBody(), "text/plain")
return message;
Steps
1. Save as version.
2. Deploy.
5. Deploy again.
Business Scenario
In this step, our objective is to replace the timer event with a message
start event and initiate the process through an incoming SOAP message.
Also, we remove the initial content modifier, Modify_setPayload, as it was
created for assistance purposes.
Task Flow
In this exercise, you will perform the following steps in one task:
Prerequisites
You have completed the final step of writing the Customer ID.
Steps
We want to explore the available options for ensuring that only authorized
senders can send messages to our integration flow. This topic is referred
to as Inbound Security.
The responsibility of importing all the required certificates lies with SAP, as
we do not have access to the load balancer in Cloud Integration.
Procedure
Note
You get a successful call to the endpoint using one of the assigned users.
You can use your own user roles. To set your own user role, navigate
to Monitor Artifacts → Integrations → Mange Security → User Roles, and set
your own role.
Authorization Code
Client Credentials
Password
Refresh Token
SAML2 Bearer
JWT Bearer
Procedure
Create a key.
Use the clientID as the user and the clientsecret as the password.
Use the tokenURL with clientIS as user, and the clientsecret as password
to generate a Bearer token.
Use the Bearer token for authentication.
You can use OAuth 2.0 for authentication, which involves two steps: first,
generating a token, and second, using that token for authorization.
Resources
Client Credentials
Summary
Business Scenario
Prerequisites
The task of substituting the timer event with a message start event has
been completed.
You will get familiar with how to use and configure an inbound SOAP
adapter in the integration flow.
You will gain familiarity with configuring and using an inbound SOAP
adapter in the integration flow.
Steps
/receive/message/
Address DelayedDelivery_ProductIDs_Date_Number (must
be unique)
Service
Manual
Definition
Use WS-
Addressin unflagged
g
Message
Exchange One-Way (starting asynchronous)
Pattern
Processing
WS standard
Settings
Authorizat
User Role
ion
1. Save as version.
2. Deploy.
Code Snippet
https://int-cust-demo-store-xxxxxxxxxxxxxxxxxxxt.cfapps.eu10-
003.hana.ondemand.com/cxf/send/
<your_defined_address_in_the_soap_adapter>
3. Currently, we do not have the option to send a message to the
endpoint.
Business Scenario
Task Flow
Prerequisites
You have completed the final step of creating an Inbound SOAP Adapter.
You will have configured security for your endpoint, which allows your
integration flow to receive messages.
Steps
Steps
3. Choose the Create button for a new Role Collection. Set the
name SendMessagesToCI.
Note
Business Scenario
Task Flow
Prerequisites
The last step has been completed, which involved creating an Inbound
SOAP Adapter. As a result, your integration flow has been deployed and
now has an endpoint.
You will learn how to configure and use the Postman HTTP client for
sending a SOAP message to the DelayedDelivery_Process.
Task 1: Use Postman HTTP Client to Send a Message to the Integration
Flow
Steps
2. Choose Workspaces.
2. Configure a workspace.
Note
Code Snippet
12345678910111213141516171819202122232425262728293031323334
35363738394041424344454647484950
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<List>
<Product>
<ProductID>HT-2001</ProductID>
</Product>
<Product>
<ProductID>HT-1020</ProductID>
</Product>
<Product>
<ProductID>HT-1035</ProductID>
</Product>
<Product>
<ProductID>HT-6101</ProductID>
</Product>
<Product>
<ProductID>HT-7000</ProductID>
</Product>
<Product>
<ProductID>HT-2026</ProductID>
</Product>
<Product>
<ProductID>HT-6100</ProductID>
</Product>
<Product>
<ProductID>HT-9994</ProductID>
</Product>
<Product>
<ProductID>HT-1254</ProductID>
</Product>
<Product>
<ProductID>HT-1031</ProductID>
</Product>
<Product>
<ProductID>HT-1035</ProductID>
</Product>
<Product>
<ProductID>HT-1601</ProductID>
</Product>
<Product>
<ProductID>HT-2025</ProductID>
</Product>
<Product>
<ProductID>HT-1067</ProductID>
</Product>
</List>
</soapenv:Body>
</soapenv:Envelope>
8. Choose the Save button and rename your HTTP request while
saving.
5. Send a Message.
Aggregator
Content-Based Routing
Content Enricher
Content Filter
Message Filter
Recipient List
Resequencer
Scatter-Gather
Splitter
Aggregator
Content-Based Routing
Variant: Ignore
Content Enricher
Suppose you must send an order to a supplier, but you don't have all the
required information for the receiver system to process it. For example,
the product items only have a category code, and the main category
name is missing. In this case, you can use a Content Enricher pattern that
reads data synchronously from an external system and appends the
missing information to the original message before forwarding it to the
receiver.
Content Filter
Message Filter
You can implement the Message Filter pattern to remove unwanted data
from a channel. For example, if you must send product information to an
inventory system, but the inventory system only handles a specific range
of products based on product category, you can apply a Message Filter to
discard any irrelevant data. The Message Filter is a subtype of the
Message Router pattern, with only one receiver channel. It evaluates
incoming messages and routes them to the receiver channel only if they
meet the specified criteria; otherwise, they are discarded.
Recipient List
Assuming that you want to find the best quote for an order by sending it
to several suppliers, but not all suppliers are relevant for every product in
the order. In this case, the suppliers that should receive the order are
dynamically determined based on the specific products being ordered. To
achieve this, you can use the Dynamic Router pattern, which sends a copy
of the message to multiple receivers based on dynamically determined
criteria. Unlike the content-based router, which forwards the original
message to a single receiver, the dynamic router sends a copy of the
message to multiple receivers.
Resequencer
Splitter
Idempotent Receiver
Summary
Business Scenario
Task Flow
2. Search, find, and copy the example integration flows to your Design
area.
Prerequisites
A functional Integration Suite → Cloud Integration with an appropriate user
is all that is required.
Steps
Task 2: Search, Find, and Copy the Example Integration Flows to Your
Design Area
Steps
4. On the top right, choose the Copy button to copy the complete
package to your Design area.
9. First, locate the Generic Receiver and choose it. This artifact is
a prerequisite for all other artifacts in this package, so it must
be installed first.
Steps
Steps
1. Check out the How to Work with the Example Integration Flows (No.
3).
2. Check out this page. We will do the same in the next task.
Note
Business Scenario
The following steps can be followed to try out selected scenarios and
study their mode of operation using the appropriate messages sent to the
endpoints of the processes via HTTPS. SAP provides a predefined
collection of messages for this purpose. It is also possible to use other
HTTP clients, such as Insomnia.
Task Flow
In the task of this exercise, you will perform the following steps:
Prerequisites
You have completed the task Create an HTTP Client to send SOAP
messages to an integration flow using Postman. To use Postman,
you must have it installed on your machine. Alternatively, you can
use Insomnia as an alternative to Postman. If you choose to use
Insomnia, you can import the JSON Collection of messages.
Steps