View previous topic :: View next topic
|
Author |
Message |
Anup Goel
New User
Joined: 16 Jan 2012 Posts: 4 Location: India
|
|
|
|
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 |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
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 |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6250 Location: Mumbai, India
|
|
|
|
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 |
|
|
Anup Goel
New User
Joined: 16 Jan 2012 Posts: 4 Location: India
|
|
|
|
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 |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
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 |
|
|
Anup Goel
New User
Joined: 16 Jan 2012 Posts: 4 Location: India
|
|
|
|
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 |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10872 Location: italy
|
|
|
|
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 |
|
|
Anup Goel
New User
Joined: 16 Jan 2012 Posts: 4 Location: India
|
|
|
|
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 |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10872 Location: italy
|
|
|
|
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 |
|
|
Mickeydusaor
Active User
Joined: 24 May 2006 Posts: 258 Location: Salem, Oregon
|
|
|
|
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 |
|
|
|