Trying to debug a problem with IMS no-display load module where Gen action block calls an External Action Block (EAB).
Have added 3 INLINE CODE statements that have DISPLAY statements:
Inline1 The unconditional I’ve started display
Inline2 The condition dependent displays for data of interest post EAB call
Inline3 The unconditional I’ve ended display
All are present in the Gen generated COBOL code.
Whilst the COBOL code appears perfectly fine, and compiles just fine, we are seeing no displays in the output.
SYSOUT is defined correctly in the IMS region.
From looking at the generated COBOL code provided, the INLINE CODE statements have been added with a Code Name. Doing this means the INLINE CODE statement can only be executed by referencing it in another INLINE CODE statement i.e.
16* ! INLINE CODE Name: Inline1 Language: COBOL TP Monitor: IMS
315* ! ! INLINE CODE Name: Inline2 Language: COBOL TP Monitor:
315* ! ! IMS
319* ! INLINE CODE Name: Inline3 Language: COBOL TP Monitor: IMS
Release : 8.6
Component : Gen Run Time, Blockmode
Only specify a Code Name when it is common functionality that is required to be called from multiple places in the acton diagram logic.
Just remove the Code Name from your Inline Code statements which will allow the INLINE CODE statements to execute at the specified location in the action diagram logic.
For further details see Gen 8.6 techdocs page Add an Inline Code Statement, with the Code Name section shown below:
This entry field lets you specify a name for the function that is generated to encapsulate the Inline Code statement. This allows you to include code in the action diagram to be reused later by another Inline Code statement. Note that when an Inline Code statement has a name, that statement can only be executed using a reference in another Inline Code statement. The name specified must be a valid identifier for the selected language. Code name is similar to a function name