如何在 Mule4 的 foreach 循环中检索元素?
How to retrieve elements in foreach loop in Mule4?
我定义了一个变量来保存 application/json 集合。
<set-variable value="#[payload.'IntegrationEntities'.'amendmentId']" doc:name="AmendmentIds" doc:id="03b6c46a-fc7b-43d4-b23a-502146ef0b13" variableName="amendmentids"/>
<logger level="INFO" doc:name="Logger" doc:id="6a1ad892-65f9-4dd2-9891-bdf3ad64c908" message="#[vars.amendmentids]" />
打印为;
[
"8a9a84b76b5a5a59016b687bae35012e",
"8a9a84b76b5a5a59016b6888e90e0144"
]
然后我使用 ForEach 循环为每个 Id 定义一些流程逻辑,
在 foreach 循环中,我如何获得上面的每个 id?
我使用了vars.amendmentids[vars.counter]]
,但出现以下错误[1]
<foreach doc:name="For Each" doc:id="7b741315-aa28-4704-82f0-629c21d93853" collection="#[vars.amendmentids]">
<logger level="INFO" doc:name="Logger" doc:id="049c3137-2f92-4077-8e3f-b26516cc5528" message="#[vars.amendmentids[vars.counter]]"/>
</foreach>
[1]
Message : "Internal execution exception while executing the script, this is most probably a bug, file an issue with the script and the input data.
Caused by:
java.lang.RuntimeException: Unable to infer a output media type as more than one is being used: application/json,application/java please specify using: output <your mime-type> --- <expr>
at org.mule.weave.v2.el.MuleDataWeaveHelper$.inferImplicitOutput(MuleDataWeaveHelper.scala:69)
.............
" evaluating expression: "vars.amendmentids[vars.counter]".
Error type : MULE:EXPRESSION
您只需要在 foreach 范围内访问负载:
<foreach doc:name="For Each" collection="#[vars.amendmentids]">
<logger level="INFO" doc:name="Logger" message="#[payload]"/>
</foreach>
与 foreach 一样,您集合中的每个元素都将是有效负载。
我定义了一个变量来保存 application/json 集合。
<set-variable value="#[payload.'IntegrationEntities'.'amendmentId']" doc:name="AmendmentIds" doc:id="03b6c46a-fc7b-43d4-b23a-502146ef0b13" variableName="amendmentids"/>
<logger level="INFO" doc:name="Logger" doc:id="6a1ad892-65f9-4dd2-9891-bdf3ad64c908" message="#[vars.amendmentids]" />
打印为;
[
"8a9a84b76b5a5a59016b687bae35012e",
"8a9a84b76b5a5a59016b6888e90e0144"
]
然后我使用 ForEach 循环为每个 Id 定义一些流程逻辑,
在 foreach 循环中,我如何获得上面的每个 id?
我使用了vars.amendmentids[vars.counter]]
,但出现以下错误[1]
<foreach doc:name="For Each" doc:id="7b741315-aa28-4704-82f0-629c21d93853" collection="#[vars.amendmentids]">
<logger level="INFO" doc:name="Logger" doc:id="049c3137-2f92-4077-8e3f-b26516cc5528" message="#[vars.amendmentids[vars.counter]]"/>
</foreach>
[1]
Message : "Internal execution exception while executing the script, this is most probably a bug, file an issue with the script and the input data.
Caused by:
java.lang.RuntimeException: Unable to infer a output media type as more than one is being used: application/json,application/java please specify using: output <your mime-type> --- <expr>
at org.mule.weave.v2.el.MuleDataWeaveHelper$.inferImplicitOutput(MuleDataWeaveHelper.scala:69)
.............
" evaluating expression: "vars.amendmentids[vars.counter]".
Error type : MULE:EXPRESSION
您只需要在 foreach 范围内访问负载:
<foreach doc:name="For Each" collection="#[vars.amendmentids]">
<logger level="INFO" doc:name="Logger" message="#[payload]"/>
</foreach>
与 foreach 一样,您集合中的每个元素都将是有效负载。