[Salesforce®初心者でもできる!UiPathによるオペレーションの自動化] Vol.6

Salesforce-main

取引先責任者(Contact)の操作

前回は、取引先(Account)オブジェクトを題材にレコードの基本操作方法をご紹介しました。もし見逃したという方は「オブジェクトCRUD操作の基本」も併せてご覧ください。

以降の回では、頻出オブジェクトの操作にかかるワークフローの作成方法について、個別にお届けします。

今回は「取引先責任者(Contact)」オブジェクトです。

取引先の関係者情報を1件1件画面に入力すべきなのはわかっているが、取引先ごとに関係者は1人ではないし、会社名や住所など同じ値を何度も入力する必要がある。Excelにリストはあるのでもっと効率よく入力できないものか・・・。

こういった「一括入力」の悩みを抱えている、もしくは、悩みを相談されたことはないでしょうか。

単純な転記入力の作業は本来業務ではないことから、現場から敬遠されることも多いものです。

入力のあきらめや省略が情報の密度を低下させ、CRMが本来の力を発揮しないといった影響も耳にします。

今回は

  • 取引先責任者の主要関連オブジェクト

  • 取引先責任者の登録と取引先への関連付け

  • 取引先責任者情報の更新

  • Excelからの一括登録

をお届けします。

読み終わった後、取引先責任者の自動登録のイメージが湧いてくると思います。

取引先責任者の主要関連オブジェクト

取引先責任者(Contact)オブジェクトを取り巻く、主要な関連オブジェクトを確認しておきましょう。

※本記事から読み始められた方で"オブジェクト"という単語を初めて目にした方は「Salesforce連携ソリューションを活用するための基礎知識1」を先にご覧ください。

Salesforce-Integration_vol6_image1

取引先レコードのIDが取引先責任者の項目に含まれている(AccountId)ことがわかります。 取引先については予めレコードのIDを特定しておけば、取引先責任者の登録時に関連付けできることがわかります。ちなみに取引先以外については関連はあるものの、関連先のIDを項目内に持たないため、取引先責任者の登録時に関連付けはできません。

取引先責任者の登録と取引先への関連付け

レコードの関連を踏まえて、取引先に関連付けて取引先責任者を新規登録するワークフロー作成します。

ワークフローの全体像は次の通りです。

Salesforce-Integration_vol6_image2

なお、取引先は予めSalesforceに登録されている必要がありますので、ない場合はWeb画面から準備してください。

オブジェクトの関連に則したActvityの設定方法を中心にお届けしているため、Salesforceアプリケーションスコープの設定やエラー制御は含まれておりませんのでご了承ください。 個別にプロパティの設定内容を見てみます。

①取引先名称からレコードのIDを特定します。
Salesforce-Integration_vol6_image3

①-1 SOQL詳細:

SELECT Id,Name FROM Account WHERE Name = 'サンプル株式会社'

  • Id,取引先名(Name)を取引先(Account)オブジェクトから取得するSOQLです

  • レコードの絞込条件として、

    • 特定の取引先名であること

    を指定しています。本例では「'サンプル株式会社'」を設定します。

  • SELECTの項目「Name」は後続で使用しませんが、デバッグ時に確認の補助となるため入れています

①-2 Salesforceステータスは必要に応じて設定します。

※本例では設定していますが、後続では使用しません。

①-3 SOQLの結果を格納するため変数を設定します。

  • 変数の型はDataTableです。

  • DataTable内の列はSELECTの項目名になるため、Id,Nameの2列になります。

②取引先責任者を登録します。

Salesforce-Integration_vol6_image4

②-1 登録対象オブジェクト「Contact」を選択します。

②-2 登録対象の項目を選択する子ウインドウを開きます。

②-3 登録対象の次の項目をリストから選択します。

姓 (LastName), 名 (FirstName), 役職 (Title), 取引先ID (AccountId)

※図中は役職(Title)が表示されておりませんが、ウインドウをスクロールすると選択できます。

②各項目に登録する値を設定します。

  • 姓 (LastName), 名 (FirstName), 役職 (Title)は任意の値を設定します。

  • AccountIdは取引先のIDです。本例では①で取得した「sfdcAccountList(0)("Id").ToString()」を設定します。

Salesforce-Integration_vol6_image5

②-5 必要に応じてSalesforceステータスに変数を設定します。

※本例では設定していますが、後続では使用しません。

これで完成です。ワークフローを実行してみてください。取引先に取引先責任者が新規に登録されていれば成功です。

取引先責任者情報の更新

先程登録したレコードに対して「部署(Department)」を更新するワークフローを作成したいと思います。

ワークフローの全体像は次の通りです。

Salesforce-Integration_vol6_image6

個別にプロパティの設定内容を見てみます。

①更新対象の取引先責任者のレコードIDを特定します。
Salesforce-Integration_vol6_image7
①-1 SOQL詳細:

SELECT Id,LastName,FirstName FROM Contact WHERE LastName = 'サンプル’    AND FirstName = '太郎’    AND Account.Name = 'サンプル株式会社’

  • ID,姓(LastName),名(FirstName)を取引先責任者(Contact)から取得するSOQLです

  • レコードの絞込条件として、

    • 特定の姓、名であること

    • 特定の取引先名(Account.Name)に所属していること

    を指定しています。本例では「サンプル」「太郎」「'サンプル株式会社'」を設定します。

  • 取引先名を条件としているのは同姓同名者がヒットする可能性を避けるためです

  • SELECTの項目「LastName」「FirstNameName」は後続で使用しませんが、デバッグ時に確認の補助となるため入れています

①-2 Salesforceステータスは必要に応じて設定します。

※本例では設定していますが、後続では使用しません。

①-3 SOQLの結果を格納するため変数を設定します。

  • 変数の型はDataTableです。

  • DataTable内の列はSELECTの項目名になるため、Id, LastName,FirstNameの3列になります。

②取引先責任者を更新します。
Salesforce-Integration_vol6_image8

②-1 更新対象オブジェクト「Contact」を選択します。

②-2 更新対象の項目を選択する子ウインドウを開きます。

②-3 更新対象の次の項目をリストから選択します。

部署 (Department)

②-4 各項目に更新する値を設定します。

  • Idは更新対象の取引先責任者のIDです。本例では①で取得した「sfdcContactList(0)("Id").ToString()」を設定します。

  • Department(部署)は任意の値を設定します。

Salesforce-Integration_vol6_image9

②-5 必要に応じてSalesforceステータスに変数を設定します。

※本例では設定していますが、後続では使用しません。

これで完成です。ワークフローを実行してみてください。取引先責任者の部署が更新されていれば成功です。

Excelからの一括登録

取引先責任者登録のワークフローを拡張して、Excelのリストを元にした一括登録のワークフローを作ってみたいと思います。ワークフローの全体像は次の通りです。

Salesforce-Integration_vol6_image10

個別にプロパティの設定内容を見てみます。

①Excelから登録内容の一覧を取得します。
Salesforce-Integration_vol6_image11

①-1 読み込んだ一覧を格納するため変数を設定します。

  • 本例で使用するデータは下図の通りです。

※その他プロパティは図の通りとします。

Salesforce-Integration_vol6_image12
②Excelから取得した一覧を一行ずつ、繰り返し処理します。
Salesforce-Integration_vol6_image13

②-1 前項で読み込んだ一覧が格納された変数を設定します。

※その他のプロパティについてはUiPathの基本的な利用方法となるため、説明を割愛します。

②-2 処理内容(Doの中の構成)は、本稿の「取引先責任者の登録と取引先への関連付け」と同じです。

※繰り返し処理の解説

②-1→②-2→②-1…と、②-1,②-2を繰り返し実施します。 ②-1 「contactList」から1行分のデータを「row」にコピー ②-2 Do内を実行し、コピーした1行にまつわる処理を実施

③取引先名称からレコードのIDを特定します。
Salesforce-Integration_vol6_image14

③-1 SOQL詳細: "SELECT Id,Name FROM Account WHERE Name = '" + row("所属会社").ToString() + "'"

  • 先程の例と比較して、レコードの絞込条件がExcelから読み込んだ値に置き換わっています。

※row("所属会社").ToString()について

rowに対し取り出すセルを指定するため列名("所属会社")を指定しています。

③-2 Salesforceステータスは必要に応じて設定します。

※本例では設定していますが、後続では使用しません。

③-3 SOQLの結果を格納するため変数を設定します。

  • 変数の型はDataTableです。

  • DataTable内の列はSELECTの項目名になるため、Id,Nameの2列になります。

④取引先責任者を登録します。

Salesforce-Integration_vol6_image15

④-1 登録対象オブジェクト「Contact」を選択します。

④-2 登録対象の項目を選択する子ウインドウを開き、次の項目を選択します。

姓 (LastName), 名 (FirstName), 役職 (Title), 取引先ID (AccountId)

④-3 各項目に登録する値を設定します。

  • 先程の例と比較して、姓,名,役職がExcelから読み込んだ値に置き換わっています。

  • AccountIdは取引先のIDです。本例では①で取得した「sfdcAccountList(0)("Id").ToString()」を設定します。

これで完成です。ワークフローを実行してみてください。取引先責任者が3件一括登録されていれば成功です。

もし名刺情報を連携される場合は、こちらのソリューションの活用もご検討ください。

名刺連携ソリューション for Sansan and Salesforce: https://marketplace.uipath.com/ja/listings/j7zu0p9mjoh17p6vsn3po

ワークフローのほか、利用説明書や設定手順書などのドキュメントを一式提供しております。皆様の会社の固有要件がある場合は、これをベースにカスタマイズすることで実現期間を短縮できます。

まとめ

今回は取引先責任者(Contact)を操作するワークフローをお届しました。

皆様のワークフロー開発の一助になれば幸いです。

最後に今回の記事の中で取り上げた部品のリンク先などをお知らせします。

Activityの公開先 (UiPathマーケットプレイス): https://marketplace.uipath.com/ja/listings/salesforce-activity-pack

Salesforce連携ソリューションご案内: https://www.uipath.com/ja/solutions/technology/salesforce-automation

名刺連携ソリューション for Sansan and Salesforce: https://marketplace.uipath.com/ja/listings/j7zu0p9mjoh17p6vsn3po

その他連携ソリューションご案内: https://www.uipath.com/ja/solutions/application-cooperation-solutions

次回は「ケース(Case)の操作」を行うワークフローをお届けします。お楽しみに。

※SalesforceはSalesforce.com,Incの商標であり、許可のもとで使用しています。

また、UiPathでは、本記事で解説した内容に加えて、CRM/SFAの定着化のためのRPA活用について、実際の事例や、UiPathの連携ソリューションについてご紹介するeBookを無料で公開しています。eBookは下記よりダウンロードください。

Salesforce-Integration_vol22_image32

詳しくはこちら

Topics:

Salesforce
Avatar Placeholder Big
Hidetaka Obata

Senior Sales Engineer, UiPath