インライン診断メッセージの使用

2 つのタイプのインライン診断メッセージがあります。 フィンガーとノンフィンガーです。フィンガー・メッセージは、 どこでエラーが起きたかを正確に示します。 図 1 は、フィンガー・インライン診断メッセージの例を示したものです。

図 1. サンプル・フィンガー・インライン診断メッセージ
行   <---------------------- ソースの仕様 ----------------------------><---- 注記 ---->Do  Page  変更  Src  Seq
番号   ....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+...10 番号 行  日付    ID   番号  
   63  C                   SETOFF                                       _12___                                                003100
======>                                                                 aabb
======>                                                                 cccccc
*RNF5051 20 A      003100  結果の標識の項目が正しくありません。省略時の値としてブランクが使用されます。
*RNF5051 20 B      003100  結果の標識の項目が正しくありません。省略時の値としてブランクが使用されます。
*RNF5053 30 C      003100  結果の標識の項目が指定された操作に対してブランクです。

この例では、標識が 71 ~ 72 桁目または 73 ~ 74 桁目ではなく間違って 72 ~ 73 桁目 に入れられています。 3 つのフィンガー 'aa'、'bb'、および 'cccccc' がエラーのある行の一部を識 別します。 実際の欄はメッセージによってさらに説明される変数によって、 強調表示されます。この場合には、メッセージ RNF5051 は、'aa' および 'bb' で印が付けられた フィールドには正しい標識が入っていないことを示しています。 正しい標識がないために、コンパイラーはフィールドがブランクであると見なし ます。 しかし、SETOFF 命令が標識を必要とするので、 'cccccc' およびメッセージ RNF5053 によって指摘されたように別のエラーが起こります。

エラーは見付かった順序でリストされます。 一般的に、 しばしば他のエラーの原因となるため最初のいくつかの 重大度 30 および 40 のエラーの訂正に重点を置くべきです。

ノンフィンガー・インライン診断メッセージもまたエラーを示します。 しかし、これらはただちにエラーの行に続いて出されるわけではありません。 図 2 は、ノンフィンガー・インライン診断メッセージの例を示したものです。

図 2. ノンフィンガー・インライン診断メッセージの例
行   <---------------------- ソースの仕様 ----------------------------><---- 注記 ---->Do  Page  変更  Src  Seq
番号   ....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+...10 番号 行  日付    ID   番号  
     1 D FLD1            S             +5    LIKE(FLD2)                                                                       000100
     2 D FLD2            S               D                                                                                    000200
*RNF3479 20      1 000100  指定されたデータ・タイプのフィールドでは長さ調整はできません。
                           

この例では、FLD1 は FLD2 と同じように 5 バイト以上の長さで定義されます。後から FLD2 は日付として定義されますが、これは FLD1 の定義において 長さの調整を無効にします。 メッセージ RNF3479 は、リストの 1 行目を指して 出されます。SEU 順序番号 (000100) も与えられますが、これは、エラーのソース行をより早く見つけるのを 助けるためであることに注意してください (また、SEU 順序番号はリスト出力行 1 にも入っています)。