目次

本書について
本書の対象読者
前提条件および関連情報
新着情報
V5R2 および V5R3 以降このガイドに加えられた変更
本リリースの新機能
V5R3 での変更点
V5R2 での変更点
V5R1 での変更点
V4R4 での変更点
V4R2 での変更点
V3R7 での変更点
V3R6/V3R2 での変更点
ILE RPG の概要
RPG IV プログラミング言語の概要
RPG IV 仕様書
サイクル・プログラミング
サブプロシージャーの論理
標識
命令コード
ILE RPG プログラムの例
i5/OS システムの使用
システムとの対話
WebSphere Development Studio for iSeries
WebSphere Development Studio Client for iSeries
ILE における RPG プログラミング
プログラムの作成
プログラムの管理
プログラムの呼び出し
ソースのデバッグ
バインド可能な API
マルチスレッド・アプリケーション
プログラムの作成方針
方針 1: OPM 互換アプリケーション・プログラム
方法
OPM 互換プログラムの例
関連情報
方針 2: CRTBNDRPG を使う ILE プログラム
方法
CRTBNDRPG を使った ILE プログラムの例
関連情報
方針 3: CRTRPGMOD を使う ILE アプリケーション
方法
単一言語の ILE アプリケーション・シナリオ
混合言語の ILE アプリケーション・シナリオ
拡張アプリケーション・プログラム・シナリオ
関連情報
避けるべき方針
複数プロシージャーを使用するアプリケーション・プログラムの作成
複数プロシージャー・モジュール -- 概要
メイン・プロシージャーおよびサブプロシージャー
プロトタイプ呼び出し
複数プロシージャーのあるモジュール例
ARRSRPT プログラム全体
コーディング上の考慮事項
一般的な考慮事項
プログラムの作成
メイン・プロシージャーの考慮事項
サブプロシージャーの考慮事項
詳細情報
メイン・プロシージャー
サブプロシージャー
プロトタイプ呼び出し
ILE RPG アプリケーション・プログラムの作成と実行
ソース・ファイルの使用
ソース物理ファイルの使用
ライブラリーおよびソース物理ファイルの作成
原始ステートメント入力ユーティリティー (SEU) の使用
SQL ステートメントの使用
IFS ソース・ファイルの使用
組み込みファイル
CRTBNDRPG コマンドによるプログラムの作成
CRTBNDRPG コマンドの使用
ソース・デバッグ用のプログラムの作成
静的バインドによるプログラムの作成
OPM 互換プログラム・オブジェクトの作成
コンパイラー・リストの使用
コンパイラー・リストの作成
コンパイラー・リストのカスタマイズ
コンパイル・エラーの訂正
実行時エラーの訂正
保守のためのコンパイラー・リストの使用
RETURNCODE データ域のアクセス
CRTRPGMOD および CRTPGM コマンドによるプログラムの作成
モジュール・オブジェクトの作成
CRTRPGMOD コマンドの使用
ソース・デバッグのためのモジュールの作成
追加の例
バインドされた ILE RPG モジュールの動作
関連する CL コマンド
プログラムへのモジュールのバインド
CRTPGM コマンドの使用
追加の例
関連する CL コマンド
バインダー・リストの使用
モジュールまたはプログラムの変更
UPDPGM コマンドの使用
最適化レベルの変更
プログラム識別情報の除去
オブジェクト・サイズの縮小
サービス・プログラムの作成
サービス・プログラムの概要
サービス・プログラム作成の方針
CRTSRVPGM を使用したサービス・プログラムの作成
サービス・プログラムの変更
関連する CL コマンド
サンプル・サービス・プログラム
サービス・プログラムの作成
プログラムへのバインド
サービス・プログラムの更新
サンプル・バインダー・リスト
プログラムの実行
CL CALL コマンドを使用したプログラムの実行
CL CALL コマンドを使用したパラメーターの受け渡し
メニュー方式アプリケーションからのプログラムの実行
ユーザー作成コマンドを使用したプログラムの実行
実行時照会メッセージに対する応答
ILE プログラムの終了
活動化グループの管理
活動化グループの指定
OPM デフォルト活動化グループでの実行
OPM RPG/400 と ILE RPG プログラムの互換性の維持
活動化グループの削除
資源再利用コマンド
動的に割り振られた記憶域の管理
RPG 命令を使用したデフォルト・ヒープの管理
ヒープ記憶域の問題
ILE バインド可能 API を使用したユーザー独自のヒープ管理
プログラムおよびプロシージャーの呼び出し
プログラム/プロシージャー呼び出しの概要
プログラムの呼び出し
プロシージャーの呼び出し
呼び出しスタック
再帰呼び出し
パラメーターの受け渡しについての考慮事項
プロトタイプ呼び出しの使用
CALLP 命令の使用
式の中での呼び出し
自由形式呼び出しの例
プロトタイプ・パラメーターの受け渡し
パラメーターの受け渡しスタイル
操作記述子の使用
パラメーターの省略
渡されるパラメーターの数の検査
必要なデータより少ないデータの受け渡し
評価の順序
言語間呼び出し
言語間呼び出しに関する考慮事項
固定形式の呼び出し命令の使用
CALL および CALLB の例
PARM および PLIST を使用したパラメーターの受け渡し
呼び出されたプログラムまたはプロシージャーからの戻り
メイン・プロシージャーからの戻り
サブプロシージャーからの戻り
ILE バインド可能 API を使う戻り
バインド可能 API の使用
バインド可能 API の使用例
グラフィックス・ルーチンの呼び出し
特殊なルーチンの呼び出し
マルチスレッド化に関する考慮事項
複数のモジュールを介したデータの共用方法
モジュール間のデッドロックの防止方法
RPG と e-business の世界
RPG と XML
XML 文書の処理
RPG と MQSeries
RPG と Java
Java と RPG についての概要
Java メソッドの ILE RPG からの呼び出し
独自クラスでのメソッドの呼び出し
Java 仮想マシンのセットアップ方法の制御
RPG ネイティブ・メソッド
RPG から Java を呼び出したときのコーディング・エラー
Java を使用するためのその他の RPG コーディング
追加の考慮事項
拡張 JNI コーディング
PCML の使用による Java からの RPG プログラムの呼び出し
デバッグおよび例外処理
プログラムのデバッグ
ILE ソース・デバッガー
デバッグ・コマンド
デバッグのためのプログラムの準備
ルート・ソース・ビューの作成
コピー・ソース・ビューの作成
リスト・ビューの作成
ステートメント・ビューの作成
ILE ソース・デバッガーの開始
STRDBG の例
デバッグ・オプションの設定
デバッグ・セッションでのプログラムの追加/除去
デバッグ・セッションへのサービス・プログラムの追加例
ILE プログラムのデバッグ・セッションからの除去例
プログラム・ソースの表示
別のモジュールの表示
モジュールのビューの変更
ブレークポイントの設定と除去
無条件ジョブ・ブレークポイントの設定および除去
無条件スレッド・ブレークポイントの設定および除去
条件付きジョブ・ブレークポイントの設定および除去
国別言語分類順序 (NLSS)
ステートメント番号を使用したジョブ・ブレークポイントの設定および除去
条件付きスレッド・ブレークポイントの設定および除去
ジョブとスレッドすべてのブレークポイントの除去
ウォッチ条件の設定および除去
ウォッチの特性
ウォッチ条件の設定
活動状態のウォッチの表示
ウォッチ条件の除去
ウォッチ条件の設定例
プログラム・オブジェクトのステップスルー
呼び出しステートメントのステップオーバー
呼び出しステートメントへのステップイン
データおよび式の表示
変数評価時の予期しない結果
配列の内容の表示
テーブルの内容の表示
データ構造の表示
標識の表示
16 進値としてのフィールドの表示
文字形式でのフィールドの表示
UCS-2 データの表示
可変長フィールドの表示
ポインターがアドレス指定するデータの表示
基底付き変数の評価
ヌル可能フィールドの表示
デバッグ組み込み関数の使用
XML-SAX 処理手順のデバッグ
フィールドの値の変更
フィールドの属性の表示
フィールド、式、またはコマンドと名前の等値化
ILE RPG のソース・デバッグの各国語サポート
デバッグ用サンプル・ソースの例
例外の処理
例外処理の概要
ILE RPG 例外処理
例外処理プログラムの使用
例外処理プログラムの優先順位
ネストされた例外
未処理例外
最適化に関する考慮事項
RPG 特有の処理プログラムの使用
エラー標識または 'E' 命令コード拡張の指定
MONITOR グループの使用
エラー処理サブルーチンの使用
ENDSR 命令での戻り点の指定
ILE 条件処理プログラム
条件処理プログラムの使用
取り消し処理プログラムの使用
ILE CL が通知および状況メッセージを監視する際の問題
ダンプの入手
ILE RPG 定様式ダンプの入手
DUMP 命令コードの使用
定様式ダンプの例
ファイルおよび装置の処理
ファイルの定義
ファイル記述と入出力装置との関連付け
ファイルの名前指定
ファイル記述のタイプ
外部記述のファイルのプログラム記述としての使用
プログラムとファイルとの代表的な関係の例
外部記述ファイルの定義
レコード様式の名前変更
フィールド名の変更
レコード様式の無視
入力仕様書を使用した外部記述の変更
出力仕様書の使用
レベル検査
プログラム記述ファイルの定義
データ管理命令と ILE RPG 入出力命令
ファイルに関する一般的な考慮事項
ファイル入出力の一時変更および指定変更
ファイル入出力の指定変更の例
ファイルのロック
レコードのロック
オープン・データ・パスの共用
スプーリング
出力スプーリング
RPG プログラム対 DDS ファイルの SRTSEQ/ALTSEQ
データベース・ファイルのアクセス
データベース・ファイル
物理ファイルおよび論理ファイル
データ・ファイルとソース・ファイル
外部記述ディスク・ファイルの使用
レコード様式仕様書
アクセス・パス
レコードまたはファイルに有効なキー
レコードのブロック化および非ブロック化
プログラム記述ディスク・ファイルの使用
索引付きファイル
順次ファイル
レコード・アドレス・ファイル
ディスク・ファイルの処理方式
連続処理
キーによる順次処理
キーによるランダム処理
限界内順次処理
相対レコード番号による処理
有効なファイル命令
コミットメント制御の使用
コミットメント制御の開始および終了
コミットメント制御用のファイルの指定
COMMIT 命令の使用
条件付きコミットメント制御の指定
プログラム・サイクルでのコミットメント制御
キー付きファイルを使用した予期しない結果
DDM ファイル
V3R1 より前の DDM ファイルの使用
外部接続装置へのアクセス
装置ファイルのタイプ
プリンターのアクセス
PRINTER ファイルの指定
ページ・オーバーフローの処理
プログラム記述ファイルでのフェッチ・オーバーフロー・ルーチンの使用
プログラム記述ファイル中の用紙制御情報の変更
テープ装置のアクセス
表示装置へのアクセス
順次ファイルの使用
順次ファイルの指定
SPECIAL ファイルの使用
SPECIAL ファイルの使用例
WORKSTN ファイルの使用
システム間通信機能
外部記述 WORKSTN ファイルの使用
表示装置ファイルでの機能キー標識の指定
表示装置ファイルでのコマンド・キーの指定
外部記述 WORKSTN ファイルの処理
サブファイルの使用
プログラム記述 WORKSTN ファイルの使用
様式名のあるプログラム記述 WORKSTN ファイルの使用
様式名のないプログラム記述 WORKSTN ファイルの使用
有効な WORKSTN ファイル命令
EXFMT 命令
READ 命令
WRITE 命令
複数装置ファイル
対話式アプリケーションの例
データベース物理ファイル
メイン・メニュー照会
MAINMENU: 表示装置ファイルの DDS
CUSMAIN: RPG ソース
ファイルの維持
CUSMSTL1: 論理ファイルの DDS
MNTMENU: 表示装置ファイルの DDS
CUSMNT: RPG ソース
郵便番号による検索
CUSMSTL2: 論理ファイルの DDS
SZIPMENU: 表示装置ファイルの DDS
SCHZIP: RPG ソース
名前による検索と照会
CUSMSTL3: 論理ファイルの DDS
SNAMMENU: 表示装置ファイルの DDS
SCHNAM: RPG ソース
付録および後付け
付録A. OPM RPG/400 と AS/400 用 ILE RPG との動作上の相違点
コンパイル
実行
デバッグおよび例外処理
入出力
文字フィールドの DBCS データ
付録B. RPG III から RPG IV への変換援助プログラムの使用
変換の概要
ファイルに関する考慮事項
ログ・ファイル
変換援助プログラム・ツールの要件
変換援助プログラムが行わないこと
ソースの変換
CVTRPGSRC コマンド
デフォルトの値を使用したメンバーの変換
1 ファイル中のすべてのメンバーの変換
1 ファイル中のいくつかのメンバーの変換
試行変換の実行
変換報告書の入手
報告書簡易作成機能ソース・メンバーの変換
組み込み SQL をもつソース・メンバーの変換
仕様書テンプレートの挿入
データ・ファイルからのソースの変換
ソース変換の例
変換の分析
変換報告書の使用
ログ・ファイルの使用
変換上の問題の分析解決
既存の RPG III コードのコンパイル・エラー
サポートされていない RPG III 機能
/COPY コンパイラー指示ステートメントの使用
外部記述データ構造の使用
実行時の相違点
付録C. 作成コマンド
CL コマンドの使用
構文図の解釈法
CRTBNDRPG コマンド
CRTBNDRPG コマンドの説明
CRTRPGMOD コマンド
CRTRPGMOD コマンドの説明
付録D. コンパイラー・リスト
コンパイラー・リストの読み方
プロローグ
ソース・セクション
追加の診断メッセージ
出力バッファー位置
/COPY メンバー・テーブル
コンパイル時データ
キー・フィールド情報
相互参照表
EVAL-CORR 要約
外部参照リスト
メッセージの要約
最終の要約
コード生成およびバインド・エラー
参考文献
索引