今回はSalesforceのフロー「画面フロー」で入力制限をかける方法を解説します
今回の画面フローは以下のような「取引先作成画面」の作成を想定します
こちらの画面フローについて「取引先名(会社名)に「株式会社」が含まれない場合にエラー」という入力制限を作成します
前提 Salesforceの入力規則について
Salesforceで入力制限をかける方法の1つが入力規則の作成です
入力規則の詳細はこちらです
例えば今回の場合、入力規則で以下の数式を作成します
CONTAINS(Name, "株式会社" ) = false
この場合、通常の取引先レコード新規作成時には「株式会社」が取引先名に記載がないとエラーが発生します
レコード作成画面上ですと入力規則のエラーメッセージの表示がされているので「株式会社を入れないと」と分かりやすいですね。
しかしながら、入力規則の設定のまま画面フローで取引先を作成しようとするとこのようなエラーになってしまいます
このフローで未対応の障害が発生しました
フローを処理中に未対応の障害が発生しました。詳細は、組織のシステム管理者にお問い合わせください。
この場合、システム管理者はフローエラーメッセージを読み解けばある入力規則のエラーメッセージに気づきますが、入力ユーザはなぜエラーが出たのかわからないですね
ユーザにもなぜエラーが出るのか分かりやすくするためには、画面フローで入力制限をかける必要があります
ここでは画面フローの入力制限をかける方法を見てみましょう
画面フロー設定方法「入力を検証」
画面フローの「入力を検証」から設定を行います。
数式は以下を記載します
CONTAINS({!CompanyName}, "株式会社" ) = True
なお、CompanyName とはこちらのAPI参照名です
メッセージはなんでもいいのですが、今回は
会社名には必ず「株式会社」を記載してください。
と記載します
こちらで設定は完了です。あとはフローの「保存」「有効化」をお忘れなく。
この設定をすれば、画面フロー内で取引先作成時に「株式会社」が含まれない場合、
画面フローでは先ほどフロー内で設定したエラーメッセージが表示され入力を促します。
(入力規則はそのままの設定なので通常の新規ボタンからレコード作成時にエラーを出すことは変わりないです)
おまけ(設定のポイント)
今回の内容ですが、入力規則の数式は
CONTAINS(Name, "株式会社" ) = false
フローの数式は
CONTAINS({!CompanyName}, "株式会社" ) = True
と同じような数式ですが「True」と「False」がそれぞれ異なるのでご注意ください。