テンプレート・エディターは、いくつかのタイプのテンプレートを処理できます。 各テンプレートはいくつか中核となる特性を互いに共有していますが、異なる機能も提供します。 この違いのため、テンプレート・エディターはすべてのテンプレートに対し異なるレベルの編集機能を提供します。 このトピックでは、テンプレートの各タイプおよびそれらの違いについて説明します。
テンプレート・エディターは使用されているテンプレートのタイプを調べ、作業中のテンプレート・タイプで使用可能なオプションのみ表示するよう調整を行います。 この動的インターフェースにより、重要な項目のみ表示し、作業することができるので、編集作業が簡単になります。 使用中のテンプレート・タイプに関係しない編集オプションは表示から除去されるか、無効であることを示すためグレー化されます。 テンプレート・タイプの設定が変更されると、エディターは、新規テンプレート・タイプで使用可能なオプションに合うよう自動的に更新を行います。
コピーブック・テンプレートには、1 つ以上の COBOL コピーブックまたは PL/I インクルード・ファイルから取得したフィールド定義があります。フィールド定義に加え、これらのソース・ファイルには、メンバー、対応するデータ・セット、さらにはテンプレート内でのフィールド定義の配置方法も記述されています。 作成可能なコピーブック・テンプレートのタイプは 2 つあります。
最も単純な形式なのは、単一の COBOL コピーブックまたは PL/I インクルード・ファイルから生成されたテンプレートです。テンプレート・エディターは、このタイプを単純コピーブック・テンプレートと認識します。
生成可能なコピーブック・テンプレートのもう 1 つのタイプは、1 つ以上の COBOL コピーブックまたは PL/I インクルード・ファイルから取得したテンプレートです。 このタイプは、拡張コピーブック・テンプレートとして認識されます。 この形式のコピーブック・テンプレートは、1 つ以上のコピーブック・メンバー、挿入されたレベル 01 データ項目、テンプレートのタイプと構造、インクルードするステートメントの範囲、およびレコード・レイアウトに対し REDEFINES または UNION 節をどのように解釈すべきかについて記述します。
コピーブック・テンプレートは、ソース・ファイルから提供されるレイアウト情報を、ユーザーから提供される追加情報と結合します。 テンプレートの作成および編集の際には、フォーマット設定、レコード選択、およびデータ作成に関するデータを提供し、テンプレートがフォーマット済みデータ・エディターで適用されるときのデータの論理ビューを作成します。
コピーブック・テンプレートでは、動的テンプレートとは異なり、フィールド定義は編集可能ではありません。 ただし、テンプレートの有効性を高めるために、コピーブック・テンプレートでは、フィールド別またはフリー・フォーム REXX™ 式による基準編集を実行できます。
テンプレート・エディターは、セグメント化レコードに対しテンプレートをサポートしています。 セグメント化レコードとは、1 つ以上の論理セグメントを含むレコードで、各論理セグメントはコピーブック・レイアウトにより定義され、識別されます。 セグメント化データを持つデータ・セットにセグメント化コピーブック・テンプレートを適用すると、サポートされた関数内において各セグメントが論理レコードとして扱われます。 複数のレコード・レイアウトを含むコピーブック・テンプレートをセグメント化データで使用するように設定できます。 セグメント化データで使用できるようにするオプションは、テンプレートがテンプレート・エディターで開かれている場合に使用可能です。 セグメント化コピーブック・テンプレートの機能は、通常のコピーブック・テンプレートとすべて同じです。 さらに、関連するレコード識別基準を定義し、4 バイト未満のフィールドを長さフィールドと見なすかどうか、並びにフィールドの値を含むか含まないかについても定義します。
動的テンプレートは、レコード・レイアウトを派生させるためにソース・コードを使わずに作成した File Manager のテンプレートです。 動的テンプレートは、編集可能なプロパティーとともにカスタマイズされたフィールド定義を含んでいます。そのプロパティーとは、フィールド名、フィールド開始位置、フィールド長、およびフィールド・タイプです。 コピーブック・テンプレートと異なり、動的テンプレート内のフィールド定義は、テンプレート・エディターを使用していつでも作成、削除、変更、再配列することが可能です。 動的テンプレートは、適切なコピーブックを持たないデータ・セットの作業をする場合に特に便利です。
動的テンプレートを作成する場合、テンプレートに含めることができるレコード・レイアウトは 1 つだけです。 この制約のため、動的テンプレートはセグメント化データには使用できません。 動的テンプレート内でレコード選択基準およびレコード識別基準を作成し、編集できますが、それを行えるのはフィールド別基準作成エディターを使用している場合のみです。 動的テンプレートでのフリー・フォーム基準編集はサポートしていません。
動的テンプレートは、既存テンプレートの既存レイアウトを基に作成することもできます。