Natural UTM インターフェイスのドキュメントのこの部分では、次のトピックについて説明します。
表記の vrs または vr:以下のドキュメントでは、表記の vrs または vr は関連するバージョン、リリース、システムメンテナンスレベル番号を表します。
Natural UTM インターフェイスでは、いくつかのユーザー出口が提供されています。 これらについて、以下で説明します。
これらの出口を使用するには、対応するユーザープログラムを、Natural UTM アプリケーションのフロントエンド部分にリンクする必要があります。 ユーザー出口 RP2PRNT
は例外です。
ユーザー出口ルーチンは、通常のレジスタ規則で呼び出されます。
ACCEXIT
| ACCINIT
| INPTEX
| RP2PRNT
| RMSPOOL
| SHUTALL
| SHUTLST
| STRTALL
| STRTFST
| TRMIOEX
| UINPEX
| UOUTEX
| UVGEXIT
| WHCEXT
ユーザー出口 ACCEXIT
は、アカウンティング情報の取得に使用できます。 マクロ NURENT
のパラメータ ACCNT
の値に応じて、各ダイアログステップの終了時またはアプリケーションの各変更時(新しい Natural ログオン ID)に、このユーザー出口がアクティブにされます。「Natural UTM アプリケーションのアカウンティング」も参照してください。
ユーザー出口 ACCINIT
は、アカウンティング情報の収集に使用できます。 この出口は、各ダイアログステップの開始時にアクティブになります。「Natural UTM アプリケーションのアカウンティング」も参照してください。
ユーザー出口 INPTEX
は、入力メッセージが読み取られると常にアクティブになります。 「UTM 環境の Natural で使用するユーティリティプログラム」にあるプログラム INPTEX
の説明も参照してください。
ユーザー出口 RP2PRNT
は、他の製造元のスプーリングシステムに対するインターフェイスとして使用されます。 このユーザー出口ルーチン(スプーリングプログラム)はリエントラントにする必要があり、また Natural UTM アプリケーションのリエントラント部分とリンクしなければなりません。
「その他のスプーリングシステム」、および「NATUTM マクロパラメータ」にあるパラメータ SPOOL
の説明も参照してください。
独自のスプーリングインターフェイスプログラムを記述する場合は、RMSPOOL
という名前を付けてください。 プログラム RMSPOOL
は、Natural UTM アプリケーションの(非リエントラントの)フロントエンド部分またはリエントラント部分にリンクすることができます。 リエントラント部分にリンクする場合、プログラム自体がリエントラントになるように記述する必要があります。
重要:
プログラム RMSPOOL
を使用する場合、マクロ NATUTM
および NURENT
の SPOOL
パラメータは SPOOL=RMSPOOL
に設定する必要があります。
Natural UTM インターフェイスは、次のパラメータをプログラム RMSPOOL
に渡します。
アドレス(フォーマット/長さ) | 内容 | |
---|---|---|
第 1 アドレス(A2) | ファンクションコード。 使用可能なファンクションコードは次のとおりです。 | |
OP |
出力ファイルを開く必要があり、最初の出力レコードが渡されます。 | |
PR |
それ以降の出力レコードが渡されます。 | |
CL |
出力ファイルを閉じる必要があります。 | |
第 2 アドレス | 出力レコード(出力するデータ)。
出力レコードの最初のバイトには、改行/フォームフィードの制御文字が含まれます (ファンクションコード |
|
第 3 アドレス(B2) | 出力レコード長(フィード文字を含む)。
(ファンクションコード |
|
第 4 アドレス(A8) | プリンタ名。 | |
第 5 アドレス | 出力バッファ。
このバッファは、特定の目的のために |
|
第 6 アドレス(B2) | 出力バッファ長。 | |
第 7 アドレス(A8) | 現在のユーザー ID(システム変数 *USER と同じ)。
|
|
第 8 アドレス(A8) | 現在の端末 ID(システム変数 *INIT-ID と同じ)。
|
|
第 9 アドレス(A8) | 現在の Natural ライブラリ名(システム変数 *LIBRARY-ID と同じ)。
|
|
第 10 アドレス(A8) | 現在の Natural プログラム名(システム変数 *PROGRAM と同じ)。
|
|
第 11 アドレス(A4/B4) | リターンコード。
|
マクロ NATUTM
に SHUTALL
パラメータで指定されたユーザー出口は、UTM タスクの終了時(KDCSHUTn
)に常にアクティブになります。 デフォルトでは、このユーザー出口は SHUTEX1
です。
SHUTALL
で指定したユーザー出口を使用する場合、Natural UTM インターフェイスに対する KDCDEF
のパラメータ USAGE=SHUT
を、KDCROOT
の生成時に設定しておく必要があります。
マクロ NATUTM
に SHUTLST
パラメータで指定されたユーザー出口は、最後の UTM タスクの終了時(KDCSHUTn
)にアクティブになります。 デフォルトでは、このユーザー出口は SHUTEX2
です。
SHUTLST
で指定したユーザー出口を使用する場合、Natural UTM インターフェイスに対する KDCDEF
のパラメータ USAGE=SHUT
を、KDCROOT
の生成時に設定しておく必要があります。
マクロ NATUTM
に STRTALL
パラメータで指定されたユーザー出口は、UTM タスクの開始時に常にアクティブになります。 デフォルトでは、このユーザー出口は STARTEX
です。
マクロ NATUTM
に STRTFST
パラメータで指定されたユーザー出口は、最初の UTM タスクの開始時にアクティブになります。 デフォルトでは、このユーザー出口は STAPPLX
です。
ユーザー出口 TRMIOEX は、フォーマットされた入力または出力メッセージごとにアクティブになります。
マクロ NURENT
に UINPEX
パラメータで指定されたユーザー出口は、端末メッセージの送信後にアクティブになります。 デフォルトでは、このユーザー出口は INPSCR
です。
UTM 環境の Natural は、次のパラメータをユーザー出口に渡します。
アドレス(フォーマット/長さ) | 内容 |
---|---|
第 1 アドレス | アドレス入力バッファ。 |
第 2 アドレス(B2) | アドレスメッセージ長。 |
マクロ NURENT
に UOUTEX
パラメータで指定されたユーザー出口は、端末メッセージの送信前にアクティブになります。 デフォルトでは、このユーザー出口は OUTSCR
です。
UTM 環境の Natural は、次のパラメータをユーザー出口に渡します。
アドレス(フォーマット/長さ) | 内容 |
---|---|
第 1 アドレス | アドレス出力バッファ。 |
第 2 アドレス(B2) | アドレスメッセージ長。 |
ユーザー出口 UVGEXIT
は、UTM DC トランザクションの開始時、再スタート時、終了時(正常終了または異常終了)にアクティブになります。 現在のタスク ID(Vorgangskennzeichen、KCKNZVG
)は、ユーザー出口ルーチンに渡されます。
ユーザー出口 WHCEXT
を使用すると、出力データが FPUT
によって UTM に渡される前に、この出力データを変更することができます。 WHCEXT
が呼び出されると、レジスタ 9 には出力データのアドレスが格納され、レジスタ 13 には保存エリアのアドレスが格納されます。
WHCEXT
はリエントラントにする必要があり、Natural UTM アプリケーションのリエントラント部分にリンクする必要があります。 詳細については、アセンブルされるマクロ NURENT
(ラベル 'NUWHC'
)のソースリストを参照してください。
非同期トランザクションを開始するには、Natural UTM インターフェイスのサービスルーチン NATASYN
を呼び出す必要があります。
Natural プログラムでの非同期トランザクションの開始は、次のパターンに従ってダイナミックパラメータを渡すことで実行されます。
... COMPRESS dynamic parameters INTO field CALL 'NATASYN'[parameter area SET CONTROL 'H' WRITE NOTITLE NOHDR field [WRITE ...] INPUT 'text' ifield (A1) END
ダイナミックパラメータの長さが 250 バイトを超える場合(つまり、複数の WRITE
ステートメントが必要な場合)、パラメータエリアは、CALL 'NATASYN
' ステートメントで渡す必要があります。
パラメータエリアは、非同期トランザクションを UTM DPUT
で開始する場合、つまり、特定の時刻に開始する場合も必要になります。 ダイナミックパラメータの合計長が 3,750 バイトを超えることは許可されません。 CALL 'NATASYN'
のパラメータエリアは、次のような構造になります。
バイト | 内容 | |
---|---|---|
01~02 | WRITE ステートメントの数。
|
|
03 | DPUT 時刻インジケータ:
|
|
R |
相対時間 | |
A |
絶対時間 | |
blank | FPUT |
|
04~06 | 年内での日付。 | |
07~08 | 時間。 | |
09~10 | 分。 | |
11~12 | 秒。 |
バイト 03~12 の内容に対しては、Siemens UTM の各ドキュメントで DPUT
呼び出しについて説明しているのと同じ規則が適用されます。 Natural のプログラミング例は、Natural ライブラリ SYSEXTP
(プログラム STARTAS1
、ASYNMULT
、STARTAS
、READAUTO
、AWINDOW1
、AWINDOW2
)にあります。
非同期トランザクション処理については、KDCROOT
、KDCDEF
、および UTM スタートアップジョブを必要に応じて変更する必要があります(Siemens UTM のドキュメントを参照)。
非同期トランザクションのすべての UTM TAC は、マクロ NATUTM
のパラメータ ASYNTAC
で非同期 TAC に対して一意な ID として定義した文字シーケンスで始まる必要があります。 逆に同期トランザクションに対する UTM TAC の最初の 5 文字は、この文字列にすることはできません。
組み合わせのトランザクション処理(つまり、1 つの UTM アプリケーション内での場合と、2 つの UTM アプリケーション間での場合の両方)は実行できません。
Natural UTM アプリケーション内でトランザクションを非同期で処理する場合、マクロ NATUTM
のパラメータ SYAPPLI
と ASAPPLI
のオペランドは NO
に設定する必要があります(これはデフォルト値)。
これは Natural UTM アプリケーション内で非同期トランザクションを初期化する Natural プログラムの例です。
* STARTAS - EXAMPLE OF THE INITIALIZATION FOR ASYNCHRONOUS * TRANSACTION WORKING WITHIN ONE UTM APPLICATION * PARMS ARE SEPARATED BY ',' * SUBLIST IN STACK IS SEPARATED BY ';' FORMAT LS=145 RESET PARM1(A144) PRDEST(A8) LTDEST(A8) MOVE 'PRINTER1' TO PRDEST /* --> Note 1 MOVE *INIT-ID TO LTDEST /* --> Note 2 COMPRESS 'SENDER=' PRDEST ',OUTDEST=' LTDEST ',' 'MENU=F,STACK=(LOGON APPL1;READAUTO)' INTO PARM1 LEAVING NO /* --> Note 3 CALL 'NATASYN' /* --> Note 4 SET CONTROL 'H' /* --> Note 5 WRITE NOTITLE NOHDR PARM1 /* --> Note 6 INPUT 'ASYNTASK INVOKED - HOPEFULLY' IFELD(A1) /* --> Note 7 END
注 | |
---|---|
1 | プリンタの名前(ダミー)がフィールド PRDEST に移動されます。
|
2 | UTM 端末の論理名がフィールド LTDEST に移動されます。
|
3 | Natural によって送信および処理されるメッセージは、次の情報とともにアセンブルされます。
|
4 | サブルーチン NATASYN (マクロ NATUTM 内の)が呼び出されると、マーカーは非同期トランザクションを初期化する必要があると示すように設定されます。 サブルーチン NATASYN は、Natural 以外のプログラムを呼び出す場合の規則に従います。
|
5 | Natural オフラインレポートがアクティブになります。 |
6 | メッセージ(PARM1 )が非同期トランザクションとして FPUT によって出力されます。
|
7 | Natural オフラインレポートは、INPUT ステートメントによって "オフに切り替えられます"。このステートメントには少なくとも 1 つの入力フィールドが必要です。
|
非同期的に実行するプログラムの例:
* READAUTO - EXAMPLE FOR ASYNCHRONOUS TRANSACTION WORKING READ (75) AUTOMOBILES BY MAKE WRITE MAKE MODEL HORSEPOWER YEAR LOOP ON ERROR DO /* --> Note 1 ERRNO(A4) = *ERROR WRITE '********************************************************' /'ERROR NO.: ' ERRNO ' IN ASYNCHRONOUS PROGRAM ' *PROGRAM /'********************************************************' TERMINATE DOEND TERMINATE /* --> Note 2 END
注 | |
---|---|
1 | ON ERROR ルーチンは、非同期的に実行する各プログラムで定義する必要があります。 このルーチンは、必ず TERMINATE ステートメントで終了するようにします。
|
2 | 非同期的に実行する各プログラムは、TERMINATE ステートメントで終了する必要があります。
|
2 つの Natural UTM アプリケーションの間でトランザクションを非同期的に処理する場合、同期アプリケーションの論理 UTM 端末名(LTERM
名)をマクロ NATUTM
のパラメータ SYAPPLI
で定義する必要があります。また、非同期アプリケーションの論理 UTM 端末名(LTERM
名)はマクロ NATUTM のパラメータ ASAPPLI
で定義する必要があります。
注意:KDCROOT と KDCDEF は、両方のアプリケーションに対して適切な設定で生成する必要があります。 |
NUSTART NATUTM SYAPPLI=LNATUTM,ASAPPLI=LNATASY,... ASYNDRV NATUTM SYAPPLI=LNATUTM,ASAPPLI=LNATASY,...
OPTION GEN=ALL,ROOTSRC=INPUT.KDCROOT.KDCNATS ROOT.KDCNATS MAX KB=400,SPAB=8192,NB=5120,TRMSGLTH=520 MAX APPLINAME=NATUTM,APPLIMODE=S,KDCFILE=(NATUTM,S) MAX TASKS=10,ASYNTASKS=5 . . EXIT PROGRAM=NUSTART,USAGE=START EXIT PROGRAM=NUSTART,USAGE=SHUT EXIT PROGRAM=FREXIT,USAGE=FORMAT . . DEFAULT PROGRAM COMP=ASSEMB PROGRAM NUSTART PROGRAM FREXIT PROGRAM NUERROR . . DEFAULT TAC TYPE=D,PROGRAM=NUSTART,EXIT=NUERROR,CALL=BOTH,... TAC NAT,ADMIN=NO,TIME=0 TAC NAT1,ADMIN=NO,TIME=0 . . DEFAULT TAC TYPE=A,PROGRAM=NUSTART,EXIT=NUERROR,CALL=FIRST,... TAC NATSY TAC NATAS . . PTERM NATASY,PRONAM=HOST,PTYPE=APPLI,TERMN=A1,LTERM=LNATASI DEFAULT PTERM PRONAM=PCDF,PTYPE=T9750,TERMN=FE,CONNECT=N,STATUS=ON PTERM DFDSS001,LTERM=DF97501 PTERM DFDSS002,LTERM=DF97502 . . LTERM LNATASY DEFAULT LTERM USAGE=D,STATUS=ON,ANNOAMSG=Y,RESTART=YES LTERM DF97501 LTERM DF97502 . . SFUNC F1,RET=21Z . . END
OPTION GEN=ALL,ROOTSRC=INPUT.KDCROOT.KDCNATA ROOT.KDCNATA MAX KB=400,SPAB=8192,NB=5120,TRMSGLTH=520 MAX APPLINAME=NATASY,APPLIMODE=S,KDCFILE=(NATASY,S) MAX TASKS=10,ASYNTASKS=5 . . EXIT PROGRAM=ASYNDRV,USAGE=START EXIT PROGRAM=ASYNDRV,USAGE=SHUT EXIT PROGRAM=FREXIT,USAGE=FORMAT . . DEFAULT PROGRAM COMP=ASSEMB PROGRAM ASYNDRV PROGRAM FREXIT PROGRAM NUERROR . . DEFAULT TAC TYPE=D,PROGRAM=ASYNDRV,EXIT=NUERROR,CALL=BOTH,... TAC NAT,ADMIN=NO,TIME=0 TAC NAT1,ADMIN=NO,TIME=0 . . DEFAULT TAC TYPE=A,PROGRAM=ASYNDRV,EXIT=NUERROR,CALL=FIRST,... TAC NATSY TAC NATAS . . PTERM NATUTM,PRONAM=HOST,PTYPE=APPLI,TERMN=A1,LTERM=LNATUTM DEFAULT PTERM PRONAM=PCDF,PTYPE=T9750,TRMN=FE,CONNECT=N,STATUS=ON PTERM DFDSS001,LTERM=97501 PTERM DFDSS002,LTERM=97502 . . LTERM LNATUM DEFAULT LTERM USAGE=D,STATUS=ON,ANNOAMSG=Y,RESTART=YES LTERM DF97501 LTERM DF97502 . . SFUNC F1,RET=21Z . . END
Siemens UTM のドキュメントも参照してください。 非同期アプリケーションが主に非同期トランザクションの処理を目的としている場合、このアプリケーションを約 64 KB の小さい(ローカルの)Natural スワッププールとともに生成することでストレージを節約できます。
重要:
パラメータ SYNTAC
で定義した TAC(デフォルト値は NATSY
)は常に、TYPE=A
で KDCDEF
に対して定義する必要があります。これは、UTM TAC の命名規則の例外です。 また同期アプリケーションで UTM TACCLASS の概念を利用する場合、非同期 TAC クラスをこの TAC に割り当てる必要もあります。
* ASYNAPPL - EXAMPLE OF INITIALIZATION FOR ASYNCHRONOUS * TRANSACTION WORKING BETWEEN TWO UTM APPLICATIONS FORMAT LS=145 RESET PARM1(A144) PRDEST(A8) LTDEST(A8) ASYNTAC(A8) MOVE 'PRINTER1' TO PRDEST /* --> Note 1 MOVE *INIT-ID TO LTDEST /* --> Note 2 MOVE 'NATSY' TO ASYNTAC /* --> Note 3 COMPRESS 'NATAS' ' SENDER=' PRDEST ',OUTDEST=' LTDEST ',ASYNNAME=' ASYNTAC ',' 'MENU=F,STACK=(LOGON APPL1;READAUTO)' INTO PARM1 LEAVING NO /* --> Note 4 CALL 'NATASYN' /* --> Note 5 SET CONTROL 'H' /* --> Note 6 WRITE NOTITLE NOHDR PARM1 /* --> Note 7 INPUT 'ASYNTASK INVOKED - HOPEFULLY' IFELD(A1) /* --> Note 8 END
注 | |
---|---|
1 | プリンタの名前(シミュレーション)がフィールド PRDEST に移動されます。
|
2 | UTM 端末の論理名(KCLOGTER )がフィールド LTDEST に移動されます。
|
3 | "フリーランニング" メッセージを非同期アプリケーションから同期アプリケーションに送信するための標準的な TAC は、フィールド ASYNTAC に格納されます。 マクロ NATUTM のパラメータ SYNTAC の説明も参照してください。
|
4 | Natural によって送信および処理されるメッセージは、次の情報とともにアセンブルされます。
|
5 | サブルーチン NATASYN (マクロ NATUTM 内の)が呼び出されると、非同期トランザクションを初期化するためのマーカーが設定されます。 このサブルーチンは、Natural 以外のプログラムを呼び出す場合の規則に従います。
|
6 | Natural オフラインレポートがアクティブになります。 |
7 | メッセージ(PARM1 )が非同期トランザクションとして FPUT で出力されます。
|
8 | Natural オフラインレポートは、少なくとも 1 つの入力フィールドがある INPUT ステートメントによって "オフに切り替えられます"。
|
非同期的に実行するプログラム(READAUTO
)は、1 つの Natural UTM アプリケーションで非同期トランザクション処理を実行する場合の規則に従う必要があります。
次のトピックについて説明します。
Natural プログラムでスプーリングなしでローカルプリンタを使用したい場合は(つまり、UTM で FPUT
を実行する)、次の例のように処理を実行します。
* TESTPRNT - TEST FOR THE Natural OFFLINE REPORT RESET PARAM(A9) REDEFINE PARAM (PARAM1(A1) PARAM2(A8)) MOVE 'H' TO PARAM1 /* --> Note 1 MOVE 'PRINTER1' TO PARAM2 /* --> Note 2 SET CONTROL PARAM /* --> Note 3 READ (50) AUTOMOBILES BY MAKE WRITE NOTITLE NOHDR MAKE MODEL HORSEPOWER YEAR /* --> Note 4 LOOP EJECT INPUT 'PRINT ORDER WAS EXECUTED' IFELD(A1) /* --> Note 5 END
注 | |
---|---|
1 | Natural オフラインレポートは、フィールド PARAM の最初の位置に H を格納することでアクティブになります。
|
2 | 論理 UTM プリンタ名は、フィールド PARAM の第 2 の位置から定義します。
|
3 | SET CONTROL ステートメントは、フィールド PARAM の内容とともに Natural オフラインレポートをアクティブにし、プリンタの名前を指定します。 Natural バージョン 1 を使用して記述した既存のプログラムの互換性を保持するために、プログラム CMLIST および NATPRNT は引き続き使用することができます。「UTM 環境の Natural で使用するユーティリティプログラム」を参照してください。
|
4 | 出力レコードは、FPUT を使用して、Natural UTM インターフェイスから UTM に渡されます。
|
5 | INPUT ステートメント(少なくとも 1 つの入力フィールドが必要)は、Natural オフラインレポートを非アクティブにします。
|
UTM を生成する場合は、ローカルプリンタの使用に必要なすべての手順を行う必要があります。詳細については、Siemens UTM のドキュメントを参照してください。 適切な UTM 管理コマンドを使用すると、定義したプリンタへの接続が存在していることを確認できます。
マクロ NATUTM
のパラメータ SPOOL
は、UTM 環境で NATSPOOL
を使用するために提供されています。 詳細については、「NATUTM マクロパラメータ」を参照してください。 また、『Natural Advanced Facilities』ドキュメントにある BS2000/OSD 固有のインストール情報も参照してください。
非同期 UTM トランザクションの出力を NATSPOOL
で実行する場合、TERMINATE
ステートメントは END OF TRANSACTION
ステートメントの後に指定する必要があります。
ユーザー出口 RP2PRNT
は、他のスプーリングシステムに対するインターフェイスとして提供されています。 このユーザー出口は、マクロ NURENT
のパラメータ SPOOL
に REPRO-2000
が指定されている場合にアクティブになります (この値は、すべてのスプーリングシステムに使用する必要があります)。
Natural UTM アプリケーションのリエントラント部分とリンクする必要があるので、ユーザー出口ルーチン RP2PRNT
はリエントラントにする必要があります。
バッファ処理など、Natural からの出力レコードの転送ロジックは、マクロ NURENT
(ラベル CMWTERM
および CMWHC
)や、マクロ NATUTM
の適切なルーチンで確認することができます。
または、ユーザー出口 RMSPOOL
を使用することもできます。上記の「ユーザー出口」を参照してください。
前の段落で説明されている場合を除き、Software AG は、その他のスプーリングシステムに対してこのインターフェイスをサポートしていません。
Natural 以外のプログラムは、プログラム間通信の標準的なレジスタ規則に従って呼び出します。 呼び出すプログラムがリエントラント(共有コードを使用)である場合、Natural パラメータモジュール(マクロ NTPRM
)のプロファイルパラメータ CSTATIC
で定義し、UTM アプリケーションのリエントラント部分とリンクすることができます。 それ以外の場合、次の手順のいずれかを実行することができます。
プログラムはランタイムにダイナミックにロードできます。 これを実行するには、Natural パラメータモジュールのプロファイルパラメータ LIBNAM
で定義したライブラリ、または UTM 開始ジョブに指定した BLSLIB
ライブラリに、このプログラムを含める必要があります。
プログラムは、Natural UTM アプリケーションのフロントエンド部分とリンクすることができます。 リンクするには、プログラムの名前をマクロ NATUTM
のパラメータ LINK
、LINK2
、LINK3
、または LINK4
のオペランドに定義する必要があります。 Natural UTM インターフェイスのフロントエンド部分にすでに存在する ENTRY
に対して、EXTRN
参照があるプログラムの場合、常にこの手順が必要になります。 Natural UTM インターフェイスは、この方法で定義されたプログラムに対して TABLE
マクロコールを実行します。 この処理では、ダイナミックローダーの LINK
テーブルにエントリが作成されます。これは、Natural プログラムで別のプログラムを呼び出す場合、それらのプログラムをダイナミックにロードする必要がないことを示します。
どちらの場合でも、呼び出される Natural 以外のプログラムの最大数は、マクロ NATUTM
の パラメータ CDYNAM
で定義する必要があります。「NATUTM マクロパラメータ」を参照してください。
注意:
マクロ NATUTM
のパラメータ KB
を YES
に設定した場合、Natural は常に UTM 通信エリア KB(Kommunikationsbereich)のアドレスを最初のパラメータアドレスとして渡します。 これはプロファイルパラメータ CSTATIC
で定義したプログラムには適用されません。
PEND FI(NISH)
ではなく、PEND PR(OGRAM)
で Natural セッションを終了(FIN
または TERMINATE
)するための方法がいくつか提供されています。これらの方法では、UTM の別の部分的なプログラムを呼び出すことができます。
呼び出される部分的な UTM プログラムの UTM TAC は、Natural セッションの開始時に Natural ダイナミックパラメータ PROGRAM
を使用して渡すことができます。例えば、以下のようになります。
STACK=(LOGON APPL1;MENU),PROGRAM=NAT10
呼び出される部分的な UTM プログラムの UTM TAC は、マクロ NATUTM
のパラメータ PENDPR
のオペランドで定義できます。例えば、以下のようになります。
NATUTM PENDPR='NAT10'
ユーティリティプログラム TACSWTCH
を使用することができます。
いずれの場合でも、Natural UTM インターフェイスは、Natural セッションの終了時に UTM TAC NAT10
で PEND PR(OGRAM)
を実行します。つまり、この TAC に関連付けられた部分的な UTM プログラムが開始されます。
PEND PR(OGRAM)
を実行するもう 1 つの方法は、その目的のために定義したファンクションキーを押す方法です。このキーを押すと Natural セッションが中断されますが、終了はしません。 PEND PR(OGRAM)
によって呼び出された部分的な UTM プログラムから制御が返されると、Natural セッションは中断されていたポイントから処理を続行することができます。パラメータ PRKEY
も参照してください。 UTM の別の部分的なプログラムに UTM TAC を定義せずに PEND PR(OGRAM)
のファンクションキーを押した場合、適切なエラーメッセージが表示されます。
注意:
プログラム NUEXAMPL
、UTMNAV
、および UTMCOB
では、Natural UTM インターフェイス(したがって、Natural 自体)と通信する部分的な UTM プログラムに必要なロジックの例が示されます。「Software Exchange」のプログラム UTMCOB
および UTMNAV
の説明を参照してください。
Natural プログラムが Adabas の呼び出しも含んでいる Natural 以外のプログラムを呼び出す場合、Adabas コントロールブロック内の適切なフィールドを現在の Adabas ユーザー ID とともに指定する必要があります。
この場合、Natural UTM インターフェイスで CSECT ADACALL
を生成します。
ADACALL
には、マクロ NATUTM
のパラメータ ADACALL
で定義したエントリが格納されます(このパラメータのデフォルト値は ADABAS
です)。
このエントリは、すべての CALL [ADABAS] USING ...
に対してアクティブになります。 現在の Adabas ユーザー ID は Adabas コマンドブロックのフィールド ADDITIONS2
に渡され、Adabas の呼び出しのそれ以降の処理は Adabas インターフェイスモジュール ADALNN
に渡されます。パラメータ ADACALL
も参照してください。
Natural パラメータモジュールの CANCEL
パラメータの値(デフォルトは大文字の *CANCEL
)を入力することで、Natural セッション(したがって UTM タスクも)が異常終了する可能性があります。