Mule:return 原始消息流(如 For Each)
Mule: return the original message to flow (like For Each)
在 For Each 介绍中我们有:"The Foreach scope splits a collection into elements and processes them iteratively through the processors embedded in the scope, then returns the original message to the flow."
我想知道我们是否有一个表单 return 原始消息到流程时,在流程中间我们有一个处理新消息(有效负载)的过程类似于 For Each 工作,但是不是使用 For Each 的情况!
示例:
流(有效载荷 AA)-> ["Sub" 流(有效载荷 BB)]-> 流(有效载荷 AA)
有表格吗?
最简单的方法是使用一个 enricher 将 sub-flow
的结果存储在一个 flowVar 中,这样原始的有效负载就不会被修改:
<enricher target="#[flowVars.someSubFlowResult]">
<flow-ref name="mySubFlow" />
</enricher>
或者在进入流时手动将原始有效载荷存储到流变量中,并在流结束时使用流变量将有效载荷设置回原始有效载荷。例如:
<set-variable variableName="originalPayload" value="#[payload]" />
<!-- do some other processing -->
<set-payload value="#[flowVars.originalPayload]" />
在 For Each 介绍中我们有:"The Foreach scope splits a collection into elements and processes them iteratively through the processors embedded in the scope, then returns the original message to the flow."
我想知道我们是否有一个表单 return 原始消息到流程时,在流程中间我们有一个处理新消息(有效负载)的过程类似于 For Each 工作,但是不是使用 For Each 的情况!
示例:
流(有效载荷 AA)-> ["Sub" 流(有效载荷 BB)]-> 流(有效载荷 AA)
有表格吗?
最简单的方法是使用一个 enricher 将 sub-flow
的结果存储在一个 flowVar 中,这样原始的有效负载就不会被修改:
<enricher target="#[flowVars.someSubFlowResult]">
<flow-ref name="mySubFlow" />
</enricher>
或者在进入流时手动将原始有效载荷存储到流变量中,并在流结束时使用流变量将有效载荷设置回原始有效载荷。例如:
<set-variable variableName="originalPayload" value="#[payload]" />
<!-- do some other processing -->
<set-payload value="#[flowVars.originalPayload]" />