こんにちは。CData Software Japan リードエンジニアの杉本です。
今回は国内で数多くの導入実績を誇るソフトウェアロボット BizRobo! と CData JDBC Driver を組み合わせて、様々なクラウドサービスのデータを取得・自動化するための方法を紹介したいと思います。
BizRobo! とは?
BizRobo! はRPAテクノロジーズ株式会社が提供する低コストかつスモールスタートで利用できるRPAツールです。
rpa-technologies.com
ノンITでもスムーズにロボットが開発できるローコードなインターフェースが特徴的ですね。
ロボットは様々なアクションを組み合わせて構成していきます。RPAツールの特徴でもあるUIベースの操作はもちろんのこと、Webサービスの呼び出しやファイルシステム操作など多様なアクションが備わっています。
そんなアクションの中にはJDBC経由でデータベースに接続できるものも提供されており、CData JDBC Driverと組み合わせることで、CData が対応している様々なデータソース と手軽に連携ができるようになります。
今回の記事ではこのBizRobo!のデータベースアクションとCData JDBC Driver を使って、BizRobo! から Googleが提供する表計算サービス「Google Spreadsheet」を連携する方法を紹介したいと思います。
www.cdata.com
シナリオ
今回は前述の通り、シンプルな連携方法として、Google Spreadsheet から CData JDBC Driver経由でデータを取得するロボットを作成します。
最終的に作成するフローは以下のようなイメージとなります。
BizRobo! はRPAなので、Google Spreadsheet の UI上からデータを取得して処理するといったことも考えられますが、Google Spreadsheetは単純なHTMLで構成されていないことから、結構アクセスするのが大変ですよね。
また、REST APIで接続する方法もあるかと思いますが、それぞれのAPI仕様の把握および認証方法への対応やAPI Updateへの追従なども含めて考える必要があり、非開発者にとっては敷居が高い部分があると思います。
しかしながら、CData JDBC Driverを利用することで上記API固有のハンドリングを委任し、BizRobo! からシームレスに呼び出すことができるようになります。
また、今回のシナリオでは Google Spreadsheet を例に紹介していますが、CData で提供するkintone やMarketo・Amazon Marketplace などのJDBC Driver も同様に接続が可能です。
www.cdata.com
手順
BizRobo! 環境の構成
今回は検証にあたって、BizRobo! Basicを利用しました。
JDBC Driverのアップロードに「BizRobo! Management Console」を利用するためです。
「BizRobo! Management Console」にアクセスするために、予め BizRobo! Basic がインストールされたサーバー上で「Start Management Console」を実行しておきましょう。
CData JDBC Driverのインストール
BizRobo! 側の環境構成と併せて、CData JDBC Driver もセットアップします。トライアルは以下のURLから入手できます。
www.cdata.com
ダウンロード後、exeファイルを実行し、セットアップを進めます。
インストール完了後、「C:\Program Files\CData」にCData JDBC Driverのフォルダが作成され、JDBCのjarファイルがSalesforceのフォルダのlib配下に作成されます。
JDBC Driver の接続テスト
続いて、接続用の文字列を取得するために、CData JDBC Driverの接続ユーティリティを利用しましょう。
「C:\Program Files\CData\CData JDBC Driver for Google Sheets 2021J\lib」フォルダにある「cdata.jdbc.googlesheets.jar」を実行します。
以下のような接続テストツールが立ち上がるので「InitiateOAuth」を「GETANDREFRESH」に指定して、「接続テスト」を実行します。
するとブラウザが立ち上がり、認証・認可のプロセスが進みます。確認の上、以下のようなメッセージが表示されればOKです。
入力した「接続文字列」はあとで利用するのでコピーしておきましょう。
また、事前に DbVisualizer のようなJDBCの接続ツールでどのようなデータが取得できるか確認しておくのがおすすめです。
www.cdata.com
BizRobo! にJDBC Driverをアップするために lic ファイルを調整
併せてCData JDBC DriverのライセンスファイルをBizRobo!にアップロードするために少し追加の作業を実施します。
「lib」フォルダに存在する「cdata.jdbc.googlesheets.lic」ファイルをZIPに圧縮し
名前を「cdata.jdbc.googlesheets.lic.jar」に変更しておきます。これでBizRobo! にアップロードできるようになります。
BizRobo! Managmenet Console にJDBC Driver をアップロード
それでは「BizRobo! Managmenet Console」でCData JDBC Driverを利用できるように設定を進めていきましょう。
「設定」→「データベース ドライバー」から「cdata.jdbc.googlesheets.jar」「cdata.jdbc.googlesheets.lic.jar」2つのファイルをアップロードします。
CData JDBC Driver のアップロードが完了したら「データベースタイプ」で接続設定を追加しましょう。
「設定」→「データベース タイプ」から「新しいタイプ」として以下の情報を入力し保存します。
プロパティ名 |
値 |
備考 |
名前 |
例)CData JDBC Driver |
任意の名称を指定します。 |
JDBC ドライバー |
cdata.jdbc.googlesheets.GoogleSheetsDriver |
JDBCドライバーのクラス名を指定します。 |
接続URLテンプレート |
jdbc:googlesheets:FolderName="Sample";InitiateOAuth="GETANDREFRESH"; |
接続ユーティリティで生成した接続文字列を指定します。 |
SQL フレーバー |
PostgreSQL |
|
続いて対象のクラスタにデータベース接続を追加します。
「管理」→「RoboServer」から対象のクラスタの「クラスタ設定」を開きます。
「新しいデータベース」をクリックし各種情報を指定します。この際、明示的な指定が必要なものは「タイプ」だけです。ここで先程作成したデータベースタイプを入力します。
それ以外の情報は内部的には利用しないので、任意の文字列を入力してもらって構いません。
これで設定を反映させれば対象のクラスタでCData JDBC Driver が利用できるようになります。
データベース設定をプロジェクトに追加
それではDesign Studio を立ち上げて、ロボットを作成するためのプロジェクト側の準備を進めていきましょう。
「BizRobo! Managmenet Console」で追加したデータベース設定は Design Studio のデータベース一覧に表示されるのでここから右クリックで「プロジェクトに追加」から対象の環境に追加します。
任意のマッピング名で追加します。
ちなみにデフォルトでは警告メッセージが表示されてしまうので、追加したデータベース マッピングの「設定」から
「警告を表示」からチェックを外しておくと良いです。
データを格納するためのタイプを追加
続いて、取得したデータを変数に適切に追加するために、「タイプ」を作成しましょう。
今回は以下のような「Products」のSpreadsheetを取得します。
JDBC Driverでは以下のように表現されるテーブルになります。これを元にBizRobo!のタイプを作成していきます。
メニューの「ファイル」→「新しいタイプ」をクリックし
任意のタイプ名で作成します。
あとは下記のように各種項目を定義します。
新しい Web オートメーションロボットを追加
それでは実際にロボットの作成を開始します。
「メニュー」から「新しい Web オートメーションロボット」を選択し
任意の名称で作成します。
これで以下のようにデフォルトのロボットが作成され、フローのデザイン画面が表示されます。
変数の準備
今回はGoogle Spreadsheetからデータを取得してくるので、そのデータを格納する変数を設定します。
以下の変数画面から「+」ボタンをクリックし
先程作成したタイプを元に変数を追加します。
データベース照会アクションを追加
変数を追加したら、実際にCData JDBC Driver 経由でデータを取得するアクションを追加します。
デザイン画面から「アクション ステップ」を追加し
アクションの一覧から「データベース照会」を選択します。
「データベース」で先程登録したデータベースマッピングを選択し、SQLクエリの欄にデータを取得するためのクエリを入力します。
最後に変数マップとして先程登録したタイプ変数にSQLクエリで取得できる各項目をマッピングします。
これだけでGoogle Spreadsheetからデータが取得できるようになります。
CSV出力フローを追加
取得したデータはBizRobo!の機能を使って、自由に処理できます。
今回は試しにCSVデータとして出力を行ってみました。詳細な手順は省略しますが、フローの作成方法は以下の記事を参考に作成しています。
BizRobo! ナレッジベース CSVファイルにデータを書き込む
対象のCSVファイルを読み込むアクションを追加し、LongTextの変数に格納します。
そのCSVファイルデータを元に、レコードを1行づつ追加するファイル出力アクションを設定しました。
デバッグして実際に動かしてみる
これでロボットが完成です。それでは実際に動かしてみましょう。
デバッグ画面に移動して、「実行」ボタンをクリックします。
正常にロボットが動作すると、以下のようにCSVファイルが生成されます。
おわりに
今回はシンプルなデータ取得方法を解説しましたが、CData JDBC Driverでは書き込み・更新・削除もサポートしています。
また、Google Spreadsheet 以外にも様々なクラウドサービス・NoSQLなどのデータを扱えるドライバーを提供しているので、ぜひ自社でお使いのサービスと組み合わせて、ロボットの作成を試してみてください。
www.cdata.com
関連コンテンツ