Summer’24のリリースからもうすぐ1ヶ月が経とうとしていますが、どうしてもフロー関連を検証して記事にしたかったので、後出し(?)で書いております。
役割としては入力規則と似ていますが、ユーザーの操作性は大きく変わってくる印象でした。
該当のリリースノートのページはこちらです。
◇ SALESFORCE ヘルプ >ドキュメント >SALESFORCE リリースノート >Salesforce Summer'24 リリースノート >Salesforceフロー >Flow Builder の更新 >画面フローの更新 >[無効] および [参照のみ] 項目を使用した画面コンポーネントでのユーザー入力の制限そしてもう少し詳しく書いてくださっているのが公式さんのブログ記事です。
◇ salesforce adimins » Article » Flow Enhancements | Summer ’24 Be Release ReadySet conditional Disabled and Read Only states for more components
I am very pleased to share that you can conditionally set several components to Read Only or Disabled state. What does this mean? Well, for starters, you won’t have to fiddle with the Display Text component when you want to show data on the screen that you don’t want a user to interact with, such as confirmation screens or calculations.
With conditionally disabled states, you can protect users from making mistakes by disabling fields, letting you enforce business logic on the form. For example, in the below scenario, you might not want users updating the case owner or priority if there’s a critical case created.
While it may not be immediately obvious, this also means you won’t need to exclusively rely on conditional visibility to protect your inputs from bad data. You can now just disable the inputs you don’t want touched until the criteria is met, which is a great option for accessibility-minded implementations.
↓日本語訳です。
DeepLさんのお力をお借りしております。
より多くのコンポーネントに条件付きで無効と読み取り専用状態を設定する
いくつかのコンポーネントを条件付きで「読み取り専用」または「無効」状態に設定できることをお知らせします。これは何を意味するのか?まず、確認画面や計算のような、ユーザーに操作してほしくないデータを画面に表示したいときに、表示テキストコンポーネントをいじる必要がなくなります。
条件付き無効状態を使用すると、項目を無効にしてフォームにビジネスロジックを適用させることで、ユーザーのミスを防ぐことができます。
たとえば、以下のシナリオでは、クリティカルなケースが作成された場合、ユーザーがケースの所有者や優先度を更新しないようにします。
すぐにはわからないかもしれませんが、これは、悪質なデータから入力を保護するために、条件付きの可視性だけに頼る必要がないことを意味します。条件が満たされるまで、触れてほしくない入力を無効にすることができるようになり、アクセシビリティを重視する実装には最適なオプションです。
最初にリリースノートを読んで、ブログ記事のように「ユーザーに操作してほしくないデータを画面に表示したいとき」が思い浮かんだので、実際の活用場面を想定してフローを作り始めました。
しかしながら、こちらの機能以外にも気になるところが出てきたり(複数選択リスト関連)、途中で「パーフェクトなフローを作りたい!」と欲を出してしまったら専用オブジェクトの作成や分岐、ロールバック、「
Summer'24 画面フローのAction Buttonコンポーネントでフローを呼び出す(ベータ)」で検証したアクションボタンを取り入れるなど、どんどん作業が増えてしまいまして、「全部を完璧にすると記事できるまで時間がかかりすぎる!」と気づき、ツッコミどころはありますがコンポーネントの「参照」「無効」を理解するための例として短くしたバージョンで触ってみた感想を共有いたします。
前置き長くてごめんなさい。
設定例
サービスをご利用いただいているお客様の情報を『取引先責任者』に登録しています。お客様の登録名義の変更は、本人確認書類のコピーなどを送付していただき、オペレーターが確認後に処理を行うことになっています。オペレーターは Salesforce上の【お客様登録名義変更】の画面から既存の登録内容と書類の内容を照合し、本人確認および変更情報の確認を実施、名義の変更を行います。
まずはフローと、操作の流れを簡単に説明します。
その後に画面要素の各コンポーネントへの「参照」「無効」の設定方法、実際の動作についてご紹介します。
フロー全体図
ほぼ滞りなく手続きが完了する想定です。
実際はもっと作りこみが必要なことをご留意ください。
縦長でお送りしております。
操作と画面の流れ
どこでもいいのですが、今回はサービスアプリケーションのホームタブからスタートします。
名前やお客様番号を入力し、【次へ】をクリックして該当の登録を探します。
入力した内容に一致する登録が表示されるので、これだと思う1件を選択して【選択】をクリックします。
画面上部に本人確認に必要な情報を表示させています。
なお、グレーアウトしている項目は画面要素のコンポーネントで「無効」の設定を行っており、値を変更することができません。
住所は弊社のものです。
「本人確認書類」セクションでは、送付された書類(コピー)を2つ以上選択して登録し、画像ファイルをアップロートします。
チェック項目で書類の有効性を確認し、2つの項目にチェックを付け、「確認結果」で「完了」を選択し、【次へ】をクリックします。
「新しい名義」に新しい名前を入力します。
しつこいぐらいに変更前と変更後の情報を確認したら、【変更】をクリックします。
変更が完了したことを知らせるテキストが表示されます。
「変更した情報を確認する」のリンクをクリックすると、お客様情報(取引先責任者レコード)の画面が開きます。
「説明」項目に履歴を残していますが、子レコードなどで対応したほうがいいかもしれません。
【完了】をクリックすると、元のホーム画面に戻ります。
コンポーネントの「無効」の設定
前述のように、グレーアウトしている項目(コンポーネント)に「無効」の設定を行っています。
↓はシンプルに値を見せたいけれど編集させたくない場合の設定です。
※コピーをしようと思えば「無効」でもコピーできます。
フローでは、コンポーネントの設定で「無効」という項目がありますので、グローバル定数で「True」({$GlobalContrast.True))を選択します。
「無効」の設定を行いたくないときは、空白のままにするか、Falseを入力します。
コンポーネントの「参照」の設定
「無効」のときとは違い、グレーアウトはしません。
カーソルを当てると↓のように値をコピーはできますが、編集はできません。
フローでは、「無効」のときと同じように「参照」にてグローバル定数で「True」({$GlobalContrast.True))を選択します。
戻り値のデータ型がBooleanの数式を使用できる
リリースノートに「 {!$GlobalConstant.True} に設定するか、true に評価される数式リソースに設定」と書かれているので試したのですが、戻り値のデータ型がBooleanになる数式を作成して「参照」「無効」の条件として設定することができました。
↓の例では、「チェック項目」の入力状況で「確認結果」が編集可になるように設定してみました。
(とりあえず適当に設定してみたので、実用的な例ではありません)
「無効」のところに別途用意した数式を設定しています。
ひとこと
シンプルに編集させたくないけれど見せたいときにはうってつけですね。「入力を検証」でも入力のコントロールはできますが、「編集不可」にしたい、うかつに更新をかけてはいけない項目で活躍する機能だと思います。
また、今回の例を設定するにあたり発見したことや、本人確認NGであったり、書類に不備があった場合の分岐など、そのうち記事にしたいと思っています。思ってはいるのです、いつでも。最近更新頻度が落ちていてすみません。いつもは機能を確認できる範囲での設定に留まっていますが、しっかりと運用を検討しあらゆる事態を想定して作りこんでいくのは大変だけれどもやっぱり面白いですね。大規模なフローの設定方法をシリーズで書くのも面白そうです。
Summer'24関連の記事
Summer'24のスケジュール(英語)が出てました!Salesforce Summer'24のプレリリース組織が取得できるよ&地味だけど大きな変化が⁉Summer'24 リリースノート(英語版)が公開されましたSummer'24 フローを把握できる新しいアプリケーションが追加されますSummer'24 画面フローの住所コンポーネントでGoogleマップ検索が使える⁉Summer'24 画面フローのAction Buttonコンポーネントでフローを呼び出す(ベータ)Summer'24 UIのアップデート:フォーカスしている場所(操作箇所)がよりわかりやすくなるSummer'24 ユーザーごとにアクセス権設定状況を確認できるようにSummer'24 カスタム項目作成時に動的フォームにも追加できる!Summer'24 フローのレコード作成要素で重複チェック→スキップまたは更新ができる