現場帳票電子化ソリューション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-Gate 紹介画像

また、XC-Connect というツールをサーバーにインストールして、ローコードで業務管理・生産管理システムやBIツール、Excel、CSVといったデータと連携することができます。

https://product.technotree.com/xc-gate/xc-connect/feature/

XC-Connect 紹介画像

シナリオ

今回作成する帳票は以下のようにRabbitMQ のデータを一覧表示するものとなっています。

XC-Gate による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」を活用することで解消します。

/apidriver/

XC-Gate では XC-Connect というデータベースのデータを読み込むための仕組みが標準提供されており、この機能を介してSQL ServerやMySQLなどにアクセスできるようになっています。

https://www.xc-times.com/news/?newsUCd=908b7620-3ecd-4e04-ab5d-4a42897c035d

XC-Gate とXC-Connect のデータ連携説明図

そして、実はこのXC-Connect は内部でJDBC が利用されているため、XC-Connect とCData が提供しているJDBC Driver ラインナップを通じて、各種クラウドサービスのAPI にアクセスすることができるようになります。

とは言っても、説明だけではイメージできない部分もあると思うので、実際に帳票を作成してみましょう。

CData RabbitMQ JDBC Driver のインストール

最初にCData RabbitMQ JDBC Driver を対象のマシンにインストールします。

以下のページから30日間のトライアルがダウンロードできます。

RabbitMQ JDBC ドライバーページ

インストーラーを入手後、対象のマシンでセットアップを進めていきます。

CData JDBC ドライバのインストール画面

セットアップ完了後、以下のフォルダにJDBC Driver のjar ファイルが配置されます。

C:\Program Files\CData\CData JDBC Driver for API 2023J\lib

JDBC 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 へのアクセスを有効にするには、以下のステップで進めます:

  1. サーバーで RabbitMQ Management プラグインが有効になっていることを確認します(rabbitmq-plugins enable rabbitmq_management)。
  2. 既存の管理ユーザーを使用するか、適切な管理タグ(management、policymaker、monitoring、または administrator)を持つユーザーを作成します。
  3. 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-Connect ログイン画面

併せて転送設定でXC-Gate側への接続を確立しておきましょう。予めXC-Gate の証明書を取得しておき、転送設定で指定しておきます。

XC-Connect の転送設定画面

JDBC ドライバーの登録

それではXC-Gate でCData JDBC ドライバの指定を追加していきます。

「システム設定」→「JDBCファイル設定」に移動し、

JDBC ファイル設定に移動

ここでCData JDBC ドライバをアップロードして登録します。「ファイルを選択」をクリックし「cdata.jdbc.rabbitmq.jar」をアップロードします。

XC-Gate JDBCドライバー登録画面

JDBC 登録後は読み込みのためにXC-Connect を一度再起動させましょう。

XC-Connect 再起動指示画面

合わせてライセンスファイル「cdata.jdbc.rabbitmq.lic」を「C:\Windows\ServiceProfiles\LocalService\.CData」に配置しておきます。もし「.CData」フォルダが無い場合は、作成して配置します。

機器の追加

CData JDBC ドライバを配置したら、XC-Connect で「どういったデータを読み込ませるのか」を指定する機器設定を追加していきます。まず最初に接続情報を追加しましょう。

「機器設定」タブに移動し、「+機器の追加」をクリックします。

XC-Connect 機器設定追加画面

プロトコルの選択画面では「メーカー:データベース」「機種:JDBC 汎用(SQL)」「プロトコル:SQL」をそれぞれ指定します。

XC-Connect 機器プロトコル設定画面

最初に接続情報を指定します。任意の設定名称を指定し、JDBC Driver 名で先程登録したDriver を選択します。

接続URLには「JDBC Driver の接続テスト」時に取得した接続文字列を指定しましょう。「ユーザー名」「パスワード」は利用しませんのでダミーの文字列を入力すればOKです。

入力後「接続テスト」をクリックして、「接続テストに成功しました」と表示さればOKです。

XC-Connect 接続情報設定画面

取得データの追加

続いて。機器設定の詳細から「どういったデータを読み込ませるのか?」を指定する「取得データの追加」設定を行います。

機器登録完了後、「+取得データの追加」をクリックします。

XC-Connect 取得データ設定画面

任意のデータ名称を取得後、実行SQL を指定します。ここではRabbitMQ の取引先情報である「Account」テーブルを取得するためのSQLを指定しました。

取得間隔や実行タイムアウトは任意の設定を指定します。ただ、Web API の連携では、各種API 側のリクエスト制限が指定されているものも存在するので、過度に短い間隔は利用しないほうが良いかと思います。

「保存方式」は「マスタ(項目)形式」を指定し、キーとしてRabbitMQ の「Id」カラムを指定しました。

XC-Connect データ読み込み設定画面

設定後、「接続テスト」をクリックし、以下のようにデータが取得できていればOK です。

XC-Connect データ取得テスト結果画面

登録後、「起動する」ボタンをクリックしておきましょう。

XC-Connect 転送設定起動画面

タグ設定の追加

最後にXC-Gate で登録したマスタデータを利用するためのタグ設定を追加します。

「タグ設定」タブに移動し「+タグ設定の追加」をクリックしましょう。

XC-Gate タグ設定追加画面

「機器データ名称」の「選択」ボタンをクリックして、

XC-Gate 機器データ名称選択画面

登録しているCData JDBC ドライバを選択。

XC-Gate CData JDBC ドライバ選択画面

以下のようなタグ設定の画面に移るので「+表示項目の追加」をクリックし

XC-Gate タグ設定画面

帳票に取り込みたい項目をそれぞれ追加していきます。

XC-Gate 帳票項目追加画面

あとは「タグEXCEL出力」でXC-Gate で利用するタグ設定を取得します。

XC-Gate タグExcel出力画面

これでXC-Gate で帳票を作成するためのタグが準備できました。

XC-Gate タグ設定完了画面

帳票の登録

それでは実際にXC-Connect 経由でXC-Gate の帳票にデータが表示できるか試していきましょう。今回は先程取得したタグを利用して以下のような帳票をExcel で作成しました。

XC-Gate によるExcel帳票例

XC-Gate にログインし、これを「フォルダ」から「新しいチェックシート」として登録します。

XC-Gate チェックシート登録画面

作成したExcel ファイルを指定して、任意のファイル名でチェックシートを登録します。

XC-Gate チェックシートファイル指定画面

チェックシートの登録が完了したら「プレビュー」ボタンをクリックして、帳票を参照してみましょう。

XC-Gate チェックシートプレビュー画面

以下のような画面が表示されるので「コネクト取得」をクリックしてみると、

コネクト取得をクリック

CData JDBC ドライバとXC-Connect 経由でリアルタイムにRabbitMQ のデータが取得できました!

RabbitMQ のデータを取得

おわりに

このようにXC-Gate・XC-Connect とCData JDBC ドライバを組み合わせることで、手軽にXC-Gate の帳票に各種クラウドサービスのデータを取り込むことができます。

CData ではRabbitMQ 以外にも様々なクラウドデータソースのJDBC Driver を扱っています。

https://jp.cdata.com/jdbc/

ぜひ自社で利用しているサービスと合わせて、XC-Gate を活用してみてください。

はじめる準備はできましたか?

API Driver で RabbitMQ のライブデータに接続

RabbitMQ に接続