Page 1 of 2
Change all occurrences with JCL and FileManager
Posted: Mon Jun 15, 2015 8:40 pm
by nico56
Hello Folks,
I usually change files using FileManager through ISPF interface. Now I need to do this in a JCL. Via ISPF interface, I enter in FM option, 2 (Edit), open the file (VSAM) and execute command "change 'string1' 'string2' all". The strings have the same length. Do you know how to do this in a JCL?
Regards!
Re: Change all occurrences with JCL and FileManager
Posted: Tue Jun 16, 2015 12:34 am
by nico56
I am trying with this JOB but when I run it, I get an error for missing or invalid control card.
Code: Select all
//JOBSIT1 JOB (999),'PROGRAMMER',
// CLASS=A,
// MSGCLASS=X,
// NOTIFY=&SYSUID,
// COND=(0,NE)
//STEP1 EXEC PGM=FILEMGR
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
$$FILEM DSP DSNIN='PPG.TEST.LEKS.VS.CONTR',
$$FILEM CHANGE 'XXX' 'YYY' ALL
/*
//
Re: Change all occurrences with JCL and FileManager
Posted: Tue Jun 16, 2015 1:15 am
by enrico-sorichetti
what happened when You looked at the manual or pressed the PF1 key for interactive help ?
Re: Change all occurrences with JCL and FileManager
Posted: Tue Jun 16, 2015 1:31 am
by nico56
I didn't find it :S
Re: Change all occurrences with JCL and FileManager
Posted: Tue Jun 16, 2015 2:30 am
by nico56
enrico-sorichetti wrote:what happened when You looked at the manual or pressed the PF1 key for interactive help ?
Hello enrico-sorichetti, I looked in the manual (PDF) and interactive help but I didn't get the answer. In the interactive help I read about command "CHANGE" but there is no information how to use it in a JCL. I don't even know how to make reference to the file.
Re: Change all occurrences with JCL and FileManager
Posted: Tue Jun 16, 2015 5:25 am
by Robert Sample
I'm looking at the FileManager manual and it indicates DSP is Data Set Print. Perhaps if you look in the manual at FCH (Find / CHange) instead of DSP, you would get further?
Re: Change all occurrences with JCL and FileManager
Posted: Tue Jun 16, 2015 6:12 am
by nico56
The manual is really difficult to use if one doesn't know how to search. Is there any tutorial?
Re: Change all occurrences with JCL and FileManager
Posted: Tue Jun 16, 2015 7:06 am
by Robert Sample
Google is your friend. Googling
file manager tutorial returns plenty of hits which you can go through to your heart's content. Furthermore, if you had bothered to check the FCH section of the File Manager manual (starting on page 1023 of the z/OS 13 manual) you could have found this example of how to use the CHANGE command in batch:
Code: Select all
//FMUSRFCH JOB (@TS2,MVS6),’FMNUSER’,NOTIFY=FMNUSER,
// CLASS=A,MSGLEVEL=(1,1),MSGCLASS=H
//FMNBAT EXEC PGM=FILEMGR
//STEPLIB DD DSN=FMNUSER.FMN110.TSTLOAD,DISP=SHR
// DD DSN=FMN.V1R1M0.TSTLOAD,DISP=SHR
// DD DSN=FMN.V1R1M0.SFMNMOD1,DISP=SHR
// DD DSN=FMN.IGYV1R20.SIGYCOMP,DISP=SHR
//SYSPRINT DD SYSOUT=*
//FMNEXEC DD DSN=FMN.EXEC,DISP=SHR
//FMNTSPRT DD SYSOUT=*
//FMNIN DD DSN=FMNUSER.JCL.TESTING,DISP=SHR
//SYSTERM DD SYSOUT=*
//SYSIN DD *
$$FILEM FCH ,
$$FILEM INPUT=FMNIN,MEMBER=J*
F ’rights reserved’
C ’Copyright 2001-2002’ ,
’Copyright 2001-2003’ 1 71
C ’Alpha Company Ltd’ ,
’Alpha Beta Company Ltd’ 1 71
C ’Beta Company Ltd’ ,
’Alpha Beta Company Ltd’ 1 71
/+
/*
Re: Change all occurrences with JCL and FileManager
Posted: Tue Jun 16, 2015 4:55 pm
by nicc
And please do not post on multiple forums - there are answers on the other forum where I found your post.
Re: Change all occurrences with JCL and FileManager
Posted: Tue Jun 16, 2015 6:37 pm
by Anuj Dhawan
IBM File Manager does have the capability to execute all the commands in batch too. It allows you to generate a Job of your choice - suggest you should also try generating the JCL and use that for future reference. IBM File Manger is, usually, tailored differently for different shop however the batch Job generated "automatically" will take care about any custom adjustment for your shop... fwiw.
Re: Change all occurrences with JCL and FileManager
Posted: Tue Jun 16, 2015 7:29 pm
by nico56
Anuj Dhawan wrote:IBM File Manager does have the capability to execute all the commands in batch too. It allows you to generate a Job of your choice - suggest you should also try generating the JCL and use that for future reference. IBM File Manger is, usually, tailored differently for different shop however the batch Job generated "automatically" will take care about any custom adjustment for your shop... fwiw.
Hello, Anuj! Yes, I read about all commands what you executes in FileManager have that capability, buy How do you generete that JCL?
Re: Change all occurrences with JCL and FileManager
Posted: Tue Jun 16, 2015 7:50 pm
by nico56
Robert Sample wrote:Google is your friend. Googling
file manager tutorial returns plenty of hits which you can go through to your heart's content. Furthermore, if you had bothered to check the FCH section of the File Manager manual (starting on page 1023 of the z/OS 13 manual) you could have found this example of how to use the CHANGE command in batch:
Code: Select all
//FMUSRFCH JOB (@TS2,MVS6),’FMNUSER’,NOTIFY=FMNUSER,
// CLASS=A,MSGLEVEL=(1,1),MSGCLASS=H
//FMNBAT EXEC PGM=FILEMGR
//STEPLIB DD DSN=FMNUSER.FMN110.TSTLOAD,DISP=SHR
// DD DSN=FMN.V1R1M0.TSTLOAD,DISP=SHR
// DD DSN=FMN.V1R1M0.SFMNMOD1,DISP=SHR
// DD DSN=FMN.IGYV1R20.SIGYCOMP,DISP=SHR
//SYSPRINT DD SYSOUT=*
//FMNEXEC DD DSN=FMN.EXEC,DISP=SHR
//FMNTSPRT DD SYSOUT=*
//FMNIN DD DSN=FMNUSER.JCL.TESTING,DISP=SHR
//SYSTERM DD SYSOUT=*
//SYSIN DD *
$$FILEM FCH ,
$$FILEM INPUT=FMNIN,MEMBER=J*
F ’rights reserved’
C ’Copyright 2001-2002’ ,
’Copyright 2001-2003’ 1 71
C ’Alpha Company Ltd’ ,
’Alpha Beta Company Ltd’ 1 71
C ’Beta Company Ltd’ ,
’Alpha Beta Company Ltd’ 1 71
/+
/*
Robert, the problem with those examples is I can not understand them. In this example, what are you trying to do? Do you always have to write $$FILEM FCH , or $FILEM <COMMAND> and in the other lines the parameters? I don't get what are you trying to do with MEMBER anyway :S.
Re: Change all occurrences with JCL and FileManager
Posted: Tue Jun 16, 2015 11:04 pm
by Robert Sample
Me? I am doing NOTHING -- this example is straight out of the IBM manual and attributing anything about it to me is wrong. The example is working with a PDS named FMNUSER.JCL.TESTING -- and specifically only the members of this PDS that start with J -- and is finding occurrences of "rights reserved" in those members. The example is also changing "Copyright 2001-2002" to "Copyright 2001-2003" in columns 1 through 71 of the selected members of the PDS; changing "Alpha Company Ltd" to "Alpha Beta Company Ltd" in the same columns for the same members and changing "Beth Company Ltd" to "Alpha Beta Company Ltd" in the same columns for the same members.
This is not rocket science -- I've never had reason to use File Manager (although I do have extensive experience with File Aid) and hence my analysis is based purely upon understanding IT concepts and principles, and knowing mainframe data sets. If you cannot figure out what the File Manager JCL is doing from inspection, you REALLY need to ask yourself if you might want to pursue a career in a different field as this example JCL is pretty simple yet you have great difficultly in comprehending it. This example shows you how to write a change command in File Manager batch -- you should be able to experiment with it to determine the answers to your questions yourself. Make a back up copy of your data set so you can recover should you find the changes you try don't work as expected. If your data set is not a PDS, remove the MEMBER=J* from the sample JCL. Change the INPUT DD statement to point to your data set. Take out the FIND command. Test your changes.
And, finally, if you wish to ever become a professional IT person (as opposed to being a paid amateur like now), you need to learn how to read manuals, interpret syntax diagrams and find things out for yourself. Requiring your information to be spoon-fed to you does not improve your skills and definitely makes you less desirable to employers than someone who can figure things out themselves.
Re: Change all occurrences with JCL and FileManager
Posted: Wed Jun 17, 2015 12:04 am
by nico56
Robert, I get this all the time
Code: Select all
0FMNBA091 Missing or invalid control card
0FMNBA092 Parameter $$FILEM missing
0FMNBE098 Keyword verification discontinued for any subsequent command
This is my code (relevant part):
Code: Select all
//SYSIN DD *
$$FILEM FCH ,
$$FILEM INPUT=FMNIN,
C 'XXX' 'YYY' 0 50
/+
/*
I deleted "MEMBER" because is a VSAM file, and I specified columns between 0 and 50 because equals the length of all record (instead of ALL like the original command).
Re: Change all occurrences with JCL and FileManager
Posted: Wed Jun 17, 2015 3:46 am
by Robert Sample
Code: Select all
$$FILEM FCH ,
$$FILEM INPUT=FMNIN,MEMBER=J*
F ’rights reserved’
is what the manual has;
Code: Select all
$$FILEM FCH ,
$$FILEM INPUT=FMNIN,
C 'XXX' 'YYY' 0 50
is what you posted. Note that your code has a trailing comma on the second $$FILEM statement while the manual example does not. Details like this are important. You will probably also get an error in attempting to change column 0 which doesn't exist -- the value is not an offset but a column number, and the manual specifically states the value must be 1 or higher. If I wanted to change the occurrences in the entire record, I would completely remove the starting and ending columns from the CHANGE command -- why complicate the processing if not needed?
Re: Change all occurrences with JCL and FileManager
Posted: Wed Jun 17, 2015 4:00 am
by nico56
Thanks Robert. You could be more nice in your answers, specially if this is a beginner forum.
Regards
Re: Change all occurrences with JCL and FileManager
Posted: Wed Jun 17, 2015 1:51 pm
by nicc
This is not a beginners forum. There is another forum elsewhere that is for beginners.
Re: Change all occurrences with JCL and FileManager
Posted: Wed Jun 17, 2015 2:34 pm
by enrico-sorichetti
I usually change files using FileManager through ISPF interface.
it should mean that You
KNOW HOW to use file manager
remember ...
we reply ON OUR TIME and FOR FREE
so it is our right to expect that people asking have done their homework
a paid consultant has the need and is expected to pick up all the s**t that the customer throws at him
we do not
more time spent to show You what You should already know
when You went to the file manager screen where it asks for the dataset name
did You notice ....
Code: Select all
Process Options Help
──────────────────────────────────────────────────────────────────────────────
File Manager Find/Change Utility
Command ===> Scroll PAGE
Input Partitioned, Sequential or VSAM Data Set, or HFS file:
Data set/path name ENRICO.MFTESTS.PS +
Member . . . . . (Blank - selection, pattern - process list)
Volume serial . (If not cataloged)
Record count . . Number of records to be searched
+ Additional options
Process List:
Sel Name Prompt Alias-of Size Created Changed ID
**** End of data ****
and after positioning the cursor on the +
Code: Select all
Process Options Help
──────────────────────────────────────────────────────────────────────────────
File Manager Find/Change Utility
Command ===> C FROMSTRING TOSTRING Scroll PAGE
Input Partitioned, Sequential or VSAM Data Set, or HFS file:
Data set/path name ENRICO.MFTESTS.PS +
Member . . . . . (Blank - selection, pattern - process list)
Volume serial . (If not cataloged)
Record count . . Number of records to be searched
- Additional options
Listing data set . ENRICO.FM.LIST
Enter "/" to select option Listing Option ISPF Packing
JCL Source format Immediate change 1 1. Long 3 1. Asis
Use REXX proc / Batch execution 2. Summary 2. Pack
REXX no update / Directory integrity 3. Unpack
Advanced member selection Stats off 4. None
Binary mode, reclen CAPS initially on 5. Skip
Process List:
Sel Name Prompt Alias-of Size Created Changed ID
**** End of data ****
and if You had chosen the batch option
Code: Select all
EDIT ENRICO.SPFTEMP1.CNTL Columns 00001 00072
Command ===> Scroll ===> PAGE
****** ***************************** Top of Data ******************************
000001 //ENRICOB JOB (ESYZ),
000002 // ENRICO,MSGCLASS=A,
000003 // NOTIFY=ENRICO,CLASS=A,
000004 // MSGLEVEL=(1,1)
000005 //*
000006 //FILEMGR EXEC PGM=FMNMAIN
000007 //STEPLIB DD DSN=FMN.SFMNMOD1,DISP=SHR
000008 //* DD DSN=IGY.SIGYCOMP,DISP=SHR
000009 //*FMNCOB DD DUMMY Uncomment to force use of FM COBOL Compiler
000010 //*FMNCLERR DD SYSOUT=* Uncomment to force output of Compiler listing
000011 //SYSPRINT DD SYSOUT=*
000012 //FMNTSPRT DD SYSOUT=*
000013 //SYSTERM DD SYSOUT=*
000014 //SYSIN DD *
000015 $$FILEM FCH ,
000016 $$FILEM PACK=UNPACK,
000017 $$FILEM DIRINTEGR=YES,
000018 $$FILEM DSNIN=ENRICO.MFTESTS.PS
000019 C FROMSTRING TOSTRING
000020 /+
****** **************************** Bottom of Data ****************************
a proper error free icl snippet would have been generated
the +/- is sticky, it is kept in your Filemanager ISPF profile data
If You want to keep receiving help on any forum
You will have to definitely change Your attitude
otherwise Your chances of getting help will be almost non existent
Re: Change all occurrences with JCL and FileManager
Posted: Wed Jun 17, 2015 2:44 pm
by Anuj Dhawan
Thanks for the detailed explanation Enrico.
Re: Change all occurrences with JCL and FileManager
Posted: Tue Jun 23, 2015 9:06 pm
by enrico-sorichetti
for this TS the same consideration done here apply
http://www.zmainframes.com/viewtopic.php?f=35&t=1458
he asked a question, got a reply with a detailed explanation and did not care to acknowledge
these people have no place in a civil forum