MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

XCTL from Macro level PL1 to cmd level CICS in PL1 & COB

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Application Programming
View previous topic :: View next topic  
Author Message
chandanm
Beginner


Joined: 31 Aug 2004
Posts: 12
Topics: 9

PostPosted: Sat Sep 11, 2004 2:06 am    Post subject: XCTL from Macro level PL1 to cmd level CICS in PL1 & COB Reply with quote

Hi,

We have a scenario where a PL/1 macro level program XCTLs (without passing commarea) to a PL/1 command level program. When the EIBCALEN in the called module (cmd-level PL/1) is checked through XPEDITOR, it is shown as 0. but when the same is checked through CEDF, it comes out to be 64.

Also we have a similar situation in another CICS region, where the same PL/1 macro level program XCTLs (without paasing commarea) to a command level COBOL program (this program is the COBOL version of the previously mentioned command level PL/1 program). Here, the value of EIBCALEN is 64 when checked with XPEDITOR as well as CEDF.

What might be the reason for this discrepancy?
We want the EIBCALEN to be 0 in when the program XCTLs to the command-level COBOL program ... how can this be achieved?
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12378
Topics: 75
Location: San Jose

PostPosted: Sun Sep 12, 2004 8:04 pm    Post subject: Reply with quote

Chandanm,

If no commarea has been passed, the value of EIBCALEN is 0; otherwise, EIBCALEN always contains the value specified in the LENGTH option of the LINK, XCTL, or RETURN command, regardless of the size of the data area in the invoked program. You should ensure that the value in EIBCALEN matches the value in the DSECT for your program, and make sure that your transaction is accessing data within that area.

In a PL/I program, the data area can have any name, but it must be declared as a based variable, based on the parameter passed to the program. The pointer to this based variable should be declared explicitly as a pointer rather than contextually by its appearance in the declaration for the area. This prevents the generation of a PL/I error message. No ALLOCATE statement can be processed within the receiving program for any variable based on this pointer. This pointer must not be updated by the application program.


Hope this helps...

Cheers

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Application Programming All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group