DEFINE WORK FILE

DEFINE WORK FILE n

operand1 [TYPEoperand2]
TYPEoperand2

[ATTRIBUTES {operand3}...]

注意:
角カッコ [...] で示されている要素はオプションですが、このステートメントではこれらのオプションの少なくとも 1 つを指定する必要があります。

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

構文図で使用されている記号については、「構文記号」を参照してください。

関連ステートメント:CLOSE WORK FILE | READ WORK FILE | WRITE WORK FILE

関連機能グループ:ワークファイル/PC ファイルの制御


関数

DEFINE WORK FILE ステートメントは、Natural アプリケーション内で Natural ワークファイル番号にファイル名を割り当てるために使用します。このステートメントを使用することで、Natural セッション内でワークファイルの割り当てをダイナミックに行ったり、変更することができます。また、別のレベルで作成したワークファイルの割り当てを上書きすることもできます。『オペレーション』ドキュメントの「ワークファイル」も参照してください。

このステートメントを実行したときに、指定したワークファイルがすでに開かれていると、ワークファイルはこのステートメントによって暗黙的に閉じられます。

注意:
Windows、UNIX および OpenVMS プラットフォームでの Unicode およびコードページのサポートについては、『Unicode およびコードページのサポート』ドキュメントの「ワークファイルおよび出力ファイル」を参照してください。

構文説明

オペランド定義テーブル:

オペランド 構文要素 フォーマット オペランド参照 ダイナミック定義
operand1 C S       A U                     ×
operand2 C S       A U                     ×
operand3 C S       A U                     ×

注意:
フォーマット U オペランドを Unicode(UTF-16)で指定すると、このオペランドは評価の前にセッションコードページ文字に変換されます。

構文要素の説明:

構文要素 説明
DEFINE WORK FILE n
ワークファイル番号:

n は、ワークファイル番号です(1~32)。この番号は WRITE WORK FILEREAD WORK FILE、または CLOSE WORK FILE ステートメントで使用されます。

operand1
ワークファイル名:

operand1 は、ワークファイルの名前です。

ファイル名(operand1)には、環境変数を含めることもできます。物理ワークファイル名を使用することも可能です。指定した名前のファイルが存在しない場合は、新規のファイルが作成されます。

operand1 を指定しない場合は、コンフィグレーションユーティリティで対応するワークファイル番号のパラメータファイルに保存されたワークファイル名によって、operand1 の値が決定されます。

注意:
operand1 が指定されていない場合、Natural for Mainframes と Natural for Windows/UNIX/OpenVMS の動作は異なります。

TYPE operand2
TYPE 節:

operand2 はワークファイルのタイプを指定します。WRITE WORK FILE ステートメントの説明の「ラージ変数およびダイナミック変数の処理」も参照してください。

operand2 の値は、大文字と小文字が区別されません。値は引用符で囲むか、英数字の変数で指定する必要があります。

DEFAULT

拡張子からファイルタイプを特定します。

フォーマット:ワークファイルタイプによって異なります。

注意:
ファイルタイプ TRANSFER は、ワークファイルタイプ DEFAULT によって特定することができません。使用するファイルタイプとして、TRANSFER を明示的に定義する必要があります。

TRANSFER

Entire Connection と PC の間で両方向のデータ転送を行うために使用します。

このワークファイルタイプは、UNIX または OpenVMS 上の Natural セッションと PC 上の Entire Connection 末端の間のデータ接続を示します。

フォーマット:ENTIRE CONNECTION

注意:

  1. このワークファイルは、ATTRIBUTES 節と一緒に使用することはできません。
  2. このワークファイルタイプは、Windows 環境では利用できません。
SAG フォーマット:バイナリ
ASCII

ASCII フォーマットのファイルは、[キャリッジリターン] 改行で終了するレコードを含む "テキスト" ファイルです。

フォーマット:ASCII

ASCII-COMPRESSED

ASCII フォーマットのファイルですが、通常の ASCII フォーマットとは異なり、末尾にある空白はすべて削除されます。

フォーマット:ASCII

ENTIRECONNECTION

このワークファイルタイプでは、ローカルディスクにある Entire Connection フォーマットのワークファイルに対して直接読み取りおよび書き込みを行うことができます(例えば、ステートメント READWRITE を使用)。

フォーマット:ENTIRE CONNECTION

注意:
このワークファイルタイプは、PC、UNIX、および OpenVMS 上で利用できます。PC へは転送できません。Entire Connection 末端はこの処理では使用されません。

UNFORMATTED

フォーマットがまったく行われていないファイル。フォーマット情報が書き込まれていません(フィールドまたはレコードのいずれにも)。

フォーマット:UNFORMATTED

PORTABLE

正確にダイナミック変数を操作できるファイルで転送することも可能です(例:リトルエンディアンマシンとビッグエンディアンマシンの間)。

フォーマット:PORTABLE

CSV

コンマ区切りの値。各レコードは、ファイル内の 1 つの行に書き込まれます。デフォルトでは、ヘッダーは書き込まれません。データフィールドを区切るために使用されるデフォルト文字はセミコロン(;)です。

詳細については、『コンフィグレーションユーティリティ』の「ワークファイル」を参照してください。

ATTRIBUTES {operand3}...
ATTRIBUTES 節:

operand3 では、ワークファイル属性を指定します。

複数の属性を、次の例のようにコンマまたは空白で区切って指定できます。

DEFINE WORK FILE ATTRIBUTES 'APPEND,KEEP'

同じ属性タイプの値を複数指定した場合は、次の例のように最後の値が使用されます。

DEFINE WORK FILE ATTRIBUTES 'APPEND,NOAPPEND'

この例では、NOAPPEND が使用されます。

BOM/NOBOM の使用例:

...
DEFINE WORK FILE 11 'x.tmp' ATTRIBUTES 'BOM'
*
* write work file with BOM
*
DEFINE WORK FILE 11 'x.tmp' ATTRIBUTES 'NOBOM'
*
* write work file without BOM
...

注意:
operand3 を省略した場合は、パラメータファイル(コンフィグレーションユーティリティで作成された)で定義されている対応する値が暗黙的に使用されます。

次の表に、属性タイプの概要および設定可能な値を示します。

追加モード:
NOAPPEND 追加モードを無効にします。ファイルは先頭から再書き込みされます。これはデフォルト値です。
APPEND 追加モードを有効にします。このモードでは、新規レコードはファイルの末尾に追加されます。
ワークファイルを閉じた後のファイルの保持/削除:
DELETE ワークファイルを閉じる操作が完了すると、ワークファイルは削除されます。
KEEP ワークファイルを閉じる操作が完了した後も、ワークファイルは保持されます。これはデフォルト値です。
バイトオーダマーク(BOM)を書き込む:
BOM ワークファイルデータの前にバイトオーダマークが書き込まれます。

コードページデータを書き込むワークファイルタイプでのみ使用できます。ASCIIASCII-COMPRESSEDUNFORMATTED および CSV。これらのワークファイルタイプでは、ワークファイルにコードページ UTF-8 が定義されている場合にのみ属性 BOM を設定できます(TYPE 節の説明を参照)。

別のタイプのワークファイルが書き込まれる場合、または UTF-8 以外のコードページが定義されている場合は、ランタイムで属性 BOM の指定が無視されます。

Unicode およびコードページのサポート』ドキュメントの「Windows、UNIX、および OpenVMS プラットフォーム上のワークファイルと出力ファイル」も参照してください。

NOBOM ワークファイルデータの前に書き込まれたバイトオーダマークはありません。これはデフォルト値です。
改行の削除/保持:
KEEPCR ASCII ワークファイルを読み取るときに、改行文字が保持されます。

この属性は ASCII ワークファイルにのみ該当します。ASCII または ASCII-COMPRESSED 以外のタイプのワークファイルが読み込まれた場合、ランタイム時に属性 KEEPCR の仕様は無視されます。

注意:
KEEPCR は慎重に使用してください。ASCII フォーマットは、英数字データにのみ推奨されます。バイナリデータは ASCII ワークファイルを使用して処理しないでください。KEEPCR を使用する場合、ワークファイルレコードに改行文字が含まれる可能性があります。

KEEPCR の使用が適切なのは、UNIX または OpenVMS で書き込まれた ASCII ワークファイルを読み取る場合のみです。Windows で書き込まれた ASCII ファイルに KEEPCR を使用するのは無意味です。

REMOVECR ASCII ワークファイルを読み取るときに、改行文字が削除されます。これはデフォルト値です。

この属性は ASCII ワークファイルにのみ該当します。ASCII または ASCII-COMPRESSED 以外のタイプのワークファイルが読み込まれた場合、ランタイム時に属性 REMOVECR の仕様は無視されます。