Natural IMS インターフェイスドキュメントのこの部分では、Natural IMS/TM インターフェイスのサービスプログラムについて説明します。
次のトピックについて説明します。
サービスプログラムとは、IMS 環境の Natural に追加機能を提供する Natural のサブプログラムです。 これらは、標準の CALLNAT
ステートメントを使用して Natural プログラム内部から呼び出すことができます。
サービスプログラムは SYSEXTP
ライブラリで提供されています。これらは SYSTEM
または steplib ライブラリにコピーする必要があります。 サービスプログラムを起動するサンプルの Natural プログラムも SYSEXTP
ライブラリで提供されています。
各サービスプログラムの最後のパラメータは、形式が (I4) のリターンコードです。
次のリターンコード値は、すべてのサービスプログラムで共通しています。
0 | OK |
-1 | サポートされていない関数。 これは内部エラーです。Software AG サポートに連絡してください。 |
特定のリターンコード値については、以下の各サービスプログラムの説明を参照してください。
エラーが発生した場合は、Natural エラーメッセージが発行されるか、またはセッションが終了して Natural IMS エラーメッセージが表示されます。Natural の『メッセージおよびコード』ドキュメントの「IMS/TM 環境下の Natural のエラーコード」を参照してください。
次のサービスプログラムについて、以下に説明します。
NIIBRCST
| NIICMD
| NIIDEFT
| NIIDEFTX
| NIIDIRT
| NIIDIRTX
| NIIEMOD
| NIIGCMD
| NIIGMSG
| NIIGSEG
| NIIGSPA
| NIIIMSIN
| NIIISRTF
| NIIISRTM
| NIIPCBAD
| NIIPCOM
| NIIPMSG
| NIIPSBAD
| NIIPSPA
| NIIPURG
| NIIRETRM
| NIISASD
| NIIU3962
MOD_name
パラメータで指定されたメッセージ出力ディスクリプタを使用して、渡されたメッセージを指定された端末に送信します。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ |
---|---|
Terminal_name |
(A8) |
Message |
(A1/1:V) |
Message_length |
(I4) |
MOD_name |
(A8) |
Return_code |
(I4) |
特定のリターンコード値:なし。
サンプルプログラム:NIPGMSG
指定された IMS コマンドを IMS に渡します。 応答がある場合は、提供された応答エリアに移動されます。 応答が応答エリアに適合しない場合は、切り捨てられてリターンコードが 4 に設定されます。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
Command |
(A1/1:V) | 入力 |
Command_length |
(I4) | 入力 |
Reply_area |
(A1/1:V) | 入力/出力 |
Reply_area_length |
(I4) | 入力 |
Reply_length |
(I4) | 出力 |
Status_code |
(A2) | 出力 |
Return_code |
(I4) | 出力 |
特定のリターンコード値:4(応答は切り捨てられる)
サンプルプログラム:NIPCMD
指定された Natural トランザクションコードへの遅延切り替えを用意します。 次の端末 I/O で出力は端末に送信され、この端末からの次の入力はパラメータ Transaction_code
で指定されたトランザクションコードによって処理されます。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
Transaction_code |
(A8) | 入力 |
Return_code |
(I4) | 出力 |
特定のリターンコード値:なし。
サンプルプログラム:NIPDEFT
非 Natural のトランザクションコードへの遅延切り替えを用意します。 次の端末 I/O で、出力は指定された MOD_name
を使用して端末に送信され、この端末からの次の入力はパラメータ Transaction code
で指定されたトランザクションコードによって処理されます。
中断フラグを Y
に設定すると Natural セッションは中断され、後で再開できます。 Natural セッションが再開されると、最後の Natural 画面が最初に発行されます。
中断フラグを Y
に設定すると、会話型の Natural セッションから非会話型トランザクションコードに切り替えることはできません。 切り替えようとすると、Natural エラーメッセージが発行されます。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
Transaction_code |
(A8) | 入力 |
Transaction_type |
(A4) | 入力
設定可能値: 会話型に対して |
Suspend_flag |
(A1) | 入力
設定可能値: |
MOD_name |
(A8) | 入力 |
Message |
(A1/1:V) | 入力 |
Message_length |
(I4) | 入力 |
Return_code |
(I4) | 出力 |
特定のリターンコード値:なし。
サンプルプログラム:NIPDEFTX
指定された Natural トランザクションコードへの直接切り替えを用意します。 次の端末の書き込みにおいて、指定されたトランザクションコードへの CHNG
コマンドが発行され、Natural 画面が代替 TP PCB を使用して挿入されます。
会話型の Natural セッションから非会話型のセッションに切り替えると、その会話は終了し、MOD_name
NIIMODNC
を使用するダミーメッセージが挿入されます。 このメッセージによって一時的に画面の保護が解除され、非会話型の Natural セッションの最初の画面によって上書きされます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
Transaction_code |
(A8) | 入力 |
Return_code |
(I4) | 出力 |
特定のリターンコード値:なし。
サンプルプログラム:NIPDIRT
指定されたトランザクションコードへの直接切り替えを用意します。 次の端末の書き込みにおいて、新しいトランザクションコードの CHNG
呼び出しが発行され、メッセージまたは SPA が代替 TP PCB を使用して挿入されます。 このトランザクションタイプは、新しいトランザクションコードのタイプを定義します。
会話型トランザクションコードから非会話型に切り替えると、その会話は MOD_name
NIIMODN
を使用するダミーメッセージの発行によって終了されます。これにより画面の保護が一時的に解除され、非会話型トランザクションコードから発行された画面によって上書きされます。
中断フラグを Y
に設定すると、Natural セッションは中断され、後で再開できます。 Natural セッションが再開されると、最後の Natural 画面が発行されます。
中断フラグを Y
に設定すると、会話型の Natural から非会話型トランザクションコードに切り替えることはできません。 切り替えようとすると、Natural エラーメッセージが発行されます。
メッセージの長さを 0 に設定すると、メッセージは挿入されません。 しかし、この操作は会話型トランザクションコードに切り替える場合のみ可能です。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
Transaction_code |
(A8) | 入力 |
Transaction_type |
(A4) | 入力
設定可能値: 会話型トランザクションコードに対して CONV |
Suspend_flag |
(A1) | 入力
設定可能値: |
Message |
(A1/1:V) | 入力 |
Message_length |
(I4) | 入力 |
Return_code |
(I4) | 出力 |
特定のリターンコード値:なし。
サンプルプログラム:NIPDIRTX
Natural セッションの最後のメッセージの挿入に使用されるモジュール出力ディスクリプタの現在の設定を変更し、パラメータ MOD_name
で指定された値に設定します。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
MOD_name |
(A8) | 入力 |
Return_code |
(I4) | 出力 |
サンプルプログラム:NIPEMOD
以前に発行された IMS/TM コマンドの次の応答セグメントを取得します。 応答の長さは応答の長さパラメータで返されます。 応答が応答エリアに適合しない場合は、応答が切り捨てられ、リターンコード 4 が発行されます。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
Reply_area |
(A1/1:V) | 入力/出力 |
Reply_area_length |
(I4) | 入力 |
Reply_length |
(I4) | 出力 |
Status_code |
(A2) | 出力 |
Return_code |
(I4) | 出力 |
特定のリターンコード値:4(応答は切り捨てられる)
サンプルプログラム:NIPCMD
GU を発行することによって、メッセージキューから次のメッセージの最初のセグメントを取得します。 メッセージエリアには、先頭の LLZZ バイトを含む取得されたメッセージが含まれています。 メッセージキューにメッセージがない場合は、LLZZ は 0 に設定されます。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
Message_area |
(A1/1:V) | 出力 |
Message_area_length |
(I4) | 入力 |
Return_code |
(I4) | 出力 |
特定のリターンコード値:なし。
サンプルプログラム:NIPGMSG
、NIPGSEG
GN 呼び出しを発行することによって、入力メッセージの次のセグメントを取得します。 メッセージエリアには、先頭の LLZZ
バイトを含む取得されたメッセージが含まれています。 現在のメッセージにそれ以上メッセージセグメントがない場合は、LLZZ
は 0 に設定されます。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
Message_area |
(A1/1:V) | 出力 |
Message_area_length |
(I4) | 入力 |
Return_code |
(I4) | 出力 |
特定のリターンコード値:なし。
サンプルプログラム:NIPGSEG
指定されたオフセットから開始する SPA から指定された長さのデータを取得します。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
Offset |
(I4) | 入力 |
Length |
(I4) | 入力 |
Area |
(A1/1:V) | 入力/出力 |
Return_code |
(I4) | 出力 |
特定のリターンコード値:4
取得されたデータは、Natural に予約されている SPA に部分的または完全に格納されます。
サンプルプログラム:NIPGSPA
INQY ENVIRON
呼び出しを使用して IMS 環境情報を取得します。 Reply_area_length
を 102 未満に指定すると、応答が切り捨てられて、リターンコード X'0100'
および理由コード X'000C'
が出力されます。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
Reply_area |
(A1/1:V) | 出力 |
Reply_area_length |
(I4) | 入力 |
Return_code |
(I4) | 出力 |
特定のリターンコード値:nnxx
nn:最初の 2 バイトは AIB リターンコードを含みます。 xx:次の 2 バイトは AIB 理由コードを含みます。 AIB は "アプリケーションインターフェイスブロック" を表し、AIBTDLI
インターフェイスを介して IMS を呼び出すときに使用されます。
サンプルプログラム:NIPIMSIN
複数セグメントのメッセージを作成します。 NIIISRTF
は、指定された宛先に対して CHNG
呼び出しを実行し、PURG
呼び出しを実行することなく、最初のメッセージセグメントを挿入します。 追加のメッセージセグメントは、NIIISRTM
を使用して挿入することができます。 メッセージは NIIPURG
を使用して終了する必要があります。 LLZZ バイトはサービスモジュールによって作成されます。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
Destination |
(A8) | 入力 |
Message |
(A1/1:V) | 入力 |
Message_length |
(I4) | 入力 |
Return_code |
(I4) | 出力 |
特定のリターンコード値:なし。
サンプルプログラム:NIPISRTM
CHNG
または PURG
呼び出しを実行せずに、メッセージキューに次のメッセージセグメントを挿入します。 LLZZ バイトはサービスモジュールによって作成されます。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
Message |
(A1/1:V) | 入力 |
Message_length |
(I4) | 入力 |
Return_code |
(I4) | 出力 |
特定のリターンコード値:なし。
サンプルプログラム:NIPISRTM
現在スケジュールされている PSB 名、および論理名によって識別された PCB のアドレスを返します。 論理的な PCB 名がトランザクションコードテーブルで定義されていない場合は、Natural エラーメッセージが発行されます。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
PSB_name |
(A8) | 出力 |
Logical_PCB_name |
(A8) | 入力 |
PCB_address |
(B4) | 出力 |
Return_code |
(I4) | 出力 |
特定のリターンコード値:なし。
サンプルプログラム:NIPPCBAD
データエリアで提供されるデータを、NIIBOOTS
呼び出しで指定された、指定のオフセットの応答エリアに、指定された長さで移動します。 NIIPCOM
は、サーバー環境からのみ呼び出すことができます。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
Offset |
(I4) | 入力 |
Data_area |
(A1/1:V) | 入力 |
Length |
(I4) | 入力 |
Return_code |
(I4) | 出力 |
特定のリターンコード値:4(サーバー環境ではなく呼び出し環境)
サンプルプログラム:NIPPCOM
指定された MOD_name
を使用して、I/O PCB によって示される宛先にメッセージを送信します。 メッセージは指定されたメッセージエリア長のメッセージエリアから取得されます。 メッセージエリアには、最初に LLZZ バイトが含まれていてはいけません。 こうすることで、MFS
形式の出力メッセージを入力メッセージの発行元に送り返すことができます。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
Message |
(A1/1:V) | 入力 |
Message_length |
(I4) | 入力 |
MOD_name |
(A8) | 入力 |
Return_code |
(I4) | 出力 |
特定のリターンコード値:なし。
サンプルプログラム:NIPPMSG
PCB アドレスリストのアドレスである PSB のアドレスを返します。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
PSB_address |
(B4) | 出力 |
Return_code |
(I4) | 出力 |
特定のリターンコード値:なし。
サンプルプログラム:NIPBOOTS
データエリアで提供されるデータによって、指定されたオフセットにある SPA に配置された指定の長さのデータを置換します。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
Offset |
(I4) | 入力 |
Length |
(I4) | 入力 |
Data_area |
(A1/1:V) | 入力 |
Return_code |
(I4) | 出力 |
特定のリターンコード値:なし。
SPA のヘッダー(最初の 14 バイト)および/または Natural Reserved Area に存在するデータを上書きする試みは拒否されて、Natural エラーメッセージが発行されます。
サンプルプログラム:NIPPSPA
PURG
呼び出しを発行します。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
Return_code |
(I4) | 出力 |
特定のリターンコード値:なし。
サンプルプログラム:NIPISRTM
指定のメッセージエリアに、指定されたオフセットで開始する指定された長さの入力メッセージからデータを移動します。
オフセットは LLZZ バイトから計算されます。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
Offset |
(I4) | 入力 |
Length |
(I4) | 入力 |
Message_area |
(A1/1:V) | 入力/出力 |
Return_code |
(I4) | 出力 |
特定のリターンコード値:なし。
サンプルプログラム:NIPRETRM
Natural プロファイルパラメータ SENDER
および OUTDEST
の現在の設定を変更します。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
Sender |
(A8) | 入力 |
Outdest |
(A8) | 入力 |
Return_code |
(I4) | 出力 |
特定のリターンコード値:なし。
サンプルプログラム:NIPNTRD
ユーザーアベンドコード U3962 でセッションを終了し、ダンプを生成します。
次のパラメータを使用できます。
パラメータ | フォーマット/長さ | タイプ |
---|---|---|
Return_code |
(I4) | 出力 |
特定のリターンコード値:なし。
サンプルプログラム:NIPU3962