UiPath Blog
前回は具体例を使ってConnectorでロボットと連携するまでをご紹介しました。もし見逃したという方は「Salesforceの状態変化に連動した見積書の作成」も併せてご覧ください。
ロボットの起動にはOSへのログインとログオフが毎回伴うため、処理の前後に一定のラグがあります。ロボットの起動依頼の件数が少ないうちは問題ありませんが、多くなった場合このタイムラグが処理性能面のネックになります。もちろん端末の台数を増やし並列処理させることも一つの解決策ですが、1台当たりの処理効率は改善しません。
今回はOrchestratorキューを使ってタイムラグを最低限に抑え1台当たりの処理効率を高めることで、Salesforceからの連続する見積作成依頼を、効率よく連続処理できるものに発展させたいと思います。
以降では次の流れでお届けします。
本例のシナリオ概要
Orchestratorキューに対応したワークフローの作成
Orchestratorへのキュー/トリガーの登録
Connectorへのテンプレート(キュー)の登録
Salesforceプロセスの登録
本例では次のシナリオを実現するものとします。
営業担当が見積内容を登録し承認を得る
Salesforceプロセスが状態変化を検知しOrchestratorに連携
Orchestratorがキューのアイテムを検知しロボットを起動
ロボットが見積書作成処理を実行(作成された見積書は商談&見積に添付され、営業担当に完了を通知します)
このシナリオを実現するための作成手順は、次の通りです。
Orchestratorキューに対応したワークフローの作成
Orchestratorへのキュー/トリガーの登録
Connectorへのテンプレート(キュー)の登録
Salesforceプロセスの登録
見積情報から見積書を作り、商談と見積に添付するワークフローを作成します。
見積書のフォーマットはExcelとし、明細転記後にPDF形式で出力するものとします。
添付した後に営業担当者にChatterで通知します。
なお、前回と重複する部分は説明を割愛しておりますので、予めご了承ください。
本例が関係するオブジェクトの構造を確認しておきます。
※本記事から読み始められた方で"オブジェクト"という単語を初めて目にした方は第2回「Salesforce連携ソリューションを活用するための基礎知識1」を先にご覧ください。
商談および見積の画面イメージ、見積書フォーマット、ワークフローの全体像は次の通りです。
①次の順で操作し、Robotic Enterprise Framework(以降、ReFramework)を適用したプロジェクトを作成します。
ReFrameworkは、キューを使ったワークフローが短期間で作成できる雛型です。 Main.xamlやFrameworkフォルダ内にはキューからの値の取得やエラー制御などが予め組み込まれ、原則として作成者がこれらを意識する必要がないよう(実現したい処理の実装に専念できるよう)準備されています。作成者は「Process.xaml」を編集します。
ReFrameworkのその他詳細はプロジェクトの「Documents」フォルダ内のマニュアルをご参照ください。
②前回作成したQuote_見積書作成.xamlをプロジェクトフォルダーにコピーします
ワークフローの説明は前回をご参照ください。
③「Proces.xaml」を作成します
③-1「Quote_見積書作成.xaml」を呼び出します。
③-2 見積レコードのIDを引数の値に設定します。
見積レコードのIDはキューのアイテムに格納されている値を使います。
キューのアイテムはMainが取得しProcessに引数「in_TransactionItem」で引き渡します。
アイテム内はIdという名称で見積レコードのIDが格納されています。取得式は「in_TransactionItem.SpecificContent("Id").ToString()」です。
③-3 Proccesの引数はReFrameworkにより予めセットされており、変更不要です。
④「Dataフォルダ > Config.xlsx」を設定します
④-1 「Settings」シートを選択します。
④-2 Orchestratorキューの名称を設定します。
キューの登録手順は後続で解説します。
本例では「見積書作成」を設定します。
④-3 ロボット名称を設定します。
ReFrameworkからログが出力される際にプロセス名として付与されます。
ワークフローの作成はここまでです。完成したワークフローをOrchestratorに登録します。
Orchestratorと接続してる場合、「パッケージのプロパティ」画面でパブリッシュします。
Orchestratorと接続していない場合、「パブリッシュのオプション」を開いて、パブリッシュ先を「カスタム」、カスタムURLに任意のフォルダパスを設定しパブリッシュします。指定したフォルダにファイルが出力されたら、手動でOrchestratorにアップロードします。
Orchestratorにプロセスおよびキュー、トリガーを登録します。
本例でConnectorがOrchestratorに連携するのは「キューへのアイテム登録」です。
「キュー」はアイテムを受付順に一列に並べ、ロボットの取得要求に応じて順次渡す機能です。また成功や失敗といったアイテムの処理状態も管理します。
「アイテム」にはConnectorから受け取ったオブジェクトの情報が格納されています。 キューには「トリガー」と呼ばれる、アイテムの受付を検知するとロボット起動させる設定があります。
本例ではConnectorがロボットを起動するのではなく、Orchestratorのトリガーがロボットを起動します。
その他Orchestratorの基礎的な登録事項(ユーザ、マシン、フォルダなど)についてはここでは説明を割愛します。もし登録が未済の場合は、Orchestratorのマニュアル(https://docs.uipath.com/orchestrator/lang-ja/)を参照し設定してください。
①次の順で操作しプロセスを追加します。
②プロセスの詳細を設定します。
②-1 パッケージを選択します。
パブリッシュした際の名称が選択肢に表示されない場合は、検索ボックスから検索します。
※本例では使用しませんが、その他の設定については必要に応じて設定してください。
下図のように登録されれば完了です。
③次の順で操作しキューを追加します。
④キュー詳細を設定します。
④-1 キュー名称を設定します。
名称は任意でOKです。本例では「見積書作成」を設定します。
本例では使用しませんが、その他の設定については必要に応じて設定してください。
下図のように登録されれば完了です。
⑤次の順で操作しトリガーを追加します。
⑥トリガー詳細を設定します。
⑥-1 トリガー名称を設定します。
名称は任意でOKです。本例では「見積書作成」を設定します。
⑥-2 アイテムを検知したときに実行するプロセス名を選択します。
②で登録した名称が選択肢に表示されない場合は、検索ボックスから検索します。
⑥-3 ジョブの種類「Unattended」選択します。
⑥-4 実行時のOSユーザを選択します。
ユーザ名が選択肢に表示されない場合は、検索ボックスから検索します。
⑥-5 アイテムの到着を監視するキュー名を選択します。
④で登録した名称が選択肢に表示されない場合は、検索ボックスから検索します。
下図のように登録されれば完了です。
Connectorにテンプレート(キュー)を登録します。
テンプレートには「ジョブ」と「キュー」の2種類があります。
テンプレート(キュー)はOrchestratorキューに登録するアイテムの内容をパターンとして登録したものです。アイテムの内容には 「引き渡すオブジェクトの情報」などが含まれます。
①次の順で操作しテンプレート(キュー)を追加します。
②テンプレートの詳細を設定します。
②-1 テンプレート名を設定します。
名称は任意でOKです。本例ではOrchestratorのプロセス名から「見積書作成キュー利用」を指定しています。
②-2 テンプレートの種類「キュー」を選択します。
※本例では使用しませんが、必要応じて「テンプレートの説明」を設定してください。
②-3 キュー名を選択します。
ボックス内に選択肢が表示されない場合は、検索欄にキュー名の頭文字を入力し選択してください。
②-4 Orchestrator内の実行優先度「標準」を設定します。
②-5 キューアイテムに登録するオブジェクトを選択します。
本例では、見積レコードのIDでしたので「見積」を設定しています。
ボックス内に選択肢が表示されない場合は、検索欄にオブジェクト英名の頭文字を入力し選択してください。
②-6 キューアイテムに登録する項目を選択します。
ここで選択した「項目のAPI参照名」がワークフローでキューアイテムから値を取得するときの名称となります。
これでテンプレート(ジョブ)を登録は完了です。下図のように表示されれば成功です。
見積の状態変化を検知しConnectorを呼び出してOrchestratorに連携する「プロセス」を、プロセスビルダーで設定します。
①[設定] > [プロセスの自動化] > [プロセスビルダー] からプロセスを新規追加します。
②プロセス名等の概要を設定します。
②-1 プロセス名を設定します。
名称は任意でOKです。本例ではOrchestratorのプロセス名から「見積書作成」を指定しています。
②-2 プロセスのAPI参照名を設定します。
一意な名称である必要があります。
日本語は使用できません。
②-3 プロセスを開始するタイミグを設定します。
本例では「レコードが変更されたとき」を設定します。
③プロセス詳細を設定します。
③-1 「オブジェクト」を選択します。
③-2 プロセスが変化を監視するオブジェクトを選択します。
本例では「見積」を設定します。
③-3 オブジェクトがどう変化したときにプロセスを実行するかを選択します。
本例では「レコードを作成または破棄したとき」を選択します。
③-4 「条件を追加」を選択します。
③-5 条件名を設定します。
名称は任意でOKです。本例では「見積書の作成条件をみたいした」を設定します。
③-6 アクションの実行条件を設定します。
本例では「条件を満たしている」を選択します。
③-7 具体的な実行条件を設定します。
条件は任意でOKです。本例では「見積が承認済みであること」と「見積が係る商談のフェーズがProposal/Price Quoteであること」を設定しています。
③-8 実行条件が複数ある場合の論理条件を設定します。
本例ではすべて満たした場合のため「すべての条件に一致(AND)」を設定します。
③-9 「アクションを追加」を選択します。
③-10 アクション種別「Apex」を選択します。
③-11 アクション名を設定します。
任意の名称でOKです。本例では「見積書作成キュー利用」を設定します。
③-12 Apexのクラス「UiPath - Create Queue Notifications」を設定します。
③-13 Apexクラスへの入力情報を設定します。
Connection Template Name は種別「文字列」、値「テンプレート名称」を設定します。 本例では「見積書作成キュー利用」を設定します。
Record Idは種別「項目の参照」、値「見積ID([Quote].ID)」を設定します。”Connectorへのテンプレート(キュー)の登録”②-5ではオブジェクト名の指定のみでしたが、ここで具体的なレコードを指定しています。
④プロセスを有効化します。
プロセスの設定は完了です。下図のように表示されれば成功です。
以上で全ての設定は完了です。見積の状態を「承認済み」に変化させると、ロボットが起動し見積書が商談や見積ページで添付されます。複数人で同時にオペレーションした場合も、ログインログオフのタイムロスなしにスムーズに連続処理されます。
前回のシナリオを発展させ、Salesforceから連続してリクエストが発生する場合も効率的に処理できるロボットの実現方法をご紹介しました。
最後に今回の記事の中で取り上げた部品のリンク先などをお知らせします。
Activityの公開先 (UiPathマーケットプレイス):
https://marketplace.uipath.com/ja/listings/salesforce-activity-pack
Connectorの公開先 (AppExchange日本):
https://appexchangejp.salesforce.com/appxListingDetail?listingId=a0N4V00000FZh4JUAT
Salesforce連携ソリューションご案内:
https://www.uipath.com/ja/solutions/technology/salesforce-automation
その他連携ソリューションご案内:
https://www.uipath.com/ja/solutions/application-cooperation-solutions
Orchestratorのマニュアル
https://docs.uipath.com/orchestrator/lang-ja/
今回で連載は終了です。皆様の業務効率化に少しでもお役に立てれたなら幸いです。 ありがとうございました。
※SalesforceはSalesforce.com,Incの商標であり、許可のもとで使用しています。
また、UiPathでは、本記事で解説した内容に加えて、CRM/SFAの定着化のためのRPA活用について、実際の事例や、UiPathの連携ソリューションについてご紹介するeBookを無料で公開しています。eBookは下記よりダウンロードください。
詳しくはこちら
Topics:
SalesforceSenior Sales Engineer, UiPath