こんにちは。CData Software Japan リードエンジニアの杉本です。
今回は現場帳票電子化ソリューション XC-Gate と CData JDBC Driver を組み合わせて各種クラウドデータを帳票で活用する方法を紹介します。
XC-Gate とは?
XC-Gate は製造業、建設業、食品業界など様々な業界で活用されている現場帳票電子化ソリューションです。
https://product.technotree.com/xc-gate-ent/
普段皆さんが使っているExcel を利用して帳票をカスタマイズ、作成することができるのが大きな特徴です。
https://www.technotree.com/form/xc-editor
また、XC-Connect というツールをサーバーにインストールして、ローコードで業務管理・生産管理システムやBIツール、Excel、CSVといったデータと連携することができます。
https://product.technotree.com/xc-gate/xc-connect/feature/
シナリオ
今回作成する帳票は以下のようにSalesforce のデータを一覧表示するものとなっています。
Salesforce は REST APIが提供されているので、一見連携しやすいように見えますが、SOQLを発行するインターフェースがベースになっていたりと、XC-Gate から直接クエリするにはインターフェース処理が難しい部分が実際問題として存在します。
https://developer.salesforce.com/docs/atlas.ja-jp.api_rest.meta/api_rest/resources_query.htm
そこで今回の記事ではこのボトルネックを「CData JDBC Driver」を活用することで解消します。
https://www.cdata.com/jp/drivers/salesforce/jdbc/
XC-Gate では XC-Connect というデータベースのデータを読み込むための仕組みが標準提供されており、この機能を介してSQL ServerやMySQLなどにアクセスできるようになっています。
https://www.xc-times.com/news/?newsUCd=908b7620-3ecd-4e04-ab5d-4a42897c035d
そして、実はこのXC-Connect は内部でJDBCが利用されているため、XC-Connect とCData が提供されているJDBC Driverラインナップを通じて、各種クラウドサービスのAPIにアクセスすることができるようになります。
とは言っても、説明だけではイメージできない部分もあると思うので、実際に帳票を作成してみましょう。
Salesforce JDBC Driver のセットアップ
最初にCData JDBC Driver を対象のマシンにインストールします。
以下のURLから30日間のトライアルバージョンをダウンロードしましょう。
https://www.cdata.com/jp/drivers/salesforce/jdbc/
インストーラーを取得したら、セットアップを進めます。
セットアップ完了後、以下のフォルダにJDBC Driver のjarファイルが配置されます。
JDBC Driver の接続テスト
対象のjar ファイルを実行すると接続テストツールが立ち上がるので、これでSalesforce への接続を確認しておきましょう。
Salesfore にはOAuth やセキュリティトークンを用いた接続が利用できます。詳しくは以下のリファレンスを参照してみてください。
https://cdn.cdata.com/help/RFH/jp/jdbc/pg_connectionj.htm
無事接続が完了すると、以下のように接続テストの成功メッセージが表示されます。接続文字列は後で利用するのでコピーして控えておきましょう。
XC-Connect の転送設定を追加する
続いてXC-Connect の接続設定を進めましょう。XC-GateでJDBC Driver 経由のデータを扱う場合は、このXC-Connect が必要となります。
XC-Connect は以下のページでデベロッパー登録をすることでダウンロードできます。
https://www.developer.technotree.com/
XC-Connect をセットアップし立ち上げると、ログイン画面が表示されるので、設定したパスワードを使用してログインします。
併せて転送設定でXC-Gate側への接続を確立しておきましょう。予めXC-Gate の証明書を取得しておき、転送設定で指定しておきます。
JDBC ドライバーの登録
それではXC-Gate でCData JDBC Driver の指定を追加していきます。
「システム設定」→「JDBCファイル設定」に移動し
ここでCData JDBC Driver をアップロードして登録します。「ファイルを選択」をクリックし「cdata.jdbc.salesforce.jar」をアップロードします。
以下のように登録されればOKです。
JDBC 登録後は読み込みのためにXC-Connect を一度再起動させましょう。
合わせてライセンスファイル「cdata.jdbc.salesforce.lic」を「C:\Windows\ServiceProfiles\LocalService\.CData」に配置しておきます。もし「.CData」フォルダが無い場合は、作成して配置します。
機器の追加
CData JDBC Driver を配置したら、XC-Connect でどういったデータを読み込ませるのか? 機器設定を追加していきます。まず最初に接続情報を追加しましょう。
「機器設定」タブに移動し、「+機器の追加」をクリックします。
プロトコルの選択画面では「メーカー:データベース」「機種:JDBC 汎用(SQL)」「プロトコル:SQL」をそれぞれ指定します。
最初に接続情報を指定します。任意の設定名称を指定し、JDBC Driver 名で先程登録したDriver を選択します。
接続URLには「JDBC Driver の接続テスト」時に取得した接続文字列を指定しましょう。「ユーザー名」「パスワード」は利用しませんのでダミーの文字列を入力すればOKです。
入力後「接続テスト」をクリックして、「接続テストに成功しました」と表示さればOKです。
取得データの追加
続いて機器設定の詳細からどういったデータを読み込ませるのか? という「取得データの追加」設定を行います。
機器登録完了後、「+取得データの追加」をクリックします。
任意のデータ名称を取得後、実行SQLを指定します。ここではSalesforce の取引先情報である「Account」テーブルを取得するためのSQLを指定しました。
取得間隔や実行タイムアウトは任意の設定を指定します。ただ、Web APIの連携では、各種API側のリクエスト制限が指定されているものも存在するので、過度に短い間隔は利用しないほうが良いかと思います。
「保存方式」は「マスタ(項目)形式」を指定し、キーとしてSalesforce の「Id」カラムを指定しました。
設定後、「接続テスト」をクリックし、以下のようにデータが取得できていればOK です。
登録後、「起動する」ボタンをクリックしておきましょう。
タグ設定の追加
最後にXC-Gate で登録したマスタデータを利用するためのタグ設定を追加します。
「タグ設定」タブに移動し「+タグ設定の追加」をクリックしましょう。
「機器データ名称」の「選択」ボタンをクリックし
登録しているCData JDBC Driver を選択
以下の様なタグ設定の画面に移るので「+表示項目の追加」をクリックし
帳票に取り込みたい項目をそれぞれ追加していきます。
以下のように表示項目が指定できればOKです。なお、Nameは内部的に利用できない名前のようだったので、名称を調整しました。
あとは「タグEXCEL出力」でXC-Gate で利用するタグ設定を取得します。
これでXC-Gate で帳票を作成するためのタグが準備できました。
帳票の登録
それでは実際にXC-Connect 経由でXC-Gate の帳票にデータが表示できるか試していきましょう。
今回は先程取得したタグを利用して以下のような帳票をExcel で作成しました。
これをXC-Gate にログインし、「フォルダ」から「新しいチェックシート」として登録します。
作成したExcel ファイルを指定して、任意のファイル名でチェックシートを登録します。
チェックシートの登録が完了したら「プレビュー」ボタンをクリックして、帳票を参照してみましょう。
以下のような画面が表示されるので「コネクト取得」をクリックしてみると
CData JDBC Driver + XC-Connect 経由でリアルタイムにSalesforce のデータが取得できました!
おわりに
このようにXC-Gate・XC-Connect とCData JDBC Driver を組み合わせることで、手軽にXC-Gate の帳票に各種クラウドサービスのデータを取り込むことができます。
CData ではSalesforce 以外にも様々なクラウドデータソースのJDBC Driver を扱っています。
https://www.cdata.com/jp/jdbc/
ぜひ自社で利用しているサービスと合わせて、XC-Gate を活用してみてください。
関連コンテンツ