4 つのレコード・パーツはすべて、以下のプロパティーを共用します。
- @PCB
- この複合プロパティーは、ランタイム PCB の基本的な特性を定義します。
レコードが以前の PCB の再定義である場合をのぞき、4 つのレコード・パーツすべてでこのプロパティーが必要です。
@PCB 複合プロパティーの以下のフィールドのいずれかまたはすべてを指定するためには、値の設定ブロックを使用します。
- pcbType PCBKind
- このフィールドは、レコードが定義する PCB の種類を EGL に指示します。pcbType は、
PCBKind 列挙型の以下の値の 1 つである必要があります。
- DB
- データベース PCB (DB_PCBRecord)
- GSAM
- 順次ファイル PCB (GSAM_PCBRecord)
- TP
- 通信プログラム PCB (IO_PCBRecord または ALT_PCBRecord)
IMS™
環境と CICS®
環境の両方で PSB を使用しようとする場合、pcbType が必要です。
CICS 環境での実行時、EGL は pcbType
の値をチェックし、GSAM または TP PCB は無視します。
- pcbName char(8)
- AIBTDLI インターフェースを使用しようとする場合は、DL/I PSB にある PCB の名前を EGL に指示する必要があります。
これは次の 2 つの方法で実行できます。
- DL/I PSB でレコードが持っているのと同じ名前を PCB レコードに付けることができます。
- pcbName フィールドを使用して、DL/I PCB の名前を EGL PCB
の名前と関連付けることができます。
PCB レコードにランタイム PCB と同じ名前を付けなかった場合に、AIBTDLI インターフェースを使用するときは、
ここで、ランタイム PCB の名前を指定することができます。
CBLTDLI インターフェースはこの名前を使用しないので、CBLTDLI を使用する場合、EGL PCB レコードの名前は、
ランタイム PCB の名前と一致しなければなりません。
- secondaryIndex char(8)
- 2 次索引を使用してデータベース・レコードを配列するとき、これが DL/I PCB のインデックス名になります。
この名前は、ルート・セグメント・レコードに指定されたキー項目の代わりに、
ルート・セグメントにデフォルトの修飾 SSA の左側で使用されます。
- secondaryIndexItem FieldReference
- 2 次索引を使用する場合は、これが 2 次索引の値を保持する関連 PCB レコードのフィールド名です。
これは、指定した PCB 用ルート・セグメントのデフォルトの修飾 SSA のホスト変数の値です。
- hierarchy
- このフィールドはデータベース・セグメント間の関係を記述する
@Relationship プロパティーの配列を含みます。
それらのプロパティーの構造は次のとおりです。
- @Relationship
- 各 @Relationship
プロパティーにより、以下のフィールドをもつ値の設定ブロックが導入されます。
- segmentRecord STRING
- 階層内のセグメント名
- parentRecord STRING
- segmentRecord 用親レコードの名前。segmentRecord でルート・セグメントを指定する場合、
parentRecord に 0 を設定するか、または parentRecord のフィールドを省略するかのどちらかを行えます。
ターゲット環境が、CBLTDLI インターフェースを使用する
IMS の場合、
以下の PCB を名前順で定義しなければなりません。EGL は内部操作にこれらの PCB を使用します。
- iopcb
- PCBType TP の PCB を表している、タイプ IO_PCBRecord の変数。
- elaalt
- PCBType TP の 代替索引 PCB を表している、タイプ ALT_PCBRecord の変数。
- elaexp
- PCBType TP の Alternate Express PCB を表している、タイプ ALT_PCBRecord の変数。
必要な場合、それぞれの DL/I PCB 名でこれらの PCB を関連付けるために
pcbName フィールドを使用します。
次の例を表示します。
Record CustomerPSB type PSBRecord { defaultPSBName="STBICLG" }
// three PCBs required for CBLTDLI on IMS
iopcb IO_PCBRecord { @PCB { pcbType = TP } };
elaalt ALT_PCBRecord { @PCB { pcbType = TP } };
elaexp ALT_PCBRecord { @PCB { pcbType = TP } };
// database PCB defining three segment levels
customerPCB DB_PCBRecord { @PCB {
pcbType = DB,
pcbName = "STDCDBL",
hierarchy = [
@Relationship { segmentRecord = "CustomerRecordPart" },
@Relationship {
segmentRecord = "LocationRecordPart", parentRecord = "CustomerRecordPart" },
@Relationship {
segmentRecord = "OrderRecordPart", parentRecord = "LocationRecordPart" },
@Relationship {
segmentRecord = "ItemRecordPart", parentRecord = "OrderRecordPart" },
@Relationship {
segmentRecord = "CreditRecordPart", parentRecord = "CustomerRecordPart" },
@Relationship {
segmentRecord = "HistoryRecordPart", parentRecord = "CustomerRecordPart" }]}};