This is from memory not in the office. None of these programs are
documented so I am taking my best guess.
The CBLLE program makes several calls to retrieve data. The parms are 05
and 10 level fields in working storage and are not linkage fields. The only
linkage field I have is the parm I pass in to contain the number which the
program is intended to retrieve from the data queue. These program calls
are intended to establish if the background job which feeds the data queue
is running. I have one in a succession of four internal program calls with
parms. The second internal program call which breaks uses values retrieved
in the first call. It generates a CPF3C20 error message which indicates an
error in call to &1. As I debug the main program, not the called programs,
I should be able to `F11` or Eval on a field to show its value. Since these
fields are initialized in the Working Storage, they should return a result
from the `F11`. Other 05 and 10 level fields, initialized with values,
return those values. Several fields including two in the call which bombs
do not contain values, only the `Identifier Does Not Exist` message.
Thanks for asking. Hope this bit helps.
[mailto:cobol400-l-bounces@xxxxxxxxxxxx] On Behalf Of Tom Liotta
Sent: Thursday, August 06, 2009 10:28 PM
Subject: Re: [COBOL400-L] Identifier Does Not Exist
problem is that it doesn't work and gives a really nasty error when one of
the internal routines makes a call to an outside program and passes parms.
While running it through debug and checking the values of each field each
step of the way, I discovered that elements of the parms in the offending
call `do not exist`. They are arranged thus:
10 Subfield-One Pic X(10) Value("PROGRAM")
10 Subfield-Two Pic X(10) Value("*LIBL")
10 Subfield-Three Pix X(10) Value("*ALL")
When I run the program through debug, subfield one is blank and the other
two list as "Identifier Does Not Exist". I thought it may have been the
positioning of subfields two and three but I have another parm field with
four elements... it finds one and four but two and three do not exist.
My clone has all of the necessary elements of the original which works.
would 10 level defined fields not be available to my program?
More info, please...
Is Parm-Field-One a LINKAGE SECTION field? I.e., is it an input or
an output parm? It _looks_ like it's intended to be an output parm
from your "internal routine" that you're sending to that "outside
program", but I want to be sure.
Is this ILE or OPM COBOL?
Is the error encountered in the "outside program" after you issue
the CALL or is it in your "internal routine" after returning from
the CALL (or is the CALL statement itself that fails?)
Are you debugging your "internal routine" or the "outside program"
in the debug session?
I suspect someone else will have more to say, but I might as well
prompt more info to save you a little time.
As an Amazon Associate we earn from qualifying purchases.