4.2.8 ファンクション制御表の概念
ファンクション制御表には、プロセスに属する各ファンクションがいつどのように起動されるか、メニューにどんな順序で現れるか、を制御する役割があります。
プロセス中に定義されたファンクションはすべてファンクション制御表にエントリーがあります。ファンクションが作成された時点で自動的に制御表に登録され、削除することはできません。登録時点では、表の各欄には省略値が設定されていますが、これは必要に応じて変更できます。
制御表には次のような欄があります。
- プロセスのメイン・メニューに表示し、ユーザーが直接起動できるようにするか否か。
- プロセス・メニューに現れる順序を制御するための情報。
- 関連付けられた「次ファンクション」の省略値の名前。
- 実行可能な「次ファンクション」のリスト(20個以内)。
例えば、EXAMPLEというプロセスにFUNC1、FUNC2、FUNC3というファンクションが属している場合、ファンクション制御表の初期状態は次のようになります。
ファンクション名
|
説明
|
メニューに表示
|
「次ファンクション」の省略値
|
実行可能な「次ファンクション」のリスト
|
FUNC1
|
Function 1
|
YES
|
MENU
|
*ANY
|
FUNC2
|
Function 2
|
YES
|
MENU
|
*ANY
|
FUNC3
|
Function 3
|
YES
|
MENU
|
*ANY
|
|
新規ファンクションの作成について解説した節で、「予約済み」ファンクション名についても説明しました。これはLANSA内部で使うよう「予約」されている次のようなファンクション名です。新たに作成したファンクションの名前とすることはできません。
名前
|
予約されている意味/説明
|
MENU
|
プロセスのメイン・メニューを表示する
|
EXIT
|
LANSA を終了する
|
HELP
|
プロセスのヘルプ・テキストを表示する
|
SELECT
|
実行可能なファンクションのリストから次ファンクションを選択する
|
EOJ
|
すべてのバッチ処理を終了する
|
RETRN
|
呼び出し側プロセスまたはファンクションに制御を戻す
|
ERROR
|
エラーで処理を異常終了 (ABORT) させる
|
*ANY
|
任意のファンクション名
|
|
先に挙げた、プロセスEXAMPLEのファンクション制御表にも予約済みファンクション名が出てきています。この制御表は次のような意味になります。
FUNC1を実行したとき、次に実行するファンクションの省略値は、MENU、すなわちプロセスの主メニューを表示するファンクションです。
しかしこれに限らず、プロセスに属するどのファンクションでも実行できます。
- ファンクションはすべてプロセスのメイン・メニューに表示され、したがって直接起動することができます。
次に、制御表を次のように変更したとしましょう。
ファンクション名
|
説明
|
メニューに表示
|
「次ファンクション」の省略値
|
実行可能な「次ファンクション」のリスト
|
FUNC1
|
Function 1
|
YES
|
FUNC2
|
FUNC2
|
FUNC2
|
Function 2
|
NO
|
FUNC3
|
FUNC3 FUNC1 SELECT
|
FUNC3
|
Function 3
|
NO
|
MENU
|
MENU
|
|
すると次のような動作になります。
- FUNC1の次に実行できるのはFUNC2だけです。
- FUNC2の実行後は、FUNC3を実行するかFUNC1に戻るかのどちらかしかできず、通常はFUNC3を実行します。そのほか、予約済みファンクションSELECTも実行できます。したがって、「次ファンクション」のリストに載っているファンクション(FUNC1およびFUNC3)を並べた「サブ・メニュー」が現れるので、どれを実行するか選択できます。
- FUNC3の実行後は、プロセスのメイン・メニューを表示することしかできません。
- プロセスのメイン・メニューにはFUNC1だけが表示されます。したがって、ここから直接起動できるのはFUNC1だけです。FUNC2はFUNC1から起動することしかできず、FUNC3はFUNC2から(したがってFUNC1から間接的に)起動することしかできません。
この例を見れば、ファンクション制御表の目的や、「次ファンクション」の形でファンクション間の起動関係を表す設定方法がわかるでしょう。
起動経路は、「強制」される(例えばFUNC1からはFUNC2しか起動できない)か、「提案」されます(例えばFUNC2からは通常FUNC3を起動するが、必要ならばFUNC1も起動できる)。
複数言語区画の場合、ファンクションの説明は言語ごとに設定できます。このダイアログ・ボックスに現れる言語リストで切り替えてください。
次のトピックも参照してください。
『LANSA テクニカル リファレンスガイド』の「ファンクション・コントロール・テーブル」
『Visual LANSA ユーザーガイド』の「[ファンクション] タブ」