SEWB+/CONSTRUCTION アプリケーション開発ガイド

[目次][用語][索引][前へ][次へ]

5.4.2 テンプレートの定義

テンプレートとデータ定義,プログラム定義の関係について,例に沿って説明します(図5-5参照)。

図5-5 テンプレートとデータ定義,プログラム定義との関係

[図データ]

<この項の構成>
(1) テンプレート概要定義部
(2) インタフェース定義部
(3) 展開処理記述部

(1) テンプレート概要定義部

1~4行目はテンプレート概要定義部です。ここにはテンプレートの概要を記述します。

#NAME,#OWNER,#OUTLINEはテンプレートの予約語です。ここに記述した内容は,テンプレートファイルのプロパティ情報として表示され,プログラム作成者はテンプレートを開かなくてもテンプレートの内容を知ることができます。

ここで特に重要なのは,#OUTLINEに記述する内容です。プログラム作成者に,テンプレートの目的,指定する内容,注意事項などを明確に伝える必要があります。テンプレート作成者が#OUTLINEに記述した内容は,テンプレートのプロパティ情報としてそのまま表示されます(図5-5のA)。プログラム作成者がテンプレートを選ぶ際に,疑問を持たないような,詳細な内容,わかりやすい表現を心掛けてください。

(2) インタフェース定義部

6~18行目は,データ定義,プログラム定義とのインタフェース定義部です。

6行目に@@interface @入力ファイルという記述があります。

@@interface @XXXXXX(この例の場合は「入力ファイル」)をテンプレートに記述することによって,プログラム定義ウィンドウにXXXXXX(この場合は「入力ファイル」)に対する指定を促す表示が出ます(図5-5のB)。そのため,ここをインタフェース定義部と呼びます。

@@で始まる文は制御文であり,@で始まる文は制御用の変数です。この変数は,プログラム作成者が値を設定できる可変記号です。

7~18行目は,テンプレート作成者が,プログラム作成者に対してデータ定義とプログラム定義で定義してほしい,可変記号についての情報(属性など)を定義します。ここで定義した内容は,プログラム定義のウィンドウに入力を促す項目として表示されます(図5-5のC)。

8行目のATTR=FILEのATTRは可変記号の種別を定義するATTRであり,この例では可変記号「@入力ファイル」の種別がファイルであることを表しています。このほかにも,データ定義で定義できる,DB,DAM,TAM,RPC_INPARM(RPC入力パラメタ),RPC_REPLY(RPC応答領域),MSG(メッセージ),UJ(ユーザジャーナル),MSGLOG(メッセージログ),WORK(共通作業領域)を記述できます。プログラム作成者は,プログラムのC/Sシステム形態(バッチ処理かオンライン処理か)や環境(使用するDBやデータ通信機能など)によって,データ定義で作成したファイル(図5-5のD)をプログラム定義で指定します。

また,11~13行目のATTR=FILE_NAMEなどで使われているATTRはプログラム作成者がデータ定義で指定した内容をプログラムに取り込むための予約語のATTRです(図5-5のE)。

14~17行目の修飾名(レコードキー,外部装置名,…)は,プログラム定義の[入出力項目設定]ダイアログで入力を促す項目として表示されます(図5-5のC)。このとき,修飾名に記述したCOMMENT=の内容が,ウィンドウの説明欄に表示されます。例えば,アクセスモードが選択状態になっていれば,説明欄にはアクセスモードに記述したCOMMENT=の内容が表示されるという具合に,表示内容が切り替わります。

(3) 展開処理記述部

19行目からは,ソースプログラムとして生成する処理を記述する展開処理記述部です。

19~21行目の@@*は注釈です。

23行目の@@interface @PROG_IDはプログラム定義の[パラメタ]タブに,入力を促す項目として表示されます(図5-5のF)。

@@interfaceのATTRにデータ定義種別(ファイルやDB,DAM,TAMなど)の指定がある場合は,[入出力設定]タブに表示され,それ以外は[パラメタ]タブに表示されます。

さらに,図5-6でテンプレートの続きを説明します。

図5-6 テンプレートとプログラム定義(追加処理)の関係

[図データ]

47行目の@@UOC "WORK-UOC"はユーザ追加処理に対する指定をプログラム定義のウィンドウで促すための制御文です。テンプレートに@@UOC "UOC名 "を記述することによって,プログラム定義の[ユーザ処理]タブで,指定したユーザ追加処理を表示することができます。なお,ユーザ追加処理の開始と終了コメントを設定する場合には,ソースファイル上で編集したユーザ追加処理をプログラム定義ファイルのユーザ追加処理の中に取り込む(UOCリバース)ときに,ユーザ追加処理の開始と終了を判定するためのUOCコメントを設定します。UOCコメントを出力するには次の二つの方法があります。

また,85~86行目の@@rule "ルール1" WITH USAGE{{USAGE=IN REF=@入力ファイル}};は,SEWB+/REPOSITORYの業務ルール辞書に定義されている業務ルールを利用するための制御文です。業務ルールとは,データ項目に着目して,データ項目特有の処理を部品化したものです。業務ルールは,SEWB+/REPOSITORYの業務ルール辞書に格納されています。テンプレートに@@rule文"業務ルール展開名"を記述すると,プログラム定義の[ユーザ処理]タブに,使用できる業務ルール処理を表示できます。

次に,図5-7で再度テンプレートの続きを説明します。

図5-7 テンプレート(キー項目の指定)とプログラム定義の関係

[図データ]

121行目の@@interface @ブレークキーにATTR=ITEMの予約語を指定すると,REF= に指定した可変記号のレコード定義の内容がプログラム定義の[データ定義指示項目設定]ダイアログに表示されます。この例の場合,@入力ファイルに指定されたSHOUHINのレコードの内容が表示されます。プログラム作成者はブレークキーとして使用する項目をこの中から選びます。

このように,ブレークキーやマッチングキーなど,ファイルやDBの中から項目を選ばせたいときには,テンプレート中に前述のような指定をします。なお,REF= に指定する可変記号は,この指定より前に,データ定義種別が定義してあることが条件になります(定義していないと,レコードを表示できません)。この例では6~8行目(図5-5)に@入力ファイルが定義してあります。

このほかにも,展開処理記述部には部品を呼び出したり,部品中に記述された処理を任意の位置に埋め込んだり,といった指定ができます。部品の利用方法については,「6.1.2 マスタ更新・追加出力の例題」を参照してください。