Data
1. RPG Program
2. ハンドラー(トランスレーター:翻訳機)にアクセス 3. ターゲットのデバイスに対するI/O
Open Access for RPG は 1. と 2の間のデータトランス レーション機能を提供
ターゲット (一般的なコード)
Open Access for RPG その 1
従来からある RPG で利用可能な I/O モデル( DISK, PRINTER, WORKSTN )をハンドラ ーを利用して拡張する
– RPGプログラミング上は従来のDISK, PRINTER, WORKSTN への入出力と同じコーディン グを行う
– 実際にはハンドラーが入出力命令をブラウザーなどの操作したいデバイスが認識可能なフォ ーマットへデータを変換する
入出力を行いたい I/O デバイスにあわせてハンドラーを開発(追加)することで、 RPG で 多くのデバイスに対応できる
– ブラウザー、モバイル端末、Webサービス、クラウドリソース、XMLファイル、Excelなどのス プレッドシート
IBM i 7.1 , 6.1 で対応
– IBM i 6.1ではPTFで提供
RPG Open Access : RPG Edition のライセンスプログラムは、ハンドラーを使用する
Open Access for RPG その 2
Open Access for RPG でハンドラーを用意することで以下のデバイス・リソースへのア クセスを可能にします。
– ブラウザー – モバイル端末
– クラウドコンピューティングリソース – Webサービス (SOAP)
– IBM i OS外部のデータベース – XML ファイル
– Excelなどのスプレッドシート
HANDLER キーワードを F 仕様書に指定
RPGコンパイラーはデータ管理機能を呼び出すコードを生成する代わりに、ハンドラー
で指定されている処理プロシージャーをファイルに対する入出力操作用のコードを生成
HANDLER キーワードはすべての RPG デバイス( DISK, PRINTER, WORKSTN) に使 用可能。
ハンドラー作成者はハンドラーの機能に最適な RPG デバイスタイプを選択する。
– 例) GUI インターフェース = WORKSTN – スプレッドシート = PRINTER
– Webサービス = キーつきDISKファイル
Open Access for RPG ハンドラー
ハンドラーは ILE プロシージャーで実装
ハンドラー名はハンドラー固有のprefixで宣言しI/O操作を実行 例)
• handler prefix = myHandler
• Handler names = myHandlerOPEN, myHandlerCLOSE, myHandlerEXFMT
• ひとつの操作毎に一つのハンドラー・プロシージャーを記述
• OPEN, CLOSE, READ, EXFMT, FEOD etc.
ハンドラーは特定の”ファイル”として定義される
• One for each RPG I/O operation per Open I/O file.
• ハンドラーのI/OそれぞれのRPG I/O 操作
RPGのサポートするファイル操作とハンドラーのI/O操作は一致させる必要がある。
例)
• もしRPGプログラムがファイルをPRINTERとしてコーディングする場合、ハンドラーはOPEN, CLOSE, WRITE, FEODを定義しなくてはいけない。
もしハンドラーがある特定の操作をサポート(記述)しない場合、プログラマーはその特定操作をコーディングし てはいけない。
Notes :
ハンドラーを作るための情報は公開されており、一般の開発者、ユーザーも開発が可能となっています。
一例としてLANSA社、looksoftware社、Profound Logic社などがハンドラーを提供しています。
RPG 開発ツール
RPG コンパイラー
RPG ランタイム
HATSほか
Browser
ハンドラー
XML Mobile
ハンドラー
Web Services Mobile
RPG 開発ツール
RPG コンパイラー
RPG ランタイム
5250
データストリーム 5250エミュレーター
RPG Open Access (Open Access for RPG)
Rational オープン・アクセス : RPG エディション
RPGアプリケーションは5250データストリームを生成
– HATS, ベンダー製ツールによりブラウザー、携帯端末, SOAP対応に拡張
Open Access for RPGにより現代の標準的なデバイス、機能 に対してRPGから直接操作が可能に
従来のRPG アプリケーション
Open Access for RPG Open Access for RPG
Open Access for RPG を使用した I/O オペレーションの例
1. 基本的なデータのセット(キー値セット, レコード番号の取得, レコード名の取得 など)
2. RPGからハンドラーにデータを送信
3. I/O操作に対する入出力デバイスからのフィードバックを受信 - ハンドラーからRPGに戻される
4. データレコードがRPGとハンドラー間で送受信される
5. プライベート・ハンドラー・インフォメーション
ハンドラーのステータス情報
RPGはハンドラーから先で処理される情報について感知しない
I/O操作では以下の情報が使用される 1. ハンドラー仕様情報
2. I/Oリクエスト
3. I/Oリクエストに対するフィードバック 4. データレコード