Problem:
A 173 error on file 'DFHEI1' occurred while running a CICS region. The error appeared in the console.log, and stopped a CICS program from running.
Resolution:
DFHEI1 is not defined in Micro Focus. It is defined only on the mainframe. When the mainframe compiler pre-processes COBOL source having embedded CICS statements, it translates some of those CICS statements into calls to DFHEI1. But under Micro Focus, the CICS statements are not translated into calls to DFHEI1.
The reason 173 errors on DFHEI1 appear, is that the user is compiling some code (perhaps in a COPY book) that has already been pre-processed by the mainframe preprocessor. Consider this example code fragment:
*EXEC CICS HANDLE CONDITION
* ERROR (LT70PD-ERROR-ROUTINE)
* END-EXEC.
006100 Call 'DFHEI1' using by content x'0204800007010000000000000000
- '0000000000000000f0f0f0f7f2404040' end-call
Service label
Go to LT70PD-ERROR-ROUTINE depending on dfheigdi.
In the above code fragment, the mainframe compiler already commented-out the EXEC CICS statement and inserted a call to DFHEI1. Then somebody brought this code over to Micro Focus and compiled it under Micro Focus, but actually Micro Focus needs to compile the original EXEC CICS statement. The code above would result in a 173 error on DFHEI1 at runtime under Micro Focus. The solution is to change this code fragment to:
EXEC CICS HANDLE CONDITION
ERROR (LT70PD-ERROR-ROUTINE)
END-EXEC.
that is, to un-comment and restore the original EXEC CICS statement. To solve the problem, search the COBOL source code for the string "Call 'DFHEI1'". When you locate instances of this, restore the original CICS statement.
#EnterpriseDeveloper
#MFDS
