Transform ユーティリティリファレンス (Flow Designer)

入力を出力にマップして DataWeave コードを生成するには、Transform ユーティリティ用の入力データ型と出力データ型を定義する必要があります。Transform は、この情報からデータの構造を推定します。Transform が入力の構造を検出できる場合もあります。この場合は、モック要求を実行した後で [Input (入力)] に構造が表示され、データ型を定義する必要はありません。

Transform が入力の構造を検出できない場合は、期待する入力または出力データ型を定義します。定義は、形式 (JSON や CSV など) とデータの例から構成されます。

Transform が構造を推定できるかどうかは事前にほぼ予測できます。たとえば、Transform への入力がデータベースコネクタから供給される場合は、データ構造はすでに定義されているため、データ型を定義する必要はありません。Transform への入力が HTTP リスナから供給される場合は、ペイロードの構造が予測できないため、データ型を定義する必要があります。

複数の出力部分の変換

[Output (出力)] の [Mappings (マッピング)] で、[Output Payload (出力ペイロード)] > [Add Transformation (変換を追加)] をクリックして、単一の Transform ユーティリティの出力の複数部分を変換するように指定できます。出力の各部分に対して個別の DataWeave コードを定義する必要があります。例: 1 つのタブでペイロード、別のタブで変数を定義している場合、どちらも同じ Mule メッセージ出力の部分となります。複数の出力の実行順序は変わることがあります。

DataWeave コードのデバッグと変更

DataWeave コードの出力例をプレビューすることで、期待どおりの変換が行われるかどうかを確認できます。Transform コンポーネントへのサンプル入力データをプレビューすることで、変換がどのように行われるかを見ることができます。または、グラフィックマップ上に固定値や関数を設定することで、コードを強化または調整できます。

変換のプレビュー

変換のプレビューは、サンプル入力データを使用して行います。変換をプレビューするためにアプリケーションを実行する必要はありません。サンプル入力と変換を修正するたびに、サンプル出力がリアルタイムで更新されます。

[Input (入力)] で [Edit Sample Data (サンプルデータを編集)] preview transformation output design center 1a65a をクリックすると、プレビューが表示されます。

[Input (入力)] では、入力のいずれかの部分 (ペイロード、属性、または変数) を選択します。 [Edit Sample Data (サンプルデータを編集)] アイコン preview transformation output design center 1a65a をクリックすると、サンプルデータが入力されます。

  • サンプルを使用してデータ型を定義してある場合は、サンプルデータで使用されている値がプレビューに表示されます。

  • スキーマを使用してデータ型を定義してある場合、またはデータ型が自動的に定義されている場合、値にはプレースホルダとして ???? の文字列が表示されます。

    サンプルデータや変換を修正すると、出力プレビューが変化します。検出できない値 (????) は、供給したサンプルデータに対して変換が機能した時点でサンプル値に置き換わります。

変換によって複数の出力 (ペイロードと変数など) が生じた場合、プレビューには現在選択されている変換の出力が表示されます。

出力が POJO (Plain Old Java Object) 型である場合、プレビューは JSON 形式となります。

入力および出力ツリーの検索

次のスクリーンショット例に示すように、Transform の入力および出力ツリーでは、文字列や部分的な文字列を検索できます。

search trees

POJO 入力

入力が POJO (Plain Old Java Object) 型である場合は、次の例に示すようにサンプルを DataWeave 形式で作成することで、データの構造を定義する必要があります。

[
  {
      message @(id: "FSD-483"): "Hello World!",
      date: |2017-05-06|,
      items: {
          item1: 434,
          item2: "344222"
      }
  },
  {
      message @(id: "DSF-829"): "This is what DataWeave format looks like.",
      date: |2017-03-21|,
      items: {
          item1: 728,
          item2: "14422"
      }
  }
]

[Transform (変換)] の [Input (入力)] で [Edit Sample Data (サンプルデータを編集)] preview transformation output design center 1a65a をクリックして、このコードを入力します。

このコードは、DataWeave 変換スクリプトとしては 使用しません 。定義するサンプルは、Transform ユーティリティのみで機能し、アプリケーションの他の部分には影響しません。

固定値または関数の設定

マッパーで特定の項目に値または関数を明示的に割り当てることで、その項目の変換を制御できます。

[Output (出力)] で、子を持たない項目 graphically construct mapping design center task 8a822 をダブルクリックしてツリーに追加します。

テキストボックス (デフォルトで null が表示されています) には、次の値を入力できます。

  • " " で囲んだ固定テキスト値

  • 入力項目への参照

  • DataWeave 関数を含むステートメント

スプレッドシートと同じように、各項目は別の項目を直接参照することや、参照に関与する関数のプロダクトにすることができます。

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub