各製品の資料を入手。
詳細はこちら →JDBI からSage 300 データ のデータアクセスオブジェクトを作成
JDBI でSage 300 のデータ 用のSQL オブジェクトAPIを作成する方法を概説します。
最終更新日:2022-05-25
この記事で実現できるSage 300 連携のシナリオ
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
JDBI は、Fluent スタイルとSQL オブジェクトスタイルという2つの異なるスタイルAPI を公開する、Java 用のSQL コンビニエンスライブラリです。CData JDBC Driver for Sage300 は、Java アプリケーションとリアルタイムSage 300 のデータ のデータ連携を実現します。これらの技術を組み合わせることによって、Sage 300 のデータ へのシンプルなコードアクセスが可能になります。ここでは、基本的なDAO(Data Access Object )とそれに付随するSage 300 のデータ の読み書きのためのコードの作成について説明します。
Sage 300 OEInvoices Entity のDAO を作成
以下のインターフェースは、実装されるSQL ステートメントごとに単一のメソッドを作成するためのSQL オブジェクトの正しい動作を宣言します。
public interface MyOEInvoicesDAO {
//request specific data from Sage 300 (String type is used for simplicity)
@SqlQuery("SELECT ApprovedLimit FROM OEInvoices WHERE AllowPartialShipments = :allowPartialShipments")
String findApprovedLimitByAllowPartialShipments(@Bind("allowPartialShipments") String allowPartialShipments);
/*
* close with no args is used to close the connection
*/
void close();
}
Sage 300 への接続を開く
必要な接続プロパティを収集し、Sage 300 に接続するための適切なJDBC URL を作成します。
Sage 300 には、Sage 300 Web API で通信するための初期設定が必要となるます。
- Sage 300 のユーザー向けのセキュリティグループを設定します。Sage 300 のユーザーに、Security Groups の下にあるbSage 300 Web API オプションへのアクセスを付与します(各モジュール毎に必要です)。
- /Online/Web と/Online/WebApi フォルダ内のweb.config ファイルを両方編集して、AllowWebApiAccessForAdmin のキーを true 設定します。webAPI アプリプールを再起動すると設定が反映されます。
- ユーザーアクセスを設定したら、https://server/Sage300WebApi/ をクリックして、web API へのアクセスを確認してください。
Basic 認証を使用してSage 300 へ認証します。
Basic 認証を使用して接続する
Sage 300 に認証するには、次のプロパティを入力してください。プロバイダーは、クッキーを使用してSage 300 が開いたセッションを再利用することに注意してください。 そのため、資格情報はセッションを開く最初のリクエストでのみ使用されます。その後は、Sage 300 が返すクッキーを認証に使用します。
- Url:Sage 300 をホストするサーバーのURL に設定します。Sage 300 Web API 用のURL を次のように作成してください。 {protocol}://{host-application-path}/v{version}/{tenant}/ 例えば、 http://localhost/Sage300WebApi/v1.0/-/ です。
- User:アカウントのユーザー名に設定します。
- Password:アカウントのパスワードに設定します。
ビルトイン接続文字列デザイナー
JDBC URL の構成については、Sage 300 JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。
java -jar cdata.jdbc.sage300.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。

Sage 300 の接続文字列は、通常次のようになります。
jdbc:sage300:User=SAMPLE;Password=password;URL=http://127.0.0.1/Sage300WebApi/v1/-/;Company=SAMINC;
構成済みのJDBC URL を使用して、DAO インターフェースのインスタンスを取得します。以下に示す特定のメソッドはインスタンスにバインドされたハンドルを開くため、ハンドルとバインドされたJDBC 接続を開放するには、インスタンスを明示的に閉じる必要があります。
DBI dbi = new DBI("jdbc:sage300:User=SAMPLE;Password=password;URL=http://127.0.0.1/Sage300WebApi/v1/-/;Company=SAMINC;");
MyOEInvoicesDAO dao = dbi.open(MyOEInvoicesDAO.class);
//do stuff with the DAO
dao.close();
Sage 300 データ について
Sage 300 への接続を開いた状態で以前定義したメソッドを呼び出すだけで、Sage 300 のOEInvoices エンティティからデータを取得できます。
//disply the result of our 'find' method
String approvedLimit = dao.findApprovedLimitByAllowPartialShipments("Yes");
System.out.println(approvedLimit);
JDBI ライブラリはJDBC 接続を処理できるため、CData JDBC Driver for Sage300 と統合することで、SQL Object API for Sage300 を簡単に作成できます。今すぐ無料トライアルをダウンロードし、Java アプリケーションでリアルタイムSage 300 を操作しましょう。