こんにちは。CData Software Japan リードエンジニアの杉本です。
今回はマルチプラットフォームRPA HeartCore Robo からSalesforce のデータにアクセスする方法についてご紹介します。
HeartCore Robo とは?
ハートコア株式会社が提供する様々なプラットフォーム上での利用が可能なRPAツールです。
https://www.heartcore.co.jp/rpa/rpa.html
その特徴は何と言っても様々なプラットフォーム上での利用ができることで、Windows やLinux 上はもちろんのこと、Mac やAS400 上でも利用できるようになっています。
また各種Plugin を追加することにより、簡単にユースケースの幅を広げることができるようになっており、SQL ベースのデータアクセスも以下のPlugin によりサポートされています。
このPlugin をCData ODBC Driverと組み合わせることで、CData が対応している様々なデータソース と手軽に連携ができるようになります。
https://docs.t-plan.com/robot/robot-plugins/sqldb
今回の記事ではこのPlugin とCData JDBC Driver を使って、HeartCore Roboから SFAとして有名なクラウドサービス「Salesforce」に接続する方法を紹介します。
作成したプロジェクト
今回は前述の通り、シンプルな連携方法として、Salesforce から CData JDBC Driver 経由でアプリのデータを取得するプロジェクトを作成します。
最終的にはExcel 操作用の機能も用いて、ローカルのExcelファイルに書き込むところまでやってみました。
最終的に作成するプロジェクトは以下のようなイメージとなります。
HeartCore Robo はRPAなので、Salesforce の UI 上からデータを取得して処理するといったことも考えられますが、その場合ページ遷移や項目名の変更、UI のビュー調整・認証方法などを考慮しなくてはいけません。
しかしながら、CData JDBC Driver を利用することでAPI 固有のハンドリングを委任し、HeartCore Robo からシームレスに呼び出すことができるようになります。
また、今回のシナリオではSalesforceを例に紹介していますが、CData で提供するkintone やMarketo・Amazon Marketplace などのODBC Driver も同様に接続が可能です。
https://www.cdata.com/jp/jdbc/
CData JDBC Driver のインストール
最初にCData JDBC Driver を対象のマシンにインストールします。
以下のURLから30日間のトライアルバージョンをダウンロードしましょう。
https://www.cdata.com/jp/drivers/salesforce/jdbc/
インストーラーを取得したら、セットアップを進めます。
セットアップ完了後、「C:\Program Files\CData\CData JDBC Driver for Salesforce 2022J\lib」のフォルダにJDBC Driver のjarファイルが配置されます。
対象のjar ファイルを実行すると接続テストツールが立ち上がるので、これでSalesforce への接続を確認しておきましょう。
Salesfore にはOAuth やセキュリティトークンを用いた接続が利用できます。詳しくは以下のリファレンスを参照してみてください。
https://cdn.cdata.com/help/RFH/jp/jdbc/pg_connectionj.htm
プロパティ
|
設定値
|
Auth Scheme
|
Basic
|
User
|
Salesforce ログインメールアドレス
|
Password
|
Salesforce ログインパスワード
|
Security Token
|
Salesforce で取得したトークン
|
無事接続が完了すると、以下のように接続テストの成功メッセージが表示されます。接続文字列は後で利用するのでコピーして控えておきましょう。
SQL Database Plugin の配置
続いてHeartCore Robo にJDBC Driver を通じてデータベースアクセスを行うためのSQL Database Plugin を追加します。
Plugin は以下のURLからダウンロード可能です。
https://docs.t-plan.com/robot/robot-plugins/sqldb
ダウンロードされた「tprdb.jar」を「C:\Program Files (x86)\HeartCore\Robo\plugins」のフォルダに配置します。
これでHeartCore Robo を立ち上げて準備完了です。
プロジェクトの作成
それでは実際にHeartCore Robo を立ち上げて、プロジェクトを新しく作成し、スクリプトの定義を進めていきましょう。
HeartCore Robo ではTPRスクリプトと呼ばれる独自のスクリプト言語を使って、RPAのシナリオを作り込んでいきます。
といっても、HeartCore Robo 上のスクリプトの記述は以下のようにフローを描くような形のローコードなデザイナー上で処理を記述することができます。
JDBC Driver のinclude を追加
プロジェクトを作成したら、まずCData Salesforce JDBC Driver を利用するためのinclude コマンドを追加します。
以下のプロパティが表示されるので、対象のファイルとして先程ダウンロードしておいたJDBC Driver のパスである「C:\Program Files\CData\CData JDBC Driver for Salesforce 2022J\lib\cdata.jdbc.salesforce.jar」を追加します。
Connection の構成
次にCData JDBC Driver の接続情報を追加します。これらの設定はPlugin の関数を呼び出すためのRun コマンドから実行できます。
スクリプトクラスは「com.tplan.db.Connect」です。ここで予め作成しておいたJDBC URLとCData Salesforce JDBC Driver のDriver class を指定します。
Driver Class などの情報は以下のドキュメントから確認できます。ここでは「cdata.jdbc.salesforce.SalesforceDriver」と入力しましょう。
https://cdn.cdata.com/help/RFH/jp/jdbc/pg_connectionj.htm
Execute の追加
続いてRunコマンドでSQLを実行するための「com.tplan.db.Execute」を追加します。
ここでデータを取得するためのSQLを指定します。今回はSalesforce の取引先企業のデータを対象として「SELECT Id, Name, FROM Account」と記述しました。
なお、ここで実行された結果は最終的に以下のような変数として格納されます。
取得したカラムの数は「_DB_COLUMN_COUNT」
取得したレコード数は「_DB_ROW_COUNT」
それぞれのレコードの結果は「_DB_VALUE_X_X」という形で「X」の部分にカラムの番号とレコードの番号を指定して取得するイメージです。
これでSalesforce からデータを取得するための設定はOKです。
Excel ファイルを開く処理の追加
Salesforce からデータを取得するスクリプトが記述できたので、その結果をExcel に書き込んでいくスクリプトを追加していきます。
今回は予め作成しておいた空のExcel ファイルを対象に書き込みます。
Excel open コマンドを追加し
対象のExcel ファイルのパスを入力しておきます。
ループ処理の追加
次にSalesforce から取得したデータを順次参照するループ処理となるFor コマンドを追加します。
今回は「カスタム/条件」を指定して以下のようにそれぞれのプロパティを設定します。
初期表現
|
row=1
|
+
|
各ループでテストする条件
|
{row} < {_DB_ROW_COUNT} + 1
|
+
|
各ループでコールする表現
|
row={row}+1
|
+
|
ループ処理の中ではExcel set コマンドを利用して、値を設定していきます。
For コマンドで指定したrow の値をもとに、設定値を組み立てていきます。これを必要な列毎に作成します。
セルの値を設定:{_DB_VALUE_{row}_1}:※「_1」の数値が列番号を示しています。
セル参照:A{row}
これでプロジェクトの作成は完了です。
実行
それではプロジェクトを実行してみましょう。画面上の「実行」ボタンをクリックします。
実行が完了すると結果マネージャが表示されます。
対象のExcel ファイルを確認してみると、正常にSalesforce のデータが
おわりに
CData JDBC Driver を使って、RPA ツール「HeartCore Robo」とSalesforce の連携ができました。
そのほかのオートメーション処理と組み合わせることで、さらに業務の効率化を進めることができます。
CData JDBC Driver には、Salesforce 以外にも250以上の接続先を用意しています。 ぜひトライアル版で体感してみてください。
https://www.cdata.com/jp/jdbc/
ご不明な点があれば、お気軽にテクニカルサポートまでお問い合わせください。
https://www.cdata.com/jp/support/submit.aspx
関連コンテンツ