【问题标题】:Iterate within the payload in mule在 mule 中的有效负载中进行迭代
【发布时间】:2016-04-25 11:40:52
【问题描述】:

我正在从数据库中检索一些行。例如,检索后我有两行作为有效负载。我想在行内迭代。检索到的两行如下,

[{PAYLOAD_MSG=PU, SENSITIVEDATAINDICATOR=Y, ERRORMESSAGE=User generated exception test, 
INTERFACEID=I0826, EXCEPTIONID=73, PAYLOADMSGID=I0826MessTesting0002, SEVERITY=2, INTERFACENAME=replay, 
SOURCEPROTOCOL=MQ, CREATIONTIME=2016-03-01 08:29:36.211319, EVENTSOURCE=MQ_Input.transaction.Rollback}, 
{PAYLOAD_MSG=UvdjI, SENSITIVEDATAINDICATOR=N, ERRORMESSAGE=User generated exception test, INTERFACEID=I0826,
EXCEPTIONID=72, PAYLOADMSGID=I0826MessTesting0001, SEVERITY=2, INTERFACENAME=replay, SOURCEPROTOCOL=MQ, 
CREATIONTIME=2016-03-01 08:29:36.211319, EVENTSOURCE=MQ_Input.transaction.Rollback}]

我想访问第一行和第二行的 Payload_Msg。具体如何做到这一点?我尝试了以下方法,

[payload[0].Payload_Msg],#[payload.Payload_Msg]。但他们没有工作。有人可以帮助克服这个问题。

【问题讨论】:

    标签: db2 mule iteration payload


    【解决方案1】:

    您可以使用 ForEach 循环来迭代和访问对象。

      <foreach collection="payload">
                 <logger message="#[payload.PAYLOAD_MSG]"/>
             </foreach>
    

    【讨论】:

      【解决方案2】:

      #[payload[0].PAYLOAD_MSG] 必须正常工作,否则请与 #[message.payload[0] PAYLOAD_MSG]

      【讨论】:

        【解决方案3】:

        您可以使用 Foreach 组件,但首先将其设置为流变量,以便您仍然可以在 Foreach 组件中访问它。另一种处理方法是使用 Collection Splitter 组件。

        希望这会有所帮助。

        【讨论】:

          【解决方案4】:

          您可以在数据库连接器之后使用 Collection Splitter 来一一处理每条记录。然后你可以在 Logger 中使用#[payload.Payload_Msg] 来检索值。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-04-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-10-23
            • 2020-11-04
            相关资源
            最近更新 更多