データベースから 1 行をフェッチするサンプルのミュール アプリケーションを作成しました。データベースから USER_NAME と USER_ID をフェッチします。結果を JSON または XML に変換すると、次のような出力が得られます。
[{"USER_ID":"U001","USER_NAME":"ダーミン"}]
今、セッション変数に USER_ID と USER_NAME を保存したいと思います。誰かが私を案内できますか?
編集:基本フロー画像を更新
データベースから 1 行をフェッチするサンプルのミュール アプリケーションを作成しました。データベースから USER_NAME と USER_ID をフェッチします。結果を JSON または XML に変換すると、次のような出力が得られます。
[{"USER_ID":"U001","USER_NAME":"ダーミン"}]
今、セッション変数に USER_ID と USER_NAME を保存したいと思います。誰かが私を案内できますか?
編集:基本フロー画像を更新
DB からの結果を Json として使用する必要がありますか?
そうでない場合は、値を JSON に変換してから sessionVars に保存する必要さえありません。DB 呼び出し後にペイロードから直接アクセスします。
構成 XML は次のとおりです。
<flow name="testsFlow">
<db:select config-ref="ORacle_DBCP_Config" doc:name="inputdata">
<db:parameterized-query><![CDATA[SELECT 'U001' AS USER_ID, 'Dharmin' AS USER_NAME FROM DUAL]]></db:parameterized-query>
</db:select>
<set-session-variable variableName="userName" value="#[payload[0].USER_NAME]" doc:name="userName"/>
<set-session-variable variableName="userID" value="#[payload[0].USER_ID]" doc:name="userID"/>
<logger message="#["UserID: " + sessionVars.userID + " | UserName: " + sessionVars.userName]" level="INFO" doc:name="Output the test"/>
</flow>
ロガーの出力は次のとおりです。
processor.LoggerMessageProcessor: UserID: U001 | UserName: Dharmin
JSONに変換した後、これを追加します:-
<json:json-to-object-transformer returnClass="java.util.HashMap" doc:name="JSON to Object"/>
その後、次を使用して値をセッション変数に入れます:-
<set-session-variable doc:name="Session Variable" value="message.payload.USER_ID" variableName="USER_ID"/>
と
<set-session-variable doc:name="Session Variable" value="message.payload.USER_NAME" variableName="USER_NAME"/>