Transform Message コンポーネント XML リファレンス

Studio UI を使用して Mule プロジェクトに DataWeave 言語を取り込むだけではなく、Studio の [XML] タブまたは外部エディターで、Transform Message コンポーネントをすべて XML で作成して設定することができます。

UI を使用して要素を作成および設定すると、対応する XML 設定が XML エディターで自動的に作成されます。

名前空間とスキーマの場所

Mule プロジェクトの最初に、次の連動関係を取り込む必要があります。

<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
      ...
      xsi:schemaLocation="
      ...
      http://www.mulesoft.org/schema/mule/ee/core
      http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
</mule>

Transform コンポーネントをキャンバスにドラッグアンドドロップすると、Studio はこれらの連動関係を自動的に追加します。

<ee:transform/>

<ee:transform>​ 要素は、Transform コンポーネントのトップレベル XML タグです。

<ee:transform>​ 属性 説明

doc:name

Studio キャンバスに表示される要素の名前を定義します。

mode

遅延実行​を参照します。指定できる値: immediate​ または ​deferred​。​DataWeave のメモリ管理​を参照してください。

Transform コンポーネントへの DataWeave スクリプトの追加

変換​要素内で ​CDATA​ を使用して DataWeave コードを XML に入力するか、または外部の ​.dwl​ ファイルを参照できます。

この例では、​<dw:set-payload>​ 変換要素内で DataWeave スクリプトを作成しています。

<ee:transform doc:id="747f74d4-cb66-4f8e-8222-24784e6863ae"
  doc:name="Transform" doc:timestamp="1510861248434">
    <ee:message>
        <ee:set-payload>
          <![CDATA[%dw 2.0
            output application/json
            ---
            {
              // YOUR DW SCRIPT
            }
          ]]>
       </ee:set-payload>
    </ee:message>
</ee:transform>

次の例では、外部の ​.dwl​ ファイルを呼び出して同じ設定を行っています。

<ee:transform doc:id="747f74d4-cb66-4f8e-8222-24784e6863ae"
  doc:name="Transform" doc:timestamp="1510861248434" doc:mode="immediate">
    <ee:message>
      <ee:set-payload resource="transform.dwl" />
    </ee:message>
</ee:transform>

これらのファイルは、デフォルトではプロジェクトの ​src/main/resources​ フォルダーにあります。

変換

単一の Transform コンポーネント要素 (​<ee:transform/>​) で、Mule イベントのすべての部分のコンテンツを指定できます。

  • <ee:message/>​ には、​<ee:set-payload/>​ と ​<ee:set-attributes/>​ を定義できます。

  • <ee:variables/>​ には、1 つまたは複数の ​<ee:set-variable/>​ 要素を定義できます。

<ee:transform doc:id="747f74d4-cb66-4f8e-8222-24784e6863ae"
  doc:name="Transform" doc:timestamp="1510861248434">
    <ee:message>
        <ee:set-payload resource="transform.dwl" />
        <ee:set-attributes resource="myattributes.dwl" />
    </ee:message>
    <ee:variables>
        <ee:set-variable variableName="myVar" resource="myvar.dwl"/>
    </ee:variables>
</ee:transform>

子要素には、同じ属性の一部を定義できます。

属性 説明

resource

DataWeave 変換スクリプトが格納された ​.dwl​ ファイルを参照します。これらの値は静的に解決されます。たとえば、​<ee:set-payload resource="myscript-${env}.dwl"/>​ を使用すると Transform Message UI で ​Unexpected end of input, expected header or content​ というエラーが発生します。

variableName

出力変数専用で、変数の名前を定義します。

完全な XML の例

ペイロード、属性、および変数の変換を作成する例です。

<ee:transform doc:id="747f74d4-cb66-4f8e-8222-24784e6863ae"
  doc:name="Transform" doc:timestamp="1510861248434">
    <ee:message>
        <ee:set-payload><![CDATA[%dw 2.0

output application/json
---
(payload map (value0, index0) -> {
id: value0.id,
username: value0.username,
address: {
street: value0.address.street
},
website: value0.website
})]]></ee:set-payload>
        <ee:set-attributes><![CDATA[%dw 2.0

output application/json
---
{
reasonPhrase: attributes.reasonPhrase
}]]></ee:set-attributes>
    </ee:message>
    <ee:variables>
        <ee:set-variable variableName="myVar"><![CDATA[%dw 2.0

output application/json
---
{
a: payload[0].phone
}]]></ee:set-variable>
    </ee:variables>
</ee:transform>