CData JDBC Driver for Sage X3 Cloud で Ignition SCADA と連携

Somya Sharma
Somya Sharma
Technical Marketing Engineer
CData JDBC Driver を使って、Ignition SCADA からリアルタイムの Sage X3 Cloud データに接続。ETL やレプリケーションは不要です。

Ignition は、Inductive Automation 社が提供する産業用の SCADA(監視制御およびデータ収集)および IIoT(産業用モノのインターネット)プラットフォームです。中核となる Gateway サービスが、デバイス接続やタグ、データベース接続を一元的に管理します。ただし、Ignition には Sage X3 Cloud 用のコネクタが標準で用意されていません。そのため、Sage X3 Cloud のデータを扱うには、独自のミドルウェアを用意するか、手作業でデータをエクスポートするのが一般的です。

CData JDBC Driver for Sage X3 Cloud を使えば、この課題を解消できます。このドライバーは、Sage X3 Cloud を標準的な JDBC(Java Database Connectivity)データソースとして利用できるようにするものです。Ignition はどの JDBC ドライバーも標準のデータベース接続として扱えるため、Gateway にドライバーを登録するだけで、Script Console や SQL Bridge、タグ、Perspective / Vision の画面からリアルタイムの Sage X3 Cloud データをクエリできます。レプリケーションや独自コネクタ、ETL(抽出・変換・ロード)パイプラインは必要ありません。

この記事では、Ignition のインストールとコミッショニングから、CData JDBC Driver for Sage X3 Cloud の登録、接続の作成、リアルタイムクエリによる動作確認までの流れを順を追って紹介します。

前提条件

  • Windows 版 Ignition(Windows 10/11 または Windows Server)と、Windows サービスをインストールするための管理者権限
  • CData JDBC Driver for Sage X3 Cloud
  • 有効な認証情報を持ち、API アクセスが有効化された Sage X3 Cloud アカウント
  • Gateway の Web インターフェースを開くための対応デスクトップブラウザ(Google Chrome、Mozilla Firefox、Microsoft Edge、Safari のいずれか)

ステップ 1:Ignition のインストールとセットアップ

Ignition をすでにインストールして稼働させている場合は、ステップ 2 に進んでください。

Ignition のダウンロード

  1. Inductive Automation のダウンロードページにアクセスし、Windows 版の Ignition をダウンロードします。 Ignition のダウンロード
  2. このファイルひとつで Ignition Gateway のフルインストーラーになっています。Gateway サービスと Designer Launcher の両方が含まれているので、Designer を別途ダウンロードする必要はありません。

Ignition のインストール

  1. インストーラーを実行し、ライセンス契約に同意してインストール先を選択します。
  2. Windows の起動時に Gateway も自動で起動するよう、Install as a Windows Service にはチェックを入れたままにしておきます。
  3. インストールを完了すると Gateway サービスが起動し、ブラウザで http://localhost:8088 が開いてコミッショニングウィザードが表示されます。Browser Not Supported と表示された場合は、Chrome、Firefox、Edge、Safari のいずれかで同じアドレスを開いてください。

Gateway のコミッショニング

  1. Commission Ignition Gateway ウィザードで Gateway Name を設定し、管理者のユーザー名とパスワードを作成します。
  2. エンドユーザー使用許諾契約に同意し、トライアルを開始するか、購入済みの Ignition ライセンスをアクティベートします。
  3. コミッショニングが完了したら、管理者アカウントでログインします。Gateway の Home ページが表示されます。 ログイン後の Gateway Home ページ

注意: トライアル版では Gateway の各ページにカウントダウンタイマーが表示され、Gateway サービスを再起動するとタイマーがリセットされます。テスト用途であれば問題ありませんが、本番環境で利用する場合はライセンスが必要です。

ステップ 2:Ignition への CData JDBC Driver の登録

Ignition では、サードパーティ製の JDBC ドライバーを Gateway の Web インターフェースからアップロードできます。ファイルシステムを直接操作する必要はありません。

  1. 管理者として Gateway にログインします。
  2. Connections > Databases > Settings に移動して Drivers タブを開き、Create JDBC Driver をクリックします。
  3. ダイアログで次の内容を入力します。
    • Name: Sage X3 Cloud
    • Classname: cdata.jdbc.sagex3cloud.SageX3CloudDriver
    • Driver Type: Generic
    • Default Validation Query: SELECT BPCNUM FROM BPCUSTOMER LIMIT 1
    JDBC ドライバーの作成(画面は Salesforce の例)
  4. Create JDBC Driver をクリックします。現行の Ignition 8.3 では作成ダイアログに JAR(Java アーカイブ)ファイルのアップロード欄がないため、JAR ファイルは次の手順で追加します。
  5. 作成したドライバーの行の右端にあるメニューを開いて Manage JAR files を選択し、ドライバーのインストールディレクトリ内の lib フォルダにある cdata.jdbc.sagex3cloud.jar をアップロードして保存します。
  6. ドライバー一覧で、ドライバーのステータスが INSTALLED になっていることを確認します。 ステータスが INSTALLED のドライバー(画面は Salesforce の例)

ステップ 3:Sage X3 Cloud への接続の作成

  1. Connections > Databases > Connections に移動し、Create Database Connection をクリックします。
  2. Driver Selection ステップで Sage X3 Cloud を選択し、Next をクリックします。 ドライバーの選択(画面は Salesforce の例)
  3. Database Setup ステップで、Name に Sage X3 Cloud を設定します。認証情報は接続 URL に含めるため、Username は空欄のままにし、Password は None を選択します。
  4. Connect URL に接続文字列を入力します。
    jdbc:sagex3cloud:AuthScheme=OAuth;URL=https://x3server/;OAuthAccessTokenUrl=https://auth-domain/oauth/token;OAuthClientId=your_client_id;OAuthClientSecret=your_client_secret;Audience=https://api-audience;XAPIKey=your_api_key;Folder=SEED;
    接続情報の入力(画面は Salesforce の例)
  5. Create Database Connection をクリックし、Database Connections ページで接続のステータスが VALID になっていることを確認します。 ステータスが VALID の接続(画面は Salesforce の例)

Sage X3 Cloud の接続プロパティ

Sage X3 Cloud では OAuth 2.0 の Client Credentials フローを使用し、API へのアクセスには X-API-Key も必要です。AuthScheme を OAuth に設定し、以下の接続プロパティを指定します。

  • URL:Sage X3 Cloud インスタンスのベース URL。
  • OAuthAccessTokenUrl:OAuth トークンエンドポイント(例:https://your-auth-domain/oauth/token)。
  • OAuthClientId:OAuth アプリケーションのクライアント ID。
  • OAuthClientSecret:OAuth アプリケーションのクライアントシークレット。
  • Audience:トークンリクエストで使用する API の Audience 値。
  • XAPIKey:Sage X3 Cloud の管理者から提供された X-API-Key。
  • Folder:Sage X3 のフォルダ名(例:SEED)。このフォルダがデフォルトのスキーマとして使用されます。
  • Folders(オプション):Sage X3 フォルダのカンマ区切りリスト(例:SEED,PERF)。各フォルダが個別のスキーマとして公開されるため、Schema.Table 構文でフォルダをまたいだクエリを実行できます。

ドライバーは Client Credentials フローでアクセストークンを取得し、すべての API リクエストで X-API-Key とあわせて送信します。InitiateOAuth を GETANDREFRESH(デフォルト)に設定しておけば、トークンの取得と更新は自動で行われます。

注意: パスワードやトークンにセミコロンが含まれていると接続 URL が正しく解釈されません。その場合は、セミコロンを含まない値に再設定してください。

ステップ 4:Ignition からリアルタイムの Sage X3 Cloud データをクエリ

接続が有効になったら、Designer からリアルタイムの Sage X3 Cloud データをクエリしてみましょう。

  1. Ignition Designer Launcher を開き、使用する Gateway を選択して Open Designer をクリックします(一覧に Gateway が表示されていない場合は、Add Designer をクリックして http://localhost:8088 を入力します)。Gateway の管理者アカウントでログインしてください。 Designer Launcher から Designer へのログイン
  2. プロジェクトを開くか、新規に作成します。Designer が開き、Project Browser、Tag Browser、Component Palette の各パネルが表示されます。 Ignition Designer のメインウィンドウ
  3. Designer で Tools > Script Console に移動します。Multiline Buffer にテストクエリを入力し、Execute をクリックします。BPCUSTOMER の部分は、Sage X3 Cloud 接続で利用可能な任意のテーブルに置き換えてください。
    print system.db.runQuery(
        "SELECT BPCNUM, BPCNAM FROM BPCUSTOMER LIMIT 10",
        "Sage X3 Cloud")
    Script Console でのテストクエリの実行(画面は Salesforce の例)
  4. クエリが成功すると、Interactive Interpreter パネルに PyDataset rows:10 cols:2 と出力されます。これで、Ignition が CData JDBC Driver を介して Sage X3 Cloud からリアルタイムデータを取得できたことを確認できます。

注意: スクリプト内の接続名は、ステップ 3 で設定した接続名と一致させる必要があります。

ステップ 5:結果の検証

  1. 取得した行を出力し、Sage X3 Cloud 上の同じレコードと値を照合します。
    ds = system.db.runQuery("SELECT BPCNUM, BPCNAM FROM BPCUSTOMER LIMIT 10", "Sage X3 Cloud")
    for row in ds:
        print row["BPCNUM"], row["BPCNAM"]
  2. 必要に応じて、別のテーブルへのクエリやフィルタ付きのクエリも実行し、スキーマの検出とフィルタリングが正しく機能することを確認します。
  3. 必要に応じて Gateway サービスを再起動し、接続のステータスが VALID に戻ることを確認します。

トラブルシューティング

症状 考えられる原因と対処法
ドライバーのステータスが ERROR になるクラス名が間違っているか、Manage JAR files から JAR ファイルがアップロードされていません。
接続のステータスが FAULTED になる認証情報が間違っている、外部への Web 通信(HTTPS)がブロックされている、または CData のライセンスが見つからないことが考えられます。ステータスをクリックしてエラー内容を確認してください。
「Could not find a valid license」エラーが表示されるGateway は Windows サービスとして実行されているため、ユーザープロファイルに保存されたライセンスを読み取れません。管理者権限のコマンドプロンプトでドライバーの lib フォルダに移動して java -jar cdata.jdbc.sagex3cloud.jar --license を実行し、生成された .lic ファイルを C:\Windows\system32\config\systemprofile\.CData\ にコピーしてから、Gateway サービスを再起動してください。
データベース接続が見つからないスクリプト内の接続名が、Gateway の接続名と完全には一致していません。

Ignition 以外の環境でのドライバーのテスト

Gateway とは切り離してドライバー単体の動作を確認したい場合は、次のスタンドアロンの Java サンプルを実行してみてください。cdata.jdbc.sagex3cloud.jar と cdata.jdbc.sagex3cloud.lic は同じディレクトリに配置し、クラスパスに含めておく必要があります。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class CDataExample {
    public static void main(String[] args) throws Exception {
        Class.forName("cdata.jdbc.sagex3cloud.SageX3CloudDriver");
        String connectionString = "jdbc:sagex3cloud:AuthScheme=OAuth;URL=https://x3server/;OAuthAccessTokenUrl=https://auth-domain/oauth/token;OAuthClientId=your_client_id;OAuthClientSecret=your_client_secret;Audience=https://api-audience;XAPIKey=your_api_key;Folder=SEED;";
        try (Connection conn = DriverManager.getConnection(connectionString)) {
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT BPCNUM, BPCNAM FROM BPCUSTOMER LIMIT 10");
            while (rs.next()) {
                System.out.println(rs.getString("BPCNUM") + ", " + rs.getString("BPCNAM"));
            }
        }
    }
}

CData で Ignition にリアルタイムかつガバナンスの効いた Sage X3 Cloud 連携を

CData JDBC Driver for Sage X3 Cloud を登録すれば、ETL 基盤や手作業でのエクスポート、独自の連携コードを用意することなく、Ignition からリアルタイムの Sage X3 Cloud データをクエリできます。同じ接続をタグや SQL Bridge、Perspective / Vision の画面でも再利用できます。

無料トライアルで、CData を使って Ignition から数百もの外部システムへリアルタイムかつセキュアにアクセスできることを、ぜひお確かめください。

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

Sage X3 Cloud Driver の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

Sage X3 Cloud Icon Sage X3 Cloud JDBC Driver

Sage X3 Cloud 連携のパワフルなJava/J2EE アプリケーションを素早く作成して配布。