カードの出力のすべてまたは一部を変数に保存 (Flow Designer):page-support-status: eolScheduled

Set Variable カードを使用して変数を作成し、前のカードからの出力のすべてを保存したり、出力の一部を保存したり、DataWeave 式で関数を使用して出力を操作したりすることができます。その後、変数を使用して後のカードで値を再利用できます。

通常、次の図の最初のフローで示されているように、カードが出力したデータ全体を同じフローの次のカードが受け取ります。

fd regular variables
Figure 1. 通常のフローと、Set Variable カードを使用するフローとの比較

最初のフローでは次の手順が実行されます。

  1. Card A が出力を生成します。

  2. Card B は Card A からの出力全体を受け取ります。

ただし、Set Variable カードを使用して変数を作成した場合、2 番目のフローで示されているように、変数と、前のカードからの出力の両方がフローの次のカードに渡されます。

  1. Card A が出力を生成します。

  2. Set Variable カードは変数を作成し、Card A からの出力のすべてを保存したり、出力の一部を保存したり、DataWeave 式で関数を使用して出力を操作したりします。

  3. Card B は Card A からのデータセット全体 (ペイロードと属性) と変数を受け取ります。Card B は独自のデータセットと変数を出力します。Card A からの出力は、変数に保存された部分を除き、フローの一部ではなくなります。

  4. Card C は Card B からのデータセット全体と変数を受け取ります。

たとえば、チュートリアル​「Flow Designer での最初の Mule アプリケーションの作成」​では、トリガーカードのペイロードを保存できるようにトリガーカードの後で Set Variable カードを使用しました。これは、Choice router を使用した後でこのペイロードからの情報を使用する必要があったが、Choice router からの 3 つの可能な出力にはその情報が保持されなかったためです。

fd set var oppdetails
Figure 2. チュートリアルでの Set Variable カード

Choice router に続く Transform カードで ​OppDetails​ と名付けた変数を使用しました。

fd set var transform
Figure 3. 変数 ​OppDetails​ が強調表示された、Choice router に続く Transform カード

ただし、​OppDetails​ はフローの後半でも使用できます。これは、次のように、フローの最後のカードである Twilio カードで確認できます。

fd set var twilio
Figure 4. OppDetails​ 変数が強調表示された Twilio カード

変数をこの Twilio カード (または、Transform カードを除く、変数を使用できる任意のカード) で使用するには、単に変数を項目にドラッグします。

変数を 1 回以上使用した後、その変数をそれ以上使用する必要がないと考えられる場合は、変数を最後に使用するカードの後に Remove Variable カードを追加します。

手順

カードからのデータに基づく値を保存する手順は、次のとおりです。

  1. 保存する値の基礎となるデータを出力するカードの後のプラスアイコンをクリックします。

  2. Set Variable カードを追加します。

  3. 変数の名前を指定します。名前には、数字、文字、およびアンダースコアのみを含めることができます。

  4. 変数の値を指定します。

    • 文字列値を指定する場合、​[Value (値)]​ 項目の右側に ​f(x)​ ボタンが表示されていることを確認します。このボタンがある場合、この項目は関数モードではなく、文字列モードであることを意味します。​[Value (値)]​ 項目に直接入力できます。また、文字列内に文字列を指定する場合を除いて、引用符を使用する必要はありません。

      fd set var value field smode
      Figure 5. Set Variable カード内で強調表示された文字列モードの ​[Value (値)]​ 項目
    • DataWeave 式を指定する場合は、​[Value (値)]​ 項目の右側に ​f(x)​ が表示されていることを確認します。​f(x)​ がある場合、この項目は式モードであることを意味します。この項目内をクリックすると、​[Custom Expression (カスタム式)]​ ダイアログが開きます。このダイアログで、右側の ​[Add data (データの追加)]​ ペインと ​[Add functions (関数の追加)]​ ペインを使用して式を作成できます。

      fd set var value field fmode
      Figure 6. Set Variable カード内で強調表示された式モードの ​[Value (値)]​ 項目
      fd set var custom expression dialog
      Figure 7. [Custom Expression (カスタム式)] ウィンドウとそのペイン

      [Add data (データの追加)]​ ペインを表示するには、前のカードの少なくとも 1 つで ​Default​ 以外のデータ型を出力する必要があります。

      [Add functions (関数の追加)]​ ペインに表示される DataWeave 関数についてのドキュメントは、「DataWeave 関数リファレンス」の​「Core」​を参照してください。

      [Custom Expression (カスタム式)] ウィンドウのスクリーンショットに基づく例:​ ペイロードのエラーメッセージを変数に保存する場合、​error_message​ をクリックします。これで、​[Expression (式)]​ 項目に式 ​error_message​ が含まれます。次に ​[OK]​ をクリックします。

      値を入力することもできます。たとえば、ペイロード全体を変数に保存する場合、​[Custom Expression (カスタム式)]​ 項目に「​payload​」と入力できます。

  5. [Custom Expression (カスタム式)]​ ダイアログで ​[OK]​ をクリックし、キャンバスをクリックしてカードを閉じます。

前のカードからのペイロードを保存するには、変数の値を ​payload​ に設定します。

前のカードからの属性を保存するには、変数の値を ​attributes​ に設定します。

フローの現在の時点のデータセット全体を保存するには、変数の値を ​message​ に設定します。

ブール値を保存するには、変数の値を ​true​ または ​false​ に設定します。