こんにちは、ネコ田です。
自分自身の備忘録として、業務で使えそうな機能などを記載したいと思い、投稿を始めました。(3日坊主になりませんように( ゚Д゚))
不慣れなため、伝わりづらい部分がありましたらごめんなさい( ;∀;)
フローでなんか入力規則できないかな~と英語の記事をあさっていたところよさそうな記事を発見したので、備忘録として、日本語にアウトプットしていきます~。
↓↓参照サイト↓↓
概要(シナリオ)
新規商談を作成する際に、取引先に進行中(以下、オープン)な商談があった場合に入力規則のように保存することができないようにするフロー
フローの全体図
フロー詳細
✓作成ステップ
①レコードトリガーフローを使用
②決定要素を使用して、新規作成または更新判断
③レコードを取得要素で関連するオープンな商談レコードを取得
④決定要素にて、オープン商談の有無を判断
⑤カスタムエラー要素にてカスタムエラーメッセージを作成
✓作成ステップ図解
①レコードトリガーフローを使用
開始を設定は下記のように設定
オブジェクト:商談
トリガー設定:レコードが作成または更新された
エントリ条件:なし
フローを最適化:高速項目更新
②決定要素を使用して、新規作成または更新判断
決定要素を下記のように設定
表示ラベル:任意
結果の詳細
表示ラベル:新規作成(任意)
条件の要件:AND
リソース:{!$Record.Id}(トリガーOpportunity>商談ID)
演算子:null
値:{!$GlobalConstant.True}(True)
結果を実行するタイミング:条件を満たす場合
③レコードを取得要素で関連するオープンな商談レコードを取得
※決定要素の決定ノード側に作成
レコードを取得要素は下記のように設定
表示ラベル:任意
オブジェクト:商談
条件の要件:AND
1行目の条件
項目:AccountId(取引先ID)
演算子:次の文字列と一致する
値:{!$Record.Account.Id}(Record>取引先ID)
2行目の条件
項目:Is Closed (完了フラグ)
演算子:次の文字列と一致する
値:{!$GlobalConstant.False}
並び替え:なし
保存するレコード数:すべてのレコード
レコードデータの保存方法:すべての項目を自動的に保存
④決定要素にて、オープン商談の有無を判断
決定要素は下記のように設定
表示ラベル:任意
結果の詳細
表示ラベル:有(任意)
条件の要件:AND
リソース:③の要素を選択
演算子:null
値:{!$GlobalConstant.False}(False)
結果を実行するタイミング:条件を満たす場合
⑤カスタムエラー要素にてカスタムエラーメッセージを作成
カスタムエラーメッセージ要素を下記のように設定
表示ラベル:エラーメッセージ
表示する場所:レコードのウィンドウで
エラーメッセージ:任意
以上がフローの詳細設定となります。
テスト
前提として...
すでに進行中の商談を作成している状態での検証
無効化状態での検証
作成可能!!!
有効化状態での検証
エラーになって保存ができなくなりました!!
「オープン商談」と「無効化状態での商談」を削除して作成してみると...※1
※1
データの削除はあんまりよろしくない行為ですので、
本番環境での削除には十分お気をつけを~
保存できました!!
作成後の所感
決定要素に決定要素を重ねて使うこと自体初めてで、面白かった。
実際商談で使うとなると、商談を複数の部署で使用してることもあるので条件の部分に特定のプロファイルを入れたりすれば使用はできそうかな。
完了フラグを用いているので、ここの辺をフェーズとかで絞ってもよさそう。
汎用性が高いと思うフローでした(^^)