|
View previous topic :: View next topic
|
| Author |
Message |
madmartinsonxx
New User

Joined: 10 Dec 2010 Posts: 96 Location: Massachusetts
|
|
|
|
I have been asked to add a header line that has screen names in it to a spreadsheet I am creating with field's that have changed from a moment in time to the next moment in time ( delta changes ). Then I FTP this file down to the server. Pretty standard stuff.
I concatenate 2 sets of data twice in this procedure. The first is a timestamp and a counter file. The second is the header and the delta changes file. What I am struggling to understand is that when I have the timestamp file and the counter file the same LRECL and BLKSIZE I can concatenate these and the FTP operates as I believe it should. But no matter how I LRECL the Header file I cannot concatenate that in front of the changes file becuase no matter WHAT I do i get the dreaded:
| Code: |
EZA1736I FTP (EXIT=8
EZA1450I IBM FTP CS V1R11
EZA1772I FTP: EXIT has been set.
EZA1456I Connect to ?
EZA1736I inftpdev.nscorp.com
EZA1554I Connecting to: gaatlvsvm01ddv2.atldc.nscorp.com 10.3.240.52 port: 21.
220 Microsoft FTP Service
EZA1459I NAME (inftpdev.nscorp.com:Z3A3E):
EZA1701I >>> USER nscorp\syaye59
331 Password required for nscorp\syaye59.
EZA1701I >>> PASS
230 User nscorp\syaye59 logged in.
EZA1460I Command:
EZA1736I locsite trail
EZA1460I Command:
EZA1736I CD \SAPHRDATA\P2P\DELTA_FILES\SAPLOAD
EZA1701I >>> CWD \SAPHRDATA\P2P\DELTA_FILES\SAPLOAD
250 CWD command successful.
EZA1460I Command:
EZA1736I RENAME +
EZA1736I P2P287_MRP_AREA_CHGS.TXT +
EZA1736I ARCHIVE/P2P287_MRP_AREA_CHGS.20110711.145859.TXT
EZA1701I >>> RNFR P2P287_MRP_AREA_CHGS.TXT
350 File exists, ready for destination name
EZA1701I >>> RNTO ARCHIVE/P2P287_MRP_AREA_CHGS.20110711.145859.TXT
250 RNTO command successful.
EZA1460I Command:
EZA1736I RENAME +
EZA1736I P2P287_MRP_AREA_COUNTS.TXT +
EZA1736I ARCHIVE/P2P287_MRP_AREA_COUNTS.20110711.145859.TXT
EZA1701I >>> RNFR P2P287_MRP_AREA_COUNTS.TXT
350 File exists, ready for destination name
EZA1701I >>> RNTO ARCHIVE/P2P287_MRP_AREA_COUNTS.20110711.145859.TXT
250 RNTO command successful.
EZA1460I Command:
EZA1736I RENAME +
EZA1736I P2P287_MRP_AREA_ADDS.TXT +
EZA1736I ARCHIVE/P2P287_MRP_AREA_ADDS.20110711.145859.TXT
EZA1701I >>> RNFR P2P287_MRP_AREA_ADDS.TXT
350 File exists, ready for destination name
EZA1701I >>> RNTO ARCHIVE/P2P287_MRP_AREA_ADDS.20110711.145859.TXT
250 RNTO command successful.
EZA1460I Command:
EZA1736I PUT //DD:ZOS01 P2P287_MRP_AREA_CHGS.TXT
[b]EZA2564W Open of //DD:ZOS01 failed.[/b]
EZA1735I Std Return Code = 27000, Error Code = 00018
EZA1701I >>> QUIT
221
|
Here is my job stream in it's entirety as well as the FTP commands that I am currently using.
| Code: |
//GET EXEC SPFTP,CONN=TS2.MA.FTP.CONN.CONV
//FTPC.SYSIN DD DISP=SHR,DSN=TS2.MA.FTP.PARMS.MMAP.XX(SR311L01)
//* PRIOR
//FTP.ZOS01 DD DISP=(MOD,PASS,DELETE),
// DSN=&&PRIOR,
// UNIT=DISK,SPACE=(CYL,(05,05),RLSE),
// DCB=(RECFM=FB,BLKSIZE=0,LRECL=0200)
//* CURRENT
//FTP.ZOS02 DD DISP=(MOD,PASS,DELETE),
// DSN=&&CURRENT,
// UNIT=DISK,SPACE=(CYL,(05,05),RLSE),
// DCB=(RECFM=FB,BLKSIZE=0,LRECL=0200)
//FTPABEND EXEC PGM=ABEND,COND=(8,GT,GET.FTP)
//* REFORMAT CURRENT TO SAP FORMAT
//PREPCURR EXEC PGM=ICEMAN
//SORTIN DD DISP=(OLD,DELETE,DELETE),
// DSN=&&CURRENT
//SORTOUT DD DISP=(NEW,CATLG,DELETE),
// DSN=TS2.MA.SAPLOAD.P2P287.AREA.CURRENT,
// UNIT=DISK,SPACE=(CYL,(05,05),RLSE),
// DCB=(RECFM=FB,BLKSIZE=0,LRECL=0000)
//SYSSOUT DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYMNAMES DD *
A_PIPE_CHAR,X'4F'
/*
//SYSIN DD *
* OPTION COPY
SORT FIELDS=(01,18,CH,A)
INREC PARSE=(%01=(ENDBEFR=A_PIPE_CHAR,FIXLEN=018),
%02=(ENDBEFR=A_PIPE_CHAR,FIXLEN=004),
%03=(ENDBEFR=A_PIPE_CHAR,FIXLEN=004),
%04=(ENDBEFR=A_PIPE_CHAR,FIXLEN=004),
%05=(ENDBEFR=A_PIPE_CHAR,FIXLEN=001),
%06=(ENDBEFR=A_PIPE_CHAR,FIXLEN=002),
%07=(ENDBEFR=A_PIPE_CHAR,FIXLEN=017),
%08=(ENDBEFR=A_PIPE_CHAR,FIXLEN=002),
%09=(ENDBEFR=A_PIPE_CHAR,FIXLEN=003),
%10=(ENDBEFR=A_PIPE_CHAR,FIXLEN=009),
%11=(ENDBEFR=A_PIPE_CHAR,FIXLEN=009),
%12=(ENDBEFR=A_PIPE_CHAR,FIXLEN=004),
%13=(ENDBEFR=A_PIPE_CHAR,FIXLEN=009),
%14=(ENDBEFR=A_PIPE_CHAR,FIXLEN=001),
%15=(ENDBEFR=A_PIPE_CHAR,FIXLEN=003),
%16=(ENDBEFR=A_PIPE_CHAR,FIXLEN=003),
%17=(ENDBEFR=A_PIPE_CHAR,FIXLEN=004),
%18=(ENDBEFR=A_PIPE_CHAR,FIXLEN=002),
%19=(ENDBEFR=A_PIPE_CHAR,FIXLEN=006),
%20=(ENDBEFR=A_PIPE_CHAR,FIXLEN=004),
%21=(ENDBEFR=A_PIPE_CHAR,FIXLEN=001),
%22=(ENDBEFR=A_PIPE_CHAR,FIXLEN=003),
%23=(ENDBEFR=A_PIPE_CHAR,FIXLEN=003),
%24=(ENDBEFR=A_PIPE_CHAR,FIXLEN=004),
%25=(ENDBEFR=A_PIPE_CHAR,FIXLEN=001),
%26=(ENDBEFR=A_PIPE_CHAR,FIXLEN=015),
%27=(ENDBEFR=A_PIPE_CHAR,FIXLEN=015),
%28=(ENDBEFR=A_PIPE_CHAR,FIXLEN=002),
%29=(FIXLEN=002)),
BUILD=(%01,C'|',
%02,C'|',
%03,C'|',
%04,C'|',
%05,C'|',
%05,C'|',
%06,C'|',
%07,C'|',
%08,C'|',
%09,C'|',
%10,C'|',
%11,C'|',
%12,C'|',
%13,C'|',
%14,C'|',
%15,C'|',
%16,C'|',
%17,C'|',
%18,C'|',
%19,C'|',
%20,C'|',
%21,C'|',
%22,C'|',
%23,C'|',
%23,C'|',
%24,C'|',
%25,C'|',
%26,C'|',
%27,C'|',
%28,C'|',
%29,C'|')
/*
//*
//* REFORMAT PRIOR TO SAP FORMAT
//PREPPRYR EXEC PGM=ICEMAN
//SORTIN DD DISP=(OLD,DELETE,DELETE),
// DSN=&&PRIOR
//SORTOUT DD DISP=(NEW,CATLG,DELETE),
// DSN=TS2.MA.SAPLOAD.P2P287.AREA.PRIOR,
// UNIT=DISK,SPACE=(CYL,(05,05),RLSE),
// DCB=(RECFM=FB,BLKSIZE=0,LRECL=0000)
//SYSSOUT DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYMNAMES DD *
A_PIPE_CHAR,X'4F'
/*
//SYSIN DD *
* OPTION COPY
SORT FIELDS=(01,18,CH,A)
INREC PARSE=(%01=(ENDBEFR=A_PIPE_CHAR,FIXLEN=018),
%02=(ENDBEFR=A_PIPE_CHAR,FIXLEN=004),
%03=(ENDBEFR=A_PIPE_CHAR,FIXLEN=004),
%04=(ENDBEFR=A_PIPE_CHAR,FIXLEN=004),
%05=(ENDBEFR=A_PIPE_CHAR,FIXLEN=001),
%06=(ENDBEFR=A_PIPE_CHAR,FIXLEN=002),
%07=(ENDBEFR=A_PIPE_CHAR,FIXLEN=017),
%08=(ENDBEFR=A_PIPE_CHAR,FIXLEN=002),
%09=(ENDBEFR=A_PIPE_CHAR,FIXLEN=003),
%10=(ENDBEFR=A_PIPE_CHAR,FIXLEN=009),
%11=(ENDBEFR=A_PIPE_CHAR,FIXLEN=009),
%12=(ENDBEFR=A_PIPE_CHAR,FIXLEN=004),
%13=(ENDBEFR=A_PIPE_CHAR,FIXLEN=009),
%14=(ENDBEFR=A_PIPE_CHAR,FIXLEN=001),
%15=(ENDBEFR=A_PIPE_CHAR,FIXLEN=003),
%16=(ENDBEFR=A_PIPE_CHAR,FIXLEN=003),
%17=(ENDBEFR=A_PIPE_CHAR,FIXLEN=004),
%18=(ENDBEFR=A_PIPE_CHAR,FIXLEN=002),
%19=(ENDBEFR=A_PIPE_CHAR,FIXLEN=006),
%20=(ENDBEFR=A_PIPE_CHAR,FIXLEN=004),
%21=(ENDBEFR=A_PIPE_CHAR,FIXLEN=001),
%22=(ENDBEFR=A_PIPE_CHAR,FIXLEN=003),
%23=(ENDBEFR=A_PIPE_CHAR,FIXLEN=003),
%24=(ENDBEFR=A_PIPE_CHAR,FIXLEN=004),
%25=(ENDBEFR=A_PIPE_CHAR,FIXLEN=001),
%26=(ENDBEFR=A_PIPE_CHAR,FIXLEN=015),
%27=(ENDBEFR=A_PIPE_CHAR,FIXLEN=015),
%28=(ENDBEFR=A_PIPE_CHAR,FIXLEN=002),
%29=(FIXLEN=002)),
BUILD=(%01,C'|',
%02,C'|',
%03,C'|',
%04,C'|',
%05,C'|',
%06,C'|',
%07,C'|',
%08,C'|',
%09,C'|',
%10,C'|',
%11,C'|',
%12,C'|',
%13,C'|',
%14,C'|',
%15,C'|',
%16,C'|',
%17,C'|',
%18,C'|',
%19,C'|',
%20,C'|',
%21,C'|',
%22,C'|',
%23,C'|',
%24,C'|',
%25,C'|',
%26,C'|',
%27,C'|',
%28,C'|',
%29,C'|')
/*
//*
//* PIN THE KEYED RECORDS TOGETHER
//* GET ADDS FILE
//PINKEYED EXEC PGM=ICEMAN
//IN01 DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.CURRENT
//IN02 DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.PRIOR
//F1ONLY DD DISP=(NEW,CATLG,DELETE),
// DSN=TS2.MA.SAPLOAD.P2P287.AREA.ADDS,
// UNIT=DISK,SPACE=(TRK,(02,01),RLSE),
// DCB=(RECFM=VB,BLKSIZE=0,LRECL=0188)
//F2ONLY DD SYSOUT=*
//XOUT01 DD SYSOUT=*
//BOTH DD DISP=(NEW,CATLG,DELETE),
// DSN=TS2.MA.SAPLOAD.P2P287.AREA.PANDC,
// UNIT=DISK,SPACE=(CYL,(15,05),RLSE),
// DCB=(RECFM=FB,BLKSIZE=0,LRECL=0000)
//SYSSOUT DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SORTOUT DD SYSOUT=*
//SYSIN DD *
*
JOINKEYS F1=IN01,FIELDS=(01,18,A,25,4,A,30,4,A)
JOINKEYS F2=IN02,FIELDS=(01,18,A,25,4,A,30,4,A)
JOIN UNPAIRED,F1,F2
* REPORT FIELDS
REFORMAT FIELDS=(F1:1,0184,F2:1,0184,?)
* CONTROL STATEMENTS FOR MAIN TASK (JOINED RECORDS)
OPTION COPY
OUTFIL FNAMES=F1ONLY,INCLUDE=(0369,1,CH,EQ,C'1'),
FTOV,BUILD=(1,0184),VLTRIM=C' '
OUTFIL FNAMES=F2ONLY,INCLUDE=(0369,1,CH,EQ,C'2'),
BUILD=(0185,0184)
OUTFIL FNAMES=BOTH,INCLUDE=(0369,1,CH,EQ,C'B'),
BUILD=(01,0184,0185,0184)
/*
//
//* TAG CHANGES
//FLAGCHGS EXEC PGM=ICEMAN
//SORTIN DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.PANDC
//SORTOUT DD DISP=(MOD,PASS,DELETE),
// DSN=&&TEMP01,
// UNIT=DISK,SPACE=(CYL,(10,05),RLSE),
// DCB=(RECFM=FB,BLKSIZE=00000,LRECL=0000)
//SYSOUT DD SYSOUT=*
//XOUT01 DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//SYSIN DD *
*
OPTION COPY
OUTFIL FNAMES=SORTOUT,
IFTHEN=(WHEN=(001,184,CH,NE,0185,0184,CH),
BUILD=(C'C|',0001,0184,/,C'P|',0185,0184))
/*
//*
//* GET CHANGES TO FTP FILE
//FTPCHGS EXEC PGM=ICEMAN
//SORTIN DD DISP=(OLD,PASS,DELETE),DSN=&&TEMP01
//SORTOUT DD DISP=(NEW,CATLG,DELETE),
// DSN=TS2.MA.SAPLOAD.P2P287.AREA.CHGS,
// UNIT=DISK,SPACE=(CYL,(10,05),RLSE),
// DCB=(RECFM=FB,BLKSIZE=00000,LRECL=0000)
//SYSOUT DD SYSOUT=*
//XOUT01 DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//SYSIN DD *
OPTION COPY
OUTFIL FNAMES=SORTOUT,
IFTHEN=(WHEN=(001,184,CH,NE,0185,0184,CH),
BUILD=(C'C|',0001,0184,/,C'P|',0185,0184))
/*
//*
//* GET CHANGES TO FTP FILE
//FTPCHGS EXEC PGM=ICEMAN
//SORTIN DD DISP=(OLD,PASS,DELETE),DSN=&&TEMP01
//SORTOUT DD DISP=(NEW,CATLG,DELETE),
// DSN=TS2.MA.SAPLOAD.P2P287.AREA.CHGS,
// UNIT=DISK,SPACE=(CYL,(10,05),RLSE),
// DCB=(RECFM=FB,BLKSIZE=00000,LRECL=0000)
//SYSOUT DD SYSOUT=*
//XOUT01 DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=(03,18,A,22,4,A,27,4,A,01,01,A),FORMAT=BI
INCLUDE COND=(01,02,CH,EQ,C'C|',OR,01,02,CH,EQ,C'P|')
/*
//*
//* BUILD HEADER
//HEADER EXEC PGM=ICEMAN
//SORTIN DD *
DUMMY RECORD
/*
//SORTOUT DD DISP=(NEW,CATLG,DELETE),
// DSN=TS2.MA.SAPLOAD.P2P287.AREA.HEADER,
// UNIT=DISK,SPACE=(TRK,(01,01),RLSE),
// DCB=(RECFM=FB,BLKSIZE=00000,LRECL=0000)
//SYSOUT DD SYSOUT=*
//XOUT01 DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//SYSIN DD *
OPTION COPY
OUTFIL FNAMES=SORTOUT,
BUILD=(C'CURR OR PRIOR|',
C'MATNR|',
C'MTART|',
C'WERKS|',
C'LGORT|',
C'ABC_IND|',
C'DISLS|',
C'BSTFE|',
C'DISMM|',
C'DISPO|',
C'MINBE|',
C'BSTMI|',
C'MDMA_DISGR|',
C'MARC_EISBE|',
C'BESKZ|',
C'PLIFZ|',
C'WEBAZ|',
C'LGPRO|',
C'SOBSL|',
C'SFCPF|',
C'SERNP|',
C'SERLV|',
C'FEVOR|',
C'DZEIT|',
C'BKLAS|',
C'VPRSV|',
C'VERPR|',
C'STPRS|',
C'MTVFP|',
C'ZZINVENT|)
/*
//*
//* BUILD TIMESTAMP
//TIMESTMP EXEC PGM=ICEMAN
//DFSMSG DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SORTIN DD *
DUMMY RECORD
/*
//COUNT1 DD DISP=(NEW,CATLG,DELETE),
// DSN=TS2.MA.SAPLOAD.P2P287.AREA.TIMESTMP,
// UNIT=DISK,SPACE=(TRK,(01,01),RLSE),
// DCB=(RECFM=FB,BLKSIZE=049,LRECL=049)
//SYSIN DD *
* INSERT TIMESTAMP INTO FILE
* MUST MATCH LRECL OF COUNTS FILE
OPTION COPY
OUTFIL FNAMES=COUNT1,OUTREC=(DATE1(/),X,TIME1(:),49:X,/)
/*
//* REPORT NUMBER OF CHANGES
//COUNTS EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//XOUT01 DD SYSOUT=*
//COUNT1 DD DISP=(MOD,CATLG,DELETE),
// DSN=TS2.MA.SAPLOAD.P2P287.AREA.COUNTS,
// UNIT=DISK,SPACE=(TRK,(02,02),RLSE),
// DCB=(RECFM=FB,BLKSIZE=049,LRECL=049)
//IN01 DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.CHGS
//IN02 DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.ADDS
//CURRENT DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.CURRENT
//PRIOR DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.PRIOR
//TOOLIN DD *
COUNT FROM(CURRENT) WRITE(COUNT1) -
TEXT('P2P287.AREA MRP CURRENT RECS ') -
EDCOUNT(A1,U10)
COUNT FROM(PRIOR) WRITE(COUNT1) -
TEXT('P2P287.AREA MRP PRIOR RECS ') -
EDCOUNT(A1,U10)
COUNT FROM(IN01) WRITE(COUNT1) -
TEXT('P2P287.AREA MRP CHANGES ') -
EDCOUNT(A1,U10) USING(CTL1)
COUNT FROM(IN02) WRITE(COUNT1) -
TEXT('P2P287.AREA MRP ADDS ') -
EDCOUNT(A1,U10)
//CTL1CNTL DD *
INCLUDE COND=(1,2,CH,EQ,C'C|')
/*
//*
//* SEND FILES
//*
//PUT EXEC SPFTP,CONN=TS2.MA.FTP.CONN.CONV
//FTPC.SYSIN DD DISP=SHR,DSN=TS2.MA.FTP.PARMS.MMAP.XX(SR311L02)
//*TP.Z0S01 DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.HEADER
//FTP.ZOS01 DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.CHGS
//FTP.ZOS02 DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.TIMESTMP
// DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.COUNTS
//FTP.ZOS03 DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.ADDS
//FTPABEND EXEC PGM=ABEND,COND=(8,GT,PUT.FTP)
//*
|
FTP commands:
| Code: |
CD \SAPHRDATA\P2P\DELTA_FILES\SAPLOAD
RENAME +
P2P287_MRP_AREA_CHGS.TXT +
ARCHIVE/P2P287_MRP_AREA_CHGS.20&LYYMMDD..&LHHMMSS..TXT
RENAME +
P2P287_MRP_AREA_COUNTS.TXT +
ARCHIVE/P2P287_MRP_AREA_COUNTS.20&LYYMMDD..&LHHMMSS..TXT
RENAME +
P2P287_MRP_AREA_ADDS.TXT +
ARCHIVE/P2P287_MRP_AREA_ADDS.20&LYYMMDD..&LHHMMSS..TXT
PUT //DD:ZOS01 P2P287_MRP_AREA_CHGS.TXT
PUT //DD:ZOS02 P2P287_MRP_AREA_COUNTS.TXT
PUT //DD:ZOS03 P2P287_MRP_AREA_ADDS.TXT
DIR
DIR ARCHIVE
|
Whatever I need to do to get this working I can do that.
Thanks in advance because this is driving me Nutzo. |
|
| Back to top |
|
 |
Robert Sample
Global Moderator

Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
| Code: |
//PUT EXEC SPFTP,CONN=TS2.MA.FTP.CONN.CONV
//FTPC.SYSIN DD DISP=SHR,DSN=TS2.MA.FTP.PARMS.MMAP.XX(SR311L02)
//*TP.Z0S01 DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.HEADER
//FTP.ZOS01 DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.CHGS
//FTP.ZOS02 DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.TIMESTMP
// DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.COUNTS
//FTP.ZOS03 DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.ADDS
|
If the SYSIN is //FTPC. should not the others be //FTPC.? |
|
| Back to top |
|
 |
madmartinsonxx
New User

Joined: 10 Dec 2010 Posts: 96 Location: Massachusetts
|
|
|
|
| SYSIN is the parm card. the Use [URL] BBCode for External Links - 03 are the dd's which expand inside the SPFTP proc. I use this same set in about 45 or so other proc's for this process. Everybody here, as a matter of fact, codes this the same way. |
|
| Back to top |
|
 |
Skolusu
Senior Member
Joined: 07 Dec 2007 Posts: 2205 Location: San Jose
|
|
|
|
| madmartinsonxx wrote: |
//FTP.ZOS02 DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.TIMESTMP
// DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.COUNTS |
I did not find where TS2.MA.SAPLOAD.P2P287.AREA.COUNTS is being created but I am guessing it is the count step that creates it and if it is indeed true , the count dataset is created as 54 bytes file and you concatenated it to TS2.MA.SAPLOAD.P2P287.AREA.TIMESTMP file which is created as 49 byte file.
| Quote: |
//COUNT1 DD DISP=(NEW,CATLG,DELETE),
// DSN=TS2.MA.SAPLOAD.P2P287.AREA.TIMESTMP,
// UNIT=DISK,SPACE=(TRK,(01,01),RLSE),
// DCB=(RECFM=FB,BLKSIZE=049,LRECL=049)
|
so fix one of them and make sure the concatenated files have the same DCB properties. |
|
| Back to top |
|
 |
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
madmartinsonxx,
It is nice to see SYMNAMES being used, and for a constant at that. But why the inconsistency in the 2nd blocks of code? |
|
| Back to top |
|
 |
madmartinsonxx
New User

Joined: 10 Dec 2010 Posts: 96 Location: Massachusetts
|
|
|
|
Not sure what you mean by:
| Quote: |
But why the inconsistency in the 2nd blocks of code?
|
|
|
| Back to top |
|
 |
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
| SYMNAMES in the first bit of code, hard-coded in the second. |
|
| Back to top |
|
 |
dbzTHEdinosauer
Global Moderator

Joined: 20 Oct 2006 Posts: 6965 Location: porcelain throne
|
|
|
|
| Bill Woodger wrote: |
| SYMNAMES in the first bit of code, hard-coded in the second. |
do you mean in the BUILD statements? you need to be clear,
since it is obvious that the TS copied this, screwed it up,
and now wants a solution,
and you (Bill) have dared to suggest that the TS is not a professional. |
|
| Back to top |
|
 |
madmartinsonxx
New User

Joined: 10 Dec 2010 Posts: 96 Location: Massachusetts
|
|
|
|
lol. ha ha . great way to start my day. thank you. i get what Bill is talking about and it is in the BUILD. Can go either way I guess. It was quicker to hit SHIFT 'pipe' to insert that character at the time.
Now, about my concatenation issue.
The TIMESTMP and COUNTS are concatenated and get through the FTP to server just fine, every time. But the HEADER and CHGS file blow a fuse with the:
EZA1736I PUT //DD:ZOS01 P2P287_MRP_AREA_CHGS.TXT
EZA2564W Open of //DD:ZOS01 failed.
EZA1735I Std Return Code = 27000, Error Code = 00018
EZA1701I >>> QUIT
I have forced the LRECL and BLKSIZE to be equal on both of these files to no avail. Would LOVE to find a resolution, be it in forcing whatever through the JCL or some parameter in the FTP command string that will allow this concatenation to go through. Kinda screwy that the TIMESTMP and COUNTS flow through and the other set does not. The header is commented out in my FTP proc step above until I find 'inner peace'. Thanks again. |
|
| Back to top |
|
 |
dbzTHEdinosauer
Global Moderator

Joined: 20 Oct 2006 Posts: 6965 Location: porcelain throne
|
|
|
|
header is about 201 bytes
and chgs seems to be about 187. build statement is:
BUILD=(C'C|',0001,0184,/,C'P|',0185,0184))
try forcing chg to be the same as hdr file. |
|
| Back to top |
|
 |
madmartinsonxx
New User

Joined: 10 Dec 2010 Posts: 96 Location: Massachusetts
|
|
|
|
Tried what Dick mentioned ( although I tried before ). I added a step to RESIZE the file hoping that might come through for muah.
| Code: |
//* TAG CHANGES AND INCLUDE CURRENT AND PRIOR ID FIELD
//FLAGCHGS EXEC PGM=ICEMAN
//SORTIN DD DISP=SHR,DSN=TS2.MA.SAPLOAD.P2P287.AREA.PANDC
//SORTOUT DD DISP=(MOD,PASS,DELETE),
// DSN=&&TEMP01,
// UNIT=DISK,SPACE=(TRK,(10,05),RLSE),
// DCB=(RECFM=FB,BLKSIZE=00000,LRECL=0000)
//SYSOUT DD SYSOUT=*
//XOUT01 DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//SYSIN DD *
*
OPTION COPY
OUTFIL FNAMES=SORTOUT,
IFTHEN=(WHEN=(001,184,CH,NE,0185,0184,CH),
BUILD=(C'C|',0001,0184,/,C'P|',0185,0184))
//* RESIZE FILE TO MATCH HEADER OR VICE VERSA
//RESIZE EXEC PGM=ICEMAN
//SORTOUT DD DISP=(MOD,PASS,DELETE),
// DSN=&&TEMP02,
// UNIT=DISK,SPACE=(TRK,(10,05),RLSE),
// DCB=(RECFM=FB,BLKSIZE=00000,LRECL=0000)
//SORTIN DD DISP=(OLD,PASS,DELETE),
// DSN=&&TEMP01
//SYSOUT DD SYSOUT=*
//XOUT01 DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//SYSIN DD *
*
SORT FIELDS=COPY
INREC IFOUTLEN=203,
IFTHEN=(WHEN=INIT,BUILD=(01,203))
/*
//*
//* GET CHANGES TO FTP FILE
//FTPCHGS EXEC PGM=ICEMAN
//SORTIN DD DISP=(OLD,PASS,DELETE),DSN=&&TEMP02
//SORTOUT DD DISP=(NEW,CATLG,DELETE),
// DSN=TS2.MA.SAPLOAD.P2P287.AREA.CHGS,
// UNIT=DISK,SPACE=(TRK,(10,05),RLSE),
// DCB=(RECFM=FB,BLKSIZE=00203,LRECL=0203)
//SYSOUT DD SYSOUT=*
//XOUT01 DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=(03,18,A,22,4,A,27,4,A,01,01,A),FORMAT=BI
INCLUDE COND=(01,02,CH,EQ,C'C|',OR,01,02,CH,EQ,C'P|')
/*
//*
|
But, same thing happened. The Timestmp and Counts still fly right through. sigh.
Will need to revisit this soon but need to get some other stuff out the door. Thanks. |
|
| Back to top |
|
 |
Robert Sample
Global Moderator

Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
Have you tried the approach in the manual for your error code?
| Quote: |
EZA2564W Open of dsname failed.
Explanation: The data set cannot be opened.
System Action: The requested operation is terminated. FTP continues.
Operator Response: Rerun the FTP with tracing turned on. Contact the system programmer.
System Programmer Response: Look at the trace and find one of the following trace entry sequences:
seq_open_file: xyz -> ...
seq_open_file: failed (aa): bbbb
The first line describes open mode with values x, y, and z that are defined as follows:
x = I --> Input
x = O --> Output
y = S --> Stream I/O y = R --> Record I/O
z = B --> Binary stream z = T --> Text stream
The second line describes the error that occurred. aa is the errno value returned from the fopen of file. bbbb is the text associated with the errno value. The following describe values and text that could be observed:
(61): Error trying
to define file The file is already opened.
seq_open_file: Using BSAM, I, SYS00006, , 29
0, 0, 0
seq_open_file: BSMOP returned NULL, rc xxx, reason yyy
The second line describes the error which occurred on the open. Use the return code (rc) and reason code to determine why the error occurred.
For return code 80a, reason code 10, or return code 4, FTP was unable to obtain storage to open the data set. Increase the region size for the FTP job or user. |
|
|
| Back to top |
|
 |
madmartinsonxx
New User

Joined: 10 Dec 2010 Posts: 96 Location: Massachusetts
|
|
|
|
well, silly me. This MVS systems programmer came over and slapped me up agin' the head and told me to GENER both of those files into one and I probably won't have this problem.
( wanna get away ) |
|
| Back to top |
|
 |
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
Sorry to continue a little off-topic.
| madmartinsonxx wrote: |
[...]It was quicker to hit SHIFT 'pipe' to insert that character at the time.
[...] |
I've decided to congratulate anyone who uses SYMNAMES. You're the first recepient since I decided.
Then I reached what I so loosely termed the "2nd blocks of code".
| Quote: |
INREC PARSE=(%01=(ENDBEFR=A_PIPE_CHAR,FIXLEN=018),
%02=(ENDBEFR=A_PIPE_CHAR,FIXLEN=004),
%03=(ENDBEFR=A_PIPE_CHAR,FIXLEN=004),
[...]
%28=(ENDBEFR=A_PIPE_CHAR,FIXLEN=002),
%29=(FIXLEN=002)),
BUILD=(%01,C'|',
%02,C'|',
%03,C'|',
[...]
%28,C'|',
%29,C'|') |
If you have an editor worth its name:
Block repeat INREC code.
Change INREC to bbbbb.
Change PARSE to BUILD
Change "=(ENDBEFR=" to ","
Change "FIXLEN=xxx)," to ""
Deal with %29 manually.
Something along those lines. Not having to hit SHIFT-PIPE once. The way you coded the %01-09 and the 00x lengths even make it easier (well, the last does). |
|
| Back to top |
|
 |
|
|
 |
All times are GMT + 6 Hours |
|