search cancel

No SYSOUT from INLINE CODE DISPLAY statements in Gen COBOL action block

book

Article ID: 238007

calendar_today

Updated On:

Products

Gen - Host Encyclopedia Gen Gen - Run Time Distributed Gen - Workstation Toolset

Issue/Introduction

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.

Cause

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
===

Environment

Release : 8.6

Component : Gen Run Time, Blockmode

Resolution

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:
===
Code Name
(Optional)
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
===