こんにちは。CData Software Japan リードエンジニアの杉本です。
今回はインテリジェントオートメーション RPA Blue Prism と CData ODBC Driver を組み合わせて、様々なクラウドサービスのデータを取得・自動化するための方法を紹介したいと思います。
Blue Prism とは?
Blue Prism は2001年にイギリスで創業したBlue Prism 社が提供するエンタープライズ企業向けのロボティック・プロセス・オートメーション(RPA)ツールです。
https://www.Blue Prism.com/japan/www.Blue Prism.com
大きな特徴は「プロセス」と「オブジェクト」という概念で自動化処理を構成していくところが挙げられるでしょう。
予め各種アプリケーションを操作する手続き、振る舞いをオブジェクトとして定義することで、再利用性を高め、全体の開発生産性を向上させています。
このオブジェクトはVBOという名前で各種テンプレート、プリセットが公開されており、初心者でも様々なアプリケーションやローカルファイル・サービス等に接続することが可能になっています。
そんなVBOの中にはODBC経由でデータベースに接続できるものも提供されており、CData ODBC Driverと組み合わせることで、CData が対応している様々なデータソース と手軽に連携ができるようになります。
今回の記事ではこのODBC用のVBO とCData ODBC Driver を使って、Blue Prism から SFAとして有名なクラウドサービス「Salesforce」に接続する方法を紹介します。
シナリオ
今回は前述の通り、シンプルな連携方法として、Salesforce から CData ODBC Driver経由でアプリのデータを取得するプロセスを作成します。最終的にはExcel 操作用のVBOも用いて、ローカルのExcelファイルに書き込むところまでやってみましょう。
最終的に作成するフローは以下のようなイメージとなります。
Blue Prism はRPAなので、Salesforce の UI上からデータを取得して処理するといったことも考えられますが、その場合ページ遷移や項目名の変更、UIのビュー調整・認証方法などを考慮しなくてはいけません。
また、REST Web サービス向けのVBOも提供されていますが、それぞれのAPI仕様の把握および認証方法への対応やAPI Updateへの追従なども含めて考える必要があり、非開発者にとっては敷居が高い部分があると思います。
しかしながら、CData ODBC Driverを利用することで上記API固有のハンドリングを委任し、Blue Prism からシームレスに呼び出すことができるようになります。
また、今回のシナリオではSalesforceを例に紹介していますが、CData で提供するkintone やMarketo・Amazon Marketplace などのODBC Driver も同様に接続が可能です。
手順
CData Salesforce ODBC Driverのインストール・セットアップ
最初に CData Salesforce ODBC Driverを対象のマシンにインストール・セットアップします。
CData Salesforce ODBC Driver は以下のURLから30日間のトライアル版が入手できます。
インストーラーを立ち上げると、以下のような画面になるので、ダイアログに従ってセットアップを完了してください。
セットアップ完了後、接続設定画面が立ち上がります。下記の項目に Salesforce への接続情報を設定します。
Salesforceの接続情報 | 設定項目 | 備考 |
---|---|---|
ユーザID | User | |
パスワード | Password | |
セキュリティートークン | Security Token | 取得方法はこちら |
「接続のテスト」ボタンをクリックします。下記のようなダイアログが表示されれば成功です。「接続ウィザード」の「OK」ボタンをクリックして保存します。
ODBC 用の VBO を追加する
続いて、ODBC 用のVBO をBlue Prism に追加しましょう。
以下のURLから「Connector for ODBC Utility Blue Prism」が入手できます。
Connector for ODBC Utility Blue Prism
「BPA+Object+-+Data+-+ODBC+v1.0.xml」というXMLファイルがダウンロードできるので、Blue Prism を立ち上げてオブジェクトとしてインポートしましょう。
対象のファイルを選択し「次へ」進みます。
インポートが完了すると、以下のようにオブジェクト一覧に「Data -ODBC」が追加されます。
これを使って、CData ODBC Driver へ Blue Prism から簡単に接続できるようになります。
新しいプロセスを作成する
それでは早速自動化のプロセスを作成していきましょう。
「新しいプロセスまたはビジネスオブジェクト」から「プロセス」を選択して、次へ進みます。
任意のプロセス名を入力します。
必要に応じてプロセスの説明を指定して、「終了」をクリックしましょう。
これで以下のように初期のプロセスが立ち上がります。
ODBC Open 処理を追加する
ODBC の接続処理は以下の3つのプロセスで実施します。実際にデータの操作を実行するのは真ん中の部分ですが、前後の処理が必要になるという点に注意してフローを組みましょう。
- コネクションを確立するためのOpen処理
- SQLやINSERT文などを実行するExecute(ExecuteNonQuery)処理
- コネクションを終了するためのClose処理
まずは「コネクションを確立するためのOpen処理」を追加します。
「アクション」を画面に配置して設定画面を開きます。
ビジネスオブジェクトの一覧から先程インポートした「Data - ODBC」を選択しアクションの一覧で「Open」を選択しましょう。
「Open」アクションは入力パラメータとして「Connection String」を必要とします。ここで先程設定したCData ODBC DriverのDSN名を「"DSN=CData Salesforce Source"」といった形式で指定します。
これでOpenのアクションは設定完了です。
ODBC経由でデータを取得する処理を追加する
続いてSalesforce からデータを取得する処理を追加していきましょう。
先程と同じように「アクション」を追加し
ビジネスオブジェクトの一覧から「Data - ODBC」を選択、アクションの一覧で「Execute」を選択しましょう。
ExecuteではSQLを指定して、データを取得することができます。今回は以下のようにSalesforce の取引先情報であるAccountを取得する処理を書いてみました。
SELECT Id, Name FROM Account LIMIT 10;
なお、SELECT Statementで利用するテーブルやカラムの情報はODBC DSNの「テーブル」タブから確認できます。
また、Blue Prism上で取得した結果を扱えるように、処理結果を変数に格納します。出力タブにある「Results」の変数アイコンをクリックして、出力先の変数を生成し「OK」をクリックしましょう。
ODBCのクローズ処理を追加する
最後にODBCの処理を終了して、接続を開放するためにクローズ処理を追加します。
同じようにアクションを配置し
ビジネスオブジェクトの一覧から「Data - ODBC」、アクションの一覧で「Close」を選択しましょう。
Close では特に設定するパラメータはありません。
最後にリンクを繋いで、以下のようになプロセスが出来上がります。
Excel に保存する処理を追加する
これだけではデータを取得して何も行わないので、Excelファイルに書き込みを行ってみましょう。
以下から取得できる「Excel VBO」を使って、後続のフローを作成します。
Connector for MS Excel VBO - JP(日本語版)
「Excel VBO」の設定詳細は割愛しますが、以下のアクションの流れで取得したデータをExcelに書き込んでいます。
- MS Excel VBO::Create Instance
- MS Excel VBO::Show
- MS Excel VBO::Open Workbook
- MS Excel VBO::Write Collection
- MS Excel VBO::Save Workbook
- MS Excel VBO::Exit
「MS Excel VBO::Write Collection」のアクションで入力パラメータの「Collection」にODBC経由で取得した「Results」を書き込んでいます。
動作確認
プロセスが完了したら「実行」ボタンをクリックして、実際に動かしてみましょう。
最終的に以下のようなExcelファイルに書き込みが完了していればOKです。
おわりに
今回はシンプルなデータ取得方法を解説しましたが、ODBC Driverでは書き込み・更新・削除もサポートしています。
Blue Prism の「ExecuteNonQuery」で「INSERT/UPDATE/DELETE」処理も利用できるのでぜひ試してみてください。
他のCDataが提供するデータソースと一緒に活用することも可能なので、ぜひ様々なユースケースで連携を試してみてください。