9.212 START_FILE_EDIT

LANSA

9.212 START_FILE_EDIT


Þ 注:組み込み関数の規則

指定されたLANSAファイル定義の定義上で「編集セッション」を開始します。

編集セッションでは、新しいファイルを定義したり、既存のファイルを変更したりすることができます。

編集セッション中、ファイル定義はロックされ、他のユーザーが使用することはできません。

1度に編集できるファイル定義は、1つだけです(つまり、同じジョブ内からの2つのファイル定義を同時に編集することはできません)。

新しいファイル定義または変更したファイル定義の詳細は、END_FILE_EDIT組み込み関数を使用して「コミット」しないと失われます。

Þこれは、 開発環境のみで使用される特殊BIF です。

各製品の対応

LANSA/AD

使用可

IBM iのRDMLX区画では使用しないでください。

Visual LANSA for Windows

使用可

 

Visual LANSA for Linux

未対応 

 

引数

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

1

A

必須

編集するファイルの名前

1

10

 

 

2

A

必須

ファイルが存在するライブラリ

既存のファイル定義を編集する場合、*LIBLまたは*FIRSTを指定することができます。

既存のファイル定義を編集する、または新しいファイル定義を作成する場合、*DEFAULTを指定することができます。

注:*FIRST、 *DEFAULT、*LIBLなどをコーディングするとき、これらをシステム変数ではなくリテラルとして区別するために、追加の引用符を使用する必要があります。したがって、'''*FIRST'''のように、引数を3つの単一引用符で囲んでコーディングする必要があります。
"'*FIRST'"のように二重引用符と一重引用符を使用してコーディングしないでください。
「例」を参照してください。

1

10

 

 

3 **

A

必須

編集される詳細のソース。ブランク、LAN、OTHを指定することはできません。

3

3

 

 

4

A

任意

ファイル記述をブランクにすることはできません。新規ファイルの作成時に必要です。

1

40

 

 

5

A

任意

権限。新規ファイルの作成時に必要です。ALL、NORMAL、NONEを指定することができます。

1

6

 

 

6

A

任意

ファイル・コンポーネント編集オプション

バイト1:YまたはNによって、フィールドを編集するかどうかを指定します。デフォルトはYです。

バイト2:YまたはNによって、論理ビュー/ファイルを編集するかどうかを指定します。デフォルトはYです。

バイト3:YまたはNによって、アクセス経路の詳細を編集するかどうかを指定します。デフォルトはYです。

バイトがNとして渡された場合、関連するファイル定義のコンポーネントは編集セッション中に変更されず、以下に示すように削除保留のフラグは立てられません。このようなファイル定義のコンポーネントを編集しようとすると、致命的なエラーが発生します。

3

3

 

 

** 編集される詳細の「ソース」は重要です。編集セッションが開始されると、START_FILE_EDIT組み込み関数に渡されたソースと同じ「ソース」を持つファイル定義の詳細すべてに削除保留フラグが立てられます。FILE_FIELD、LOGICAL_VIEWなどの組み込み関数のいずれかによって詳細が「再指定」されない場合、詳細は、END_FILE_EDIT組み込み関数によってファイル定義から削除されます。例外は、前述の6番目の引数で1つ以上のバイト位置を使用することによって、特定の詳細を編集から除外している場合です。これによって、別のソース(「ファイル制御メニュー」でLANSA のファイル定義の表示/変更機能を使用した直接入力など)によって指定されたファイルの詳細をファイル編集セッション中に元の状態のまま維持することができます。

次に、この「ソース」コードの例を挙げます。

LDM

LANSA データ・モデリング・インターフェース

IEW

インフォメーション・エンジニアリング・ワークベンチ・インターフェース

ACC

アクセラレート・データ・モデリング・インターフェース

ソース・コードを設定した後は、特定のタイプのインターフェース内で、使用するソース・コードを変更しないでください。

戻り値

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

1

A

必須

戻りコード

OK = 編集セッションが開始された

ER = 致命的なエラーが検出された

戻りコードがERの場合、エラー・メッセージが自動的に出力され、編集セッションはコミットなしで終了します。

2

2

 

 

次の例では、従来のメニュー形式のインターフェースではなく、組み込み関数を使用することによって、NAMESという名前と住所の簡単なファイルの全詳細を定義しています。

*** Define the fields into the data dictionary (no prompting)
*
USE     BUILTIN(PUT_FIELD) WITH_ARGS('N' 'CUSTNO' 'S' 007 0 ' '  
        'Customer number') TO_GET(#RETCODE)
USE     BUILTIN(PUT_FIELD) WITH_ARGS('N' 'CUSNAME' 'A' 010 0 ' '  
        'Customer name') TO_GET(#RETCODE)
USE     BUILTIN(PUT_FIELD) WITH_ARGS('N' 'ADDRESS1' 'A' 020 0 ' '  
        'Address line 1') TO_GET(#RETCODE)
USE     BUILTIN(PUT_FIELD) WITH_ARGS('N' 'ADDRESS2' 'A' 020 0 ' '  
        'Address line 2') TO_GET(#RETCODE)
USE     BUILTIN(PUT_FIELD)WITH_ARGS('N' 'ZIPCODE' 'S' 006 0 ' '  
        'Zip code') TO_GET(#RETCODE)
*
*** Start an edit session on the new file NAMES in library QGPL
*
USE     BUILTIN(START_FILE_EDIT) WITH_ARGS('NAMES' 'QGPL' 'DEM' 
           'Customer details' 'NORMAL') TO_GET(#RETCODE)
*
*** Use of triple quotes round *FIRST and *DEFAULT libraries
*
USE     BUILTIN(START_FILE_EDIT) WITH_ARGS('CODES' '''*FIRST''' 'TST' 'Codes details' 'NORMAL') TO_GET(#RETCODE)
*
USE     BUILTIN(START_FILE_EDIT) WITH_ARGS('SALES' '''*DEFAULT''' 'PRD' 'Sales results' 'NORMAL') TO_GET(#RETCODE)
*
*** Define the fields in the file
USE     BUILTIN(FILE_FIELD) WITH_ARGS('CUSTNO') TO_GET(#RETCODE)
USE     BUILTIN(FILE_FIELD) WITH_ARGS('CUSNAME') TO_GET(#RETCODE)
USE     BUILTIN(FILE_FIELD) WITH_ARGS('ADDRESS1') TO_GET(#RETCODE)
USE     BUILTIN(FILE_FIELD) WITH_ARGS('ADDRESS2') TO_GET(#RETCODE)
USE     BUILTIN(FILE_FIELD) WITH_ARGS('ZIPCODE') TO_GET(#RETCODE)
*** Define the primary or relational file key
*
USE     BUILTIN(PHYSICAL_KEY) WITH_ARGS('CUSTNO') TO_GET(#RETCODE)
*
*** Define additional logical view in CUSNAME / ZIPCODE order
USE     BUILTIN(LOGICAL_VIEW) WITH_ARGS('NAMESV1' 'Customers in name order') TO_GET(#RETCODE)
*
*** Define keys of logical view NAMESV1
USE     BUILTIN(LOGICAL_KEY) WITH_ARGS('NAMESV1' 'CUSNAME') TO_GET(#RETCODE)
USE     BUILTIN(LOGICAL_KEY) WITH_ARGS('NAMESV1' 'ZIPCODE') TO_GET(#RETCODE)

*** Define "one to one" access route to ZIPTABLE by using key ZIPCODE
USE     BUILTIN(ACCESS_RTE) WITH_ARGS('DEM1' 'Zip details' 'ZIPTABLE' '''*FIRST''' 1 'N/AVAIL') TO_GET(#RETCODE)
USE     BUILTIN(ACCESS_RTE_KEY) WITH_ARGS('DEM1' 'ZIPCODE') TO_GET(#RETCODE)
*
*** Define "one to many" access route to ORDHDRV2 using key CUSTNO
USE     BUILTIN(ACCESS_RTE) WITH_ARGS('DEM2' 'Order details' 'ORDHDRV2' '''*FIRST''' 999 'IGNORE') TO_GET(#RETCODE)
USE     BUILTIN(ACCESS_RTE_KEY) WITH_ARGS('DEM2' 'CUSTNO') TO_GET(#RETCODE)
*
*** End the edit session and commit details
USE     BUILTIN(END_FILE_EDIT) WITH_ARGS('Y') TO_GET(#RETCODE)