入力データへの出力データのマッピング (Flow Designer)

フローのカードが、受信するデータに特定のカスタムデータ型の使用を要求する場合があります。前のカードの出力が別のカスタムデータ型を使用している場合、前のカードのカスタムデータ型の要素を、次のカードで必要とされるカスタムデータ型の要素にマップする必要があります。

たとえば、フローに Card A と Card B があり、Card B が Card A に続くとします。Card B の入力で必要とされるカスタムデータ型と同じカスタムデータ型が Card A の出力で使用されている場合、Card A の出力を Card B の入力にマップする必要はありません。

fd transform parent topic match
Figure 1. Card A から出力されたカスタムデータ型が Card B で必要とされるカスタムデータ型に一致するため、フロー内で Card B を Card A の直後に続けることができます。

一方、この 2 つのカスタムデータ型が一致しない場合、Transform カードを使用して、Card A から出力されたカスタムデータ型の要素を Card B で必要とされるカスタムデータ型の要素にマップする必要があります。

fd transform parent topic nomatch
Figure 2. Card A から出力されたカスタムデータ型が Card B で必要とされるカスタムデータ型に一致しないため、Transform カードを使用して、Card A の出力の要素を Card B で必要とされる入力の要素にマップする必要がある

両方のカードでシンプルデータ型が使用されている場合、次の 2 つのシナリオのいずれかが考えられます。

  • Card A が、シンプルデータ型 (String、Number、Date など) を使用するデータを出力し、Card B が同じシンプルデータ型のデータを必要とする場合、マッピングは必要ありません。

  • Card A が、シンプルデータ型を使用するデータを出力し、Card B が別のシンプルデータ型のデータを必要とする場合、Card B を Card A に続けることはできません。これらのデータ型間のマッピングは不可能です。

一方のカードのみがシンプルデータ型を使用し、もう一方のカードがカスタムデータ型を使用している場合、次の 2 つのシナリオが考えられます。

  • シンプルデータ型を使用するデータを Card A が出力し、カスタムデータ型を使用するデータを Card B が必要とする場合、Card B のカスタムデータ型に同じシンプルデータ型の 1 つの要素のみが含まれている場合を除き、マッピングは不可能です。

    たとえば、Card A が String 型のデータを出力し、Card B が次のカスタムデータ型の入力を必要とするとします。

    例 1
    {
      "a": <string>
    }

    この場合、Card A から出力された String 型の出力を Card B で必要とされるカスタムデータ型の要素 ​a​ にマップすることができます。

    では、Card B のカスタムデータ型が次の 2 つのデータ型のいずれかであったとしたらどうなるでしょう。

    例 2
    {
      "a": <number>
    }
    例 3
    {
      "a": <string>,
      "b": <number>
    }

    例 2 では、カスタムデータ型の唯一の要素が ​number​ データ型を使用しています。​string​ は ​number​ にマップできません。

    例 3 のカスタムデータ型には 2 つの要素があります。Card A からの ​string​ は要素 ​a​ にのみマップできるため、要素 ​b​ は値なしのままになります。Card B はこのカスタムデータ型を必要とするため、そのすべての要素にデータが含まれている必要があります。したがって、Card A からの ​string​ をこのカスタムデータ型にマップすることはできませんでした。

  • Card A がカスタムデータ型を出力し、Card B が、シンプルデータ型を使用するデータを必要とする場合、カスタムデータ型からの要素をシンプルデータ型にマップできることがあります。この要素は同じシンプルデータ型を使用する必要があります。

    たとえば、Card A が、例 3 のカスタムデータ型を使用するデータを出力するとします。Card B が ​string​ の入力データを必要とする場合、要素 ​a​ を Card B の入力にマップできます。Card B が ​number​ の入力データを必要とする場合もマッピングは可能です。

    ただし、Card B が ​date​ または他のシンプルデータ型の入力データを必要とする場合、マッピングは不可能です。

Transform カードを使用したマッピングの例

チュートリアル​「Flow Designer での最初の Mule アプリケーションの作成」​の手順を実行したユーザは、すでに 2 回のマッピングを行っています。この両方のマッピングをもう一度見てみましょう。

Transform カードツアー

Transform カードには、データのマッピングを容易にするためのさまざまな機能が含まれます。

変換用のデータ型のマッピングに関する推奨事項の入手

Transform カードでは、入力データ型のデータ要素から出力データ型のデータ要素への推奨されるマッピングが表示されます。推奨されるマッピングがニーズに合う場合は、マッピングを保存してカードで使用できます。

Was this article helpful?

💙 Thanks for your feedback!