こんにちは。CData Software Japan リードエンジニアの杉本です。
今回の記事ではノンプログラミング Web データベース UnitBaseに Salesforceのデータを同期させ、UnitBase上で活用できるようにする方法を紹介したいと思います。
UnitBaseとは?
UnitBaseは株式会社ジャストシステムが提供するノンプログラミング Web データベースです。
顧客管理や案件管理といった情報共有のためのデータベースを簡単に、ノンプログラミングで構築することが可能です。
UnitBaseには外部のRDBからマスタデータなどを参照に、シームレスに活用できるようにする機能が提供されています。
今回はこの仕組を利用して Salesforce データの活用方法を解説していきます。
UnitBase から Salesforce API に接続する際の課題
さて、今回の記事では前述の通り UnitBase から Salesforce API に接続していきます。
Salesforce では REST APIが提供されているので、一見連携しやすいように見えますが、SOQLを発行するインターフェースがベースになっており、単純に UnitBase 上からは連携することができません。
例えば、バッチ処理のプログラムなどを開発し、定期的にSalesforce のデータを吸い上げるなどの対応が必要となってしまうでしょう。
そこで今回の記事ではこのボトルネックを「CData JDBC Driver」を活用することで解消します。
UnitBase ではRDBの取り込み設定という仕組みが標準提供されており、この機能を介してSQL ServerやMySQLなどにアクセスできるようになっています。
そして、実はこの機能が内部的にはJDBCが利用されているため、この機能とCDataが提供されているJDBC Driverラインナップを組み合わせることで、各種クラウドサービスのAPIにアクセスすることができるようになります。
とは言っても、説明だけではイメージできない部分もあると思うので、実際に連携を試してみましょう。
手順
CData JDBC Driverのインストール
まず CData Salesforce JDBC Driver もセットアップします。トライアルは以下のURLから入手できます。
ダウンロード後、exeファイルを実行し、セットアップを進めます。
インストール完了後、「C:\Program Files\CData」にCData JDBC Driverのフォルダが作成され、JDBCのjarファイルがSalesforceのフォルダのlib配下に作成されます。
UnitBase での JDBC Driver 読み取り設定
インストールが完了したら、UnitBase でこの JDBC Driver が利用できるようにjarファイルを配置します。
Program Filesの「JustSystems\UnitBase\jdbc」のフォルダに、セットアップした「cdata.jdbc.salesforce.jar」と「cdata.jdbc.salesforce.lic」の2つのファイルを配置します。
また、合わせてUnitBase でのRDB接続設定を「JustSystems\UnitBase\tomcat\webapps\teambase\WEB-INF」にある「application.properties」で行います。
PostgreSQLの接続設定をベースとしながら、以下のように CData JDBC Driver の接続設定を追加しましょう。
datasync.rdb.jdbc.displayName.postgresql=Salesforce datasync.rdb.jdbc.driver.postgresql=cdata.jdbc.salesforce.SalesforceDriver datasync.rdb.jdbc.initJdbcUrl.postgresql=jdbc:salesforce:jdbc:salesforce:User=myUser;Password=myPassword;Security Token=myToken;
接続URLは「jdbc:salesforce:User=myUser;Password=myPassword;Security Token=myToken;」のように指定して作成します。
Salesforceの接続情報 | 設定項目 | 備考 |
---|---|---|
ユーザID | User | |
パスワード | Password | |
セキュリティートークン | Security Token | 取得方法はこちら |
「application.properties」変更後、UnitBaseを再起動すれば、JDBC Driverの設定が反映されます。
UnitBase でRDBの取り込み設定を追加する
それでは実際に CData JDBC Driver を通じて、UnitBase で Salesforce のデータを利用できるように構成してみましょう。
UnitBase にログインし
「ホーム」画面から
「新しいデータベースを作る」に移動します。
ここで、JDBC Driver からのデータ取り込み構成を行います。
任意のデータベース名を入力し「RDBから作成」を選択します。
RDBの種類で先程「application.properties」で設定した接続情報および接続URLを指定します。ユーザー名・パスワードは明示的に利用しませんので、適当な値を入力してかまいません。
入力後「接続」をクリックすると、スキーマ・テーブル・ビューでSalesforceのデータが選べるようになります。
今回は顧客情報となるAccountを取り込んでみましょう。
次の画面に移動すると、UnitBase上のデータベースとのマッピングおよび実際のデータを確認できます。必要に応じて取り込む項目やフィールドの種類を調整します。
また、データ更新時のことを踏まえて、キーフィールドも設定しておくと良いでしょう。
これでデータベースの作成を進めます。合わせて「データ取り込みも実行」しておきましょう。
無事データ取り込みが完了すると、これだけで Salesforce の顧客データおよびそのデータベースのモデリングがUnitBase に取り込まれて、利用できるようになります。
更新スケジュールの追加
なお、UnitBase上のデータは更新スケジュールを追加することで、定期的にSalesforce のデータを元にリフレッシュすることができます。
対象のデータベースの「外部データ連携設定」に移動し
データ更新のための「スケジュールの追加」を行います。
この画面でどの程度の頻度で、どういった差分取得条件でデータを取得、UnitBaseに反映させるのか?を設定できます。
おわりに
このようにCData JDBC Driverを追加するだけで、手軽にUnitBaseの連携先を拡充できます。
CData では Salesforce 以外にもJDBC Driver を多数提供しています。Kintone や HubSpot、Sansanなど様々なデータソースをサポートしているので、是非UnitBaseと合わせて活用したいデータソースと組み合わせて連携してみてください。