|
|
These QED Compiler Error Messages explanations can be accessed within QED by placing the cursor over an error message code and using the QED Keyword Help action.
No MDL statements found
No MDL statements were supplied, or all MDL statements were comments.
Add some MDL statements.
Internal error - $$$$$$$$$$$$$$$$$$$ not recognised at ($$$$$,$$$)
An internal error has occurred.
Note down the error message and contact the Support Desk for further investigation.
Missing $$$$$$$$$$$$$$$$$$$ found $$$$$$$$$$$$$$$$$ at ($$$$$,$$$)
A reserved word or construct was expected but not found. The line number and column position at the start of the missing information is given.
Place the reserved word, or construct prior to the position as given (line number, column), and retry. For example,
if SUBMIT_USER EQ 'CMS61' Then
display_list 'Hello Chris'
eles (note mispelling)
display_list 'Hello ', SUBMIT_USER
end_if
This results in the error message:
QCA03E Missing NEW STATEMENT Found ELES at (3,1)
This indicates that any valid MDL command was expected but 'eles' was found. In this next example the error messages start after the real error occurs.
PRINT LINE01
If SUBMIT_USER EQ 'CMS61' THEN
DISPLAY_LIST ' Hello Chris'
Else
DISPLAY_LIST ' Hello ', SUBMIT_USER
End_IF
DISPLAY_LIST 'Back On Main Track'
The errors occur because LINE01 has two parameters which have not been supplied:
QCA03E Missing OPEN_BRACKET Found IF at (2,7)
QCA11E <EXP6> discarded, resumed at (3,1)
QCA03E Missing COMMA Found IF at (2,7)
QCA11E <EXP6> discarded, resumed at (3,1)
QCA03E Missing CLOSE_BRACKET Found IF at (2,7)
Extraneous input ($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$) at $$$$$
This message is obsolete.
None.
Invalid high order hex characters found at ($$$$$,$$$)
This message arises when a hexadecimal digit has been used which was not in the range '0' through to '9', or 'A' through to 'F'. The line number and column position at the start of the invalid character is given.
Correct the invalid character.
An odd number of hex characters found at ($$$$$,$$$)
This message arises when an odd number of hexadecimal digits have been supplied. All hexadecimal literals must be of the form X'nn[nn]' where 'n' is a valid hex digit. The number of digits must be even.
Add or subtract one hex digit.
Invalid low order hex characters found at ($$$$$,$$$)
This message arises when a hexadecimal digit has been used which was not in the range '0' through to '9', or 'A' through to 'F'. The line number and column position at the start of the invalid character is given.
Correct the invalid character.
Hex literal exceeds maximum legth at ($$$$$,$$$)
This message arises when a hexadecimal literal is greater than the maximum size allowed (70 characters).
Break up the hexadecimal literal so that each part is smaller than the maximum size allowed and then concatenate them all together.
Invalid numrc ($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$) at ($$$$$,$$$)
This message arises when an invalid numeric literal has been found.
Correct the numeric literal. For example,
DISPLAY_LIST ROUND(PROCESS_COUNT,-3..0),' Processed'
This will result in the following pair of error messages:
ZZA03E The field contains duplicate decimal points
QCA09E Invalid numrc (-3..0) at 1,38
Identifier or Literal ($$$$$$$$$$$$$$$$$$) too long at ($$$$$,$$$)
This message arises when a literal exceeded the maximum size allowed, 255 characters.
Break up the literal so that each part is smaller than the maximum and concatenate them all together.
$$$$$$$$$$$$$$$$$$ discarded, resumed at ($$$$$,$$$)
This message arises when the supplied information did not make sense. All information was ignored from that point until a new construct was encountered.
Examine the context of the information, making sure that it matches the MDL syntax. For example:
workarea WORK1
FIELD COUNT1(INTEGER)
FIELD VALUE1(SMALLIN)
END_WORKAREA
This will result in the following error message (others not shown here):
QCA11E <CLASS> discarded, resumed at (3,17)
Unexpected $$$$$$$$$$$$$$$$$$ ignored at ($$$$$,$$$)
This message arises when the supplied information was not expected. The information was ignored and processing has continued.
Remove the erroneous information. For example:
workarea WORK1
FIELD COUNT1(INTEGER)
FIELD VALUE1(IS)
end_workarea
This will result in the following error message (others not shown here):
QCA12E Unexpected IS ignored at (3,17)
Duplicated definition of ($$$$$$$$$$$$$$$$$$) at ($$$$$,$$$)
This warning message arises when the same ID is defined more than once within the same parent. (A different error occurs if the ID defined more than once is ever referenced).
One of the duplicated ID's must be renamed. For example:
workarea work1
field counter1(integer)
field counter1(integer)
end_workarea
This will result in the following error message:
QCA13W Duplicated definition of (COUNTER1) at (19,10)
$$$$$$$$$$$$$$$$$$ expected,fnd $$$$$$$$$$$$$$$$$$ at ($$$$$,$$$)
This message occurs when the compiler does not encounter what was expected to be next.
Put what was expected at the point it was expected or remove the reason it was expected there. A simple example of a misspelling is:
PRINT HAEDER_LINE_01('Start:')
This can result in the following error messages:
QCA14E <LINE NAME> expected,fnd HAEDER_LINE_01 at (19,7)
QCA03E Missing NEW STATEMENT Found ( at (19,21)
A complex example of this error follows. A report print line 'NOM_LINE_1' is attached to an entity 'GL_NOML', and a mapping level 'MAIN' is attached to an entity 'GL_COMPANY'. If the following MDL is entered in the 'MAIN' level:
PRINT Non_Line_1
This will generate the QCA14 error message, as print lines that are attached to entity are local to levels linked to the same entity and can not be used in levels not linked to that entity.
QCA14E <LINE NAME> expected,fnd NON_LINE_1
To resolve this error the Print command should be moved to a level linked to the 'GL_NOML' entity.
Incompatible types fnd expected $$$$$$$$$$$$$$$$$$ at ($$$$$,$$$)
This message arises when checking the compatibility of two identifiers. The class of one or both identifiers was invalid.
Check the types (classes) concerned, and make appropriate alterations. For example if LINE01 has two accepts variables, one numeric and one character, then the line,
PRINT LINE01(1.23,456.78)
will result in the error
QCA15E Incompatible types fnd expected CHAR/VARCHAR at (1,19)
No definition for ($$$$$$$$$$$$$$$$$$) used integer at ($$$$$,$$$)
This message is obsolete.
None.
Non Unique Identifier Given ($$$$$$$$$$$$$$$$$$) at ($$$$$,$$$)
This message arises when a non-unique identifier has been referenced.
Qualify the identifier in order to remove the ambiguity.
I/Error ($$$$$$$$$$$$$$$$$$) was not found at ($$$$$,$$$)
An internal error has occurred.
Note down the error message and contact the support desk for further investigation.
$$$$$$$$$$ Parameters supplied at ($$$$$,$$$)
This message arises when the number of parameters passed to a function did not match the number requested in the definition of that function.
Correct the number of parameters supplied.
$$$$$$$$$$$$$$$$$$ was not expected at ($$$$$,$$$$$)
An internal error has occurred.
Note down the error message and contact the support desk for further investigation.
Possible truncation of intermediate fields at ($$$$$,$$$)
This message arises when an intermediate field is required (in a calculation), but the scale and precision needed to maintain accuracy cannot be achieved.
If necessary change one or more fields to a class which has greater precision, such as FLOAT. For example:
display_LIST CEIL(ws_num18,10)
Because WS_NUM18 is defined as DECIMAL(18,0) the following warnings are given:
QCA23W Rounding cannot be achieved beyond id precision at (30,30)
QCA21W Possible truncation of intermediate fields at (30,30)
The Precision was greater than the scale supplied at ($$$$$,$$$)
This message arises when a field was defined with a precision greater than the scale, that is there are more decimal places then there are digits, for example, DECIMAL(5,10).
The scale represents the total field size, so increase it to allow for the precision requested. In the example above DECIMAL(5,10) ten decimal places are nominated in a field size of five; it might be changed to DECIMAL(10,5) or to DECIMAL(15,10).
Rounding cannot be achieved beyond id precision at ($$$$$,$$$)
This message arises when a ROUND/CEIL/FLOOR was specified which was of greater precision than what was being rounded. For example,
FIELD NUM1 (DECIMAL(7,2)) -- format of number is nnnnn.nn
...
LET NUM2 = ROUND(NUM1,4) -- ie round to 4 decimal places
Alter the precision of the referenced identifier to be greater than the rounding precision, or reduce the rounding precision to be less than the identifier's precision. In the example above DECIMAL(7,2) might be changed to have six decimal places for example, DECIMAL(11,6), or the rounding might be changed to have one decimal place for example, ROUND(NUM1,1).
Rounding will result in zero using precision at ($$$$$,$$$)
This message arises when a ROUND/CEIL/FLOOR was specified which would always result in a zero value being obtained. For example:
FIELD NUM1 (DECIMAL(3,2)) -- Format of the number is n.nn
...
LET NUM2 = ROUND(NUM1,-2) -- ie round to nearest hundred
-- negative 2 means 10 to the
-- power 2
The scale represents the total field size, so increase it to allow for the rounding precision requested, or increase the round precision to within the size of the identifier. In the example above DECIMAL(3,2) might be changed so that it is a bigger number, for example, DECIMAL(7,2) with a format nnnnnnn.nn, or the rounding changed so that it is one decimal place for example, ROUND(NUM1,1)
($$$$$$$$$$$$$$$$$$) must be in the 1st position at ($$$$$,$$$)
This message is obsolete.
None.
($$$$$$$$$$$$$$$$$$) must not repeat separately at ($$$$$,$$$)
This message is obsolete.
None.
Floating char used, ($$$$$$$$$$$$$$$$$$) invalid at ($$$$$,$$$)
This message is obsolete.
None.
Trailing ($$$$$$$$$$$$$$$$$$) not found at ($$$$$,$$$)
This message is obsolete.
None.
Class ($$$$$$$$$$$$$$$$$$) supplied is not valid at ($$$$$,$$$)
This message arises when a class obtained from a table column or a commarea field cannot be converted to a base class for use in QED.
Note down the error message and contact the support desk for further investigation.
Entity ($$$$$$$$$$$$$$$$$$) does not exist at ($$$$$,$$$)
This message arises when an entity cannot be found. This can only occur when a previously existing entity has been deleted.
Correct the entity name.
Entities clash ($$$$$$$$$$$$$$$$$$,$$$$$$$$$$$$$$$$$$) at $$$$$
This message is obsolete.
None.
Level ($$$$$$$$$$$$$$$$$$) does not exist at ($$$$$,$$$)
This message arises when a perform statement references a level created due to a matrix definition.
Matrices should be POPULATEd not PERFORMed.
$$$$$$$$$$$$$$$$$$ Invalid in Level with no entity at ($$$$$,$$$)
A reference to a command/function (usually ACCESS_NEXT/ACCESS_PREV) which requires an entity to be defined when none is available. For example, in a level which has no entity the ACCESS_NEXT function is used.
Change the level definition to use an entity or do not to use the command/function at this point.
The maximum number of dimensions were exceeded at ($$$$$,$$$)
An array has been defined with more than the maximum allowed number of dimensions (Bounds).
Reduce the number of dimensions for the array.
The table ($$$$$$$$$$$$$$$$$$) was not found at ($$$$$,$$$)
The table being referenced does not exist. This may happen, for example, on the LOOKUP function.
Change the table name to that of a valid table.
The column ($$$$$$$$$$$$$$$$$$) was not found at ($$$$$,$$$)
The table column being referenced does not exist. This may happen for example on the LOOKUP function. For example,
let a = lookup('taacmpy.deacr','desc')
using ( 'cmpy' , cmpy)
will result in the message
QCA36E The column (DEACR) was not found at (19,30)
Change the table column name to that of a valid table column.
Lookup must contain 'TableName.ColName' at ($$$$$,$$$)
The LOOKUP function's first parameter must be a table column. For example 'XXXX' in the following MDL fragment must be a valid table column name in the format TABLE.COLUMN.
let A = LOOKUP('XXXXX', 'Default')
USING('CMPY' , CMPY)
Enter a valid table/column name into the lookup.
Lookup requires USING or RELATIONSHIP at ($$$$$,$$$)
This message is obsolete.
None.
Tables ($$$$$$$$$$$$$$$$$$,$$$$$$$$$$$$$$$$$$) > 1 rel at $$$$$
This error indicates that LOOKUP has been used without a USING or RELATIONSHIP clause and that there is more then one relationship set up between the table in the look up and the table attached to the current mapping components.
Use the RELATIONSHIPS clause to indicate which relationship you wish to use. For example, the following MDL is in a level which uses an entity that has two relationships with the TAACMPY table:
Let a = Lookup ('TAACMPY.DESRC','No cmpy Desrc')
This should be changed to:
Let a = Lookup ('TAACMPY.DESRC','No cmpy Desrc')
Relationship('R1')
Tables ($$$$$$$$$$$$$$$$$$,$$$$$$$$$$$$$$$$$$) no rel at $$$$$
This error indicates that LOOKUP has been used without the USING or RELATIONSHIP clause and that there are no relationships set up between the table in the look up and the table attached to the current mapping component.
Use a USING clause to access the table column in the lookup. For example:
Let a = Lookup ('TAACMPY.DESRC','No cmpy Desrc')
This should be changed to:
Let a= Lookup ('TAACMPY.DESRC','No cmpy Desrc')
Using ('CMPY', '01')
Total() must contain a numeric print field at ($$$$$,$$$$)
The argument of the MDL function TOTAL is not a numeric print line field name. For example:
Let a=Total(xyz) -- were xyz is a normal variable
Change the argument to be a valid numeric print line field name.
The CALL name, $$$$$$$$$$$$$$$$$$, not found at ($$$$$,$$$$)
The subroutine name used in a call command does not exist.
Change subroutine name to that of a valid subroutine name.
The COMMAREA, $$$$$$$$$$$$$$$$$$, not found at ($$$$$,$$$$)
The COMMAREA referenced does not exist in the repository.
Use a valid COMMAREA.
The time literal $$$$$$$$$$$$$$$$$$ is invalid at ($$$$$,$$$$)
The time literal is not in a valid QED time format.
Change the literal into a valid QED time format For example, T'HH.MM.SS'.
The date literal $$$$$$$$$$$$$$$$$$ is invalid at ($$$$$,$$$$)
The date literal is not in a valid QED date format.
Change the literal into a valid QED date format For example, D'DD/MM/YY' or D'DD MMM YYYY'.
Presentation $$$$$$$$$$$$$$$$$$ does not exist at ($$$$$,$$$$)
A report field has a PRESENTATION clause for which the given presentation type does not exist. For example the following report field definition formula in the report painter will generate this error:
p_root_elem presentation is 'rubbish'
Change the presentation to be a valid presentation.
$$$$$$$$$$$$$$$$$$ is reserved for system use at ($$$$$,$$$$)
This message is obsolete.
None.
Device $$$$$$$$$$$$$$$$$$ does not exist at ($$$$$,$$$$)
This error is generated if a QED mapping device component contains references to an e5 device that for some reason does not exist.
Reference correct device in the mapping device component, or create required device.
No rel in $$$$$$$$$$$$$$$$$$ & $$$$$$$$$$$$$$$$$$ at ($$$$$,$$$$)
A level is PERFORMing another level but no relationship is defined to link the base tables of the entities for the two levels. This error is only generated by a full compile. It will not be generated by a syntax compile.
An e5 relationship should be defined to link the levels' base tables.
Record $$$$$$$$$$$$$$$$$$ used by calling level at ($$$$$,$$$$)
This message occurs when a level PERFORMs another level and both levels are linked to the same base table which has been redirected to file via a device component for this mapping. For example, consider the following:
Mapping:
Cmd |
Act |
|
Type |
Name |
Description |
___ | __ | + | Devices | def | |
___ | __ | Level | MAIN | MAIN | |
___ | __ | ! | Level | TEST | TEST |
Devices:
|
|
Devices |
|||
Cmd | Table | In | Sort | Out | Reuse |
___ | TEACNTRL | QEDCMPYS | QEDCMPY |
Levels Main and Test use the GL_COMPANY entity which links to the TEACNTRL base table. In the Main level, this command
PERFORM TEST
will cause the QCA50 error.
Re-work mapping so that this does not happen.
Line $$$$$$$$$$$$$$$$$$ & Lvl 'ENTITY IS' not equal at ($$$$$,$$$)
An internal error has occurred.
Note down the error message and contact the support desk for further investigation.
Parent does not use a table, USING must be supplied at ($$$$$,$$$)
This error will arise when a LOOKUP function with a RELATIONSHIP clause is within a QED component (for example, a level) which has no entity. For example:
Let a = Lookup('TAACMPY.DESCR','No Cmpy')
Relationship ('RI_001')
A USING clause should be used instead of the RELATIONSHIP clause. For example:
Let a = Lookup('TAACMPY.DESCR','No Cmpy')
Using ('CMPY' , cmpy )
Relationship suppld does not exist for this lookup at ($$$$$,$$$)
A LOOKUP function using the RELATIONSHIP clause has been supplied with a relationship that does not exist in the repository.
Create the supplied relationship in the repository or change the supplied relationship to one that exists.
LEAVE must be within a DO...END_DO Block at ($$$$$,$$$)
The LEAVE command has been used, but not within a DO loop. A level process block generates an MDL DO loop automatically so that the LEAVE command is valid anywhere within a level process block.
Move the LEAVE command into a DO loop or remove the command.
The column index ($$$$$$$$$$$$$$$$$$) not numeric at ($$$$$,$$$)
A LOOKUP function is looking up a table column which is an array and is using a non numeric literal to define which array element is to be looked up. For example, the following MDL command will generate this error:
Let a = lookup ('tqmwfld.ARRAY_BOUNDS(xx)' , 0 )
The 'XX' in the above example should be changed into a numeric literal. For example:
Let a = lookup ('tqmwfld.ARRAY_BOUNDS(01)' , 0 )
The column index ($$$$$$$$$$$$$$$$$$) not integer at ($$$$$,$$$)
A LOOKUP function is looking up a table column which is an array and is using a non integer to define which array element is to be looked up. For example, the following MDL command will generate this error:
Let a = lookup ('tqmwfld.ARRAY_BOUNDS(1.2)' , 0 )
The '1.2' in the above example should be changed into a integer; for example:
Let a = lookup ('tqmwfld.ARRAY_BOUNDS(01)' , 0 )
Invalid index, not between 1 and $$$$$$$$$$$$$$$$$$ at ($$$$$,$$$)
A LOOKUP function is looking up a table column which is an array and is using an array index that is greater than the maximum number of elements in the array. For example, the following MDL command will generate this error:
Let a = lookup ('tqmwfld.ARRAY_BOUNDS(200)' , 0 )
The '200' in the above example should be changed to a number less than 7 as this array has 6 elements.
Let a = lookup ('tqmwfld.ARRAY_BOUNDS(6)' , 0 )
The column ($$$$$$$$$$$$$$$$$$) was not indexed at ($$$$$,$$$)
A LOOKUP function is looking up a table column which is an array but has not been given an array index. For example:
Let a = lookup ('tqmwfld.ARRAY_BOUNDS' , 0 )
Add the required index to the array. For example:
Let a = lookup ('tqmwfld.ARRAY_BOUNDS(6)' , 0 )
The column ($$$$$$$$$$$$$$$$$$) is indexed at ($$$$$,$$$)
A LOOKUP has been given an array index for a table column which is not an array. For example:
Let a = lookup ('TAACMPY.DESCR(10)' , ' Error ')
Remove the array index from the lookup. For example:
Let a = lookup ('TAACMPY.DESCR' , 0 )
The field ($$$$$$$$$$$$$$$$$$) is read only at ($$$$$,$$$)
This message is obsolete.
None.
Matrix ($$$$$$$$$$$$$$$$$$) does not exist at ($$$$$,$$$)
The POPULATE command has been issued with an argument that is not a matrix component of the mapping being compiled.
Change the POPULATE command's argument so that it corresponds to a matrix component.
Matrix ($$$$$$$$$$$$$$$$$$) is defined but never POPULATED
A matrix component has been created in a mapping but has never been POPULATED within any level components of the mapping.
The matrix should be either removed or POPULATED.
Program $$$$$$$$$$$$$$$$$$ does not exist at ($$$$$,$$$$)
A QED compiler target step 99 parameters' PROGRAM entry references a program that does not exist. No mappings (that use that parameter) will compile until the problem is fixed.
Correct the target step 99 parameter using QED Parameters - Amend MQCN.
Dup Reltn $$$$$$$$$$$$$$$$$$ & $$$$$$$$$$$$$$$$$$ at ($$$$$,$$$$)
A level is PERFORMing another level without using the RELATIONSHIP clause and more than one relationship is defined to link the base tables for the two levels. This warning is only generated by a full compile. It will not be generated by a syntax compile. The message shows the two base tables involved.
Use the RELATIONSHIP clause of the PERFORM command to state which of the defined relationships you require.
Lookup Table $$$$$$$$$$$$$$$$$$ Invalid, Device at ($$$$$,$$$$)
A LOOKUP has been performed on a table that has been redirected within the mapping to a file within a device component.
Either remove the device component from the mapping or remove the LOOKUP.
Entity Attr $$$$$$$$$$$$$$$$$$.$$$$$$$$$$$$$$$$$$ at ($$$$$,$$$$)
An entity attribute that does not exist has been passed to the compiler. This error will normally happen in parameter components on a CHOOSE command. For example, the following line would generate the errors shown:
CHOOSE GL_COMPANY.XMPY EQ
QCA66E Entity Attr TEQSTRUC_ENTY .XMPY
QCA14E <PARMETER RELOP> expected,fnd XMPY
QCA03E Missing NEW STATEMENT Found EQ
Correct the entity attribute that is in error.
Entity Attribute Invalid: Must be base table colm at ($$$$$,$$$$)
This error arises when a non base table entity attribute is used in a parameter component on a CHOOSE command. For example if the entity attribute 'ELEMENT_PATH_KEYS.OPEN_AB_BALS' is calculated via MDL in the entity, then the following line of MDL would generate this error:
CHOOSE ELEMENT_PATH_KEYS.OPEN_BAL_AB EQ
You cannot use choose logic on non base table entity attributes - you must re-think whatever you are trying to achieve.
Choose Invalid: Must be Table Column or Enty Attr at ($$$$$,$$$$)
This error occurs when a parameter component contains a CHOOSE command that tries to choose on an expression which is not an entity attribute or a table column.
Change the CHOOSE command so that it references a table column or a base table entity attribute.
Choose Invalid: Parameter len. > Attribute len. at ($$$$$,$$$$)
This error arises when a CHOOSE command within a parameter mapping component uses an entity attribute or table column which has a data class smaller than the data class defined for the parameter. For example, a parameter is defined:
Cmd Parameter Class Description
___ P_CMPY CHAR(99) Company ?
It contains the following MDL line:
choose teqstruc_enty.cmpy eq
The class of TEQSTRUC_enty.cmpy is CHAR(02). This will generate the QCA69 error.
Change the class of the parameter to be the same as that of the table column/entity attribute (in the above example this would be CHAR(02)).
Identifier ($$$$$$$$$$$$$$$$$$) too many qualifiers at ($$$$$,$$$)
An identifier has too many levels of qualification.(the maximum is 10). For example, the following will generate this error:
LET aa.bb.cc.dd.ee.ff.gg.hh.ii.jj.kk.ll = 1
Reduce the number of qualifiers.
Date literal exceeds maximum length at ($$$$$,$$$)
This error arises when a date literal is defined longer than the maximum size allowed for date literals (11). For example:
LET date_now = D'134/569/19951'
Enter a valid date literal.
Time literal exceeds maximum length at ($$$$$,$$$)
This error arises when a time literal is defined longer than the maximum size allowed for time literals (8). For example:
LET date_now = T'9090.9090.9090'
Enter a valid time literal.
Use of MDL Reserved Word $$$$$$$$$$$$$$$$$$ invalid at ($$$$$,$$$)
The command being used may not be entered by you. It can only be used by the compiler when it collates all the different components of a mapping into one collated program.
Check the syntax of what you are trying to do and examine the QED MDL Reference Manual to try and find the correct way to produce the required processing.
Choose Invalid: Parameter class is illegal at ($$$$$,$$$$)
An internal error has occurred.
Note down the error message and contact the support desk.
Field ($$$$$$$$$$$$$$$$$$) can not be altered at ($$$$$,$$$)
This error arises if a variable is being modified when it is defined as being read only. For example:
LET MAP_PROCESS_COUNT = 1
Either change the variable being used to a non system variable if you are accidentally using a systems variable, or re-think what you are doing if you are deliberately trying to change a read only system variable.
Field ($$$$$$$$$$$$$$$$$$) can not be referenced at ($$$$$,$$$)
An attempt has been made to 'read' a 'write only' identifier.
Do not 'read' the variable.
Class $$$$$$$$$$$$$$$$$$ cannot be assigned at ($$$$$,$$$)
An internal error has occurred.
Note down the error message and contact the support desk.
Currency Value literal exceeds maximum length at ($$$$$,$$$)
A currency value literal has been entered that exceeds the maximum size for currency literals. For example:
LET Curr_val1 = C'99999999999999999999999999999.01 GBP'
Reduce the size of the currency value literal.
The CURRVAL literal $$$$$$$$$$$$$$$$$$ is invalid at ($$$$$,$$$$)
An invalid currency literal value has been entered. For example:
LET Curr_VAl1 = C'6fg88.01 GBP'
Correct the currency value literal. For example:
LET Curr_VAl1 = C'688.01 GBP'
Expression Class $$$$$$$$$$$$$$$$$$ invalid at ($$$$$,$$$)
An expression is expecting an identifier of a given class but has found a variable of a different class. For example:
Let A = Remainder (B, C'1050 UKP')
will produce the message
QCA80E EXPRESSION CLASS <CURVAL> INVALID
The second parameter passed to the REMAINDER function should not be Currency, Real or Float. The fact that it is a currency literal will cause the QCA80 error.
The second parameter passed to the LEFT function must not be a currency value. The following will generate a QCA80 error:
LET a = left ('hi there',c'15,01')
Use the correct class in the expression.
Reprinted Line $$$$$$$$$$$$$$$$$$ never printed at ($$$$$,$$$)
A print line that has not been printed is being reprinted.
Change the reprint command to a print command.
$$$$$$$$$$$$$$$$$$.$$$$$$$$$$$$$$$$$$ never matched at ($$$$$,$$$)
An entity attribute is referenced in a mapping parameter's components' CHOOSE command, but the entity involved is never used in the mapping. The compiler will take no action when this command is encountered as it becomes meaningless.
Change the mapping so that you either remove the parameter choose or add the entity in the parameter choose to a mapping level.
Line $$$$$$$$$$$$$$$$$$ nothing to ZEROISE at ($$$$$,$$$)
The ZEROIZE command has been used referencing a report line that contains no field that can be zeroized For example, a report line 'NO_Num01' contains no numeric fields:
Zeroize No_Num01
will produce this message when compiled:
QCA83W Line NO_NUM01 nothing to ZEROISE
Do not use the ZEROIZE command on lines without numeric fields.
Matches $$$$$$$$$$$$$$$$$$.$$$$$$$$$$$$$$$$$$ defined at $$$$$
This message is only generated after a QCA17 error message is encountered. It details where a non unique identifier is referenced within the mapping. For example, two workarea levels define a variable of the same name:
WORKAREA W1
FIELD A (CHAR(2) )
END_WORKAREA
WORKAREA W2
FIELD A (CHAR(22) )
END_WORKAREA
In a mapping level:
LET A = 'HI There'
This will generate the following error messages:
Code Message
QCA17E Non Unique Identifier Given (A )
QCA84I Matches W2 .A defined at 29
QCA84I Matches W1 .A defined at 24
Rename one of the identifiers. Alternatively, qualify the identifiers with the parent name; for example:
Let w1.a = 'Hi There'
Let w2.a = 'Goodbye'
ACCESS_NEXT/Previous is Invalid: Cannot be Nested
When using the ACCESS_NEXT or ACCESS_PREVIOUS functions you may not use an access next/previous function as an input parameter to the access next/previous function. For example, the following lines are all invalid:
Let a = Access_Next(access_Next(cmpy)
Let a = Access_Previous(access_Previous(cmpy)
Let a = Access_Previous(access_Next(cmpy)
Change the MDL so that access next/previous are not nested.
Program $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ Invalid: does not exist
A compiled mapping uses a number of standard e5 programs. If, when the compiler is generating the entries for these standard programs, they do not exist within the e5 database tables then this error message is generated.
Contact the support desk for further advice.
Program $$$ Invalid: does not have a call name
An internal error has occurred.
Note down the error message and contact the support desk.
Choose Invalid: Parameter is class CURRVAL at ($$$$$,$$$$)
This error arises when a CHOOSE command within a parameter mapping component exists with a class of CURVAL.
Change the class of the parameter to be valid.
Mask Invalid: Simple Insertion Chars illegal after decimal point
This error will occur when a report field which is defined as CURRVAL has simple edit mask characters in a MASK IS clause after a decimal point. For example, consider this formula field from Reports - Amend MQMD:
Formula . currval(H_SEQ,'GBP') mask is '9999.9//9/99B/9/'
Rework the edit mask of the field so that it does not use simple edit character(s) after the decimal place or change the class of the field.
Value Invalid: Must be $$$$$$$$$$$$$$$$$$ at ($$$$$,$$$)
This error arises when the compiler was expecting a value to be of a certain range/type but encounters a value that did not conform to the required range/type. For example:
Cache store_w1_cache(100,w_cache,0)
The 3rd parameter of the CACHE command points to a key field number which must be above zero, so it will produce the message:
QCA90E Value Invalid: Must be > ZERO
The following example produces the error because the cache key must be less than 256 characters long:
WORKAREA w_cache
Field C_key (Char(9999))
END_WORKAREA
Cache Store_w1_cache(100,w_cache,1)
QCA90E Value Invalid: Must be <= +255 KEY SIZE
Correct the value being passed so that it conforms to the required range/type rules.
Cache Key Invalid:Cannot be Class VARCHAR/CURRVAL at($$$$$,$$$)
This error arises when a CACHE command is used which selects a field as the cache key which is either a VARCHAR or a CURRVAL. For example:
WORKAREA W_CACHE
FIELD W_CACHE_A (VARCHAR(100) )
END_WORKAREA
...
...
Cache store_w1_cache(100,w_cache,1)
...
QCA91E Cache Key Invalid: Cannot be Class VARCHAR/CURRVAL
Rework the task you are trying to perform so that it does not require a varchar/currval as the cache key.
Workarea too large: $$$$$$$$$$$$$$$$$$ > 16M bytes at ($$$$$,$$$)
This error occurs when a single workarea holds more than 16,000,000 bytes of data.
Split the workarea into two or more different workareas.
Array bounds Invalid: More than 999,999 elements at ($$$$$,$$$)
An array has been defined which in total has more than 999,999 elements. For example:
WORKAREA
ARRAY W1_array (CHAR(1)) BOUNDS 191,12,9,9,9,10
END_WORKAREA
So 191*12*9*9*9*10 = 1856520 elements which is above the allowed maximum.
Reduce the number of elements in the array or split the data over a number of different arrays.
Cache Key Invalid: Cannot have Array as a Key at ($$$$$,$$$)
A cache command cannot use an array item as the cache key. For example:
WORKAREA w_cache
Array cache_key (char(10)) bounds 12
Field Cache_data(char(100))
END_WORKAREA
...
...
Cache a_cache(100,w_cache,1)
QCA94E Cache Key Invalid: Cannot have Array as a Key
You must re-examine how you are using the cache and find a alternative that does not require the cache key to be an array. In the example the cache key could be defined as CHAR(120) without bounds and LET commands could be used to move the data in/out of a different workarea field defined with Bounds.
Compiler storage area exhausted, increase limit to compile mapping
This error will cause the compiler to ABEND. The compiler has run out of internal storage while compiling the mapping. The internal storage allocated can be increased by changing a QED compiler parameter.
Change the QED compiler parameter for target step 7, so that the compiler has access to more internal storage
Level $$$$$$$$$$$$$$$$$$ Order by can be done in SQL
This informational message shows that the compiler will optimise the given levels ORDER BY logic into SQL rather than having the compiled mapping itself deal with the ORDER BY, providing the level is based on a table. If the level is not based on a table (for example, it is based on a logical table or a file) then no optimisation can be done.
None.
Level $$$$$$$$$$$$$$$$$$ Order by cannot be done in SQL
This message indicates that ORDER BY logic of a mapping level component cannot be done in SQL. This only applies to levels based on database tables.
You may accept this message (and its performance implications) or change your ORDER BY so that it can be done in SQL.
Level $$$$$$$$$$$$$$$$$$ Choose can be done in SQL
This informational message shows that the compiler will optimise the given levels CHOOSE logic into SQL rather than having the compiled mapping itself deal with the CHOOSE, providing the level is based on a table. If the level is not based on a table (for example, it is based on a logical table or a file) then no optimisation can be done.
None.
Level $$$$$$$$$$$$$$$$$$ Choose can be partially done in SQL
This message indicates that the CHOOSE logic of a mapping level component can only be done partially in SQL. This only applies to levels based on database tables.
You may accept this message (and its performance implications) or change your CHOOSE so that it can be done fully in SQL.
Level $$$$$$$$$$$$$$$$$$ Choose cannot be done in SQL
This message indicates that the CHOOSE logic of a mapping level cannot be done in SQL. This only applies to levels based on database tables.
You may accept this message (and its performance implications) or change your CHOOSE so that it can be done in SQL (either partially or fully).
The indexed column $$$$$$$$$$$$$$$$$$ cannot be SET at ($$$$$,$$$)
The SET command within an INSERT code block cannot reference a field that has an array index.
Do not insert a field that has an array index.
System variable or figurative constant not allowed at ($$$$, $$$)
Some functions and the ORDER BY clause may not use system variables and/or figurative constants. This error indicates that a system variable and/or figurative constants have been used in one of these functions or the ORDER BY clause.
Remove the system variable/figurative constant from the function/ORDER BY clause.
SPACES,LOW_VALUES,HIGH_VALUES or ZEROES are illegal at ($$$$, $$$)
SPACE, LOW_VALUE, HIGH_VALUE or ZEROES have been passed as an argument to a function which cannot process these figurative constants.
Remove the SPACES/LOW_VALUES/ HIGH_VALUES/ZEROES from the function.
COMMAREA $$$$$$$$$$$$$$$$$ NOT IN OLAS REPOSITORY
A standard commarea is missing from the repository.
Contact the support desk - the repository has been corrupted or was shipped incorrectly.
Function $$$$$$$$$$$$$$$$$$ incomplete, ignored at ($$$$,$$$)
An error has occurred within a parameter being passed to the stated function. This means that the compiler has no valid parameter to use when compiling the function so it will simply ignore the function.
This error is always caused by some other error - find and fix that error.
Workarea ($$$$$$$$$$$$$$$$$$) cannot be referenced AT ($$$$,$$$)
An error has occurred within a BLOCK_MOVE command, the from WORKAREA specified does not have security which allows it to be copied.
Reference the correct WORKAREA.
Workarea ($$$$$$$$$$$$$$$$$$) cannot be altered AT ($$$$,$$$)
An error has occurred within a BLOCK_MOVE command, the to WORKAREA specified does not have security which allows it to be overwritten.
Reference the correct WORKAREA.
MDL compile terminated: more than 200 messages have been reported
The QED Compiler internal limit of 200 error messages has been reached. The compilation is terminated.
Start fixing all those errors.
These 6 messages form the 'mapping compilation has terminated' banner
The QED compilation has been terminated due to a non-recoverable problem, usually a controlled ABEND like QCASH or a system limit like the QCAA9 error.
Start fixing all the previously reported errors and the controlled ABEND or QCAA9 will disappear. If not then contact the support desk.
Line $$$$$$$$$$$$$$$$$$ invalid: entity mismatch AT ($$$$,$$$)
The report line being printed has an entity which does not match the entity of the level the line is being printed in.
Either print the correct line or change the line to use the correct entity.
For var_on_len devices table must begin with a smallint
Any devices defined as VARIABLE_ON_LEN must have a SMALLINT class field as the first field in any tables linked to the device.
Correct either the Table definition or the Device definition.
For var_on_len devices table should begin with a field named 'LEN'
Any devices defined as VARIABLE_ON_LEN must have a field named LEN as the first field in any tables linked to the device.
Correct either the table definition or the device definition.
Concat $$$$$$$$$$$$$$$$$$ does not exist AT ($$$$,$$$)
The device flagged as a concatenation does not exist.
Correct the device name or remove the concatenation flag.
--Include $$$$$$$$$$$$$$$$$$ not recognised AT ($$$$,$$$)
An --INCLUDE statement which did not conform to any of the allowed --INCLUDE formats was ignored.
Either correct the --INCLUDE or delete it.
--Include $$$$$$$$$$$$$$$$$$ Ignored: does not exist AT ($$$$,$$$)
An --INCLUDE statement has referenced an INCLUDE which does not exist under the mapping definition company or company '01' and will be ignored.
Correct the --INCLUDE name.
--Include of $$$$$$$$$$$$$$$$$$ lines done AT ($$$$,$$$)
Informs you that an --INCLUDE of the given number of lines has occured.
Nothing.
--REPLACE not attatched to any --include ignored at ($$$$,$$$)
A --REPLACE statement without a previously successful --INCLUDE statement has been ignored.
Either correct or add the --INCLUDE which is meant to precede the --REPLACE.
--REPLACE invalid: ignored AT ($$$$,$$$)
A --REPLACE statement which did not conform to any of the allowed --REPLACE formats was ignored.
Either correct the --REPLACE or delete it.
--REPLACED $$$$$ instances between $$$$$$ and $$$$$$ AT ($$$$,$$$)
A --REPLACE statement has had the given number of hits between the given line range.
Check out the --REPLACE if the instances are ZERO otherwise no action is required.
Level $$$$$$$$$$$$$$$$$$ order SIZE $$$$ invalid max. $$$$ allowed
A level ORDER BY (which cannot be done in SQL) has been specified which exceeds the maximum possible key size for the QED internal Core/file sort routines.
Check out the ORDER BY definition and reduce the key to an acceptable size. The only alternative is to break the sort up into multiple levels.
Level $$$$$$$$$$$$$$$$$$ order SIZE $$$$ will cause a file sort
A level ORDER BY (which cannot be done in SQL) has been specified which exceeds the maximum possible key size for the QED internal Core sort, this will lead to a file sort being used instead.
If a file sort is acceptable (between 3 and 10 times slower than a Core sort) nothing, otherwise try to reduce the ORDER BY size until a Core sort can be done.
VARiable $$$$$$$$$$$$$$$$$ assigned to itself AT ($$$$,$$$)
A variable has been assigned (LET) to itself, this just wastes processing power and must be a dubious practice.
Are you sure this is what you meant to type?
Invalid bound, not between 1 and $$$$$$$$$$$$$$$$$ AT ($$$$,$$$)
A BOUND_UPPER or BOUND_LOWER function has been requested on an array with an illegal bound number specified.
Either correct the number of bounds the array has or the array bound being referenced.
Invalid device $$$$$$$$$$$$$$$$$$ not user_control AT ($$$$,$$$)
An OPEN_DEVICE/ CLOSE_DEVICE/ DELETE_DEVICE/ DEVICE_EXISTS has been issued against a device which is not flagged as USER_CONTROL.
Either change the device to be USER_CONTROL or do not issue the device command.
Invalid device $$$$$$$$$$$$$$$$$$ vsam not allowed AT ($$$$,$$$)
A DELETE_DEVICE has been issued against a device which is defined as VSAM; this is not allowed.
Either change the device not to be VSAM or do not issue the DEVICE_DELETE command.
Invalid device $$$$$$$$$$$$$$$$$$ usage conflict AT ($$$$,$$$)
An OPEN_DEVICE/ CLOSE_DEVICE/ DEVICE_EXISTS has been issued against a device which is not defined as being possible (for example: sort devices cannot be referenced, an input device cannot be opened for outout, etc.).
Either change the device definition to allow the command or do not issue the device command.
The event $$$$$$$$$$$$$$$$$$ was not found AT ($$$$,$$$)
A NOTE_EVENT or NOTE_DIARY literal event code does not exist.
Reference an existing event code.
The program $$$$$$$$$$$$$$$$$$ was not found AT ($$$$,$$$)
A NOTE_DIARY literal program code does not exist.
Reference an existing program code.
The diary ($$$$$$$$$$$$$$$$$$) was not found at ($$$$,$$$)
This message is obsolete.
None.
The user ($$$$$$$$$$$$$$$$$$) was not found at ($$$$,$$$)
A NOTE_DIARY literal user code does not exist.
Reference an existing user code.
Program $$$$$$$$$$$$$$$$$$ type error: not 'F' at ($$$$,$$$)
A NOTE_DIARY literal program code does not refer to a foreground program.
Reference an existing foreground program code.
The Currency Rate Type ($$) was not found at ($$$$$,$$$)
A CURR_CONVERT literal currency rate type does not exist.
Reference an existing currency rate type.
The Currency ($$$) was not found at ($$$$$,$$$)
A CURR_CONVERT literal currency code does not exist.
Reference an existing currency code.
Possible truncation of intermediate field,$$$ digit limit exceeded
A value to be CURR_CONVERTed may exceed the maximum digits which can be converted.
Reduce the number of digits in the value to be currency converted.
Dup Rel $$$$$$$$$$$$$$$$$$ to $$$$$$$$$$$$$$$$$$ at ($$$$$,$$$$)
A level is PERFORMing another level, a level is POPULATEing or a matrix or a Format 1 LOOKUP is being used without the RELATIONSHIP clause and more than one relationship is defined to link the two tables. The message shows the two tables involved.
Use the RELATIONSHIP clause of the PERFORM, POPULATE or LOOKUP to state which of the defined relationships you require.
LOOKUP Duplicate Reference to $$$$$$$$$$$$$$$$$$ at ($$$$$,$$$)
A LOOKUP is referencing the given column more than once, this cannot be intended as it will not retrieve valid data.
Correct the LOOKUP to only reference any column once.
Warning: CURR_CONVERT Accepts/Returns MONEY values at ($$$$$,$$$)
The CURR_CONVERT function expects and returns MONEY values appropriately scaled for the currencies being used.
Either convert the input value with the MONEY function and multiply the output value by 10 ** (2 - DECIMAL_PLACES (<out currency code>))
or the CURRVAL_CONVERT should be used instead as it does not have this dependency.
The Data Group ($$$$$$$$$$$$$$$$$$) was not found at ($$$$$,$$$)
The Device Data Group does not exist.
Reference an existing Data Group.
Table/Data Block ($$$$$$$$$$$$$$$$$$) was not found at ($$$$$,$$$)
A required Table or Data Block reference was neither.
Reference an existing Table or Data Block.
$$$$$$$$$$$$$$$$$$ Invalid: No Device Data Groups at ($$$$$,$$$)
An XML related command or function has been used when there is no Device referencing any Data Group.
Reference a Data Group from a Device or do not use the XML related commands or functions.
Data Fld $$$$$$$$$$$$$$$$$$.$$$$$$$$$$$$$$$$$$ ERR at ($$$$$,$$$)
An INSERTed Data Blocks Referenced SET Data Field does not exist.
SET an existing Data Field within the INSERTed Data Block.
Device $$$$$$$$$$$$$$$$$$ XLATE_PRG Required at ($$$$$,$$$)
A Device which has a Data Group specified must also have its translate program (XLATE_PRG) given (usually SZ2 for XML processing).
Set up the devices XLATE_PRG or remove its Data Group.
Table/Data Block does not use INPUT Data Group at ($$$$$,$$$)
An XML_FETCH (usually from a Profile Mode 3 Level) is referencing a Data Block which is not defined as coming from an Input Data Group Device.
Either reference a Data Block from an input Data Group Device or change the levels profile mode not to be 3.
Warning: XML_INSERT Data may exceed maximum of 3999 at ($$$$$,$$$)
An XML_INSERT data expression references data which may exceed the 3999 character limit.
Change the data expression so that it is always less than 3999 characters. Usually put in extra coding to do multiple XML_INSERTS when the source field contents exceeds 3999 characters.
Warning: XML_INSERT Tag may exceed maximum of 64 at ($$$$$,$$$)
An XML_INSERT tag expression references data which may exceed the 64 character limit.
Change the tag expression so that it is always less than 64 characters.
Warning: XML_INSERT Comment may exceed maximum of 3999 at ($$$$$,$$$)
An XML_INSERT Comment tag expression references data which may exceed the 3999 character limit.
Change the tag expression so that it is always less than 64 characters.
Static function $$$$$$$$$$$$$$$$$$ calls another function at ($$$$$,$$$)
A function defined as STATIC (default) calls another function and therefore may need to be changed to be DYNAMIC.
Change the function to be explicitly DYNAMIC to avoid potential recursion problems. Can be left as STATIC if there is no possibility of recursive function calls
Static function $$$$$$$$$$$$$$$$$$ converted to be dynamic.
A function defined as STATIC (default) has been detected doing recursive calls and has been changed to be DYNAMIC.
Change the function definition to be DYNAMIC.
Column ($$$$$$$$$$$$$$$$$$) not in DB_TABLE at ($$$$$,$$$)
Within an INSERT command, which references both logical and Database Tables a column in the logical table does not exist in the Database table.
Add the missing column to the Database Table or remove it from the logical table.
Column ($$$$$$$$$$$$$$$$$$) CLASS Mismatch DB_TABLE at ($$$$$,$$$)
Within an INSERT command, which references both logical and Database Tables a column in the logical table has a different class definition from the same column in the Database table.
Correct the class of the column in either the logical or database table definitions to make them the same.
Column ($$$$$$$$$$$$$$$$$$) Repeats differ DB_TABLE at ($$$$$,$$$)
Within an INSERT command, which references both logical and Database Tables a column in the logical table has a different number of repeats from the same column in the Database table.
Correct the number of repeats column in either the logical or database table definitions to make them the same.
NOTE_DIARY Priority Invalid: Must be '0'/'1'/'2' at ($$$$$,$$$)
Within an NOTE_DIARY function, the priority (parameter 9) has been given an invalid value.
Correct priority to be one of the valid values.
See also