フロー変数について
学習の目的
この単元を完了すると、次のことができるようになります。
- 変数のしくみを理解する。
- 多くの異なる変数種別を作成する。
- さまざまな種別のリソースとその使用方法を挙げる。
変数とは?
変数という言葉が不安を煽ることは承知しています。
- 「コードのことですよね? でも、コードなんてわからない!」
- 「変数って代数の一部じゃないの? そんな数学なんて長いことやってない。」
- 「変数が何かわからない。これは複雑すぎる。」
そんなあなたのために、変数を理解できるように説明していきましょう。
フローでは、変数とは情報を入れておく容器です。次の動画をご覧になり、変数の概要とそのしくみについて確認してください。
フローでは値は変数に保存されますが、その値はフローによって変化します。それが変数と呼ばれる所以です。つまり、変化させることができるのです。
変数が必要である理由は?
ほとんどのフローのユースケースでは、少なくとも 1 つの変数が必要です。変数にはフローで使用される多くの情報が保存されているため、変数がなければフローはその強力な機能を発揮することはできません。以下に、変数を必要とする一般的なユースケースをいくつか紹介します。
- 画面フローで、フローが表示されるレコードの ID を保存して、フローの最後にどのレコードを更新するかをフローに指示できるようにする。
- ユーザーの選択に応じて増減する数値を保存する。
- 2 つのテキスト文字列を 1 つに結合した結果を保存する。
- レコードの値を取得して、計算で使用したり、別のレコードにコピーしたり、ユーザーに表示したりする。
- レコードの作成に使用できる値のコレクションを整理する。
- 特定の条件を満たすすべてのレコードを変更する。
- 特定の条件を満たすすべてのレコードを削除する。
- ループの実行回数の途中集計を継続的に行う。
上記は考えられる例のほんの一部に過ぎませんが、変数なしではどれも実現できません。フローは要素とコネクタで構成されているように見えるかもしれませんが、変数は言うなれば、肉とフローというジャガイモにかけるグレイビーソースです。
幸い、このようなすべての変数を作成する必要はありません。多くのフロー要素では独自の変数が出力されるため、大抵はその変数を使用するのがよいでしょう。
変数に保存できるものは?
変数を作成するときは、カスタム項目を作成するときと同じように、保存できるデータ型をフローに指示します。それでは、さまざまな種類の変数を確認していきましょう。
テキスト: 文字、数字、記号の文字列。レコード全体ではなく、Salesforce ID のみを保存する必要がある場合は、テキスト変数を使用します。次に例を示します。
- yes
- Eight
- 01ZEE0000004GxOIAU
- I don’t know
数値、通貨: 数字の値。$ や € などの通貨記号は含めないでください。次に例を示します。
- 42
- 246.01
Boolean: true または false の値。この変数には、グローバル定数である True、False、または空の文字列のみを含めることができます。次に例を示します。
- {!GlobalConstant.True}
- {!GlobalConstant.False}
日付、日付/時間: 特定の日付や特定の日付の特定の時刻を示す、特別に書式設定された値。日付と日付/時間のデータの書式を設定する方法については、「Date および DateTime の有効な書式」を参照してください。次に例を示します。
- 2063-04-05
- 1955-11-12T22:04:00Z
レコード: Salesforce レコードのすべての値。1 つの変数にまとめて保存されます。各値は、Salesforce レコード内と同じように独自のデータ型を保持します。フローでは、各値を個別に取得または更新できます。
他にも変数のデータ型がいくつかありますが、このモジュールでは取り上げません。
なぜ、変数のデータ型が重要なのでしょうか? なぜ、すべてテキストとして保存しないのでしょうか? Salesforce オブジェクト項目と同じように、変数にも他のものとやり取りするための適切なデータ型が必要です。たとえば、テキスト変数に特定の日付があるとします。そのテキストは読み込んで表示することができます。ただし、その日付を調整するフロー (年の追加など) が必要な場合、その変数には日付または日付/時間のデータ型が必要です。
最後に、値を変数に保存する際の重要なポイントを 1 つ。フローが実行されるたびに、そのすべての変数はデフォルト値を含んで開始されます。デフォルト値が空白である場合、その変数は空白として開始されます。変数値は、ユーザーからユーザーへ、またはフローのあるインスタンスから別のインスタンスへと渡されることはありません。
変数の作成
変数は、使用する必要がある場所で作成することも、ツールボックスで作成することもできます。この単元は、ツールボックスを使用しますが、どちらでもお好きな方法を使用することができます。
では、シンプルなテキスト変数を作成する方法を見てみましょう。
- [Setup (設定)] から、[Quick Find (クイック検索)] ボックスに
Flows
(フロー) と入力し、[Flows (フロー)] をクリックします。
-
[新規フロー] をクリックします。
-
[Start from Scratch (最初から開始)] が選択されていることを確認し、[Next (次へ)] をクリックします。
-
[画面フロー] を選択して、[Create (作成)] をクリックします。
-
をクリックして、[ツールボックス] を表示します。
-
[新規リソース] をクリックします。ツールボックスは、 をクリックするといつでも非表示にできます。
- [リソース種別] で [変数] を選択します。
- 変数の API 参照名と説明を入力します。
- [データ型] で [テキスト] を選択します。
-
[Done (完了)] をクリックします。
これで完成です。データを保存する容器が設定され、ツールボックスに表示されるようになりました。
変数を作成しているときに、おそらく他の設定があることに気が付いたと思います。安心してください。この設定については他のフローバッジで説明します。原則として、必要であることがわかっている場合を除き、この設定は有効にしないでください。今のところは、最初の変数を作成したことを誇りに思ってください。
変数と類似するもの
変数はフローリソースの一種ですが、他にも使用できるフローリソースがあります。以下に、簡単にまとめて説明します。
定数
定数は変数と似ていますが、その値が変化しない点が異なります。定数と呼ばれるのはこのためです。定数を作成するときには、その値を設定しますが、フローでその値を変更することはできません。
この例では、リソースの [API 参照名] は [pi]、リソース種別は [定数]、[データ型] は [数値]、[値] は [3.14159] です。
数式
フロー数式は、カスタム数式項目と非常に似ています。構造、形式、データの使用方法はほぼ同じです。数式項目で使用する数式関数のほとんどを使用できます。また、変数と画面コンポーネントを差し込み項目として使用することも可能です。ただし、差し込み項目の形式は異なるため、リソースピッカーを使用して、正しく追加されていることを確認してください。詳細は、「フロー数式ビルダー」を参照してください。
テキストテンプレート
時には、より大きなテキストブロックを保存する必要があったり、そのテキストを特定の方法で書式設定する必要があったりします。テキストテンプレートは基本的に定数であり、大量のリッチテキスト (フォント、サイズ、色、リスト、その他の特殊な書式が設定されているテキスト) を保存することができます。テキストテンプレートを使用して、メールの本文や書式設定済みテキストのチャンクを保存し、複数の画面で再利用します。数式と同様に、テキストテンプレートでも変数と画面コンポーネントを差し込み項目として使用できます。
ハンズオン Challenge に取り組んだら、「Flow Builder を使用したフローの作成」トレイルに進んで Flow Builder の学習ジャーニーを続けます。このトレイルでは初めから終わりまで Flow Builder について学習します。このトレイルで推奨されるバッジの順序に従えば、プロセスの自動化に関する確固たるスキルが身に付き、Flow Builder のエキスパートになります。
リソース