Microsoft KB Archive/177011

= Generated COBOL Will Not Compile =

Article ID: 177011

Article Last Modified on 4/5/2000

-

APPLIES TO


 * Microsoft COM Transaction Integrator for CICS and IMS 1.0

-



This article was previously published under Q177011



SYMPTOMS
When you use the Component Builder (CB) to create a component library (.tlb) file manually (this is, without using the Import COBOL Wizard), you can define a method with parameters in an order that prevents COBOL generated by the CB COBOL Export facility from compiling properly.

If there are two or more parameters that are arrays whose actual counts depend on the value of other parameters, those actual count parameters must appear before the first array.



RESOLUTION
The solution to this problem is to use CB to arrange the parameters in the following order

COUNT1

COUNT2

ARRAY1

ARRAY2

and then regenerate the COBOL using the COBOL Export facility.



Example
You generate a component library with the following four parameters:

Count1 (integer)

Array1 (anything)

Count2 (integer)

Array2 (anything)

The generated COBOL would be similar to this: 01 DFHCOMMAREA. 05 COUNT1                       PIC S9(4) COMP. INOUT 05 ARRAY1 OCCURS 10 TIMES                               INOUT DEPENDING ON COUNT1 OF DFHCOMMAREA PIC S9(9) COMP. 05 COUNT2                       PIC S9(4) COMP. INOUT 05 ARRAY2 OCCURS 10 TIMES                               INOUT DEPENDING ON COUNT2 OF DFHCOMMAREA PIC S9(9) COMP. This COBOL produces the following error message when compiled on MVS: 115 IGYGR1137-S   "OCCURS DEPENDING ON" object "COUNT2" was defined in   a variably located area. Execution results will be unpredictable.

Additional query words: Customer Information Control System (CICS) Management (IMS)

Keywords: kberrmsg kbprogramming kbprb KB177011

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.