RPG クライアントが Java Service Manager サービスとのやりとりを完全に行うには、7 つの API 呼び出しが必要です。
これらの API では、同じジョブ内での複数の接続が可能です。
サービス・プログラムの内部状態を初期化または再初期化する | |
サービスを開く | |
プログラム・フィールドを接続ハンドルにバインドする | |
プログラム・リストを接続ハンドルにバインドする | |
コマンドを送信する | |
サービスを終了する | |
サービス・プログラムの内部状態を終了および再初期化する |
RPG 開発者に必要なのは、JSM サービスで提供されるコマンドの使い方を理解することだけです。
RPG プログラム全体の構造は同じです。
プログラムは以下の操作を実行します。
- API インターフェース使用を開始する
- Java Service Manager への接続を開く
- サービスを読み込むするコマンドを発行する
- サービスでサポートされるコマンドを実行する
- サービスをアンロードするコマンドを発行する
- Java Service Manager への接続を閉じる
- API インターフェースの使用を終了する
IBM i では、RPG プログラムはサービス・プログラム JSMRPGSRV にバインドする必要があり、RPG プログラムを配布する場合は、このサービス・プログラムも同様に配布する必要があります。このプログラムはまた JSMCLTDTA データ域と JSMMSGF メッセージ・ファイルへの依存性があります。
ソース・コード例とプログラムの作成方法は、JSM ライブラリ (LANSA Integrator のインストール時に指定) のファイル QRPGLESRC および QCLSRC にあります。
サービス・プログラムは IBM の CEEGSI API を使って文字入力の長さを決定するため、サービス・プログラムのほとんどの API 文字列パラメータはどのサイズにもできます。接続ハンドル・パラメータの文字長は常に 4 です。
フィールドとリスト交換の概要
コマンド | フィールド無し | リスト無し |
コマンド + JSMX_BINDFLD | フィールド | リスト無し |
コマンド + JSMX_BINDLST | フィールド無し | リスト |
コマンド + JSMX_BINDFLD+JSMX_BINDLST | フィールド | リスト |