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

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 に設定します。

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub