IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Copying Panvalet library member without expanding includes


IBM Mainframe Forums -> CA Products
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Anup Goel

New User


Joined: 16 Jan 2012
Posts: 4
Location: India

PostPosted: Tue Jan 17, 2012 12:16 pm
Reply with quote

I am creating a tool to copy Panvalet library member (which are programs) to personal PDS.
I am using JCL and Rexx for this activity, where by I submit JCL which execute Rexx routine and the Rexx routine copies data from input file to output file of the JCL. However the problem is while copying the member the ++includes present in theses member (which are programs) are being replace by there expanded code. Is there any way I can avoid this? I just want to copy the member i.e. programs without expanding the includes. For Panvalet library I am using below code in my JCL

//INFILE2 DD DSN=MY.PAN.LIB(Member),
// DISP=SHR,SUBSYS=PANV
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Tue Jan 17, 2012 2:35 pm
Reply with quote

Presumably you have Panvalet documentation? You are asking Panvalet, directly (without you knowing it) or indirectly (installattion default) to expand ++... elements when using the command you are using to access the program. Your manual will identify what you are doing, and how to avoid it. You could also talk to the techies who support Panvalet, they'd know the answer for your site of the top of their heads.
Back to top
View user's profile Send private message
Anuj Dhawan

Superior Member


Joined: 22 Apr 2006
Posts: 6250
Location: Mumbai, India

PostPosted: Tue Jan 17, 2012 2:42 pm
Reply with quote

You're hiding a lot of things, such as when you say,
Quote:
However the problem is while copying the member the ++includes present in theses member (which are programs) are being replace by there expanded code.
what exactly you do, what you issue, in your REXX? If you manually issue "cut/paste", does the INCLUDE still expand?
Back to top
View user's profile Send private message
Anup Goel

New User


Joined: 16 Jan 2012
Posts: 4
Location: India

PostPosted: Wed Jan 18, 2012 8:22 am
Reply with quote

I am writing a code to copy Pnavalet library member, which is a program to personal PDS.Now, in the Panvalet member, which is a program, has a few ++ include <include name> statements. My JCL takes this panvalet library member as input , invokes the rexx routine ,passes the Backup PDS name as argument to the rexx routine . This rexx routine simply read the panvalet member and write into the backup PDS. But the problem is in the program ++ include <include name> statement gets expanded automatically ,so when Rexx routine reads and write to the backup PDS .It writes whole program in which all includes are expanded which I don’t want. I want to copy the program into my backup PDS without expanding includes i.e. all the ++ include statement in the program should be copied as it is.
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Wed Jan 18, 2012 12:38 pm
Reply with quote

Don't you think it might be useful to know the particular command you are issuing to Panvalet to get a member from its library? And the options you are using on that command, and those others that are available?
Back to top
View user's profile Send private message
Anup Goel

New User


Joined: 16 Jan 2012
Posts: 4
Location: India

PostPosted: Wed Jan 18, 2012 9:26 pm
Reply with quote

My JCL and Rexx routine looks like below
//STEP010 EXEC PGM=IKJEFT01
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSEXEC DD DSN=MY.REXX.JCL,DISP=SHR
//INFILE2 DD DSN=MY.PANVAL.LIB(PGMEMBER),
// DISP=SHR,SUBSYS=PANV
//SYSTSIN DD *
%TESTRE MY.BKUP.LIB(PGMEMBER) 1
/*

TESTRE code
/********************************REXX****************/
PARSE ARG VAR1 VAR2
RPT2=VAR1
ADDRESS TSO
"EXECIO * DISKR INFILE2 (FINIS STEM MEMREC.)"
ADDRESS TSO
"ALLOCATE DATASET('"RPT2"') FILE(OUTFILE2) OLD REUSE"
"EXECIO 0 DISKW OUTFILE2 (OPEN"
"EXECIO * DISKW OUTFILE2 (FINIS STEM MEMREC.)"
"FREE F(OUTFILE2)"
END
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10872
Location: italy

PostPosted: Wed Jan 18, 2012 9:46 pm
Reply with quote

the way Your jcl is coded You cannot do nothing
the input appears as a sequential dataset and all the <mangling> is done by the PANV subsystem
anyway You went thru lots of trouble when You could have achieved the same result with

Code:
//COPY    EXEC PGM=IEBGENER
//SYSPRINT  DD SYSOUT=*
//SYSIN     DD DUMMY
//SYSUT1    DD DSN=<panvalet library name >(<PANV member name>),
//             DCB=LRECL=80,
//             DISP=SHR,SUBSYS=PANV
//SYSUT2    DD DSN=<partitioned dataset name>(<PDS member name>),
//             DISP=SHR


You should consult the PANVALET documentation to see how to extract a source object without resolving the ++include

what You obtain is reasonable because it is the way of feeding a panvalet object to a standard compilation procedure
Back to top
View user's profile Send private message
Anup Goel

New User


Joined: 16 Jan 2012
Posts: 4
Location: India

PostPosted: Wed Jan 18, 2012 10:09 pm
Reply with quote

Thank you Enrico, for simplifying the process. However, still all ++include is in expanded format. I went through a few Panvalet documentation which I got on internet, but yet I have not got proper solution for my problem.
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10872
Location: italy

PostPosted: Wed Jan 18, 2012 10:17 pm
Reply with quote

look like You did not care to try to understand my reply

the PANV subsystem which processes the I/O to the PANVALET libraries screens the user from the PANVALET intricacies

the pprocess is used to simplify the assembling/compiling of a source stored under panvalet

You would write
Code:
//<stepname> EXEC <yourcompilerproc>
//C.SYSIN  DD DISP=SHR,DSN=<panvalet library>(<panvalet member>)
// SUSYS=PANV

in this way the compiler sees a <standard> source without the PANVALET complications full stop

if You want the raw source You must look at the PANVALET manuals
Back to top
View user's profile Send private message
Mickeydusaor

Active User


Joined: 24 May 2006
Posts: 258
Location: Salem, Oregon

PostPosted: Thu Jan 19, 2012 1:33 am
Reply with quote

You need to exec pgm PAN#1 with sysin dd * cards for the
++write work member-name and either enter a N or E in col 71. Its that simple if you would have read the Panvalet Manual............
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> CA Products

 


Similar Topics
Topic Forum Replies
No new posts Calling an Open C library function in... CICS 1
No new posts Submit multiple jobs from a library t... JCL & VSAM 14
No new posts Duplicate several members of/in one l... JCL & VSAM 7
No new posts Issue after ISPF copy to Linklist Lib... TSO/ISPF 1
No new posts How to copy the -1 version of a membe... TSO/ISPF 4
Search our Forums:

Back to Top