相変わらず、Summer’24の組織でフローをひたすら触っておりますが、きちんと機能の意味を理解できているのか不安でございます。
しかしながら、今日ご紹介する機能は少し触っただけでとても可能性を感じましたので、数時間に及ぶ検証の末、記事にすることを決めました。
本日は
画面フローで他のフローが起動できるアクションボタン(Action Button)を配置できるよ!
のお話です。
それではまずはリリースノートの確認から
◇ SALESFORCE HELP >DOCS >SALESFORCE RELEASE NOTES >Salesforce Summer’24 Release Notes >Salesforce Flow > Flow Builder Updates >Screen Flow Updates >Run and Use the Results of an Autolaunched Flow on the Same Screen with the New Action Button Component (Beta)Run and Use the Results of an Autolaunched Flow on the Same Screen with the New Action Button Component (Beta)
Add an Action Button component to a flow screen to run and retrieve information from an active autolaunched flow without leaving the screen. The component renders a button that invokes the flow when clicked. For example, create a screen that includes a Lookup component that enables a user to search for and select a Contact record. Add an Action Button component to the screen to launch a flow that retrieves the Account, Case, and Opportunity records associated with the Contact record and populates other fields on the same screen. The user doesn’t have to navigate away from the screen to run the flow.
Where: This change applies to Lightning Experience and Salesforce Classic in Essentials, Professional, Enterprise, Performance, Unlimited, and Developer editions. It’s not supported in Classic runtime for flows.
How: In Flow Builder, create and activate an autolaunched flow that retrieves data and saves data as one or more outputs that you can reference later in the flow. Then, create a screen flow, add a Screen element to the flow, and include an Action Button on the screen. Configure the Action Button component to launch the autolaunched flow that you previously created. Add another element to the screen that ingests the data you retrieve with the Action Button component. Save and run the flow.
↓日本語訳です。
新しいアクションボタン(Action Button)コンポーネント(ベータ版)を使用して、自動起動されたフローの結果を同じ画面で実行および使用する。
Action Buttonコンポーネントを画面フローに追加すると、画面を離れることなく、有効な自動起動フローを実行したり、そのフローから情報を取得したりできます。このコンポーネントは、クリックされるとフローを起動するボタンをレンダリングします。たとえば、ユーザが取引先責任者レコードを検索して選択できるようにするルックアップコンポーネントを含む画面を作成します。画面にAction Buttonコンポーネントを追加して、取引先責任者レコードに関連付けられた取引先、ケース、および商談レコードを検索し、同じ画面上の他の項目に入力するフローを起動します。ユーザーは、フローを実行するために画面から移動する必要はありません。
対象:この変更は、Essentials、Professional、Enterprise、Performance、Unlimited、および Developer エディションの Lightning Experience および Salesforce Classic に適用されます。Classicランタイムのフローではサポートされません。
方法:フロービルダーで、データを取得し、後でフロー内で参照できる1つまたは複数の出力としてデータを保存する自動起動フローを作成し、有効にします。次に、画面フローを作成し、フローに画面要素を追加して、画面上にAction Buttonを追加します。Action Buttonコンポーネントを設定して、以前に作成した自動起動フローを起動します。Action Buttonコンポーネントで取得したデータを取り込む別の要素を画面に追加します。フローを保存して実行します。
プレスリリース組織でなんとか動かしてみましたよ🙃
設定例
・取引先レコード上に、関連する契約レコードのうち、契約終了の4か月前を迎えたレコードをリスト表示させます。
・ユーザーがリストからレコードを選択してAction Buttonをクリックすると、契約更新確認の連絡を行うToDoを作成します。
実装となるとツッコミどころ満載であるのは重々承知しておりますので、設定の流れを把握するための例とお考えください。
フロー完成図と概要
画面フロー
①で契約レコードを取得後、
②でレコードの有無を確認する分岐を作り、
③レコードがある場合は、画面要素にて次のコンポーネントを使用し、契約レコードを選択して関連するToDoを作成して契約レコード所有者に割り当てます。
・データテーブル
・Action Button
・表示テキスト
④レコードがない場合は、レコードがないとユーザーに伝えるテキストを表示させます。
自動起動フロー
⑤①で取得した契約レコードのコレクションをループします。
⑥ToDo作成用のデータを単一のレコード変数に割り当てます。
⑦ToDoレコード作成用のコレクション変数に⑥を割り当てます。
⑧ループ終了後、レコードを作成します。
Action Buttonコンポーネント設定時のポイントに絞って書いていきます。
※時間ができましたらもう少し作りこんだ設定にして、手順の詳細を書いた記事を公開したいと考えています。
自動起動フロー
アクションボタンで起動される自動起動フローでは、情報受け渡しの変数に注意
サブフローと同じようなイメージかと思いますが、
自動起動フローでメインの画面フロー上の値を受け取るために、変数の「フロー外部での可用性」は「入力で使用可能」にチェックを入れます。
こんかいの例では、複数のレコードの値を受け取るので、コレクション変数を作成します。
ループの部分の説明はまた今度書きますが、公式のヘルプにもナレッジ記事がありましたので、当サイトの記事を待てないという方はこちらをご参照ください。
◇ SALESFORCE HELP >画面フローでデータテーブルを使用して複数のレコードを選択し、新しい関連レコードを作成する方法一応、各要素のスクショを張っておきます。
※命名ルールが疲れで適当になっているところは見逃してください……。
各要素の詳細
⑤取得した契約レコードをループ
⑥ToDoのデータを割り当て
⑦コレクションにToDoを割り当て
⑧ToDoを作成
メインの画面フロー
①レコードを取得と②決定については要素のスクショを張っておきます。
①契約終了まで4か月の契約を取得
「recordId」(要作成)で画面フローを配置する取引先レコードの値を受け取ります。
※契約終了日は数式で今日から4か月以内に設定しています。
②契約レコードの有無
③契約管理画面 ver.2
※Action Buttonコンポーネントの設定について説明します。データターブル、表示テキストについては割愛します。
画面要素に「Action Button」コンポーネントを追加します。
右側のプロパティの「Action」で、有効化されている自動起動フローが選択できます。用意しておいた自動起動フローを選択します。
Action Buttonの変数の受け渡し
「Set Input Values」で選択した自動起動フローの変数に対して渡す値を設定します。
「外部での可用性」で「入力で使用可能」にチェックを入れた変数が表示されるので、フロー間で値の受け渡しが必要なものを「含まれる」に切り替えて、画面フローの対応する変数を設定します。
今回はデータテーブルで選択した契約レコードの値を、自動起動フローの契約レコード用コレクション変数へ渡しています。
アクションの成功/失敗をコンポーネントの表示条件に
これは必須ではないのですが、Action Buttonを配置すると、「コンポーネントの表示を設定」でフローの結果を条件に使用することができます。
今回の例では、自動起動フローが成功すると(=IsSuccsess が True)、「ToDoが作成されました。」というテキストが表示されるように設定しています。
取引先レコードに配置
フローのテストを行い、有効化後に取引先のLightningページでフローコンポーネントを配置し、変数の受け渡しの設定を行います。
テストします
契約レコードを選択してAction Buttonをクリックすると、「ToDoが作成されました。」のメッセージが表示され、ToDoが作成されました。
※活動タイムラインを更新してToDoを確認しています。
ひとこと
最初は「サブフローと何が違うんだい?」と思いましたが、一つの画面で複数のAction Buttonを配置できるようですし、同じ画面から様々な操作(処理)ができるということですよね。ときどき「画面が切り替わるのが嫌」「レコード画面で必要な操作がすべてできるようにしてほしい」というお声をお聞きしましたので、そういう方にとっては魅力的かもしれませんね。
さんざんいじりましたが、ちょっと試してみたいことも出てきましたので、検証できましたらまた記事にします。
参考
◇ SALESFORCE HELP >画面フローでデータテーブルを使用して複数のレコードを選択し、新しい関連レコードを作成する方法●Youtube>Screen Flow Action Buttons (beta) in Salesforce Summer 24Summer'24関連の記事
Summer'24のスケジュール(英語)が出てました!Salesforce Summer'24のプレリリース組織が取得できるよ&地味だけど大きな変化が⁉Summer'24 リリースノート(英語版)が公開されましたSummer'24 フローを把握できる新しいアプリケーションが追加されますSummer'24 画面フローの住所コンポーネントでGoogleマップ検索が使える⁉