現場帳票電子化ソリューションXC-Gate とXC-Connect を使ってRabbitMQ のデータを利用した帳票を作成する方法
今回は現場帳票管理・電子化ソリューションの『XC-Gate』とCData JDBC ドライバを組み合わせて各種クラウドデータを帳票で活用する方法を紹介します。
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/
シナリオ
今回作成する帳票は以下のようにRabbitMQ のデータを一覧表示するものとなっています。
RabbitMQ はREST APIが提供されているので、一見連携しやすいように見えますが、XC-Gate から直接クエリするにはインターフェース処理が難しい部分が実際問題として存在します。
https://developer.salesforce.com/docs/atlas.ja-jp.api_rest.meta/api_rest/resources_query.htm
そこで今回の記事ではこのボトルネックを「CData JDBC Driver」を活用することで解消します。
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 にアクセスすることができるようになります。
とは言っても、説明だけではイメージできない部分もあると思うので、実際に帳票を作成してみましょう。
CData RabbitMQ JDBC Driver のインストール
最初にCData RabbitMQ JDBC Driver を対象のマシンにインストールします。
以下のページから30日間のトライアルがダウンロードできます。
RabbitMQ JDBC ドライバーページインストーラーを入手後、対象のマシンでセットアップを進めていきます。
セットアップ完了後、以下のフォルダにJDBC Driver のjar ファイルが配置されます。
C:\Program Files\CData\CData JDBC Driver for API 2023J\libJDBC Driver の接続テスト
対象のjar ファイルを実行すると接続テストツールが立ち上がるので、これでRabbitMQ への接続を確認しておきましょう。
セットアップが完了すると接続設定画面が表示されるので、RabbitMQ への認証に必要な情報を入力します。
RabbitMQ Management HTTP API について
RabbitMQ は、複数のメッセージングプロトコルをサポートするオープンソースのメッセージブローカーです。RabbitMQ Management HTTP API は、RabbitMQ サーバーの管理データと監視データに HTTP 経由でアクセスする手段を提供します。この API では、仮想ホスト、エクスチェンジ、キュー、バインディング、コネクション、チャネル、コンシューマー、ユーザー、権限、ポリシー、クラスター全体の統計情報を取得できます。
HTTP API を利用するには、RabbitMQ サーバーで Management プラグインを有効化する必要があります。デフォルトでは、管理インターフェースはポート 15672 でリッスンします。
Basic 認証の設定
RabbitMQ Management HTTP API は HTTP Basic 認証を使用します。RabbitMQ 管理ユーザーのユーザー名とパスワードを指定する必要があります。
管理 API へのアクセスを有効にするには、以下のステップで進めます:
- サーバーで RabbitMQ Management プラグインが有効になっていることを確認します(rabbitmq-plugins enable rabbitmq_management)。
- 既存の管理ユーザーを使用するか、適切な管理タグ(management、policymaker、monitoring、または administrator)を持つユーザーを作成します。
- RabbitMQ Management HTTP API の完全なベース URL を控えておきます(例:http://localhost:15672)。
RabbitMQ サーバーを設定したら、以下の接続プロパティを設定して接続します:
- AuthScheme:Basic に設定します。
- URL:RabbitMQ Management HTTP API のベース URL に設定します(例:http://localhost:15672)。
- User:RabbitMQ の管理ユーザー名に設定します(例:guest)。
- Password:RabbitMQ の管理パスワードに設定します。
接続文字列の例:
Profile=C:\profiles\RabbitMQ.apip;AuthScheme=Basic;URL=http://localhost:15672;User=guest;Password=guest;
利用可能なテーブル
RabbitMQ プロファイルでは、以下のテーブルにアクセスできます:
- Overview - クラスター全体の統計情報と RabbitMQ ノードに関する情報
- Nodes - RabbitMQ クラスター内の個々のノードに関する情報
- NodeMemory - 特定のクラスターノードの詳細なメモリ使用状況の内訳
- Connections - ブローカーへのすべてのオープンな AMQP コネクションの一覧
- Channels - すべてのコネクションにわたるオープンな AMQP チャネルの一覧
- Consumers - すべてのキューに登録されたコンシューマーの一覧
- Exchanges - すべての仮想ホストで宣言されたエクスチェンジの一覧
- Queues - すべての仮想ホストで宣言されたキューの一覧
- Bindings - エクスチェンジとキュー間のすべてのバインディングの一覧
- VirtualHosts - ブローカーに設定された仮想ホストの一覧
- VhostPermissions - 特定の仮想ホスト内のユーザー権限
- Users - すべての RabbitMQ ユーザーの一覧
- Permissions - すべての仮想ホストにわたる全ユーザーの権限レコード
- TopicPermissions - 全ユーザーのトピックレベルの権限レコード
- Policies - 仮想ホスト内のキューおよびエクスチェンジに適用されたポリシーの一覧
- OperatorPolicies - 仮想ホスト内のキューに適用されたオペレーターポリシーの一覧
- Parameters - 仮想ホストごとのコンポーネントパラメータ(例:federation、shovel)の一覧
- GlobalParameters - すべての仮想ホストに適用されるグローバルパラメータの一覧
- VhostLimits - 特定の仮想ホストに設定されたリソース制限
- UserLimits - 特定のユーザーに設定されたリソース制限
- FeatureFlags - フィーチャーフラグの一覧と、ノード上での有効/無効の状態
- DeprecatedFeatures - 非推奨機能の一覧と、その使用状態
- AuthAttempts - ノードの認証試行統計
- ClusterName - RabbitMQ クラスターの名前
- WhoAmI - 現在認証されている管理ユーザーに関する情報
- ExchangeBindingsSource - 特定のエクスチェンジがソースとなっているバインディング
- ExchangeBindingsDestination - 特定のエクスチェンジが宛先となっているバインディング
- QueueBindings - 仮想ホスト内の特定のキューのバインディング
あとは「接続のテスト」ボタンをクリックし、接続が成功したら、「接続ウィザード」の「OK」ボタンをクリックして保存します。

無事接続が完了すると、「接続テストの成功」メッセージが表示されます。接続文字列は後で利用するのでコピーして控えておきましょう。
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 ドライバの指定を追加していきます。
「システム設定」→「JDBCファイル設定」に移動し、
ここでCData JDBC ドライバをアップロードして登録します。「ファイルを選択」をクリックし「cdata.jdbc.rabbitmq.jar」をアップロードします。

JDBC 登録後は読み込みのためにXC-Connect を一度再起動させましょう。
合わせてライセンスファイル「cdata.jdbc.rabbitmq.lic」を「C:\Windows\ServiceProfiles\LocalService\.CData」に配置しておきます。もし「.CData」フォルダが無い場合は、作成して配置します。
機器の追加
CData JDBC ドライバを配置したら、XC-Connect で「どういったデータを読み込ませるのか」を指定する機器設定を追加していきます。まず最初に接続情報を追加しましょう。
「機器設定」タブに移動し、「+機器の追加」をクリックします。
プロトコルの選択画面では「メーカー:データベース」「機種:JDBC 汎用(SQL)」「プロトコル:SQL」をそれぞれ指定します。
最初に接続情報を指定します。任意の設定名称を指定し、JDBC Driver 名で先程登録したDriver を選択します。
接続URLには「JDBC Driver の接続テスト」時に取得した接続文字列を指定しましょう。「ユーザー名」「パスワード」は利用しませんのでダミーの文字列を入力すればOKです。
入力後「接続テスト」をクリックして、「接続テストに成功しました」と表示さればOKです。
取得データの追加
続いて。機器設定の詳細から「どういったデータを読み込ませるのか?」を指定する「取得データの追加」設定を行います。
機器登録完了後、「+取得データの追加」をクリックします。
任意のデータ名称を取得後、実行SQL を指定します。ここではRabbitMQ の取引先情報である「Account」テーブルを取得するためのSQLを指定しました。
取得間隔や実行タイムアウトは任意の設定を指定します。ただ、Web API の連携では、各種API 側のリクエスト制限が指定されているものも存在するので、過度に短い間隔は利用しないほうが良いかと思います。
「保存方式」は「マスタ(項目)形式」を指定し、キーとしてRabbitMQ の「Id」カラムを指定しました。
設定後、「接続テスト」をクリックし、以下のようにデータが取得できていればOK です。
登録後、「起動する」ボタンをクリックしておきましょう。
タグ設定の追加
最後にXC-Gate で登録したマスタデータを利用するためのタグ設定を追加します。
「タグ設定」タブに移動し「+タグ設定の追加」をクリックしましょう。
「機器データ名称」の「選択」ボタンをクリックして、
登録しているCData JDBC ドライバを選択。
以下のようなタグ設定の画面に移るので「+表示項目の追加」をクリックし
帳票に取り込みたい項目をそれぞれ追加していきます。
あとは「タグEXCEL出力」でXC-Gate で利用するタグ設定を取得します。
これでXC-Gate で帳票を作成するためのタグが準備できました。
帳票の登録
それでは実際にXC-Connect 経由でXC-Gate の帳票にデータが表示できるか試していきましょう。今回は先程取得したタグを利用して以下のような帳票をExcel で作成しました。
XC-Gate にログインし、これを「フォルダ」から「新しいチェックシート」として登録します。
作成したExcel ファイルを指定して、任意のファイル名でチェックシートを登録します。
チェックシートの登録が完了したら「プレビュー」ボタンをクリックして、帳票を参照してみましょう。
以下のような画面が表示されるので「コネクト取得」をクリックしてみると、
CData JDBC ドライバとXC-Connect 経由でリアルタイムにRabbitMQ のデータが取得できました!
おわりに
このようにXC-Gate・XC-Connect とCData JDBC ドライバを組み合わせることで、手軽にXC-Gate の帳票に各種クラウドサービスのデータを取り込むことができます。
CData ではRabbitMQ 以外にも様々なクラウドデータソースのJDBC Driver を扱っています。
ぜひ自社で利用しているサービスと合わせて、XC-Gate を活用してみてください。