DML084 error in the IDMSDMLC pre-compile of a cobol program.
search cancel

DML084 error in the IDMSDMLC pre-compile of a cobol program.

book

Article ID: 6371

calendar_today

Updated On:

Products

IDMS IDMS - Database

Issue/Introduction

A cobol compile is getting error DML084 in the IDMSDMLC pre-compile.

Environment

Any release from r17.0 onwards. The same cobol source compiles cleanly on releases prior to r17.0.

Cause

There was a change introduced in r17.0 which enforces the requirement that in a FIND/OBTAIN WITHIN SET USING SORT-KEY statement, the SORT-KEY identified by the USING clause can only be one field. This requires that the statement be delimited with a “;” or a “.”.

Resolution

The best resolution is to add a “;” or a “.” to the statement depending on whether or not the statement is inside an IF/THEN/ELSE construct.

Alternatively, optional bits 309 and/or 310 can be used to change the behaviour of the compiler.

By default, the DML084 will cause the compile to end with RC=8.

If you enable bit 309 in RHDCOPTF, the compile will end with RC=4.
#DEFOPT OPT00309

If you enable bits 309 and 310 in RHDCOPTF, the compile will end with RC=0.
#DEFOPT OPT00309
#DEFOPT OPT00310

The functionality of bits 309 and 310 was added to IDMS by r17.0 APAR RO12491.

From r18.0 and onwards, APAR RO12491 is fixed in the base release of IDMS and therefore should not, and can not, be applied at those releases.