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 |
|
||||||||
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 | アダプタ |
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 のインストール中に生成されます。 システムおよびユーザーライブラリを表すディレクトリには、以下が含まれています。
FILEDIR.SAG
このファイルには、Natural が使用する内部ライブラリ情報が含まれています。 詳細については、後述の「ファイル
FILEDIR.SAG」を参照してください。
DDM は、ローカルライブラリに保存できます。 Natural は、プログラムによって使用される DDM
を、現在のライブラリ、steplib、ライブラリ SYSTEM
の順に検索します。 DDM
が検出されない場合は、プログラムはコンパイルされず、エラーメッセージが表示されます。 ただし、FDDM モードがアクティブになっている場合は、Natural
はシステムファイル FDDM
のみで DDM を検索します。
システムファイル FNAT
、FUSER
および FDDM
へのパスは、コンフィグレーションユーティリティで定義されます。
システムファイルはバージョンに依存します。 そのため、Natural は、現在の Natural バージョンのシステムファイルにのみアクセスできます。
FNAT
システムファイルは 1 つだけ使用することをお勧めします。 ただし、複数の FUSER
システムファイルを定義することは可能です(例えば、目的に応じて異なる開発エリアがある場合など)。
システムファイル FDDM
は、すべての DDM を保存できるコンテナです。
FDDM
では、次のディレクトリ構造が想定されます。
FDDM SYSTEM FILEDIR.SAG SRC GP
デフォルトでは、システムファイル FDDM
はアクティブではありません。
これを使用するには、次の手順に従って、FDDM モードをアクティブにする必要があります。
FDDM モードがアクティブになっている場合(データベース ID とファイル番号の両方がグローバルコンフィグレーションファイルで 0
ではない場合)は、すべての DDM はシステムファイル FDDM
に保存され読み込まれます。 ライブラリに格納された DDM
は、Natural からアクセスできません。 これは、すべての DDM がシステムファイル FDIC
に保存されるメインフレームと同様です。
FDDM
システムファイルがグローバルコンフィグレーションファイルで定義されていない場合は、DDM は
Natural ライブラリ FUSER
および FNAT
に保存され、FDDM
システムファイルは非アクティブな環境として表示されます。
FDDM モードをアクティブにするには
DDM が FDDM モードで保存される空のディレクトリを作成します。 ディレクトリには、Natural 命名規則に従って任意の名前を付けることができます。
コンフィグレーションユーティリティを呼び出します。
グローバルコンフィグレーションファイル([システムファイル(System
Files)]カテゴリ)で、システムファイル FDDM
にデータベース ID
とファイル番号を割り当て、最初の手順で作成したディレクトリへのパスを定義します。
必要なパラメータファイルを選択します。
パラメータ FDDM
を見つけます。
ヒント:
このパラメータを見つけるには、"FDDM" で検索します。
詳細については、『コンフィグレーションユーティリティ』ドキュメントの「パラメータの検索」を参照してください。
ドロップダウンリストボックスから、パラメータ FDDM
に必要なパスを選択します。
変更内容を保存します。
以下の説明に従って、必要なすべての DDM をシステムファイル FDDM
に移行します。
FDDM モードで使用可能にするすべての DDM を、システムファイル FDDM
に含める必要があります。
特に、Natural で提供されたサンプル DDM(ライブラリ SYSEXDDM
内)は、システムファイル
FDDM
で使用可能である必要があります。
DDM を FDDM
システムファイルに移行する方法は、次の 2 通りあります。
オブジェクトハンドラを使用できます。オブジェクトハンドラは、FDDM
システムファイルをサポートし、DDM を FDDM
システムファイルに移行する機能を提供します。 DDM を Natural
ライブラリからアンロードし、アクティブな Natural セッションで FDDM
システムファイルに保存できます。
重要:
完全な開発環境を移行するために、オブジェクトハンドラの使用をお勧めします。
また、SYSMAIN
のコピー機能や移動機能で DDM を移行したり、以下に記載されているように Natural スタジオのコピー/移動(ドラッグ
& ドロップ)機能を使用したりすることも可能です。 この場合は、古い環境を再使用できるように、FDDM
パラメータを最初に非アクティブにする必要があります。
これらの方法については、以下で詳細に説明します。
注意:INPL
ユーティリティは、DDM を、Natural ライブラリ(FDDM モードが非アクティブな場合)またはシステムファイル
FDDM
(FDDM モードがアクティブな場合)のいずれかにロードします。 これは、ロードされる INPL
ファイルが両方のモードで機能する場合にいくらか影響することがあります。 DDM が Natural ライブラリと FDDM
システムファイルの両方で使用可能である必要がある場合があります。
オブジェクトハンドラを使用して DDM をシステムファイル FDDM
に移行するには
前述したように、FDDM モードを有効にします。
修正したパラメータファイル(つまり、パラメータ FDDM
のパスが定義されたパラメータファイル)を使用して、Natural スタジオを開始します。
メニューの を選択して、オブジェクトハンドラを開始します。
オブジェクトハンドラで
メニューの を選択します。表示されたダイアログボックスで、[Additional Options]オプションボタンを選択し、 ボタンをクリックします。
表示されたダイアログボックスで、[Special]ページを選択します。
[Use FDDM file for DDMs]チェックボックスをオフにします。
これにより、(移行する DDM が含まれる)古い環境が有効になります。 このチェックボックスをオフにしないと、移行する DDM にアクセスできません。
Natural ライブラリに保存されている DDM をアンロードします(ウィザードを使用するか、上級ユーザーモードで行います)。
[Use FDDM file for DDMs]チェックボックスをオンにします(上記の手順を参照)。
これにより、FDDM
システムファイルが含まれる新しい環境が有効になります。
注意:
ライブラリが異なれば、DDM の名前を同一にすることができます。 FDDM
システムファイルで DDM
を上書きするのを防ぎ、同一の名前を持つ DDM を検出するために、[Do not
replace]オプションを使用して DDM をロードすることをお勧めします。 このオプションは、[Use FDDM
file for DDMs]チェックボックスと同じページにあります。
DDM を FDDM
システムファイルにロードします(ウィザードを使用するか、上級ユーザーモードで行います)。
Natural スタジオのコピーまたは移動機能を使用して DDM をシステムファイル FDDM
に移行するには
次に示すように、ダイナミックパラメータ
FDDM=0,0
を使用して、Natural を起動します。
natural FDDM=0,0
これにより、移行する DDM が含まれている古い環境が有効になります。 修正したパラメータファイルで新しい
FDDM
指定を上書きしないと、これらの DDM にアクセスできません。
必要なすべての DDM を Natural ライブラリから指定の FDDM
ファイルのライブラリ
SYSTEM
にコピーまたは移動します。
このファイルは、Natural スタジオの非アクティブな環境として表示されます。
Natural を終了します。
上記のダイナミックパラメータを使用せずに Natural を次回起動するときに、FDDM
システムファイルが使用されます。
すべての DDM をシステムファイル FDDM
に移行したら、FDDM
が使用されているかどうかを確認します。
FDDM
が使用されているかどうかを確認するには
Natural を起動します。
システムファイル」も参照してください。
メニューの を選択します。 『Natural スタジオの使用』ドキュメントの「[SYSPROF]ダイアログボックスが表示されます。
FDDM
ファイルが表示される場合は、Natural はこのシステムファイルに保存されている DDM
のみにアクセスします。
FDDM
ファイルが表示されないか予期したファイルが表示されない場合は、セッションに使用されるパラメータファイルを修正してください。
Natural 開発者は、すべてのオブジェクトに対する読み取り、書き込み、および削除の権限を持っている必要があります。
エンドユーザーは、生成プログラムに対する読み取り権限のみ(および特別な場合はソースに対する読み取り権限)を持っている必要があります。
オペレーティングシステムユーティリティで Natural ファイルにアクセスしないでください。 これらのユーティリティは、Natural ディレクトリ情報を変更したり破壊したりする可能性があります。
FNAT
、FUSER
、および FDDM
ディレクトリにプライベートデータファイルを保存しないでください。Natural によって予期せぬ方法で削除されたり変更されたりするおそれがあります。
FNAT
、FUSER
、および FDDM
ディレクトリを
Windows アプリケーション用の作業ディレクトリとして使用しないでください。Natural
システムコマンドを発行するときに問題が発生するおそれがあります。
Natural によってアクセスされるオブジェクトのファイル名(8.3 フォーマットのファイル名を含むパス)は 255 バイト以下にする必要があります。
ファイル FILEDIR.SAG は、最大 60000 オブジェクトをサポートします。 このファイルには、オブジェクトのプログラミングモード(ストラクチャードまたはレポーティング)や、内部的に変換されたオブジェクト名など、Natural で使用される内部ライブラリ情報が含まれます。 Natural オブジェクトを次の名前でディスクに保存するときに、これらの内部オブジェクト名が自動的に作成されます。
8 文字を超える名前(DDM の場合など)
Natural ではサポートされるがオペレーティングシステムではサポートされない特殊文字を含む名前
内部オブジェクト名は一意であり、現在のオブジェクト名の省略形と任意の番号で構成されます。 現在のオブジェクト名および対応する内部オブジェクト名は両方とも FILEDIR.SAG に記述されます。
オブジェクトが正しいディレクトリに配置されている場合でも、このライブラリ情報が FILEDIR.SAG に含まれた後にのみ、Natural はそれを使用できます。 Natural 内で作成されたオブジェクトについては、ライブラリ情報は自動的に含まれます。 その他のオブジェクトをインポートする方法については、『Natural スタジオの使用』ドキュメントの「オブジェクトのインポート」セクションを参照してください。
FTOUCH
ユーティリティを使用すると、Natural に入らずに FILEDIR.SAG を更新できます。
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.SAG に
PGMX
および PGMx
という名前でエントリを取得します。 これらの 2
つのオブジェクトは、次のように Natural が実行される環境に応じて処理が異なります。
Natural for UNIX で PGMX
を実行すると、ファイル
PGMX.NGP がバッファプールにロードされ実行されます。
Natural for Windows で PGMX
を実行すると、ファイル
PGMX.NGP または PGMx.NGP
がバッファプールにロードされ実行されます。 これは、Windows がこれらの 2 つのオブジェクトを区別せずに 1 つの同じオブジェクトとして扱うためです。
そのため、FUSER
または FUSER
のコピーを共有するアプリケーションの動作が異なる場合があります。
バージョン 6.2 以降の Natural では、プラットフォーム固有の古い FILEDIR.SAG ファイルをそれが以前に生成されたプラットフォームで読み取ることができますが、古い FILEDIR.SAG ファイルを変更することはできません。 古い FILEDIR.SAG ファイルを含むライブラリが変更のためにアクセスされると、変更が行われる前に、FILEDIR.SAG は新しいフォーマットに変換されます。
重要:
以下に挙げられた(FILEDIR.SAG が変換される)手順を実行する前に、古い
FUSER
システムファイルのバックアップコピーを作成することをお勧めします。
次のように、古い FILEDIR.SAG ファイルが新しいフォーマットに変換される可能性は多数あります。
バージョン 6.2 以降の Natural では、変更のためにアクセスされると、古い
FILEDIR.SAG フォーマットが自動的に変換されます。
この動作はユーザーには完全に透過的で、どのような場合でも強制されません。 変更のためのアクセスとは、新しいソースの
SAVE
、ソースの
CATALOG
、CATALL
などです。 コピー操作では、コピー先ライブラリとコピー先ライブラリの FILEDIR.SAG
ファイルが変更されます。 移動操作では、オブジェクトがソースライブラリで削除される必要があるため、ソースライブラリが追加で変更されます。
いずれの場合でも、元の FILEDIR.SAG ファイルはライブラリディレクトリに
FILEDIR.BCK として保存されます。
変換されるすべてのライブラリは、オブジェクトハンドラ(SYSOBJH
)でアンロードできます。
結果のワークファイルが新しい FUSER
システムファイルに再ロードされると、すべてのライブラリが新しい
FILEDIR.SAG 構造で生成されます。
ユーティリティ FTOUCH
は、指定されたライブラリの
FILEDIR.SAG ファイルを新しい構造に変換するオプション convert
を提供します。 元の FILEDIR.SAG ファイルは、ライブラリディレクトリに
FILEDIR.BCK として残ります。 構文および使用例については、FTOUCH
ユーティリティの説明を参照してください。
ユーティリティ SYSMAIN
のコピー機能または Natural スタジオのドラッグ &
ドロップ(コピーおよび貼り付け)機能を使用して、ライブラリの完全なセットを古いフォーマットの
FUSER
システムファイルから新しい FUSER
システムファイルにコピーできます。 コピー先の
FUSER
では、FILEDIR.SAG
ファイルが新しい構造で自動的に生成されます。
Natural バージョン 6.2 より前の Natural では、移植可能な新しい
FILEDIR.SAG ファイルのライブラリにアクセスできません。 そのため、Natural バージョン 6.2
以降とそれより前のバージョンでシステムファイルを共有することはできません。 共有が可能なのは、すべてのライブラリが古い
FILEDIR.SAG フォーマットのままで、変更のためのアクセスが行われたことがない場合に限られます。
例えば、実稼働環境でライブラリに変更が加えられたことがない場合に、Natural バージョン 6.1 の FUSER
を
Natural バージョン 6.2 で使用できます。 ただし、Natural バージョン 6.2
以降とそれより前のバージョンでシステムファイルを共有することはお勧めしません。