バージョン 4.2.5
 —  エディタ  —

DDM エディタ画面の使用

DDM エディタの画面([Edit DDM]画面)はテーブルで構成されており、フィールド定義データは行および列に含まれています。 DDM に定義されているフィールドに属するすべての属性は、1 行(ソースコード行)に含まれており、タブで区切られています。

このセクションでは、DDM エディタ画面の列について説明し、DDM フィールドの作成と変更、画面内の移動、DDM ソースの作成などを実行できるコマンドについて説明します。


DDM ヘッダー情報

このセクションでは、[Edit DDM]画面上部のヘッダーに含まれるフィールドについて説明します。

DDM ヘッダーフィールドの説明

ヘッダーフィールド 説明
Edit DDMDDM-type
画面タイトル Edit DDM の隣に表示されるカッコで囲まれた値は、DDM のタイプを表します。次に例を示します。
   
ADA Adabas
VSAM VSAM
DB2 DB2
DL/I DL/I
PROCESS Entire System Server
CMD-PROC コマンドプロセッサ
SNAT Super Natural
ENTIREDB Entire DB Engine
DBID

データベース ID(DBID)です。DBID については、「DDM の指定」の DBID の説明を参照してください。

FNR データベースで参照されるファイル番号です。FNR については、「DDM の指定」の FNR の説明を参照してください。
DDM Name DDM エディタのワークエリアに現在含まれている DDM の名前です。
Def.Seq.

Natural プログラムの READ LOGICAL ステートメントを使用してアクセスするときの、ファイル読み込みのデフォルト順序です。 『ステートメント』ドキュメントの READ ステートメントの説明も参照してください。

デフォルト順序は、2 文字のフィールドのショートネームを使用して指定します。 ショートネームは、選択したファイル番号に基づいて検証されます。 データベースがアクセス可能な場合、データベースファイルの対応するフィールドに対し、ショートネームがチェックされます。 該当するフィールドがデータベースに存在しない場合、有効なショートネームの選択リストが表示されます。 データベースにアクセスできない場合、選択リストは生成されません。

このフィールドの内容は変更可能です。

Top of page

フィールド属性列

このセクションでは、[Edit DDM]画面の行や列に定義できるフィールド属性について説明します。

列見出し フィールド属性
I
行インジケータ。

行の隣に、次の文字のいずれかが表示されます。

   
E CHECK コマンドの実行中にエラーが検出された行です。
エディタおよびシステムコマンド」の CHECK の説明も参照してください。
   
S スキャンされた値が含まれている行です。
エディタおよびシステムコマンド」の SCAN の説明も参照してください。
   
X 行コマンド」で説明しているように、行はコピーまたは移動操作のためにマークされます。
   
Y 行コマンド」で説明しているように、行はコピーまたは移動操作のためにマークされます。
T
フィールドのタイプ。
   
空白 エレメンタリフィールド。
このタイプのフィールドは、データを保持できますが、他のフィールドを含むことはできません。
レコード内に値を 1 つのみ持つことができます。
   
C Adabas ファイルを参照する DDM にのみ適用されます。
この DDM に対し、ファイルが物理的にカップリングされていることを示します。 ファイルは Adabas ディスクリプタを使用してカップリングされます。
ファイルカップリングの詳細については、『Adabas』ドキュメントを参照してください。
   
G グループ。
グループは、共通のグループ名を使用して定義されたフィールドの集まりです。 これにより、個別のフィールドすべての名前ではなく、グループ名を使用して、複数のフィールドをまとめて参照することができます。 このようなフィールドはデータを保持することができず、他のフィールドのコンテナに過ぎません。

注意:
DDM に定義するグループは、必ずしもその DDM が参照する Natural オブジェクトのグループとして定義されている必要はありません。

   
M マルチプルバリューフィールド。
このタイプのフィールドは、レコード内に複数の値を持つことができます。
プログラミングガイド』の「マルチプルバリューフィールド」も参照してください。
   
P ピリオディックグループ。
1 つのレコードに複数の値を含めることのできるフィールドのグループ。
プログラミングガイド』の「ピリオディックグループ」も参照してください。
   
* コメント行。
L フィールドに割り当てるレベル番号。

レベルは、フィールド定義の構造およびグループ化を示すために使用します。 このレベルは、ビュー定義再定義、およびフィールドグループのレベルと対応しています(『プログラミングガイド』の該当するセクションを参照)。

有効なレベル番号は 17 です。

レベル番号は、連続した昇順で指定する必要があります。

DB

Adabas ファイルの場合、[DB]列にはデータベースファイル内の対応するフィールドの 2 文字のショートネームが表示されます。

DL/I セグメントタイプの場合、[DB]列には DL/I で使用されている 2 文字のコードが表示されます。

VSAM ファイルについては、『Natural for VSAM』ドキュメントを参照してください。

タイプ C のフィールドの場合(属性 T を参照)、この列には、ファイルカップリングに使用される Adabas ディスクリプタのショートネームが含まれます。

Name フィールドの名前。

Adabas のフィールドおよび SQL の列の場合は 3~32 文字、DL/I の名前の場合は 1~19 文字になります。

名前を作成する規則はユーザー定義変数の命名規則に準拠します(『Natural の使用』ドキュメントを参照)。ただし、名前の最初の文字は常に大文字のラテン文字(A~Z)にする必要があります。 また、名前を L@N@、または O@@ は 16 進値 H'7C' を持つ文字)で始めることはできません。 これらの接頭辞を使用して、次のセクションの説明のように、インジケータフィールドが識別されます。

フィールド名は、別の Natural オブジェクト(プログラムなど)でフィールドを参照するために使用される名前です。

フィールド名は、DDM 全体で一意です。

タイプ C のフィールドの場合(属性 T を参照)、この列には、ファイルカップリングに使用される Adabas ディスクリプタのショートネームが含まれます。

F A(英数字)、P(パック型数値)、L(論理)などの、エレメンタリフィールドの Natural データフォーマットです。

有効な Natural データフォーマットについては、『プログラミングガイド』の「ユーザー定義変数のフォーマットおよび長さ」を参照してください。

Leng
エレメンタリフィールドの標準長。

この長さは、Natural プログラムで上書きできます。

数値フィールド(Natural データフォーマット N)の場合、nn.m の形式で長さを指定します。nn は小数点の前の桁数、m は小数点の後の桁数を表します。

 
Leng]入力フィールドには、数値としてフィールド長を指定することも、フィールド長が変数であることを示すキーワード DYNAMIC を入力することもできます。

タイプ C のフィールドの場合(属性 T を参照)、この列には、ファイルカップリングに使用される DDM の名前が含まれます。

S
VSAM では使用できません。

空値抑制オプション。

   
空白 Adabas の標準の抑制が使用されることを示します。英数字フィールドの末尾の空白、および数値フィールドの先行ゼロが抑制されます。
   
F Adabas の固定ストレージオプションを使用してフィールドが定義されていることを示します。つまり、抑制は行われず、フィールドは圧縮なしで保存されます。
   
N Adabas の空値抑制オプションを使用してフィールドが定義されていることを示します。 これは、フィールドの空値がインバーテッドリストに保存されないため、FIND ステートメントの WITH 節、HISTOGRAM ステートメント、または READ LOGICAL ステートメントでフィールドが使用されたときに空値が返されないことを意味します。

[Remark]列に[NC](カウントなし)が指定されている場合、この列の N は、SQL の空値オプションを使用してフィールドが定義されていることを示します。 このフィールドの下には、対応する空値インジケータフィールドが表示されます。

   
M SQL の空値オプション not null を使用してフィールドが定義されていることを示します。 このフィールドの[Remark]フィールド(「拡張フィールド属性の指定」を参照)には、NN NCnot nullnot counted)が使用されます。 このフィールドの下には、対応する空値インジケータフィールドが表示されます。
D
配列ではないエレメンタリフィールドの Adabas ディスクリプタタイプ。

ディスクリプタは、READ ステートメントまたは FIND ステートメントを使用して実行するデータベース検索の基準として使用できます。 例えば、[D]列が[D]または[S]の Adabas データベースのフィールドは、READ ステートメントの BY 節に使用できます。 READ ステートメントを使用してデータベースからレコードが読み込まれると、この列が[D]または[S]であるすべてのフィールドを DISPLAY ステートメントで参照できます。

ディスクリプタタイプは次のとおりです。
   
空白 非ディスクリプタ。
このフィールドはディスクリプタではありません。
   
A このフィールドが VSAM ファイルの代替インデックスであることを示します。
   
D エレメンタリディスクリプタ。
FIND ステートメントの検索条件および FIND ステートメントのソートキーとして使用する、または READ ステートメントでの論理順読み込みを制御するために、このフィールドの値リストが Adabas によって作成および管理されます。
   
H ハイパーディスクリプタ。
ハイパーディスクリプタは Adabas のユーザー出口です。 Natural では、フォネティックディスクリプタと同じ機能を提供します(下記参照)。
   
N 非ディスクリプタ。
非ディスクリプタはディスクリプタではありませんが、非ディスクリプタ検索で検索フィールドとして使用できます。
   
P フォネティックディスクリプタ。
フォネティックディスクリプタによって、フィールドのフォネティック検索(人の名前など)を実行できます。 フォネティック検索では、発音が検索値に類似するすべての値が返されます。
   
S スーパーディスクリプタ。
スーパーディスクリプタにマルチプルバリューフィールド、ピリオディックグループのフィールド、またはこれらのフィールドの一部が含まれている場合、このスーパーディスクリプタのフィールドタイプの列 TM または P がマークされます。これにより、Natural では、このスーパーディスクリプタに対する検索アルゴリズムを適切に作成できます。
DL/I セグメントタイプの場合、S は、親セグメントの検索フィールドであるスーパーディスクリプタを示します。
   
U サブディスクリプタまたは照合ディスクリプタ。
サブディスクリプタにマルチプルバリューフィールド、ピリオディックグループのフィールド、またはこれらのフィールドの一部が含まれている場合、このサブディスクリプタのフィールドタイプの列 TM をマークする必要があります。 これにより、Natural では、このサブディスクリプタに対する検索アルゴリズムを適切に作成できます。
照合ディスクリプタは、ディスクリプタフィールド値を標準でない順序でソート(照合)するために使用します。 フィールドが照合ディスクリプタの場合、Collation 5 on AA のように、Collation + 照合順序(1~8)を持つ Adabas ユーザー出口の番号 + 照合順序を適用する親フィールドのショートネームが[Remark]列(下記参照)に設定されます。
   
X VSAM ファイルの代替インデックスである、代替サブディスクリプタまたはスーパーディスクリプタ。
 
VSAM ファイルについては、『Natural for VSAM』ドキュメントを参照してください。

タイプ C のフィールドの場合(属性 T を参照)、この列には、ファイルカップリングに使用される DDM の名前が含まれます。

Remark フィールド/DDM に適用されるコメント。

インジケータフィールド

インジケータフィールドは、可変長フィールドの長さ、またはデータベースフィールドのデータの有意性(空値インジケータ)に関する情報を取得するために使用します。 インジケータフィールドには、データベースフィールドの内容は格納されていません

L@N@、または O@@ は 16 進値 H'7C' を持つ文字)で始まるデータベースフィールド名は、インジケータフィールドとして解釈されます。 したがって、インジケータフィールドでないフィールドの場合、これらの文字列以外でデータベースフィールド名を始める必要があります。

DDM が最初に生成されるときは、次の処理が実行されます。

Top of page

編集および機能実行のためのコマンド

このセクションでは、[Edit DDM]画面で使用できるコマンドに関する情報について説明します。

行コマンドは、単一または複数のソースコード行をコピー、削除、挿入、および移動するために使用します。 また、行コマンドは拡張フィールド編集機能の起動にも使用します(「拡張フィールド属性の指定」を参照)。

エディタコマンドまたはシステムコマンドは、[Edit DDM]画面から、特定の行コマンド、DDM ソース内の移動、および SYSDDM 機能を直接実行するためなどに使用します。

このセクションでは、次のトピックについて説明します。

コマンドのヘルプ

このセクションでは、[Edit DDM]画面で使用できるコマンドのヘルプ情報を取得する方法について説明します。

Start of instruction setコマンドのヘルプ情報を表示するには

  1. [Edit DDM]画面のコマンド行に、「HELP」と入力します。

    または:
    [Edit DDM]画面のコマンド行に、疑問符(?)を入力します。

    [Editor Help Info]画面が表示されます。

  2. ヘルプテキストをスクロールダウンするには、および[Editor Help Info]画面を終了するには、Enter キーを押します。

    [Edit DDM]画面が表示されます。

行コマンド

このセクションでは、[Edit DDM]画面で使用できるすべての行コマンドとその実行方法について説明します。

Start of instruction set行コマンドを実行するには

  1. [Edit DDM]画面上で、コマンドを適用するソース行(複数可)の隣の列[T]にカーソルを移動し、行コマンドを入力して列[T][L][DB]、または[Name]の既存の値を上書きします。

  2. Enter キーを押します。

行コマンド Explanation
.C(nn) コマンドを入力した行の下に、行が 1 行または nn 行コピーされます。
.CX(nn) コマンドを入力した行の下に、.X でマークした行が 1 回または nn 回コピーされます。
.CY(nn) コマンドを入力した行の下に、.Y でマークした行が 1 回または nn 回コピーされます。
.CX-Y(nn) 行のブロックをコピーまたは移動するには」の説明のように、行ブロックが 1 回または nn 回コピーされます。
.D(nnnn) コマンドを入力した行、またはその行から始まる nnnn 行が削除されます。

nnnn が指定されていない場合、デフォルトで 1 行が削除されます。

.Enn 拡張フィールド属性の指定」の説明のように、拡張フィールド属性編集機能が起動されます。
.I(nn) コマンドを入力した行の下に空行が nn 行挿入されます。nn には 1~10 を指定できます。 (もう 1 回 Enter キーを押すと、空行が再び削除されます。)

nn が指定されていない(または適切でない)場合、デフォルトで 10 行が挿入されます。

ソースコードに行を追加するには、エディタコマンド ADD を使用します。

.MX コマンドを入力した行の下に、.X でマークした行が移動します。
.MY コマンドを入力した行の下に、.Y でマークした行が移動します。
.MX-Y 行のブロックをコピーまたは移動するには」の説明のように、行ブロックが移動します。
.X コピーまたは移動する単一の行または行ブロックの最初の行をマークします。

マークされた行は、列 IX が表示されます。

行のブロックをコピーまたは移動するには」も参照してください。

.Y コピーまたは移動する行ブロックの最後の行をマークします。

マークされた行は、列 IY が表示されます。

行のブロックをコピーまたは移動するには」も参照してください。

Start of instruction set行のブロックをコピーまたは移動するには

  1. コピーまたは移動する行ブロックの最初の行に、次の行コマンドを入力します。

    .X

    コピーまたは移動する行ブロックの最後の行に、次の行コマンドを入力します。

    .Y
  2. Enter キーを押します。

    行ブロックは、列[I]X および Y によって区切られます。

  3. マークしたブロックのコピー先または移動先の上の行に、次の行コマンドを入力します。

    .CX-Y (nn)

    または

    .MX-Y

    C はコピーを表し、M は移動を表します。 nn は、マークしたブロックがコピーされる回数を示します。nn を指定していない場合、ブロックはデフォルトで 1 回コピーされます。

  4. Enter キーを押します。

    マークした行が、コマンドを入力した行の下にコピー(1 回または nn 回)、または移動されます。

エディタおよびシステムコマンド

このセクションでは、[Edit DDM]画面で使用できるエディタコマンドおよび Natural システムコマンドと、それに対応する PF キー(対応するキーがある場合)について説明します。

Start of instruction setエディタコマンドまたはシステムコマンドを実行するには

以下の表の構文図に使用されている記号については、『システムコマンド』ドキュメントの「システムコマンド構文」を参照してください。 コマンドの下線部分は有効な省略形を表します。 DDM ソースコード内の移動に使用するエディタコマンドについては、「配置のためのエディタコマンドの説明」の表を参照してください。

コマンド 説明
ADD ソースコードに空行を 10 行追加します。

(もう 1 回 Enter キーを押すと、空行が再び削除されます。)

行を挿入するには、行コマンド .I を参照してください。

CATALOG
現在ソースエリアで使用している DDM ソースを構文チェックし、カタログ化オブジェクトとして保存します。
CATALOG [ DDM-name] [ REPLACE ]
 

DDM ソースがすでにカタログされている場合、REPLACE オプションを使用する必要があります。

対応する PF キー:PF11 キー
CHECK ソースエリアの DDM ソースを、DDM によって参照される Adabas FDT を使用して検証します。

矛盾があった場合、エラーの原因となったフィールド定義のソース行の列 I に、修正を促すために E がマークされます。

対応する PF キー:PF10 キー
CLEAR システムコマンド』ドキュメントに記載されている、対応する Natural システムコマンド CLEAR の説明のように、ソースエリアをクリアします。
DX 行コマンド .X でマークされている行を削除します。
DY 行コマンド .Y でマークされている行を削除します。
DX-Y 行コマンド .X および .Y で区切られている行ブロックを削除します。
EX 行コマンド .X でマークされている行の上の行をすべて削除します。
EY 行コマンド .Y でマークされている行の下の行をすべて削除します。
EX-Y 行コマンド .X および .Y で区切られている行ブロック以外の行をすべて削除します。
HELP

または

?
エディタコマンドのヘルプ情報が出力された[Editor Help Info]画面が表示されます。
LENGTH

または

SIZE

LENGTH
SIZE

[from-field  to-field]
 
1 レコードの最大長をバイト単位で計算します。 from-field および to-field を指定すると、from-field から to-field までの長さが計算されます。
LIST DDM

または

LIST VIEW
LIST

DDM
VIEW

[DDM-name]
 
システムコマンド』ドキュメントの対応する Natural システムコマンド LIST で説明されているように、単一の DDM ソースまたは DDM-name で指定した DDM のリストを表示します。
QUIT

または

.
DDM エディタを終了して、SYSDDM ユーティリティメニューを表示します。 ソースエリアの DDM ソースは、別のソースが(Natural のエディタのいずれかによって)ソースエリアに読み込まれるまで、または Natural セッションが終了するまで保持されます。

DDM エディタは、DDM エディタを終了するときに、エディタプロファイルオプション[Leave Editor with Unlock]を使用してソースコードのロックを解除します。 このオプションについては、「全般的な情報」セクションの「エディタプロファイル」の「全般的なデフォルト設定」で説明します。

対応する PF キー:PF3 キー
READ
READ [DDM-name]
 
DDM ソースをソースエリアに読み込みます。 それまでソースエリアにあった DDM ソースは上書きされます。
RESET IX(行コマンド .X を参照)、Y(行コマンド .Y を参照)、または ECHECK で検出されたエラー)がマークされている行のマークをすべて削除します。
SCAN
SCAN [scan-value]
 
次の例のように、scan-value で指定した検索文字列をスキャンします。

SCAN ABC または SCAN ABC D

scan-value を含む行が見つかった場合、その行の列 IS がマークされます (マークを削除するには Enter キーを押します)。

UNCATALOG
UNCATALOG [DDM-name]
 
DDM-name が指定されている場合、現在の FDIC システムファイルから 1 つ以上の DDM が削除されます(「DDM の指定」の DDM 名の説明も参照)。

DDM-name が指定されていない場合、それまでソースエリアにあった DDM ソースが削除されます。

このコマンドは、『システムコマンド』ドキュメントに記載されている Natural システムコマンド UNCATALOG に対応しています。

配置のためのエディタコマンド:

エディタコマンド PF キー 説明
+

または

+P
PF8

または

Enter
1 ページ分(20 行)スクロールダウンします。
-

または

-P
PF7 1 ページ分(20 行)スクロールアップします。
+H PF5 半ページ分(10 行)スクロールダウンします。
-H PF4 半ページ分(10 行)スクロールアップします。
X

または

Y
  行コマンド .X または .Y でマークされている行に移動します。
B

または

++
PF9 最後のページまでスクロールダウンします。
T

または

--
PF6 最初のページまでスクロールアップします。
+nn   nn 行スクロールダウンします。
-nn   nn 行スクロールアップします。

Top of page

拡張フィールド属性の指定

拡張フィールド編集機能は、別の Natural オブジェクト(プログラムなど)でフィールドが使用されるときに適用される、ヘッダー、編集マスク、フィールドのコメント(注釈)、およびフォーマットオプションに対するデフォルトのフィールド属性を指定するために使用できます。 また、VSAM ファイルから生成された DDM の場合、VSAM 固有のフィールド属性を表示および編集できます。

ヘッダー属性では、DISPLAY ステートメントなどの出力時にフィールドの上部に表示される、デフォルトの列ヘッダーを指定します。 ヘッダーは、『パラメータリファレンス』ドキュメントの説明のように、一重引用符を使用した HD パラメータ(HD='text')で指定されたテキストに対応します。 ヘッダーが指定されていない場合、フィールド名が列ヘッダーとして使用されます。

編集マスク属性では、DISPLAY ステートメントなどによるフィールドの出力時に使用される、デフォルトの編集マスクを指定します。 編集マスクは、Natural 構文規則に準拠し、フィールドの Natural データフォーマットおよびデータ長に対して有効な値が指定されている必要があります。

注釈属性では、フィールドについてのコメントを指定します。

フォーマットオプションは、可変長フィールドを定義するために使用できます。LA に設定すると、フィールドはロング英数字(LA)として定義されます。LB に設定すると、フィールドはラージオブジェクト(LOB)として定義されます。 ロング英数字フィールドにはフォーマット A または U、ラージオブジェクトフィールドにはフォーマット AU、または B を指定できます。

関連トピック:

ステートメント』ドキュメントの「DISPLAY」および「INPUT

パラメータリファレンス』ドキュメントの「EM - 編集マスク

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

拡張フィールド属性の編集

このセクションでは、単一のフィールドまたは連続するフィールド範囲に対する拡張フィールド属性編集を起動および終了する方法について説明します。

Start of instruction set拡張フィールド編集を起動するには

  1. 単一のフィールドの場合

    編集するフィールドの隣の列 T にカーソルを移動し、行コマンド .E を入力して列 T および L の値を上書きします。

    次の Adabas からの DDM の例のように、コマンドでマークしたフィールドに対する[Extended Field Editing]画面が表示されます。

    12:07:49                  ***** Edit DDM (ADA) *****                 2006-02-08
                              - Extended Field Editing -                           
    DDM Name DDM-TEST                          Def.Seq.        DBID     0 FNR   316
                                                                                   
    I T L DB Name                             F       Leng S D                     
    - - - -- -------------- top ------------- - ---------- - -                     
        1 AF LA-FIELD                         A      16381 F                       
    ----------------------------------------------------------                     
                                                                                   
    Remark ........... LA_____________________                                     
    Field Header ..... __________________________________________________          
    Field Edit Mask .. __________________________________________________          
                                                                                   
    Format Option .... LA Long Alpha      (LA = LA field, LB = LOB field)          
                                                                                   
                                                                                 
                                                                                   
    

    [Extended Field Editing]画面では、すでに説明したように、注釈(コメント)、フィールドヘッダー、編集マスク、およびフォーマットオプションを指定できます。

    VSAM からの DDM の拡張フィールド編集については、『Natural for VSAM』ドキュメントの「Extended Editing at Field Level」を参照してください。

  2. フィールド範囲の場合

    1. 選択する最初のフィールドの隣の列 T にカーソルを移動し、次の行コマンドを入力して列 T および L の値を上書きします。

      .Enn

      nn は、現在のフィールドを含めた、選択するフィールド数です。

      選択した最初のフィールドに対する[Extended Field Editing]画面が表示されます。

    2. 必要なフィールド属性を入力または変更して Enter キーまたは PF3 キーを押します。

      次のフィールドに対する[Extended Field Editing]画面が順に表示されます。

Start of instruction set拡張フィールド編集を終了するには

Top of page