EGL ソース形式の DataTable パーツ

dataTable パーツは EGL ファイルで宣言します。これについては、『EGL プロジェクト、パッケージ、およびファイル』で説明しています。このパーツは生成可能なパーツです。つまり、このパーツは、ファイルの最上位にあり、ファイルと同じ名前を持つ必要があります。

1 つの dataTable は、プログラムの使用宣言、または (プログラムの唯一のメッセージ・テーブルの場合は) プログラムの msgTablePrefix プロパティーによって、そのプログラムに関連付けられます。 dataTable は、pageHandler の使用宣言により、pageHandler に関連しています。

dataTable パーツの一例を以下に示します。
     DataTable myDataTablePart type basicTable
       { 
         { shared = yes }
         myColumn1 char(10);
         myColumn2 char(10);
         myColumn3 char(10);

 
         { contents = [
          [ "row1 col1", "row1 col2", "row1 " + "col3" ] ,
          [ "row2 col1", "row2 col2", "row2 " + "col3" ] ,  
          [ "row3 col1", "row3 col2", "row3 col3"      ]
                    ]
       } 
     end
dataTable パーツの構文図は、以下のとおりです。

dataTable パーツの構文図
DataTable dataTablePartName ... end
パーツを dataTable として識別し、パーツ名を指定します。命名の規則については、『命名規則』を参照してください。
basicTable (デフォルト)
プログラム・ロジックで使用される情報 (例えば、国およびそれに関連付けられているコード) を含んでいます。
matchInvalidTable
テキスト・フィールドの validatorDataTable プロパティーで指定され、ユーザーの入力は、dataTable の最初の列の値とは異なっている必要があることを示します。検証に失敗すると、EGL ランタイムは以下のように応答します。
  • validatorDataTable プロパティーで参照されるテーブルにアクセスする。
  • テキスト・フィールド固有の validatorDataTableMsgKey プロパティーで識別されるメッセージを取り出す。
  • 書式固有の msgField プロパティーで識別されるテキスト・フィールドにメッセージを表示する。
matchValidTable
テキスト・フィールドの validatorDataTable プロパティーで指定され、ユーザーの入力が dataTable の最初の列の値に一致する必要があることを示します。検証に失敗すると、EGL ランタイムは以下のように応答します。
  • validatorDataTable プロパティーで参照されるテーブルにアクセスする。
  • テキスト・フィールド固有の validatorDataTableMsgKey プロパティーで識別されるメッセージを取り出す。
  • 書式固有の msgField プロパティーで識別されるフィールドにメッセージを表示する。
msgTable
ランタイム・メッセージが含まれています。メッセージは、以下の状況で表示されます。
  • テーブルが、プログラムのメッセージ・テーブルである。テーブルとプログラムの関連付けは、プログラムのプロパティー msgTablePrefix が、dataTable の名前の先頭の 1 から 4 文字であるテーブル接頭部 を参照している場合に行われます。この名前の残りの文字は、以下の表にリストしている各国語コードの 1 つです。

    言語 各国語コード
    ブラジル・ポルトガル語 PTB
    中国語 (簡体字) CHS
    中国語 (繁体字) CHT
    英語、大文字 ENP
    英語 (米国) ENU
    フランス語 FRA
    ドイツ語 DEU
    イタリア語 ITA
    日本語、カタカナ (1 バイト文字セット) JPN
    韓国語 KOR
    スペイン語 ESP
    スイス・ドイツ語 DES
  • プログラムは、『ConverseLib.displayMsgNum』および『ConverseLib.validationFailed』で説明されている 2 つのメカニズムの内の 1 つによってメッセージを取り出し、それを表示します。
rangeChkTable
テキスト・フィールドの validatorDataTable プロパティーで指定され、ユーザーの入力が、少なくとも 1 つのデータ・テーブル行の第 1 列の値と第 2 列の値との間の値に一致する必要があることを示します。(範囲は包括的です。 ユーザーの入力が任意の行の最初の列または 2 番目の列の値と一致している場合は、有効です。)検証に失敗すると、EGL ランタイムは以下のように応答します。
  • validatorDataTable プロパティーで参照されるテーブルにアクセスする。
  • テキスト・フィールド固有の validatorDataTableMsgKey プロパティーで識別されるメッセージを取り出す。
  • 書式固有の msgField プロパティーで識別されるフィールドにメッセージを表示する。
"alias"
生成された出力の名前に取り込まれるストリング。別名を指定しなかった場合は、dataTable 名 (またはショート・ネーム) が代わりに使用されます。
shared
dataTable の同じインスタンスが、同じ実行単位の複数のプログラムによって使用されるかどうかを示します。有効な値は、yes および no (デフォルト) です。 shared の値が no の場合は、実行単位内の各プログラムは、dataTable の固有のコピーを持ちます。

このプロパティーは、dataTable の同じインスタンスが、同じ 実行単位の各プログラムによって使用されるかどうかを示します。shared の値が no の場合は、実行単位内の各プログラムは、dataTable の固有のコピーを持ちます。

CICS® では、このプロパティーは、dataTable の同じインスタンスが、CICS 領域のすべてのプログラム、および所定の実行単位内のすべてのプログラムによって使用されるかどうかを示します。shared の値が no の場合は、各実行単位内の各プログラムは、dataTable の固有のコピーを持ちます。

実行時に行われた変更は、dataTable にアクセスできるすべてのプログラムに対して可視になっており、その dataTable がアンロードされるまで、その変更はそのまま維持されます。いつ dataTable がアンロードされるかは、ほとんどの場合、resident プロパティー (後述) の値によって決まります。詳しくは、このプロパティーの説明を参照してください。

call 文または I/O 文を持ち、 同じ dataTable にアクセスする CICS プログラムを作成する場合には、特別な注意を払う必要があります。(未変更データを必要とする) あるプログラムが、呼び出しまたは入出力操作が終了するまで中断している間に、別のプログラムが dataTable に書き込みを行うと、問題が発生することがあります。

resident
dataTable にアクセスしたすべてのプログラムが終了した後も、その dataTable をメモリー内に保持しておくかどうかを示します。

有効値は yes および no です。 デフォルトは no です。

resident プロパティーを yes に設定すると、shared の値に関係なく、dataTable は共用されます。

dataTable を常駐させておくことの利点は、以下のとおりです。
  • dataTable は、以前に実行されたプログラムによって書き込まれた値をすべて保持する。
  • 追加のロード処理を行わなくても、テーブルに即時にアクセスできる。

常駐 dataTable は、実行単位が終了するまでロードされたままです。ただし、非常駐 dataTable は、それを使用しているプログラムが終了するとアンロードされます。

プログラムのアンロードは、ターゲット・システムおよびそのプログラムが常駐しているかどうかによって、以下のような影響を受けます。
  • Java™ プラットフォームでは、常駐 dataTable は、実行単位が終了するまでロードされたままです。ただし、非常駐 dataTable は、それを使用しているプログラムが終了するとアンロードされます。
  • z/OS® バッチ処理では、EGL によって生成されたプログラム (または VisualAge® Generator プログラム) が実行単位内に存在しなくなるまで、常駐 dataTable はロードされたままです。非常駐 dataTable は、それを使用するプログラムが終了するとアンロードされます。
  • CICS 処理の場合は、CICS 領域が終了するまで、または管理者が Enterprise Developer Server の new copy ユーティリティーを使用してテーブルを更新するまで、常駐 dataTable はロードされたままです。 非常駐 dataTable は、そのデータ・テーブルを使用したすべてのプログラムが終了すると、アンロードされます。
注: dataTable は、EGL ランタイムが使用宣言を処理するときではなく、プログラムが最初にアクセスしたときに、(必要であれば) メモリーにロードされます。
contents
dataTable セルの値。各セルの種類は、以下のいずれかです。
  • 数値リテラル
  • 文字列リテラル、または文字列リテラルの連結

ある特定の行の内容の種類には、最上位の構造体フィールド (各フィールドは、列定義を表します) との互換性が必要です。

structureField
構造体フィールド。詳細については、『EGL ソース形式の構造体フィールド』を参照してください。

関連する概念
DataTable
EGL プロジェクト、パッケージ、およびファイル
実行単位

関連する参照項目
命名規則
EGL ソース形式の構造体フィールド
ConverseLib.displayMsgNum
ConverseLib.validationFailed
使用宣言

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.(C) Copyright IBM Japan 2005.