バージョン 4.2.5
 —  オペレーション  —

Natural ユーザー出口

Natural ユーザー出口は、Natural、サブコンポーネント、またはサブ製品によって呼び出されるプログラミングオブジェクトです。 通常は、サンプルのユーザー出口がソース形式で提供されています。 ユーザー出口に含まれる命令は、ユーザーが記述または調整する必要があります。 ユーザー出口の目的は、データの操作または決定を行うことです。 ほとんどのユーザー出口は Natural プログラミング言語を利用しています。1 つの小さなサブセットは、アセンブラ言語で記述する必要があります。

このドキュメントでは、以下の Natural ユーザー出口について説明します。

その他の Natural ユーザー出口とアプリケーションプログラミングインターフェイスについては、Natural サブコンポーネントまたはサブ製品のドキュメント(『Natural リモートプロシージャコール(RPC)』、『TP モニタインターフェイス』、『ユーティリティ』、アドオン製品など)で関連箇所を参照してください。


NATUEX1 - 認証制御のユーザー出口

ユーザー出口 NATUEX1 は、ユーザーセッションがアクティブ化されるときはいつでも呼び出されます。 これを使用して、ユーザーに Natural の使用権限があるかどうかを判定します。 この判定に使用されるセキュリティデータは、使用中のセキュリティシステム(RACF や ACF2 など)から取得できます。

NATUEX1 は、標準の呼び出し規則を使用して呼び出されます。

レジスタ 内容

15

NATUEX1 のエントリアドレス

14

Natural のリターンアドレス

13

18 ワードのセーブエリアのアドレス

1

パラメータリストのアドレス

パラメータリストには、以下の 5 つのアドレスが含まれています。

アドレス Natural システム変数に指定する値を含む 8 バイトのフィールドをポイント

1

*INIT-USER

2

*ETID

3

*INIT-ID

4

*INIT-PROGRAM

5

*USER(このシステム変数は Natural Security ログオン時に上書きされます)

これらの 5 つの値はユーザー出口によって変更できます。

正常終了するには、ユーザー出口がレジスタ 15 に 0 を設定して制御を返す必要があります。 レジスタ 15 の値が 0 でない場合は、Natural セッションはレジスタ 15 の値と同じコンディションコードで終了します。

NATUEX1 は、共有ニュークリアスまたは環境非依存ニュークリアスにリンクできます。 また、代替パラメータモジュールにリンクしたり、プロファイルパラメータ RCA で実行している場合は独立したモジュールとしてリンクしたりできます。

ユーザー出口の例は、Natural ソースライブラリのメンバ XNATUEX1 として使用できます。

CICS の場合:Natural の『TP モニタインターフェイス』ドキュメントの「NCIUIDEX - ユーザー ID 出口インターフェイス」も参照してください。

Top of page

NATSREX2 および NATSREX3 - ソート処理のユーザー出口

Natural には、2 つのソート処理用ユーザー出口、NATSREX2NATSREX3 があります。

この 2 つのユーザー出口は、Natural 固有のソートプログラムでも、外部ソートプログラムでも使用できます。 出口は、ニュークリアスにリンクされてアドレスが解決されると、自動的にアクティブになります。 z/OS および z/VSE 環境では、すでに多数の外部 SORT プログラムが複数の出口機能を提供しているため、NATSREX2 出口と NATSREX3 出口は Natural の内部ソートプログラムまたは BS2000/OSD 環境の外部 SORT 専用にしてもかまいません。

NATSREX2 は、Natural がレコードをソートプログラムに渡すときに常に呼び出されます。 NATSREX3 は、ソートプログラムがソート実行の終了後にレコードを Natural に渡すときに呼び出されます。 提供している例は、SORT に独自の照合順序を設定する方法を示しています。

ユーザー出口がアクティブ化されるときは、以下のレジスタ規則に従います。

レジスタ 内容

15

NATSREX2 および NATSREX3 のエントリアドレス

14

Natural のリターンアドレス

13

18 ワードのセーブエリアのアドレス

1

ソートレコードのアドレス

3

ソートレコードの長さ

ユーザー出口は、Natural レジスタを保護し、Natural に制御を戻すときにそれらのレジスタを復元する必要があります。

ソート出口モジュールは NAT2SORT モジュールにリンクされるため、プログラミングはリエントラントでなければなりません。 ソートレコードのフォーマットと構造は変更できません。

Top of page

NATUSKnn - ソートキー計算のユーザー出口

一部の言語には、ソートプログラムまたはデータベースシステムで正しいアルファベット順にソートできない文字が含まれています。 システム関数 SORTKEY を使用すると、このような "正しくソートされない" 文字をアルファベット順で "正しくソートされる" 別の文字に変換できます。

Natural プログラム内で SORTKEY 関数を使用すると、ユーザー出口 NATUSKnn が呼び出されます。nn は現在の言語コード(システム変数 *LANGUAGE の現在の値)です。

NATUSKnn ユーザー出口は、標準 CALL インターフェイスを提供する任意のプログラミング言語で記述できます。 SORTKEY で指定した文字列はユーザー出口に渡されます。 ユーザー出口は、この文字列の "正しくソートされない" 文字を対応する "正しくソートされる" 文字に変換するようにプログラミングされている必要があります。 続けて、変換された文字列が Natural プログラムで使用され、さらに処理が実行されます。

変換のために NATUSKnn でコンフィグレーションモジュール NATCONF の変換テーブル NTUTAB1 を使用できます。その場合は、それに応じて NTUTAB1 を調整する必要があります。

NATUSKnn は、標準の呼び出し規則を使用して呼び出されます。

レジスタ 内容

15

NATUSKnn のエントリアドレス

14

Natural のリターンアドレス

13

18 フルワードのセーブエリアのアドレス

1

パラメータリストのアドレス

パラメータリストには、以下のアドレスが含まれています。

オフセット アドレスの内容

+0

Natural から渡された文字列

+4

文字列の長さ(フルワード)

+8

変換結果の文字列

+12

結果の文字列の長さ(フルワード)

+16

変換テーブル NTUTAB1

NATUSKnn は、レジスタ 14 および 15 以外のすべてのレジスタを保護し、Natural に制御を戻すときにそれらのレジスタを復元する必要があります。

正常終了するには、ユーザー出口がレジスタ 15 にリターンコード 0 を設定して制御を返す必要があります。 レジスタ 15 の値が "0" でない場合は、該当する Natural エラーが発行されます。

サンプルのユーザー出口プログラム

以下のサンプルのユーザー出口がソースコード形式で提供されています。

プログラム 機能
NATUSK01 英語に適用され、文字列内のすべての英小文字を大文字に変換します。
NATUSK02 ドイツ語に適用され、異なるソート順序を提供するために、ドイツ語のウムラウト文字 ä、ö、ü、および ß を対応する置換文字 ae、oe、ue、および ss に変換します。

共有ニュークリアスを使用している場合は、NATUSKnn をニュークリアスの環境非依存部分にリンクできます。

また、代替パラメータモジュールにリンクしたり、呼び出される NATUSKnn モジュールの名前をプロファイルパラメータ RCA で指定している場合は独立したモジュールとしてリンクしたりできます。

リンケージ規則およびロード規則については、Natural の『ステートメント』ドキュメントの CALL ステートメントも参照してください。

Top of page

NATPM - インバーテッド出力のユーザー出口

NATPM モジュールは、逆方向端末をサポートするために使用されます。 このモジュールには、出力モード(プロファイルパラメータ PM)が I に設定されているフィールドがある場合に、端末の I/O 時に Natural から呼び出されるフィールドおよび行変換用のユーザー出口ルーチンが含まれます。

PM=I は、逆方向であることを示し、右から左に記述する言語(双方向言語など)をサポートするために使用されます。プロファイルパラメータ PM の説明も参照してください。

NATPM モジュールはソースモジュールとして提供されるので、必要に応じて変更できます。

インバートロジック

Natural は、結果属性が PM=I の各フィールド用と、ハードコピー、追加レポート、およびプライマリバッチ出力を使用して出力される各行用に呼び出されるユーザー出口ルーチンを提供します。 この出口は、以下の 3 つのパラメータで呼び出します。

このユーザー出口ルーチンは、すべてのユーザーがソースコード形式で入手できるので、PM=I 属性によってトリガされる明示的なフィールド出口として使用してもかまいません。 このようにすると、ユーザーは行内容やフィールド内容を確認および変更することができます。

フィールドユーザー出口

NATPM のユーザー出口は、属性 PM=I が設定されているフィールドごとに呼び出されます。

この属性は、Natural プログラマが設定することも、グローバル出力モードが PM=I に設定されたときに数値フィールドに自動設定されるようにすることもできます。 出力の生成目的が、端末、ハードコピー、追加レポート、プライマリバッチ出力のいずれであっても同じです。

印刷デバイスの場合は、Natural ではハードウェアによる自動的なインバートは想定せず、完全行のために NATPM を再度呼び出します。 この機能は、フィールドのインバートが必要ない国でも、フィールド属性に基づいて Natural とインターフェイスロジックを確立するために使用できます。

Top of page

NREXPG - NATRJE のユーザー出口

NREXPGNatural リモートジョブエントリNATRJE)のユーザー出口です。 ジョブが完了すると、各 JCL カードはオペレーティングシステムにサブミットされる前に出口に渡されます。 以下のデータを出口に使用できます。

出口は、各呼び出しの終了後に、以下のいずれかのイベントを示すリターンコードを NATRJE に渡します。

コード 説明
0 サブミット:カードがサブミットされます。出口により、サブミット前にカードが変更されることがあります。
4 終了:カードがサブミットされます。出口は、現在のジョブの以降のカードには無効です。
8 挿入:カードがスキップされます(カードには INSERT 文字のみが含まれているという前提に基づいて)。追加指定のカードはサブミットされます。
10 削除:カードはサブミットされません。
12 現在のジョブがフラッシュされます。

NREXPG というユーザー出口の例は、Natural ソースライブラリのメンバ XNATRJE として使用できます。 CSTATIC として指定されたプログラムのルールに従って、出口をアセンブルしリンクすることができます。 ただし、NREXPGCSTATIC エントリは不要です。

Top of page

USR0070P - エディタプロファイルのユーザー出口

ユーザー出口ルーチン USR0070P を使用して、デフォルトプロファイル SYSTEM の Natural プログラムエディタまたはデータエリアエディタのパラメータ設定を変更できます。

エディタプロファイルの詳細については、『エディタ』ドキュメントの「エディタ - 全般的な情報」を参照してください。

USR0070P は、デフォルト設定を受け取るすべてのパラメータのリストを提供します。

このユーザー出口を使用して、エディタプロファイルを FNAT システムファイル、FUSER システムファイル、またはスクラッチパッドファイルに保存するかどうかを指定することもできます。

さらに、USR0070P では DBCS サポートが考慮され、これに対応してエディタプロファイルオプション Editing in Lower Case および Dynamic Conversion of Lower Case が設定されます。

このユーザー出口ルーチンの例は、FNAT システムファイルの SYSEXT ライブラリから、オブジェクトおよびソースの両方の形式で入手できます。 使用方法については、テキストメンバ USR0070T を参照してください。

Top of page

USR2002P - ヘルプウィンドウテキスト文字列のユーザー出口

ユーザー出口ルーチン USR2002P を使用して、カーソルがメッセージ行にあるときにヘルプキーを押すと表示される[Current Natural Message]ウィンドウのテキスト文字列をカスタマイズできます。

オブジェクト USR2002P 自体にも、ウィンドウタイトルや説明テキストなど[Current Natural Message]ウィンドウで使用されるテキスト文字列が含まれています。記述テキストとは、フィールド名の Sh(ショートメッセージ)、Tx(ロングメッセージ)、Ex(説明)、Ac(アクション)などです。

このユーザー出口ルーチンの例は、FNAT システムファイルの SYSEXT ライブラリから、オブジェクトおよびソースの両方の形式で入手できます。 使用方法については、テキストメンバ USR2002T を参照してください。

Top of page

USR2003P - メインメニューのユーザー出口

ユーザー出口ルーチン USR2003P を使用して、Natural メインメニューとサブメニューの以下の設定をカスタマイズできます。

このユーザー出口ルーチンの例は、FNAT システムファイルの SYSEXT ライブラリから、オブジェクトおよびソースの両方の形式で入手できます。 使用方法については、テキストメンバ USR2003T を参照してください。

Top of page