如何在 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 一样,您集合中的每个元素都将是有效负载。