使用 Camel 数据模型和 Simple 表达式语言
学习目标
解释 Camel 数据模型和 Simple 表达式语言。
在本课中,我们将涵盖以下主题:
Camel 数据模型
Simple 表达式语言
Camel 数据模型
它是以下元素的容器:
Headers
Properties
Attachments
Body
Others
让我们详细了解一下。
Headers: 标头数据包含与消息相关的信息,例如发送方地址,并会自动包含在任何后续的 HTTP 调用中。
Properties: 在消息处理期间,可以以上下文对象的形式临时存储更多数据。
Attachments: 包含要附加到消息的可选数据。
Body: 消息中要传输的负载包含在正文中。在消息处理期间,还有一个 Exchange 容器可用,它可以在消息之外存储额外数据。该容器由 Exchange ID 唯一标识,并可在消息处理期间在 Properties 区域中保存临时数据。存储在 Exchange 容器中的数据在消息交换的整个持续期间都可用,并在调用下一个处理步骤时包含在该容器中。
操作 Exchange 参数
Exchange 参数(包括负载)由传入消息自动设置。但是,这些参数也可以通过读取和写入进行手动操作。有多种方法可用于操作 Exchange 参数,包括:
使用 Content Modifier 组件
使用 Groovy SDK
使用 JavaScript SDK
在消息映射中使用 UDF
使用 XSLT 映射
以及更多
使用 Content Modifier 组件设置 Exchange 参数
Content Modifier 元素提供了一种图形化的方式来操作 Exchange 参数。
你可以操作:
Header
Properties
Body
使用 Groovy SDK 设置 Exchange 参数
com.sap.gateway.ip.core.customdev.util.Message 类提供了操作这些参数的方法。
JavaScript 也是如此。
Simple 表达式语言
Simple 表达式语言用于参数化 Exchange 参数。它还提供了若干内置参数,例如时间戳、错误消息等。这意味着你对例如 Exchange 参数 只有读取权限。
通用方案是 ${ } 占位符,其中包含内置变量或 Exchange 参数。在 Cloud Integration 中,${ } 占位符可以插入到例如 Content Modifier 步骤中的负载里,或应用于 Query Editor 中,为 OData 资源路径添加动态值。
${ } 占位符还可以与运算符组合以生成布尔表达式,然后你可以将其用作 Routers、Filters 以及更多集成流组件中的条件。
示例:
${property.MyNumericProperty} > 0
${property.MyStringProperty} contains ‚test‘
property.ProductCoderegex‚[a−z]5\d3‘
${date:now:dd-MM-yyyy HH:mm}
日常业务中的特殊项
消息正文
${in.body}
Properties
${property.}
消息标头
${header.}
Simple 表达式语言可用于:
使用 Groovy 或 JavaScript 进行脚本编写。
在某些集成流组件中,例如 Router、Content Modifier 和消息映射中作为 用户自定义函数 。
在 XSLT 映射中。
在某些适配器中用于查询。
资源
在此了解更多:
修改内容的准则
Guidelines for Modifying Content
使用 Content Modifier 组件的 Exchange 参数
Define Content Modifier
SAP Integration Suite - Deep dive into Content Modifier | SAP Blogs
在 CPI Groovy 脚本中使用 Camel 的 Simple
Using Camel’s Simple in CPI Groovy scripts | SAP Blogs
Simple 表达式语言
Simple Expression Language
Using Camel Simple Expression Language
Get to know Camel’s Simple expression language in SAP Cloud Integration | SAP Blogs
总结
Camel 数据模型用于管理各个集成流组件在处理期间的临时数据。该数据模型不仅包括负载(正文),还包括属性和标头数据,它们会自动包含在 HTTP 调用中。
Exchange 容器在每个处理步骤中从前一个处理步骤传递到下一个处理步骤。Exchange 参数会被自动设置,例如在收到消息时,同时也可以通过 Content Modifier 或 Groovy SDK 等组件手动设置。Camel 数据模型管理处理期间的临时数据,其中包括负载(正文)、属性和标头数据。标头数据会自动包含在 HTTP 调用中。
读取 Exchange 参数通过 Simple 表达式语言完成,它不仅包含内置参数,还允许对复杂的正则表达式进行建模。
本课其余配图


