2016-04-25 9 views
-1

Ich bin einige Zeilen aus der Datenbank abrufen. Zum Beispiel habe ich nach dem Abrufen zwei Zeilen als Payload. Ich würde gerne innerhalb der Zeilen iterieren. Die abgerufenen zwei Reihen sind wie folgt,Iterate innerhalb der Payload in Mule

[{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}] 

I die Payload_Msg der ersten Reihe und als auch die zweite Zeile zugreifen möchten. Wie kann dies konkret gemacht werden? Ich habe die folgenden Möglichkeiten versucht,

[Nutzlast [0]. Payload_Msg], # [Payload.Payload_Msg]. Aber sie arbeiteten nicht. Könnte jemand helfen, dies zu überwinden?

Antwort

0

Sie können die ForEach-Schleife verwenden, um Objekte zu iterieren und darauf zuzugreifen.

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

# [Nutzlast [0] .PAYLOAD_MSG] muss mit # anderen arbeiten überprüfen [message.payload [0] PAYLOAD_MSG]

0

können Sie Foreach-Komponente verwenden, sondern auf einen Durchfluss eingestellt es zuerst var, so dass Sie immer noch innerhalb der Foreach-Komponente darauf zugreifen können. Eine andere Möglichkeit, dies zu umgehen, ist die Verwendung der Collection-Splitter-Komponente.

Hoffe, das hilft.

0

Sie könnten einen Collection Splitter nach dem Datenbankkonnektor verwenden, um jeden Datensatz nacheinander zu verarbeiten. Dann können Sie #[payload.Payload_Msg] im Logger verwenden, um den Wert abzurufen.