Natural ライブラリの使用

このドキュメントでは、次のトピックについて説明します。

ライブラリの詳細については、『ツールおよびユーティリティ』ドキュメントの「SYSMAIN ユーティリティ」を参照してください。


全般的な情報

ライブラリは、プログラム、サブプログラム、サブルーチン、ヘルプルーチン、テキストなどの Natural オブジェクトを格納するために使用されます。

接頭辞 "SYS" で始まるライブラリなど一部のライブラリは、Natural に付属しています。例えば、ライブラリ SYSTEM には、システム関連のプログラム、エラーメッセージ、および DDM(データ定義モジュール)が含まれています。

最初に Natural にログオンすると、ほとんどの場合、デフォルトのライブラリが SYSTEM になります。このライブラリには一般的にシステム関連オブジェクトが含まれているため、プログラムを格納するために別のライブラリを使用することをお勧めします。ユーザー独自のライブラリを Natural 環境に追加することも、この目的のために設定されたライブラリを使用することもできます。

注意:
デフォルトライブラリを SYSTEM から他の任意のライブラリに変更するには、コンフィグレーションユーティリティで Natural プロファイルパラメータ INIT-LIB を指定します。

Steplibs

steplib は、Natural のユーザーライブラリまたはシステムライブラリで、現在のユーザーライブラリまたはシステムライブラリと連結されます。これにより同一のオブジェクトを重複して保存することを防止できるので、アプリケーションを編成するのに役立ちます。さらに、Natural Security がインストールされている場合は、特定のオブジェクトへのアクセスを制限するために steplib を使用できます。

現行ライブラリにオブジェクトが見つからない場合、Natural は steplib 内を検索します(詳細については、「オブジェクト実行の検索順序」を参照)。標準の steplib は、FUSER および FNAT システムファイルのライブラリ SYSTEM です。

Natural Security がアクティブの場合は、各ライブラリのセキュリティプロファイルに steplib を追加定義できます。ライブラリのセキュリティプロファイルにエントリを追加すると、Natural Security の外部で定義されたエントリは上書きされます。

Natural Security がアクティブでない場合は、STEPLIB プロファイルパラメータを使用して、コンフィグレーションユーティリティで追加の steplib を指定できます。また、steplib を定義するために Natural のシステムライブラリ SYSEXT に用意されているアプリケーションプログラミングインターフェイスのいずれか(USR1025NUSR3025N など)を使用して、steplib をさらに定義できます。

標準の steplib SYSTEMFUSER および FNAT)より前に追加の steplib でオブジェクトが検索されます。

TECH システムコマンドを入力すると、現在アクティブな steplib が表示されます。

オブジェクト実行の検索順序

このセクションでは、要求されたオブジェクトがユーザーライブラリまたはシステムライブラリのいずれかから実行される場合に、そのオブジェクトを探して Natural ライブラリおよびシステムファイルが検索される順序について説明します。

注意:
プロファイルパラメータ BPSFI が "ON" に設定されている場合(デフォルト設定は "OFF")、最初にバッファプール内のオブジェクトが検索されます。

ユーザーライブラリからユーザー記述オブジェクトが実行される場合、検索順序は次のようになります。

  1. FUSER システムファイル内の、システム変数 *LIBRARY-ID によって定義された現在のライブラリ。

  2. 現在のライブラリを定義する Natural Security プロファイルまたは STEPLIB テーブルで指定された steplib(指定された順に)。

  3. システム変数 *STEPLIB で定義されたデフォルトの steplib。

  4. FUSER システムファイル内のライブラリ SYSTEM

  5. FNAT システムファイル内のライブラリ SYSTEM

システムライブラリから Natural オブジェクトが実行される場合、検索順序は次のようになります。

  1. FNAT システムファイル内の、システム変数 *LIBRARY-ID によって定義された現在の "SYS" ライブラリ。

  2. 現在のライブラリを定義する Natural Security プロファイルまたは STEPLIB テーブルで指定された steplib(指定された順に)。

  3. FNAT システムファイル内のライブラリ SYSLIBS(システムコマンドおよびユーティリティによって共有されているオブジェクトが含まれている)。

  4. FNAT システムファイル内のライブラリ SYSTEM

  5. FUSER システムファイル内のライブラリ SYSTEM

    FUSER システムファイルが最後に検索されるため、FUSER および FNAT システムファイルの双方で使用されるオブジェクト(Natural ユーティリティのユーザー出口ルーチンなど)は一方のロケーション(FUSER)にのみ配置してください。

ライブラリへのログオン

ライブラリにログオンするには、[Library]メニューを選択して ENTER キーを押します。ウィンドウが開き、コマンド[<LOGON>]の後に既存のすべてのライブラリのリストが表示されます。例えば、次のようになります。

+----------+
¦ <LOGON>  ¦
¦ DEMO1    ¦
¦ DEMO2    ¦
¦ DEMO3    ¦
¦ SAMPLES  ¦
¦ SYSEXPG  ¦
¦ SYSEXSYN ¦
¦ SYSTEM   ¦
+----------+

新しいライブラリを作成するには、[<LOGON>]コマンドを選択します。作成するライブラリの名前を入力するウィンドウが表示されます。「ライブラリの命名規則」も参照してください。

既存のライブラリを使用するには、リストからライブラリを選択するか、[<LOGON>]コマンドを選択して目的のライブラリの名前を入力します。ライブラリの内容が表示されます。例えば、次のようになります。

+------------------------------- List * * -------------------------------+
¦ Cmd Name     Type        SM S/C User ID  SRC Date       GP Date        ¦
¦ --- -------- ----------- -- --- -------- -------------- -------------- ¦
¦ <DIRECT COMMAND>                                                       ¦
¦     ARRAYD   Program     S  S   SAGPC    07:45 02-02-07                ¦
¦     ARRAYE   Program     S  S/C SAGPC    07:45 02-02-07 09:25 02-02-07 ¦
¦     BREAK1   Program     S  S/C SAGPC    07:45 02-02-07 09:25 02-02-07 ¦
フィールド 説明
Cmd
このフィールドには、ファンクションコードを入力できます。"?" を入力するか、または F2 キーを使用して、選択したオブジェクトに使用可能なファンクションコードのリストを表示します。ファンクションコードは次のとおりです。
C オブジェクトのソースコードの構文エラーをチェックします。
D オブジェクトのソースコードをワークエリアに読み取ります。
E オブジェクトのソースを編集します。
L オブジェクトのソースコードをリストします。
I オブジェクトに関するディレクトリ情報を表示します。
H オブジェクトのソースのハードコピーを印刷します。
R オブジェクトのソースを実行(つまり、コンパイルして実行)します。
X オブジェクトを実行します。
S オブジェクトをソース形式およびオブジェクト形式で格納します。
U オブジェクトのソース形式およびオブジェクト形式を消去(つまり、削除)します。
終了。
Name オブジェクト名。
Type オブジェクトタイプ。
SM
プログラミングモード:
S ストラクチャードモード。
R レポーティングモード。
S/C
S オブジェクトはソース形式で存在します。
C オブジェクトはオブジェクト(カタログ化)形式で存在します。
User ID オブジェクトを保存/カタログ化したユーザーの ID。
SRC Date ソースプログラムの日付。オブジェクトが最後に保存された日時。
GP Date 生成プログラムの日時。オブジェクトが最後にカタログ化された日時。

注意:
Direct Command]ウィンドウで LOGON library-name システムコマンドを入力することもできます。