Flex Gateway新着情報
Governance新着情報
Monitoring API Manager式を評価して DataWeave スクリプトを選択し、新しいスクリプトを実行して結果を生成します。
スクリプトには、message
、payload
、vars
、attributes
などの通常の定義済み変数を使用できますが、キー - 値ペアのセットを指定することによってカスタム変数を追加することもできます。
このコンポーネントは、次の XML 構造をサポートします。
<ee:dynamic-evaluate
expression=""
doc:name="Dynamic evaluate"
doc:id="ojfqoz">
<ee:parameters>#[]</ee:parameters>
</ee:dynamic-evaluate>
Dynamic Evaluate (<ee:dynamic-evaluate/>
) 属性は UI および XML で設定できます。
属性名 | 属性 XML | 説明 |
---|---|---|
Dynamic evaluate (動的評価) (デフォルト) |
|
キャンバスに表示されるコンポーネントの編集可能な名前。 |
なし |
|
コンポーネントの自動生成された識別子。 |
Expression (式) |
|
Mule で実行される DataWeave スクリプトを選択する式 (例: |
Additional Bindings (追加のバインド) |
|
なし |
Target Variable (対象変数) |
|
メッセージデータを格納する変数の名前。数字、文字、アンダースコアのみを使用できます。たとえば、名前にハイフンは使用できません。 Mule ドキュメントの Enrich Data with Target Variablesを参照してください。 |
Target Value (対象値) |
|
対象変数に格納するデータの値。このデフォルト値はメッセージペイロード (payload) です。この項目は、変数が受け入れるすべての値を受け入れます。サポートされているデータ型、DataWeave の式、 |
<ee:parameters/>
は Dynamic Evaluate の子要素です。
子要素 | 説明 |
---|---|
|
DataWeave スクリプトが評価できるパラメーターとして機能するキー-値ペア (例: |
次の例では、userId
クエリパラメーターを使用してデータベースからスクリプトを選択し、そのスクリプトを userScript
変数に保存します。Dynamic Evaluate (<ee:dynamic-evaluate/>
) は、userScript
変数にアクセスし、指令された (attributes.queryParams.userName
の値を含む) パラメーター name
を使用してスクリプトを呼び出します。
<flow name="dynamic-evaluate-example-flow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/"/>
<!-- This SQL query uses queryParams.userId to dynamically select a DataWeave script stored in a Database,
and then assign this script to target variable userScript-->
<db:select config-ref="dbConfig" target="userScript">
<db:sql>#["SELECT script FROM SCRIPTS WHERE ID = $(attributes.queryParams.userId)"]</db:sql>
</db:select>
<!-- The dynamic evaluate component executes the script stored in vars.userScript-->
<ee:dynamic-evaluate expression="#[vars.userScript]">
<!-- This line sets a parameter called 'name', so the expression in the Dynamic Evaluate component can use it -->
<ee:parameters>#[{name: attributes.queryParams.userName}]</ee:parameters>
</ee:dynamic-evaluate>
</flow>
スクリプト lsalander
と mblomkvist
がこの例のデータベースに保存されていると仮定します。
output application/json --- { message: "Order " ++ attributes.queryParams.orderId ++ " has been received from " ++ name, items: payload.items }
output application/x-www-form-urlencoded --- { message: "Order " ++ attributes.queryParams.orderId ++ " has been received from " ++ name, items: payload.items }
Mule アプリケーションサンプルが要求で lsalander
を queryParams.userId
として受け取ると、Mule は lsalander
スクリプトを実行して JSON 応答を返します。アプリケーションが mblomkvist
を queryParams.userId
値として受け取った場合、Mule は別のスクリプトを実行して x-www-form-urlencoded
応答を返します。
この例は、ユーザーに基づいて応答種別をパラメーター化でき、さらにユーザーのニーズに合わせて応答全体をパラメーター化できることを示しています。