2016-05-21 16 views
0

Ich bekomme eine iso8583 Antwort vom Server mit einigen Feldern wie 2,3,7,8 in payload. Jetzt möchte ich eine Nutzlast mit einem zweiten Feld mit einem anderen Wert aktualisieren. Wie kann ich das auf Maultieren machen? Ich habe versucht, ein Skript in groovy zu schreiben, aber es ist nicht die Ausführung ..Wie updaten Nutzlast in Maultier esb

das ist meine iso Nachricht (das ist meine Nutzlast):

ISO0160000751210B03080014E418000000000000000002897000000000000000000019916051912171405190620001809000000000614012837225UNI000000IDF331512135183102-0000001222358200-0000001222358200+0000000000000000+0000000000000000-0000001222358200INR    INR003FIG015117910100018219 

Jetzt möchte ich den Wert in diesem Nutzlast aktualisieren. Nach dem Parsen der Payload wird es als Schlüsselwertpaar aufgeteilt. Wenn ich payload.get(2) verwende, kommt der zweite Feldwert, aber ich möchte den zweiten Feldwert in der Nutzlast aktualisieren. Wie bitte hilf mir.

+0

Können Sie den Fluss, den Sie bereits haben, oder eine vereinfachte Version davon veröffentlichen? Es wird helfen, die Frage zu verstehen, und wir können nur das vorhandene aktualisieren, um Ihnen zu geben, was Sie brauchen. – Sudarshan

Antwort

1

Was Sie suchen ist die Message Enricher kann wie folgt verwendet werden:

<enricher target="#[payload[2]]"> 
    <set-payload value="the new value to set"/> 
</enricher> 

Dieser Wert mit der Taste 2 in der Karte gesetzt würde, was auch immer Sie im set-payload im enricher definieren. Es ist auch möglich, mehrere Nachrichtenprozessoren innerhalb der Anreicherungseinheit zu verwenden, die <processor-chain> verwenden.