Portal | IBM Manuals | Downloads | Products | Refer | Info | Programs | JCLs | Forum Rules*| Site Map | Mainframe CD 
IBMMAINFRAMES.com - IBM Mainframe Support Forums Index
 
Register
 
IBMMAINFRAMES.com - IBM Mainframe Support Forums Index FAQ Search Memberlist Usergroups Profile Log in to check your private messages Log in
 
Implement pseudo-conversation in PL/I with CICS
Goto page Previous  1, 2
 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> PL/I & ASSEMBLER
Author Message
ranjini_S01

New User


Joined: 15 Feb 2008
Posts: 12
Location: bangalore

PostPosted: Tue Jun 17, 2008 3:18 pm    Post subject:
Reply with quote

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
View user's profile Send private message
References
PostPosted: Tue Jun 17, 2008 3:18 pm    Post subject: Re: Reply with quote

Garry Carroll

Active User


Joined: 08 May 2006
Posts: 132
Location: Dublin, Ireland

PostPosted: Tue Jun 17, 2008 4:18 pm    Post subject:
Reply with quote

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
View user's profile Send private message
ranjini_S01

New User


Joined: 15 Feb 2008
Posts: 12
Location: bangalore

PostPosted: Tue Jun 17, 2008 5:00 pm    Post subject:
Reply with quote

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
View user's profile Send private message
Garry Carroll

Active User


Joined: 08 May 2006
Posts: 132
Location: Dublin, Ireland

PostPosted: Tue Jun 17, 2008 5:09 pm    Post subject:
Reply with quote

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
View user's profile Send private message
ranjini_S01

New User


Joined: 15 Feb 2008
Posts: 12
Location: bangalore

PostPosted: Tue Jun 17, 2008 5:22 pm    Post subject:
Reply with quote

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
View user's profile Send private message
Garry Carroll

Active User


Joined: 08 May 2006
Posts: 132
Location: Dublin, Ireland

PostPosted: Wed Jun 18, 2008 1:11 pm    Post subject:
Reply with quote

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
View user's profile Send private message
ranjini_S01

New User


Joined: 15 Feb 2008
Posts: 12
Location: bangalore

PostPosted: Wed Jun 18, 2008 1:27 pm    Post subject:
Reply with quote

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
View user's profile Send private message
Garry Carroll

Active User


Joined: 08 May 2006
Posts: 132
Location: Dublin, Ireland

PostPosted: Wed Jun 18, 2008 1:33 pm    Post subject:
Reply with quote

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
View user's profile Send private message
ranjini_S01

New User


Joined: 15 Feb 2008
Posts: 12
Location: bangalore

PostPosted: Wed Jun 18, 2008 2:58 pm    Post subject:
Reply with quote

Thanks.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> PL/I & ASSEMBLER All times are GMT + 6 HoursGoto page Previous  1, 2
Page 2 of 2