IF-THEN ステートメントを使用すると、NetView® 自動操作で代行受信 および処理させたいメッセージや MSU を指定できます。このステートメントは、自動操作のために選択されるメッセージまたは MSU が 満たさなければならない条件や、メッセージまたは MSU がこれらの条件を 満たしている場合に NetView プログラムで行うアクションを コーディングするために使用できます。
NetView プログラムは、IF ステートメントの演算子の前後に示された式を評価します。この条件が真であれば 、NetView プログラムはそのステートメントの THEN 部分を処理します。論理 AND (&) 演算子、 論理 OR (|) 演算子、および括弧を使用すると、複数の条件を組み合わせられます。
IF-THEN ステートメントの構文は、次のとおりです。
IF-THEN ステートメント >>-IF-- --+----------------------------+--condition--_--item-- --> +-(--LABEL:--labelname--)----+ +-(--ENDLABEL:--labelname--)-+ '-(--GROUP:--groupname--)----' >--operator-- --compare--_--item-- --THEN-- --+-actions-+--;--->< '-BEGIN---'
labelname の値は、 同じメンバーの中にある直前の LABEL キーワードにある値に、一致させる必要があります。
条件項目の詳細については、条件項目を参照してください。
詳しくは、「ビット・ストリングの比較項目」を参照してください。
詳しくは、「処置」を参照してください。
詳しくは、BEGIN-END セクションを参照してください。
論理 AND (&) で他のデータと連結する場合は 、SYSCLONE サポートによって IF-THEN ステートメントの論理が変更される場合があります。
IF DOMAINID='CNM01' &
TEXT='PURGE DATE IS LATER THAN TODAY''S DATE' THEN
EXEC (CMD('CLISTA') ROUTE (ONE * OPER1));
IF DOMAINID='CNM02' & MSUSEG(0000) ¬= '' THEN
COLOR(YEL)
CONTINUE(Y);
IF MSGID='IST051A' | MSGID='IST1311A'
THEN EXEC (CMD('CLISTA') ROUTE (ONE * OPER1));
IF DOMAINID='CNM01' |
TEXT='PURGE DATE IS LATER THAN TODAY''S DATE' &
SYSID='MVS1' THEN
EXEC (CMD('CLISTA') ROUTE (ONE * OPER1));
NetView プログラムでは、TEXT 条件と SYSID 条件が (論理 AND 演算子でこれら 2 つの条件を結合しているため) 一緒に評価されます。 TEXT 条件と SYSID 条件の両方、 あるいは DOMAINID 条件が真でなければなりません。 次に、 このプログラムは、その結果を DOMAINID 条件と結合します。
次の例は、論理演算子のグループ化を示します。 DOMAINID 条件と TEXT 条件を、NetView プログラムで一括して評価させたい場合、図 5 に示すように、 これらの条件をまとめて括弧で囲みます。
IF (DOMAINID='CNM01' |
TEXT='PURGE DATE IS LATER THAN TODAY''S DATE') &
SYSID='MVS1' THEN
EXEC (CMD('CLISTA') ROUTE (ONE * OPER1));
前の例の IF-THEN ステートメントを処理するとき 、NetView プログラムは、DOMAINID 条件と TEXT 条件を (括弧でグループ化されているため) 一度に評価します。 次に、 この結果は、NetView プログラムによって SYSID 条件と結合されます。DOMAINID か TEXT 条件のいずれかが真でなければなりません。 さらに、SYSID 条件も真でなければなりません。
MLWTO (複数行のオペレーター宛て) メッセージの先頭にブランク行がある場合、NetView プログラムは、 ブランク行を無視します。 ブランク行は、表示用に保持されており、 コマンド・プロシージャーで GETMLINE を使用しているときには行の配置に影響を与えるおそれがあります。
MVS™ に対して表示される MLWTO メッセージには、制御行 (IEE932I)、順次のメッセージ ID、 またはその両方が組み込まれている場合があります。 メッセージをさらに有効に使用するために、IEE932I は NetView プログラムによって除去されますが、順次のメッセージ ID が除去されることはありません。
以下を指定した AUTOTBL ENABLE または DISABLE コマンドを使用すると、 さまざまなステートメントを使用可能または使用不可にすることができます。
以下の一連の IF-THEN ステートメントは、LABEL および ENDLABEL キーワードの使用例です。
IF (LABEL:VTAM) MSGID = 'IST051A'
THEN EXEC (CMD('CLISTA') ROUTE (ONE * OPER1));
IF MSGID = 'IST052A'
THEN EXEC (CMD('CLISTB') ROUTE (ONE * OPER1));
IF (ENDLABEL:VTAM) MSGID = 'IST053A'
THEN EXEC (CMD('CLISTC') ROUTE (ONE * OPER1));
図 7 は、GROUP キーワードの使用法を示すもので、 複数の自動化テーブル・ステートメントを組み込んでいます。 このなかには、VTAMX という名前のステートメントのグループに含まれているものも あります。 AUTOTBL コマンドを使用し、GROUP=VTAMX のキーワードを指定することによって、 このグループの一部となっている自動化テーブルの中のすべてのステートメントを、 使用可能にしたり、または使用不可にしたりすることができます。 この例では、最初と 3 番目のステートメントが該当します。
IF (GROUP:VTAMX) MSGID = 'IST054A'
THEN EXEC (CMD('CLISTX') ROUTE (ONE * OPER1));
IF MSGID = 'IST055A'
THEN EXEC (CMD('CLISTY') ROUTE (ONE * OPER1));
IF (GROUP:VTAMX) MSGID = 'IST056A'
THEN EXEC (CMD('CLISTZ') ROUTE (ONE * OPER1));
NetView プログラムは、この正符号を除去し、自動化内部機能 (AIFR) 内のフィールドを設定して、メッセージが無許可プログラムにより出されたことを示します。
IF HDRMTYPE = '*' THEN ;