INLINE CODE containing SQL is not generated & action block shows sql=NO in icm file
search cancel

INLINE CODE containing SQL is not generated & action block shows sql=NO in icm file

book

Article ID: 221838

calendar_today

Updated On:

Products

Gen

Issue/Introduction

An action block contains INLINE CODE with SQL and the INLINE CODE SQL option is set.
When that action block is generated for LINUX/C/ORACLE/IEFAE, the generated source file is *.c and contains none of the INLINE CODE.
When the same action block is generated for UNIX/C/ORACLE/IEFAE, the generated source file is *.sqc and contains all the expected INLINE CODE.

First reported on Gen 8.6 Windows CSE but also recreated by Broadcom Support with Gen 8.6 Toolset and latest PTFs.

Environment

Release : 8.6

Component : CA Gen Workstation Toolset

Resolution

The root cause of the problem is that the action block INLINE CODE has its OS option set to UNIX instead of LINUX and the option "Ignore Statement in Different Target" is enabled:
CA Gen 8.6 > Developing > Designing > Using the Toolset > Working with Toolset > Use Action Diagram > Assignment Action Statements > Add an Inline Code Statement
+++
Ignore Statement in Different Target 
This checkbox allows you to determine how an Inline Code statement is treated if the containing action diagram is generated for a target other than the one specified on the statement. If the checkbox is checked, the statement is not included in the generated code. If this option is not selected, an error is displayed during generation stating that the statement is inappropriate for the generated environment. This lets you create multiple versions of an Inline Code statement to target different environments and include only the code that is appropriate for that environment.
+++

Therefore, having both INLINE CODE OS=UNIX and "Ignore Statement in Different Target" enabled explains why the INLINE CODE was completely ignored when generating for LINUX.
If the option "Ignore Statement in Different Target" is disabled this message will be seen at generation time: "An INLINE CODE statement targeting UNIX cannot be generated for the current target of LINUX".

To resolve the problem change the INLINE CODE OS to LINUX.