テンプレートの作成
データベースのテンプレートを作成する前に、データベースの名前、データベースの DBD が含まれる DBD ロード・ライブラリーの名前、 新規のテンプレートを保管する区分データ・セットの名前、およびセグメント・レイアウトについて 記述したコピーブックが入っている区分データ・セットの名前を知っておく必要があります。また、各セグメント・タイプに対してどのコピーブック・メンバーが対応しているかも知っ ていなければなりません。
テンプレートを作成するには、以下のようにします。
- 「Primary Option menu (基本オプション・メニュー)」から、オプション 「4 Template (テンプレート)」を選択します。「Template/View/Criteria Set (テンプレート/ビュー/基準セット)」メニューが表示されます。
- オプション「1 Templates (テンプレート)」を選択します。「Template Entry (テンプレート項目の入力)」パネルが表示されます。
- 「Template data set name (テンプレート・データ・セット名)」フィールドで、 テンプレートを保管する区分データ・セットの名前を入力します。
- 「Template Member (テンプレート・メンバー)」フィールドで、テンプレートが必要なデータベースの名前を入力します。このメンバーがまだ存在しない場合、「Template (テンプレート)」ダイアログは指定された名前でテンプレートを作成し、これをこのメンバーに保管します。
- Enter キーを押します。「DBD Library List (DBD ライブラリー・リスト)」パネルが表示されます。このパネルで DBD ロード・ライブラリーを最大 6 個まで入力します。FM/IMS は、これらのライブラリーを検索して、指定されたデータベース名の DBD を探します。ライブラリーはそれらが指定された順序で検索され、FM/IMS は、指定されたデータベース名で最初に見つかった DBD を使用します。指定した DBD ライブラリー・リストは、テンプレートに保管され、後続の更新に使用されます。
- Enter キーを押します。FM/IMS は、「Copybook Library List (コピーブック・ライブラリー・リスト)」パネルを表示します。このパネルで、テンプレート関数で使用するテンプレートが含まれるコピーブック・ライブラリーの名前を指定します。関数は、指定されたライブラリーから、「Template Specification (テンプレート指定)」パネルで指定したレイアウト・メンバーを検索します。指定したコピーブック・ライブラリー・リストは、テンプレートに保管され、後続の更新で使用されます。注:
- 言語コピーブックを混合して 1 つのテンプレートを作成することはできません。COBOL、HLASM、PL/I のいずれかのコピーブックだけを使用しなければなりません。
- ライブラリー・メンバーは、ISPF によってパックされていない場合があります。
- Enter キーを押します。FM/IMS が「Template Specification (テンプレート指定)」パネルを表示します。このパネルには、データベースの DBD で指定されたセグメント・タイプの名前のリストが表示されます。
- それぞれのセグメント・タイプごとに、そのセグメントのレイアウトを定義するコピーブックの 名前を「Layout member (レイアウト・メンバー)」フィールドに入力します。このパネルで、接頭部コマンドを使用して、行のコピー (C、Cn、CC に、A または B を付ける)、 挿入 (I、In)、削除 (D、Dn、DD)、移動 (M、Mn、MM に、A または B を付ける)、 オーバーレイ (O、On、OO に、C、Cn、CC、M、Mn、または MM を付ける)、 または反復 (R、Rn、RR、RRn) を行うことができます。また、接頭部コマンドを使用して、セグメント・レイアウトの編集 (E)、コピーブック・メンバーの編集 (S)、 コピーブック・メンバーの表示 (V)、このコピーブックが属するセグメント・レイアウトの更新および編集 (U)、 またはコピーブックの再定義および範囲パラメーターの指定 (X) を行うこともできます。
完全なメンバー名を入力するか、メンバー名パターンを入力するか、あるいはセグメント・ヘッダー・レコードの場合のみ、メンバー名をブランクのままにして Enter キーを押して「Member Selection (メンバー選択)」パネルからメンバーを選択することができます。このパネルには、 「Copybook Library List (コピーブック・ライブラリー・リスト)」パネルで指定したすべてのライブラリーからのすべてのメンバー名のリストが表示されます。現行セグメントの名前も表示されます。メンバー名をブランクのままにしたセグメント、またはパターンを指定したセグメントごとに、 パネルが再表示されます。
ヒント: コピーブック・メンバーの名前が、突き合わせるセグメントの名前と同じ場合には、セグメント名をコピーしてメンバー名のフィールドに貼り付けることができます。 - コピーブックにレベル 01 ステートメントを挿入するには、01 列に
Yを指定します。コピーブック用に生成された 01 ステートメントに名前を含めるには、必要な名前を「Field name (フィールド名)」列に指定します。
- 1 つのレベル -01 構造内で複数のレコード定義を含むソースに対して、 複数のレコード・レイアウトを生成する手順は、以下のとおりです。
- 必要なセグメント・タイプの隣の「Cmd」フィールドに X と入力し、「Redefines / Range Specifications (再定義/範囲指定)」のポップアップ・パネルを表示します。
- 「Level (レベル)」フィールドに、ソース・レベル値を指定します。 これは、新規のレコード・レイアウトを生成する REDEFINES または UNION- レベルの文節を識別するために使用されます。
別の方法としては、コンパイル前にソースを変更してすべての突き合わせレベルが 01 に変更されるようにするために、「Change all matching levels to 01 (すべての突き合わせレベルを 01 に変更)」オプションに対して "/" を入力します。
- 「Field name (フィールド名)」フィールドで、 REDEFINES 文節のターゲット・フィールド名、または FM/IMS が新規レイアウトを作成するように指示するために使用する REDEFINES または UNION ステートメントを識別する UNION 文節を持つフィールド名を指定します。
- それぞれのレイアウトごとにオフセット値を調整して、開始位置が再定義または UNION のフィールドの開始位置になるようにするには、「Set offset (オフセットの設定)」フィールドに "/" を入力します。
- テンプレートにコンパイルされるコピーブックのサブセットを抽出する 手順は以下のとおりです。
- 必要なセグメント・タイプの隣の「Cmd」フィールドに X と入力し、「Redefines / Range Specifications (再定義/範囲指定)」のポップアップ・パネルを表示します。
- 「From statement (開始ステートメント)」フィールドに、抽出の開始行番号を指定します。
- 「To statement (終了ステートメント)」フィールドに、抽出の終了行番号を指定します。
- 「From string (検索ストリング)」フィールドに、FM/IMS がコピーブックを検索するためのストリングを指定します。そのストリングを含む最初のステートメントが抽出を開始します。
- 「To string (置き換えストリング)」フィールドに、FM/IMS がコピーブックを検索するためのストリングを指定します。そのストリングを含む最初のステートメントが抽出を終了します。
- 「Template Specification (テンプレート指定)」パネルから指定されたコピーブックを コンパイルし、さらに、既存のテンプレートを更新するか、もしくは新規テンプレートを 作成するには、UPDATE 基本コマンドまたは U 接頭部コマンドを使用します。
- 所定のセグメントのテンプレートを編集するには、E 接頭部コマンドを使用します。 別の方法としては、E 基本コマンドを使用して、ディスプレイの上部でセグメントのテンプレート を編集することができます。注: 何らかの変更を行うと、FM/IMS はコンパイルと更新を実行します。
- 対応するレイアウト・メンバーに対して、再定義または範囲パラメーターを指定した場合、「R」 列には値 「
R」 が入ります。テンプレートが新たに作成される場合、「I」 列はブランクです。それに値「
I」が入るのは、テンプレートが作成されていて、 そのセグメントに対してレイアウトが 1 つしか指定されていない、 または所定のセグメントの各レイアウトに基準が提供されている場合です。このフィールドがブランクの場合、コピーブックには各セグメント・タイプ用に複数のレイアウトがあるため、 テンプレートでレイアウト識別基準を指定する必要があります (レイアウト識別基準の指定 を参照)。
FM/IMS では、レイアウト識別基準を指定する必要はありません。このフィールドをまだブランクにしたままでこのパネルを終了する場合、FM/IMS がそのテンプレートを保管します。ただし、そのようなテンプレートで作成されたビューを使用してデータベースをブラウズまたは編集すると、FM/IMS が間違ったレイアウトを使用してセグメントを表示する可能性があります (あるいは一部のセグメントを全く表示しない可能性があります)。
関連トピック