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

システムファイル

Natural for Windows では、オペレーティングシステム機能からアクセスできるファイルにオブジェクトを保存します。 オブジェクトが Adabas システムファイルに保存される Natural for Mainframes とは異なり、Natural for Windows ではオブジェクトをディスク上の特定のディレクトリに保存します。 このため、Natural for Windows の実行に Adabas などのデータベースは必要ありません。

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


システムファイル構造

デフォルトでは、Natural ライブラリは、特定の Natural バージョンの Natural ルートディレクトリにサブディレクトリとして作成されます。 このサブディレクトリには、ライブラリと同じ名前が付けられます。

Natural オブジェクトは、サブディレクトリにファイルとして保存されます。 Natural オブジェクトのファイル名の形式は次のとおりです。

file-name.NKT
file-name オブジェクトの名前。 『Natural スタジオの使用』の「オブジェクトの命名規則」も参照してください。
N 拡張子の最初の文字は常に "N" です。 これは "Natural" を示します。
K
拡張子の 2 番目の文字は次のいずれかになります。
S ソースファイル
G 生成プログラム
R リソース
T 拡張子の 3 番目の文字はオブジェクトのタイプを示します。 有効な値については、次のリストを参照してください。

例えば、ソースプログラム TESTPROG はファイル TESTPROG.NSP として保存されますが、マップ TESTMAP に対して生成されたコードはファイル TESTMAP.NGM として保存されます。

注意:
ファイル名は常にオブジェクト名と同一というわけではありません。 現在のオブジェクト名および対応する内部オブジェクト名は両方とも FILEDIR.SAG ファイルに記述されます。

オブジェクトタイプを示す次の文字と数字を拡張子に使用できます。

文字または番号 オブジェクトタイプ
A パラメータデータエリア(PDA)
C コピーコード
D DDM
G グローバルデータエリア(GDA)
H ヘルプルーチン
L ローカルデータエリア(LDA)
M マップ
N サブプログラム
P プログラム
S サブルーチン
T テキスト
3 ダイアログ
4 クラス
5 コマンドプロセッサ
6 ビュー調整
7 ファンクション
8 アダプタ

Top of page

システムファイル FNAT と FUSER

Natural システムファイル FNAT(システムプログラム用)と FUSER(ユーザープログラム用)は、異なるサブディレクトリに置かれます。

FNAT では、次のディレクトリ構造が想定されます。

FNAT
 LIBDIR.SAG
 SYSTEM
      FILEDIR.SAG
      SRC
      GP
      ERR
      RES
 SYS*
      FILEDIR.SAG
      SRC
      GP
      ERR
      RES

FNAT のみで使用できるファイル LIBDIR.SAG には、Natural を使用する他のインストール済み Software AG 製品に関する情報がすべて含まれています。 この情報は、システムコマンド SYSPROD を使用して表示できます。

FUSER では、次のディレクトリ構造が想定されます。

FUSER
 SYSTEM
      FILEDIR.SAG
      SRC
      GP
      ERR
      RES
 user-library1
      FILEDIR.SAG
      SRC
      GP
      ERR
      RES

ユーザーライブラリの名前は "SYS" で始めることはできません。

ディレクトリ構造は、Natural のインストール中に生成されます。 システムおよびユーザーライブラリを表すディレクトリには、以下が含まれています。

DDM は、ローカルライブラリに保存できます。 Natural は、プログラムによって使用される DDM を、現在のライブラリ、steplib、ライブラリ SYSTEM の順に検索します。 DDM が検出されない場合は、プログラムはコンパイルされず、エラーメッセージが表示されます。 ただし、FDDM モードがアクティブになっている場合は、Natural はシステムファイル FDDM のみで DDM を検索します。

システムファイル FNATFUSER および FDDM へのパスは、コンフィグレーションユーティリティで定義されます。 システムファイルはバージョンに依存します。 そのため、Natural は、現在の Natural バージョンのシステムファイルにのみアクセスできます。 FNAT システムファイルは 1 つだけ使用することをお勧めします。 ただし、複数の FUSER システムファイルを定義することは可能です(例えば、目的に応じて異なる開発エリアがある場合など)。

Top of page

システムファイル FDDM

システムファイル FDDM は、すべての DDM を保存できるコンテナです。

FDDM では、次のディレクトリ構造が想定されます。

FDDM
 SYSTEM
      FILEDIR.SAG
      SRC
      GP

デフォルトでは、システムファイル FDDM はアクティブではありません。 これを使用するには、次の手順に従って、FDDM モードをアクティブにする必要があります。

FDDM モードのアクティブ化

FDDM モードがアクティブになっている場合(データベース ID とファイル番号の両方がグローバルコンフィグレーションファイルで 0 ではない場合)は、すべての DDM はシステムファイル FDDM に保存され読み込まれます。 ライブラリに格納された DDM は、Natural からアクセスできません。 これは、すべての DDM がシステムファイル FDIC に保存されるメインフレームと同様です。

FDDM システムファイルがグローバルコンフィグレーションファイルで定義されていない場合は、DDM は Natural ライブラリ FUSER および FNAT に保存され、FDDM システムファイルは非アクティブな環境として表示されます。

Start of instruction setFDDM モードをアクティブにするには

  1. DDM が FDDM モードで保存される空のディレクトリを作成します。 ディレクトリには、Natural 命名規則に従って任意の名前を付けることができます。

  2. コンフィグレーションユーティリティを呼び出します。

  3. グローバルコンフィグレーションファイル([システムファイル(System Files)]カテゴリ)で、システムファイル FDDM にデータベース ID とファイル番号を割り当て、最初の手順で作成したディレクトリへのパスを定義します。

  4. 必要なパラメータファイルを選択します。

  5. パラメータ FDDM を見つけます。

    ヒント:
    このパラメータを見つけるには、"FDDM" で検索します。 詳細については、『コンフィグレーションユーティリティ』ドキュメントの「パラメータの検索」を参照してください。

  6. ドロップダウンリストボックスから、パラメータ FDDM に必要なパスを選択します。

  7. 変更内容を保存します。

  8. 以下の説明に従って、必要なすべての DDM をシステムファイル FDDM に移行します。

システムファイル FDDM への DDM の移行

FDDM モードで使用可能にするすべての DDM を、システムファイル FDDM に含める必要があります。 特に、Natural で提供されたサンプル DDM(ライブラリ SYSEXDDM 内)は、システムファイル FDDM で使用可能である必要があります。

DDM を FDDM システムファイルに移行する方法は、次の 2 通りあります。

これらの方法については、以下で詳細に説明します。

注意:
INPL ユーティリティは、DDM を、Natural ライブラリ(FDDM モードが非アクティブな場合)またはシステムファイル FDDM(FDDM モードがアクティブな場合)のいずれかにロードします。 これは、ロードされる INPL ファイルが両方のモードで機能する場合にいくらか影響することがあります。 DDM が Natural ライブラリと FDDM システムファイルの両方で使用可能である必要がある場合があります。

Start of instruction setオブジェクトハンドラを使用して DDM をシステムファイル FDDM に移行するには

  1. 前述したように、FDDM モードを有効にします。

  2. 修正したパラメータファイル(つまり、パラメータ FDDM のパスが定義されたパラメータファイル)を使用して、Natural スタジオを開始します。

  3. [ツール]メニューの[開発ツール]>[オブジェクトハンドラ]を選択して、オブジェクトハンドラを開始します。

  4. オブジェクトハンドラで[Options]メニューの[Settings]を選択します。

  5. 表示されたダイアログボックスで、[Additional Options]オプションボタンを選択し、[Set]ボタンをクリックします。

  6. 表示されたダイアログボックスで、[Special]ページを選択します。

  7. [Use FDDM file for DDMs]チェックボックスをオフにします。

    これにより、(移行する DDM が含まれる)古い環境が有効になります。 このチェックボックスをオフにしないと、移行する DDM にアクセスできません。

  8. Natural ライブラリに保存されている DDM をアンロードします(ウィザードを使用するか、上級ユーザーモードで行います)。

  9. [Use FDDM file for DDMs]チェックボックスをオンにします(上記の手順を参照)。

    これにより、FDDM システムファイルが含まれる新しい環境が有効になります。

    注意:
    ライブラリが異なれば、DDM の名前を同一にすることができます。 FDDM システムファイルで DDM を上書きするのを防ぎ、同一の名前を持つ DDM を検出するために、[Do not replace]オプションを使用して DDM をロードすることをお勧めします。 このオプションは、[Use FDDM file for DDMs]チェックボックスと同じページにあります。

  10. DDM を FDDM システムファイルにロードします(ウィザードを使用するか、上級ユーザーモードで行います)。

Start of instruction setNatural スタジオのコピーまたは移動機能を使用して DDM をシステムファイル FDDM に移行するには

  1. 次に示すように、ダイナミックパラメータ FDDM=0,0 を使用して、Natural を起動します。

    natural FDDM=0,0

    これにより、移行する DDM が含まれている古い環境が有効になります。 修正したパラメータファイルで新しい FDDM 指定を上書きしないと、これらの DDM にアクセスできません。

  2. 必要なすべての DDM を Natural ライブラリから指定の FDDM ファイルのライブラリ SYSTEMコピーまたは移動します。 このファイルは、Natural スタジオの非アクティブな環境として表示されます。

  3. Natural を終了します。

    上記のダイナミックパラメータを使用せずに Natural を次回起動するときに、FDDM システムファイルが使用されます。

システムファイル FDDM が使用されているかどうかの確認

すべての DDM をシステムファイル FDDM に移行したら、FDDM が使用されているかどうかを確認します。

Start of instruction setFDDM が使用されているかどうかを確認するには

  1. Natural を起動します。

  2. [ツール]メニューの[システム情報]>[システムファイル]を選択します。 『Natural スタジオの使用』ドキュメントの「システムファイル」も参照してください。

    [SYSPROF]ダイアログボックスが表示されます。

  3. FDDM ファイルが表示される場合は、Natural はこのシステムファイルに保存されている DDM のみにアクセスします。

    FDDM ファイルが表示されないか予期したファイルが表示されない場合は、セッションに使用されるパラメータファイルを修正してください。

Top of page

重要な情報および警告

Natural 開発者は、すべてのオブジェクトに対する読み取り、書き込み、および削除の権限を持っている必要があります。

エンドユーザーは、生成プログラムに対する読み取り権限のみ(および特別な場合はソースに対する読み取り権限)を持っている必要があります。

オペレーティングシステムユーティリティで Natural ファイルにアクセスしないでください。 これらのユーティリティは、Natural ディレクトリ情報を変更したり破壊したりする可能性があります。

FNATFUSER、および FDDM ディレクトリにプライベートデータファイルを保存しないでください。Natural によって予期せぬ方法で削除されたり変更されたりするおそれがあります。

FNATFUSER、および FDDM ディレクトリを Windows アプリケーション用の作業ディレクトリとして使用しないでください。Natural システムコマンドを発行するときに問題が発生するおそれがあります。

Natural によってアクセスされるオブジェクトのファイル名(8.3 フォーマットのファイル名を含むパス)は 255 バイト以下にする必要があります。

Top of page

ファイル FILEDIR.SAG

ファイル FILEDIR.SAG は、最大 60000 オブジェクトをサポートします。 このファイルには、オブジェクトのプログラミングモード(ストラクチャードまたはレポーティング)や、内部的に変換されたオブジェクト名など、Natural で使用される内部ライブラリ情報が含まれます。 Natural オブジェクトを次の名前でディスクに保存するときに、これらの内部オブジェクト名が自動的に作成されます。

内部オブジェクト名は一意であり、現在のオブジェクト名の省略形と任意の番号で構成されます。 現在のオブジェクト名および対応する内部オブジェクト名は両方とも FILEDIR.SAG に記述されます。

オブジェクトが正しいディレクトリに配置されている場合でも、このライブラリ情報が FILEDIR.SAG に含まれた後にのみ、Natural はそれを使用できます。 Natural 内で作成されたオブジェクトについては、ライブラリ情報は自動的に含まれます。 その他のオブジェクトをインポートする方法については、『Natural スタジオの使用』ドキュメントの「オブジェクトのインポート」セクションを参照してください。

FTOUCH ユーティリティを使用すると、Natural に入らずに FILEDIR.SAG を更新できます。

Top of page

移植可能な Natural システムファイル

Natural バージョン 6.2 以降では、Natural ライブラリ内のディレクトリファイル FILEDIR.SAG と、Natural エラーメッセージファイルは、プラットフォームに依存しない移植可能なフォーマットで作成されます。 これにより、例えば、オペレーティングシステムコマンドでライブラリをコピーするだけで、Windows、UNIX、および OpenVMS プラットフォーム間で FUSER ライブラリを交換できます。

FNAT システムファイルは Natural インストールに属し、バージョン固有であると同時にプラットフォーム固有でもあります。 そのため、異なるプラットフォーム間で FNAT システムファイルを共有することはお勧めしません。 特に、Windows プラットフォーム上の FNAT システムファイルには、まったく異なる一連のユーティリティが UNIX または OpenVMS プラットフォーム上の FNAT システムファイルとして含まれています。

異なるプラットフォーム間で FUSER システムファイルを共有できるようにはなりましたが、この機能の扱いには注意が必要です。Natural のロック機構はマシン境界を超えないため、異なるプラットフォーム上の 2 つの Natural セッションが同じオブジェクトを同時に変更して予期できない結果が生じる可能性があります。

Natural バージョン 6.2 以降で新しく作成されたすべてのライブラリには、新しい FILEDIR.SAG 構造が含まれています。 特に、Natural バージョン 6.2 以降に提供およびインストールされた FNAT システムファイルには、新しい構造のライブラリしか含まれていません。

以下では次のトピックについて説明します。

言語依存オブジェクト

移植するアプリケーションでシステム変数 *LANGUAGE が使用される場合は、以下の情報に注意する必要があります。

ほとんどすべての Natural オブジェクトは、大文字のみの名前のシステムファイルに保存されます。 例外は、言語依存オブジェクト(特定の言語用に作成されたオブジェクト)です。 言語依存オブジェクトの名前には、小文字が含まれている場合があります。 Windows は大文字と小文字を維持するオペレーティングシステムであるため(UNIX は大文字と小文字を区別するオペレーティングシステム)、UNIX で作成された名前が Windows で競合を発生させたり、UNIX で開発されたアプリケーションが Windows で予期せぬ結果を生じさせたりすることがあります。

注意:
OpenVMS の動作は Windows の動作と似ています。 大文字と小文字は区別されません。 ただし、ファイル名は常に大文字で作成されます。

コマンド SAVE PGM& は、オブジェクト名に言語識別子が含まれるオブジェクトを作成します。 結果のオブジェクト名は、次のように *LANGUAGE の設定によって異なります。

*LANGUAGE の設定 作成されるオブジェクトの名前
33 PGMX(X が大文字)
59 PGMx(x が小文字)

UNIX で作成された個別のオブジェクト(PGMX.NGP および PGMx.NGP)は、ファイル FILEDIR.SAGPGMX および PGMx という名前でエントリを取得します。 これらの 2 つのオブジェクトは、次のように Natural が実行される環境に応じて処理が異なります。

古い FILEDIR.SAG ファイルの移行

バージョン 6.2 以降の Natural では、プラットフォーム固有の古い FILEDIR.SAG ファイルをそれが以前に生成されたプラットフォームで読み取ることができますが、古い FILEDIR.SAG ファイルを変更することはできません。 古い FILEDIR.SAG ファイルを含むライブラリが変更のためにアクセスされると、変更が行われる前に、FILEDIR.SAG は新しいフォーマットに変換されます。

重要:
以下に挙げられた(FILEDIR.SAG が変換される)手順を実行する前に、古い FUSER システムファイルのバックアップコピーを作成することをお勧めします。

次のように、古い FILEDIR.SAG ファイルが新しいフォーマットに変換される可能性は多数あります。

Natural バージョン 6.2 より前の Natural では、移植可能な新しい FILEDIR.SAG ファイルのライブラリにアクセスできません。 そのため、Natural バージョン 6.2 以降とそれより前のバージョンでシステムファイルを共有することはできません。 共有が可能なのは、すべてのライブラリが古い FILEDIR.SAG フォーマットのままで、変更のためのアクセスが行われたことがない場合に限られます。 例えば、実稼働環境でライブラリに変更が加えられたことがない場合に、Natural バージョン 6.1 の FUSER を Natural バージョン 6.2 で使用できます。 ただし、Natural バージョン 6.2 以降とそれより前のバージョンでシステムファイルを共有することはお勧めしません。

Top of page