3GL パラメータ
固定パラメータ
プログラムの最初の 3 パラメータは固定です。これは、LANSA により生成されたアプリケーション全体で送受信されるデータ構造です。
DC@IDS - 情報データ構造 |
DC@EDS - 情報データ構造で定義された配列 |
PR@IDS - 情報データ構造を処理 |
これらの情報データ構造のレイアウトは (RPG /COPY メンバー として)、LANSA データ・ライブラリの DC@F28 ファイル内のメンバー DC@ISPEC、DC@ESPEC、PR@ISPEC、PR@ESPEC で確認できます。
これらのデータ構造により定義された保存場所のいずれのコンテンツも変更できません。変更を試みた場合、システムの整合性が失われ、予期せぬ結果につながる可能性があります。
引数/戻り値のパラメータ
DC@F48 ファイルで定義された BIF の引数や戻り値は BIF やサブルーチン用のパラメータとして設定されます。
このパラメータはそれぞれ、連携パラメータとともに引き渡されます (つまり、DC@F48 ファイルの各エントリーは 2 つ、または 4 つのパラメータで設定され、組み込み関数またはサブルーチンに引き渡されます)。
アルファまたは数値のパラメータ例
DC@F48 ファイルでタイプ A (アルファ) または N (数値) として定義された引数または戻り値については、2 つのパラメータが設定され、組み込み関数に引き渡されます。
- 最初のパラメータは 4 文字の記述子です。形式は "llld" で、"lll" は長さ、そして "d" は LANSA の USE コマンド内で指定された引数/戻り値の小数点以下桁数です。この値を使って BIF は LANSA USE コマンドの引数/戻り値の実際の長さを決定することができるので、便利です。
- 2 つ目のパラメータは、実際の引数または戻り値です。この長さとタイプはファイル DC@F48 の最大長定義に一致します。タイプ N (数値) の変数は常に packed decimal の形式で引き渡されます。
例:
C *ENTRY PLIST
C PARM DC@IDS
C PARM DC@EDS
C PARM PR@IDS
C PARM B$555A 4 <-- Descriptor
C PARM B@555A 3
C PARM B$555B 4 <-- Descriptor
C PARM B@555B 10
C PARM B$555C 4 <-- Descriptor
C PARM B@555C 1
リスト・パラメータの例
DC@F48 ファイルでタイプ L (リスト) として定義された引数または戻り値については、4 つのパラメータが設定され、組み込みBIF引き渡されます。
- 最初のパラメータは10進数 (7,0) のフィールドです。このフィールドには、リストに入れることができるエントリーの最大数が含まれています。この値は、この組み込み関数を使用する RDML ファンクションのリスト定義より設定されます。
- 2 番目のパラメータは10進数 (7,0) のフィールドです。このフィールドには、実際にリストに入っているエントリーの現在の数が含まれています。この値は RDML ファンクションにより設定されます。この値は、この組み込み関数の起動前にファンクションが実際に使用したエントリー数が持ってこられます。
- 3 番目のパラメータは10進数 (7,0) のフィールドです。このフィールドはリスト内の "現在の" エントリーを指し示します。通常、このエントリーは組み込み関数内では意味を持ちませんが、参照したり変更しないでください。
- 4 番目は実際のリストです。このフィールドは複数発生データ構造 (RPG の用語) です。このフィールドは、RDML ファンクションで作業リストとして引き渡された、もしくはこれから引き渡される予定のデータです。
例:
C *ENTRY PLIST
C PARM DC@IDS
C PARM DC@EDS
C PARM PR@IDS
C PARM LXnnnB 70 <-- Maximum Entries
C PARM LCnnnb 70 <-- Total Entries
C PARM LPnnnb 70 <-- Current Entry
C PARM LLnnnB <-- Actual List