In this lesson, the following topics are discussed:
- The Camel Data Model.
- Simple Expression Language.
The Camel Data Model

It is a container for the following elements:
- Headers
- Properties
- Attachment
- Body
- Others
Here are the explanations:
- 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
More data can be temporarily stored during message processing in the form of context objects.
- Attachments
Contain optional data that is to be attached to the message.
- Body
The payload to be transferred in a message is contained within the body. During message processing, an Exchange container is also available, which can store extra data besides the message. This container is uniquely identified by an Exchange ID and can hold temporary data in the Properties area during message processing. The data stored in the Exchange container is available for the entire duration of the message exchange and is included in the container when the next processing step is called.
Manipulation of the Exchange Parameters
Exchange parameters, including the payload, are automatically set by incoming messages. However, these parameters can also be manually manipulated by reading and writing. Various methods are available for manipulating exchange parameters:
- Use of the Content Modifier component
- Use the Groovy SDK
- Use the JavaScript SDK
- Use of UDF in Message Mapping
- Use of XSLT Mapping
- And even more
Set Exchange Parameters with Content Modifier Component
The Content Modifier element offers a graphical way to manipulate the Exchange parameters.
You can manipulate:
- Header
- Properties
- Body
Set Exchange Parameters with Groovy SDK
The com.sap.gateway.ip.core.customdev.util.Message class offers methods to manipulate the parameters.
The same applies to JavaScript.
Simple Expression Language
The Simple Expression Language is used to parameterize Exchange Parameters. It also offers several Build-In parameters, such as timestamps, error messages, and more. That means you have only a reading access to, for example, Exchange Parameters.
The general scheme is the ${ } placeholder containing a built-in variable or Exchange Parameters. In Cloud Integration, the ${ } placeholder can be inserted in, for example, the payload in a Content Modifier step, or applied in the Query Editor, adding dynamic values to an OData resource path.
The ${ } placeholder can also be combined with operators to produce boolean expressions, which you can then use as conditions in Routers, Filters, and more integration flow components.
Samples:
1234${property.MyNumericProperty} > 0
${property.MyStringProperty} contains ‚test‘
property.ProductCoderegex‚[a−z]5\d3‘
${date:now:dd-MM-yyyy HH:mm}
Specials Within Daily Business
- The Message Body
- ${in.body}
- Properties
- ${property.}
- Message Headers
- ${header.}
The Simple Expression Language Can Be Used:
- In Scripting with Groovy or JavaScript.
- Within some integration flow components like Router, Content Modifier, and Message Mapping as user defined functions.
- In XSLT Mappings.
- In some adapters for querying.
Resources
Read more here:
- Guidelines for modifying content
- Guidelines for Modifying Content
- Exchange Parameters with Content Modifier Component
- Using Camels Simple in CPI Groovy Scripts
- Using Camel’s Simple in CPI Groovy scripts | SAP Blogs
- Simple Expression Language
Summary
The Camel Data Model is used to manage temporary data during processing in the individual integration flow components. This data model includes not only the payload (body) but also properties and header data, which are automatically included in an HTTP call.
The Exchange container is passed from the predecessor to the next processing step with each processing step. Exchange Parameters are set automatically, for instance when a message is received, and manually through components like the Content Modifier or the Groovy SDK, among others. The Camel Data Model manages the temporary data during processing, which includes the payload (body), properties, and header data. Header data is automatically included in an HTTP call.
Accessing the Exchange Parameters for reading is done through the Simple Expression Language, which not only includes built-in parameters but also allows for modeling complex regex expressions.