Mulesoft 简明教程
MuleSoft - Flow Control and Transformers
Flow Control (Routers)
流程控制组件的主要任务是接收输入的 Mule 事件,并将它路由到一个或多个独立的组件序列。它基本上是将输入的 Mule 事件路由到其他组件序列。因此,它也被称为路由器。选择和分散-收集路由器是流程控制组件中最常用的路由器。
Choice Router
顾名思义,此路由器应用 DataWeave 逻辑,从两个或更多个路由中选择一个。如前文所述,每个路由是一个独立的 Mule 事件处理器序列。我们可以将选择路由器定义为动态地通过流程路由消息的路由器,根据一组 DataWeave 表达式评估消息内容。
Scatter-Gather Router
另一种最常用的路由事件处理器是 Scatter-Gather component 。顾名思义,它基于分散(复制)和收集(合并)的基本原理工作。我们可以借助以下两点了解它的工作原理−
-
首先,此路由器将 Mule 事件复制(分散)到两个或多个并行路由。条件是每个路由都必须是一个或多个事件处理器的序列,就像一个子流程。在这种情况下,每个路由都将使用一个独立的线程创建一个 Mule 事件。每个 Mule 事件都有其自身的有效内容、属性以及变量。
-
接下来,此路由器从每个路由收集已创建的 Mule 事件,然后将它们合并到一个新的 Mule 事件中。此后,它将此合并的 Mule 事件传递到下一个事件处理器。这里的条件是 S-G 路由器仅在每个路由都成功完成时才将合并的 Mule 事件传递到下一个事件处理器。
Remove variable transformer
正如其名称所述,此组件采用变量名,并从此 Mule 事件中删除此变量。
Configuring removing variable transformer
下表显示了在配置删除变量转换器时要考虑的字段名称及其描述:
Sr.No |
Field & Explanation |
1 |
Display Name (doc:name) 我们可自定义此选项,以在此 Mule 工作流程中显示此组件的唯一名称。 |
2 |
Name (variableName) 它代表要删除的变量的名称。 |
Set payload transformer
借助 set-payload 组件,我们可以更新消息的有效载荷,该有效载荷可以是文字字符串或 DataWeave 表达式。不建议针对复杂表达式或转换使用此组件。它可用于 selections 等简单表达式。
下表显示了在配置设置有效载荷转换器时要考虑的字段名称及其描述:
Field |
Usage |
Explanation |
Value (value) |
Mandatory |
为设置有效载荷,需要字段值。它将接受文字字符串或 DataWeave 表达式,用于定义如何设置有效载荷。示例如下:“某个字符串” |
Mime Type (mimeType) |
Optional |
此项是可选的,但它代表了分配给消息有效载荷的 MIME 类型。示例如下:text/plain。 |
Encoding (encoding) |
Optional |
它也是可选的,但表示分配给消息有效负载的值的编码。示例类似于 UTF-8。 |
我们可以通过 XML 配置代码设置有效负载 -
With Static Content - 以下 XML 配置代码将使用静态内容设置有效负载 -
<set-payload value = "{ 'name' : 'Gaurav', 'Id' : '2510' }"
mimeType = "application/json" encoding = "UTF-8"/>
With Expression Content - 以下 XML 配置代码将使用表达式内容设置有效负载 -
<set-payload value = "#['Hi' ++ ' Today is ' ++ now()]"/>
以上示例将把今天的日期追加到消息有效负载“Hi”中。
Set Variable Transformer
借助 set variable 组件,我们可以创建或更新变量以存储值,这些值可以是简单的文字值(例如字符串、消息有效负载或属性对象),以便在 Mule 应用程序的流程中使用。不建议将此组件用于复杂表达式或转换。它可以用于简单的表达式,如 selections 。
Configuring set variable transformer
下表显示了在配置设置有效载荷转换器时要考虑的字段名称及其描述:
Field |
Usage |
Explanation |
Variable Name (variableName) |
Mandatory |
必需字段,它表示变量的名称。在给出名称时,请按照命名约定进行,例如它必须包含数字、字符和下划线。 |
Value (value) |
Mandatory |
为设置变量需要值字段。它将接受文字字符串或 DataWeave 表达式。 |
Mime Type (mimeType) |
Optional |
它是可选的,但表示变量的 MIME 类型。示例类似于 text/plain。 |
Encoding (encoding) |
Optional |
它也是可选的,但表示变量的编码。示例类似于 ISO 10646/Unicode(UTF-8)。 |