|
|
| Author |
Message |
ranjini_S01
New User
Joined: 15 Feb 2008 Posts: 12 Location: bangalore
|
|
|
|
thank you. the program is executing fine.
can we use CALL statement in the program?
When i use a CALL statement, the program gets abended with abend code ASRA |
|
| Back to top |
|
 |
References
|
Posted: Tue Jun 17, 2008 3:18 pm Post subject: Re: |
 |
|
|
 |
Garry Carroll
Active User
Joined: 08 May 2006 Posts: 130 Location: Dublin, Ireland
|
|
|
|
PL/1 CALL statement can be used to call an internal procedure or a program declared as EXTERNAL ENTRY. Any EXTERNAL ENTRY program must be linkedited into the load module i.e. you can't do dynamic CALL in PL/1-CICS (AFAIK)
Garry. |
|
| Back to top |
|
 |
ranjini_S01
New User
Joined: 15 Feb 2008 Posts: 12 Location: bangalore
|
|
|
|
Thanks.
Cant we use package concept in PL/1 CICS program.(declaring procedures in a package).
If yes, what should be the package statement?
{ I am getting the error:
DFHENTRY_C28EB4DB_B964C360 is declared as BASED on the
ADDR of DFHEI0, but DFHENTRY_C28EB4DB_B964C360
requires more storage than DFHEI0.
when i use package statement in the above program} |
|
| Back to top |
|
 |
Garry Carroll
Active User
Joined: 08 May 2006 Posts: 130 Location: Dublin, Ireland
|
|
|
|
Sorry, don't understand your use of "package" - I'm not familiar with that.
The error message you are getting is because you have two declarations and the overlaid BASED entry extends beyond the end of the field/structure on which it is based. What declares DFHENTRY_C28EB4DB_B964C360 ?
Garry. |
|
| Back to top |
|
 |
ranjini_S01
New User
Joined: 15 Feb 2008 Posts: 12 Location: bangalore
|
|
|
|
my understanding of package:
a) I can group proedures within a package and i can then control the visibility of procedures outside package (i.e., i can expose only few procedures to be allowed to call from other programs)
eg:
mypack:package;
/* declaration of global variables which are available to all procs */
proc1: proc;
....
end proc1;
proc2:proc;
....
end proc2;
.....
end mypack;
I can control visibility of procs using exports option on package statement.
My intention of pressing for package is that i can declare global variables which i can use in all level-1 procedures(external porcedures)
Regarding to the error, the statement is inserted by the translator after translation (replacement of EXEC CICS statement).
If I use the package, I get the error or else the compilation of the program is fine.
Kindly suggest a solution. |
|
| Back to top |
|
 |
Garry Carroll
Active User
Joined: 08 May 2006 Posts: 130 Location: Dublin, Ireland
|
|
|
|
I don't quite see what you want to achieve. Use of Global Variables is contrary to CICs re-entrancy requirements.
Also, as stated, you need to link the external program into the calling program, so what benefit is there to exposing/concealing procedures?
I have never found a need to use packages, so I'm afraid I can't be of more help.
Regards,
Garry. |
|
| Back to top |
|
 |
ranjini_S01
New User
Joined: 15 Feb 2008 Posts: 12 Location: bangalore
|
|
|
|
ok.. Thanks.
What is the equivalent of LOW-VALUES in PL/I?
Usually in programs, before sending a BMS map to a terminal, LOW-VALUES are passed to the output fields(Eg: MOVE LOW-VALUES TO MAPO)
What is its equivalent in PL/I? |
|
| Back to top |
|
 |
Garry Carroll
Active User
Joined: 08 May 2006 Posts: 130 Location: Dublin, Ireland
|
|
|
|
Tne PL/1 Builtin Function LOW
e.g.
| Code: |
DCL LOW BUILTIN;
/* initialise in declare */
DCL MY_FIELD CHAR(10) INIT(LOW(10));
DCL YOUR_FIELD CHAR(5);
/* assignment in code */
YOUR_FIELD = LOW(5);
|
BTW the HIGH builtin function sets all bits in a field 'on', the opposite of LOW.
Regards,
Garry. |
|
| Back to top |
|
 |
ranjini_S01
New User
Joined: 15 Feb 2008 Posts: 12 Location: bangalore
|
|
|
|
| Thanks. |
|
| Back to top |
|
 |
|
|