オルタナティブ・ブログ > 鈴木貞弘の“Salesforceの匠に聞け!” >

いまさら聞きニクいクラウドCRMあるある

第16回 プロセスビルダーとVisual Workflowで実現する簡易トリガー

»

皆さん。こんにちは。

前回から少し時間が空いてしまいましたが、2016年度も本ブログでは新機能紹介やお役立ち情報満載でお届けいたします。

ビジネスプロセスを自動化するSalesforceの仕組み

Salesforceには、ワークフロールールや承認プロセス、割り当てルールやメール-to-ケース/Web-to-ケースなど、ビジネスプロセスを自動化するための仕組みが標準機能として豊富に備わっています。

本ブログでも第1回でVisual Workflowという仕組みを用いて、ログイン時の認証強化プロセスを自動化する内容をご紹介しました。

また、私が活動しているセールスフォースのユーザ会でも2015年度にプロセスビルダー、2016年度にVisual Workflowのハンズオンセミナーを開催しています。

[2016年4月12日に開催されたVisual Workflowハンズオンセミナーの様子]

Pic16-1.jpg

プロセスビルダーとVisual Workflowそれぞれで可能な処理

プロセスビルダーとVisual Workflowでは、それぞれ実行可能な処理が異なります。

ビジネスプロセスの自動化を設計する上で、それぞれの機能の特徴を踏まえることが重要です。

Pic16-2.png

プロセスビルダー × Visual Workflowの組み合わせで実現可能な処理

上述したとおり、ほとんどの処理はプロセスビルダーまたはVisual Workflowのいずれかの機能で実装可能ですが、例えば以下のようなユースケースに対応する場合、どちらか一方の機能だけで実現することはできません。

オペレーターがケースを登録する際は、取引先責任者のルックアップボタンから顧客を検索して指定するのではなく、顧客No(取引先責任者で一意の値)を入力する。ただし、登録されたケースレコードは顧客Noと一致する取引先責任者と紐付くこと。

これを実装しようとした場合、以下の処理を行う必要があります。

(1) ケース登録時に指定された顧客Noをキーとして、取引先責任者オブジェクトを検索する

(2) 検索結果として得られた取引先責任者のレコードIDを、ケースの「Contact」項目に設定する

一見、Visual Workflowだけで実現できそうな処理ではありますが、Visual Workflow単体ではユーザーの明示的なアクション(ボタンやリンクのクリック等)が必要です。

当然、上記要件はApexトリガーを実装することで容易に実装可能ですが、(私のように)コーディングが苦手な方も多いかと思います。

そういう場合の対処として、プロセスビルダーとVisual Workflowを組み合わせることで簡易的なApexトリガーを実現可能としています。

プロセスビルダーの設定・・・の前にVisual Workflowの実装

ほとんどの処理はVisual Workflowで行いますが、Visual Workflowの起動タイミングとして「レコード保存したタイミング」というものがありません。

従って、この部分をプロセスビルダーに担当してもらいます。

処理のフローで言えば、最初に起動タイミングであるプロセスビルダーの実装に着手したくなるところですが、プロセスビルダーからVisual Workflowを呼び出す定義をする際には、あらかじめ作成&有効化されたVisual Workflowが必要なので、まずはそちらから作成します。

(1) ケースに入力された顧客Noに一致する取引先責任者レコードのID値を取得する

Pic16-3.png

検索条件の「値」に指定している「CustomerNo」は、変数を新規作成してください。

後述するプロセスビルダーからフローを呼び出す手順で使用します。

(2) (1)で取得したID値をケースのContact項目に指定し、ケース情報を更新する

Pic16-4.png

更新条件の「値」に指定している「CaseId」は変数を新規作成してください。

後述するプロセスビルダーからフローを呼び出す手順で使用します。

また、レコードの更新項目の「値」に指定している「ContactInfo.Id」は、手順(1)で作成したSオブジェクト変数から指定してください。

Visual Workflowの定義の手順として、上記で作成した要素の連結と、開始要素の指定を行ってください。

また、作成したフローは忘れずに有効化してください。

Pic16-5.png

プロセスビルダーの設定

Visual Workflowによってケースの紐付け先レコード(取引先責任者)の検索と、検索結果に基づくレコードの紐付け処理は定義できました。

続いて、このフローを呼び出すためのプロセスビルダーの設定を行います。

プロセスビルダーからフローを呼び出す際は、アクション種別に「フロー」を指定し、呼び出し先のフローとして先ほど作成&有効化したフローの名前を設定します。

最後にフロー変数の設定で、フロー中で使用される変数に、プロセスビルダーを起動したレコードの情報を渡します。

Pic16-6.png

最後に作成したプロセスを有効化してください。

動作確認

取引先責任者の氏名が「鈴木 貞弘」、顧客Noが「123456」のレコードがあります。

Pic16-7.png

ケースを新規作成するときに、「取引先責任者」のルックアップフィールドは使わずに、「顧客No」に「123456」を指定します。

Pic16-8.png

この状態で「保存」ボタンをクリックすると、まずプロセスビルダーが起動し、その後フローが実行されます。

その結果として、ケースレコードの「取引先責任者」には、「顧客No」が「123456」である「鈴木 貞弘」が紐付きます。

Pic16-9.png

※上記の実装だけでは、例えば指定された顧客Noに一致する取引先責任者が存在しない場合に、実行エラーとなるなど実装が不十分のところがありますが、Visual Workflowは検索結果によって処理を分岐する機能もありますので、それらを組み合わせることでエラーを回避することができます。

さいごに

プロセスビルダーは「レコードの削除」をトリガーとした起動ができませんので、そのあたりはApexトリガーの実装に頼るしかないなど、いくつか制約があります。

しかしながら今回ご紹介したように、ある程度の処理はコードを記述することなく実装が可能ですので、「Apex開発はハードルが高い」と感じている方は、一度お試しください。

Comment(0)