在mule的有效载荷内迭代

时间:2016-04-25 11:40:53

标签: db2 mule iteration payload

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

[{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]。但他们没有工作。有人可以帮助克服这一点。

4 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

#[payload [0] .PAYLOAD_MSG]必须使用#[message.payload [0] PAYLOAD_MSG]进行检查

答案 2 :(得分:0)

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

希望这有帮助。

答案 3 :(得分:0)

您可以在数据库连接器之后使用 Collection Splitter 来逐个处理每个记录。然后,您可以使用记录器中的FATAL EXCEPTION: main Process: familyshopshare.com.familyshopshare, PID: 17889 java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference at android.widget.Toast.<init>(Toast.java:102) at android.widget.Toast.makeText(Toast.java:259) at familyshopshare.com.familyshopshare.ShoppingListViewHolder$1.onClick(ShoppingListViewHolder.java:33) at android.view.View.performClick(View.java:5198) at android.view.View$PerformClick.run(View.java:21147) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 来检索值。