使用 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 资源路径添加动态值。

${ } 占位符还可以与运算符组合以生成布尔表达式,然后你可以将其用作 RoutersFilters 以及更多集成流组件中的条件。

示例:

${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 表达式语言完成,它不仅包含内置参数,还允许对复杂的正则表达式进行建模。

本课其余配图

U4_The_Camel_Data_Model

CLD900_20_U4L4_002_scr

CLD900_20_U4L4_003_scr