Bad picture for DATE: keyname
The PICTURE must be six or eight bytes in length, either alphanumeric or numeric with no sign.
Data missing from key segment keyname
This occurs when some part of the named key cannot be placed in the dictionary; the dictionary cannot be generated in this situation.
This usually occurs because of filler. For example:
01 my-record. 03 my-key. 05 filler pic xx. 05 field-1 pic xx.If my-key is declared as a record key, you will receive this error because the area of the key described by filler is not included in the dictionary.
To correct this error, ensure that every character that is part of the key is included in some field that is part of the dictionary. Use an XFD to give a field name to each filler, to ensure that fillers are included.
example:
01 my-record. 03 my-key. *(( xfd name=myfiller )) 05 filler pic xx. 05 field-1 pic xx.Directive word too long: keyname
With one exception the words contained in a directive, including field names, cannot exceed 30 characters. The value of a WHEN directive may consist of up to 50 characters.
GROUP expected after USE
The use group directive must include both words.
Missing`=' in XFD directive
The name directive requires an = sign. The when directive requires a comparison operator.
Missing field name after WHEN
A valid field name, or the word OTHER, must be specified with the when directive.
xxx: unknown XFD directive
The compiler did not recognize the directive you used. The xxx is the directive found. Check for a typographical error.
Value should be a name: xxx
This error occurs when the item to the right of an = should be a name and it isn't. For example, it would be an error to use a quoted string with the name directive: $XFD NAME=some text.
The xxx in the message is the value found.
Value should be numeric: xxx
This error occurs when the item to the right of an = should be numeric and it isn't. The xxx in the message is the value found.
Value should be a literal: xxx
This error occurs when the item to the right of an = should be a literal and it isn't. The xxx in the message is the value found. A literal is either a quoted string or a numeric integer.
Variable file name requires File directive
This message occurs when the compiler cannot assign a name to the .xfd file because the ASSIGN phrase for the file names a variable file name. In this case, you must use a file directive to name the .xfd file.
WHEN variable xxx not found in record
This happens if you have a when directive that mentions a variable that doesn't exist in the record.