カードの出力全体を変数に保存 (Flow Designer):page-support-status: eolScheduled

カードの出力に基づく値 (つまり、出力全体、出力の一部、または操作した出力) を保存し、その変数を前のカードからの出力と共に次のカードに渡すことができます。

通常、図の最初のフローで示されているように、カードは入力として受け取ったデータとは異なるデータを出力します。

fd target variables
Figure 1. 通常のフローと、対象変数への出力を行うカードを含むフローとの比較

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

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

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

ただし、対象変数を作成した場合、図の 2 番目のフローで示されているようにフローが変わり、次の手順が実行されます。

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

  2. Card B は Card A からの出力全体を受け取ります。Card B は独自の出力を変数に保存し、その変数と Card A からの出力を Card C に渡します。

  3. Card C は Card A からの出力と、Card B の出力を含む変数を受け取ります。

変数が必要な場合、変数はフロー内の後のカードに表示されます。たとえば、チュートリアル​「Flow Designer での最初の Mule アプリケーションの作成」​のフローを使用するには、変数 ​OppDetails​ をフローの前半で作成します。この変数は、フローの最後のカードである Twilio カードでも使用できます。

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

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

OppDetails​ は、Set Variable カードで作成されたものですが、カードの ​[Target (対象)]​ 項目や ​[Target Value (対象値)]​ 項目を使用して作成された変数と同じ方法でアクセスし、使用できます。

手順

  1. 出力を変数に挿入するカードを開きます。

  2. カードの左側にある ​[Advanced (詳細)]​ をクリックします。すべてのカードの [Advanced (詳細)] ページに、対象変数を作成するための項目が配置されているとは限りません。また、すべてのカードが出力を対象変数に挿入できるとも限りません。

  3. [Target (対象)]​ 項目で変数の名前を指定します。名前には、数字、文字、およびアンダースコアのみを含めることができます。

  4. [Target Value (対象値)]​ 項目内をクリックし、​[Custom Expression (カスタム式)]​ ダイアログを開いて、DataWeave 式を指定します。このダイアログでは、右側の ​[Add data (データの追加)]​ ペインと ​[Add functions (関数の追加)]​ ペインを使用して式を作成できます。

    fd set var custom expression dialog
    Figure 3. [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​ に設定します。