Datatable:ユーザに値入力させ検索結果をフローに渡す

datatableを使ったフロー処理 フロー/LWC

Winter’23でベータ版として公開されたフローのDatatable(データテーブル)を使ってレコード検索、結果表示、処理を試してみます。

Salesforce社のSalesforceLabが公開している無料アプリであるRecordHunterをフローで実現するなら、というイメージです。

RecordHunterでは出来ない処理もDatatableであれば実現できる部分がありそうです。

完成形

ある項目に任意の値が登録されている取引先責任者を検索し一覧表示、その後ヒットした取引先責任者からユーザが☑をつけたレコードだけを抽出し後続処理に渡す、というフローを作成してみます。

今回はユーザが入力した取引先責任者の3項目(姓、役職、部署)に合致する取引先責任者というシナリオで試してみます。

大きくは下記の流れです。

 1.ユーザが検索したい姓、役職、部署を入力し検索する

各項目に検索値を入力します

手順1
手順1

 

 2.1に合致する取引先責任者が一覧表示される

手順2
手順2

 

 3-1.姓、役職、部署の値を変えて再検索する

部署をTechnologyからProductionに変更しました

手順3-1
手順3-1

 

 3-2.表示された取引先責任者から処理したいレコードにだけ☑をつける

6件の検索結果の内、2件にチェックをつけました

手順3-2
手順3-2

 

 4.☑がついた取引先責任者を後続処理に渡す

“フロー起動”トグルにチェックをつけ”次へ”ボタンを押すと後続処理が始まります。

後続処理としては例えば選択したレコードの削除や更新などに活用できそうです。

手順4
手順4

フローのDatatableコンポーネントとは

別記事でもご紹介していますが、2022年10月にフローに追加された機能です。

従来はプログラミング開発でしか実現できなかった表形式コンポーネントをフローで手軽に使えるようになりました。2022年10月時点でベータ版ですが、次回メジャーアップデートの2023年2月には正式リリースが期待されます。 →正式リリース済みです!

Datatableを使用したフローの作成

最初に確認した完成形を実現するために、下記のフローを作成していきます。1つ1つはシンプルなつくりになっています。

完成形フロー
完成形フロー

1.画面フロー要素

Datatableコンポーネントを使用する肝の要素です。

 ・上段:ユーザに入力される姓、役職、部署の3テキスト項目

 ・中段:検索結果を表示するDatatableコンポーネント

 ・下段:再検索するか、検索結果を後続処理に渡すかのトグルコンポーネント

1.画面フロー要素
1.画面フロー要素

・中段:検索結果を表示するDatatableコンポーネント の設定部分

このあと作成する取引先責任者の取得要素、Datatableに表示する取引先責任者項目を設定します。

取引先責任者の検索には姓、役職、部署の3項目を使用しますが、検索結果表示には氏名、電話、役職、部署の4項目を指定します。

このように検索使用、検索結果使用で同じ項目でなくとも大丈夫です。

datatableプロパティ1
datatableプロパティ1
datatableプロパティ2
datatableプロパティ2

・下段:再検索するか、検索結果を後続処理に渡すかのトグルコンポーネント の設定部分

まずはセクションコンポーネントで4列に分け、一番右の列に切り替えコンポーネントを配置しています。右のほうにあったほうがフロー起動のトグル切り替えから”完了”ボタンを押す流れがスムーズかと考えただけです。

セクションプロパティ
セクションプロパティ

切り替えコンポーネントは検索結果の取引先責任者が1件以上あった場合のみ表示するよう表示条件を設定します。

0件では常に再検索させる、1件以上は再確認かフロー起動かをユーザが選択できるようになります。

切り替えプロパティ
切り替えプロパティ

 

2.レコードの取得要素

1でユーザが入力する姓、役職、部署に合致する取引先責任者をコレクションとして取得します。

今回は3項目いずれかに一致、各項目は”含む”条件で設定しますが、どういった検索結果としたいかが柔軟に設定が可能です。

ここで作成するコレクション変数が先ほど設定したDatatableコンポーネントの”Source Collection”に指定するものです。

レコード取得
レコード取得

3.割り当て要素

これは無くとも機能しますが、今回は利便性を考えて使用します。

2で取得した取引先責任者コレクション変数のレコード数を取得します。この値が1件以上なら、1で作成した画面フローのフロー起動切り替えトグル表示条件に使用します。

割り当て
割り当て

4.分岐要素

1のフロー起動切り替えトグルの値をこの条件分岐で使用します。☑をつけた場合はフロー起動する、☑がない場合は1の画面フローに戻り再検索させる、という分岐です。

意思決定
意思決定

5.サブフロー要素

ここは別フローを呼び出すコンポーネントであるサブフロー要素は必須ではありません。サブフローの代わりに実際の処理を直接書いていくことでも問題ありません。

ただし今回作成しているデータ検索/表示フローを1つの汎用フローとし、後続フローは別に作成することで互いを部品化し柔軟な処理に対応しやすくなります。

(余談)RecordHunterとの違い

今回作成したフローはSalesforce社が無料で公開しているRecordHunterというアプリと非常に似た挙動になります。

Record Hunter
Record Hunter lets you to create a customized search box for any records on your Salesforce org.

RecordHunterは検索値入力とその検索結果レコード表示部分を提供しており、検索結果は任意のフローに渡せる作りになっています。

Lightingページで検索対象や検索結果オブジェクト/項目を設定するだけで標準機能で実現できない処理ができる優秀なアプリです。だた無料ですのでSalesforce社サポートの対象にはなっておらず使用方法問合せなどは出来ません。

RecordHunterは優秀ですが、UIの細かいレイアウト(項目の表示幅などの微調整が難しい等)や検索条件の設定(値を含む、値から始まるなど設定できない等)などは実現できる範囲の制限があります。

RecordHunterで実現できず困っている、プログラミング開発はできないなどの場合にDatatableを使った今回のフローは解決策の1つになるかもしれません。

コメント

タイトルとURLをコピーしました