BLOG
2019.10.14
Salesforce でノンプログラミングでプロセス自動化
こんにちは。クラウドソリューショングループのエンジニアの高尾です。
私は主な業務として Salesforce の導入支援に携わることが多いのですが、Salesforce のサービスの基盤である Force.com プラットフォームには、ノンプログラミングでプロセス自動化を実現できるツールがいくつか準備されています。
以下に例示します。
- プロセスビルダー
- フロー
- ワークフロー
- 承認プロセス
この中でフローについては、少し前のリリースで機能が格段によくなっており、プロセスビルダーと組み合わせることで、今まで Apex トリガなどプログラムを書くことでしか実現できなかったことが、コーディングなしで実現できるようになりました。
今回はお客様からご要望頂くことも多い、取引先に関連する活動の件数を取引先のカスタム項目へ積み上げてみたいと思います。
今まではこのような参照関係にあるオブジェクトの積み上げ集計をしようと思うと、子のオブジェクトに Apex トリガを準備する必要があったのですが、フローとプロセスビルダーを利用することでプログラムを書かずとも実現できます。
まずは取引先に「活動件数」という数値型のカスタム項目を(デフォルト値は0)を追加し、新規で取引先レコードを1件作成し保存します。

次にフローを作成していきます。
設定ページにて「フロー」で検索すると、プロセス自動化 > フローというメニューがあるのでそちらをクリックします。
遷移先の画面で「新規フロー」ボタンをクリックします。
するとモーダルが立ち上がるので、「自動起動フロー」を選択して作成ボタンをクリックします。
新規のフローの編集画面が表示されます。
フロー内で使用する変数を定義していきます。
ツールボックスの「マネージャ」タブを選択し、新規リソースをクリックします。
作成された活動レコードから関連する取引先IDを取得する変数を定義します。
すると以下のようになります。
活動件数を保持する変数を定義します。
すると以下のようになります。
取得した活動のレコードを格納する変数を定義します。
「複数の値を許可 (コレクション)」を忘れずチェックします。
(開始とレコード取得は接続しておきます)
実際のフローを定義します。
ツールボックスの「要素」タブを選択し、関連するTODOを取得するために、「レコードを取得」をドラッグ&ドロップで右側のフィールドへ持っていきます。
以下のように設定して、取引先IDが関連する完了済TODOを取得し、定義した変数へと格納するようにします。
作成した「レコードを取得」のコンポーネントと開始コンポーネントを接続しておきます。
ツールボックスから「ループ」をドラッグ&ドロップで右側のフィールドへ持っています。
取得した活動レコードの件数分繰り返すよう設定します。
(ループ変数はTODO型の変数を新規で追加します)
作成した「ループ」のコンポーネントと「レコードを取得」を接続しておきます。
ツールボックスから「割り当て」をドラッグ&ドロップで右側のフィールドへ持っていきます。
活動レコードがある場合に、件数格納用変数をカウントアップするようにします。
作成した「割り当て」のコンポーネントと「ループ」を接続しておきます。
(相互に接続されるようにします)
なお、ここまでは件数取得の対象がTODOのみなので、対象オブジェクトを行動にして、これまで作成したレコード取得~割り当てを準備して接続しておくと行動の件数も合算して集計可能です。 (私の場合は実行日以前の日付の行動を取得してカウントするようにしました)
ツールボックスから「レコードを更新」をドラッグ&ドロップで右側のフィールドへ持っていきます。
件数格納用の変数で、取引先の活動件数項目を更新するようにします。
作成した「レコードを更新」のコンポーネントと「ループ」を接続しておきます。
フローの名称等をつけて保存すればフローの設定は完了です。
(忘れずに有効化しておきます)
続いてフローを動かすためのプロセスビルダーを作成します。
(今回はフローがメインですので細かい画面遷移は割愛します)
起動条件は以下のように取引先が関連していて、状況が完了になっているTODOを対象とします。
アクション定義では先程作成したフローを選択し、フロー変数へ取引先IDを渡すように設定します。
最後にサンプルとして作成した取引先に関連する活動履歴を作成してみます。
活動件数が自動的に1に変更されます。
以上のようにプログラミングの知識がなくとも、トリガライクな処理を実装することができます。
私自身、以前のフローを使うことに苦手意識があったので長らく触っていませんでしたが、それなりの知識があればお客様自身でも作成・編集可能なメリットもあるので今後は積極的に活用していきたいと思っています。
Salesforce 技術関連記事
- Salesforce でお小遣い帳を作ってみよう!
- Salesforceでノンプログラミングでプロセス自動化
- Salesforceのデータを簡単更新!Googleスプレッドのアドオン「Data connector for Salesforce(Beta版)」を使ってみた
- Visual Studio Code で作る Salesforce 開発環境
- 画像解析で将棋の棋譜を読む
- Salesforceのデータストレージで困ったら・・・ ~Big Object~
- Salesforceを簡単更新!Googleスプレッドシート上でSalesforceデータの一括編集をやってみた!
- VisualforceをLightning Experience風のスタイルに ~LightningStylesheets属性~
- Salesforce 「活動(行動&ToDo)」のアーカイブについて
- データの「探索的分析」をやってみませんか? ~Einstein Analytics~
- Salesforce のデータをExcel 上で一括更新できるアプリ「VyNDEX」を使ってみた!
一緒に開発しませんか?
サンビット株式会社では、Salesforce によるクラウドシステム構築の開発技術者を募集しています!
興味のある方はぜひお問い合わせください。