View previous topic :: View next topic
Author
Message
Deepa.m New User Joined: 28 Apr 2005Posts: 99
Hi all ,
Is there any option to get the buisness date ? and my requirement is
1-----------------------------------------------------80
<file name>, count , today's date , today's date -1
aaaa.ddd.cccc, 96,20071202,20071130
How to calculate today's date - 1 and that should be business day( leaving sat/sun)
i used the below card
Code:
OPTION COPY
OUTFIL TRAILER1=(FNAME,45:',',
DATENS=(4MD),',',COUNT=(M10,LENGTH=8),',',DATE1-1),
NODETAIL,REMOVECC
Back to top
murmohk1 Senior Member Joined: 29 Jun 2006Posts: 1436 Location: Bangalore,India
Deepa,
Quote:
How to calculate today's date - 1 and that should be business day( leaving sat/sun)
Please remember 'Business days' are not standard across projects/shops.
You need to come with your 'own logic' which suits for your requirement. DONT EXPECT any generalized solution for this.
Back to top
Frank Yaeger DFSORT Developer Joined: 15 Feb 2005Posts: 7129 Location: San Jose, CA
Quote:
How to calculate today's date - 1 and that should be business day( leaving sat/sun)
You mean if DATE-1 is a sat or sun, you want to use the previous Friday's date?
DFSORT does not have any built-in functions for doing that.
Back to top
Deepa.m New User Joined: 28 Apr 2005Posts: 99
Yes. I meant the same.
I just want to avoid sat and sun .Geography specific Holidays doesn't matter.
Moreover even to get previous day (DATE1-1) with the above code I am getting the below error
Code:
ICE280I 1 ORIGINAL STATEMENTS FROM SYSIN FOLLOW
OPTION COPY
OUTFIL TRAILER1=(FNAME,45:',',
DATENS=(4MD),',',COUNT=(M10,LENGTH=8),',',DATE1-1),
NODETAIL,REMOVECC
ICE282I 0 PERFORMING SYMBOL SUBSTITUTION AS NEEDED
OUTFIL TRAILER1=(FNAME,45:',',
DATENS=(4MD),',',COUNT=(M10,LENGTH=8),',',DATE1-1),
$
ICE283A 0 SYMBOL, SYNTAX OR DELIMITER ERROR
NODETAIL,REMOVECC
Can we do date manipulations using DATE in Trailer because I tried the DATE1-1 with outrec and it is working fine.
Back to top
murmohk1 Senior Member Joined: 29 Jun 2006Posts: 1436 Location: Bangalore,India
Deepa,
Quote:
OUTFIL TRAILER1=(FNAME,45:',',
What happend to 'c' after '45:'?
Back to top
Frank Yaeger DFSORT Developer Joined: 15 Feb 2005Posts: 7129 Location: San Jose, CA
Deepa,
Quote:
Can we do date manipulations using DATE in Trailer because I tried the DATE1-1 with outrec and it is working fine.
You can use DATE1-1 in BUILD and OVERLAY of the INREC, OUTREC and OUTFIL statements, but you can't use it in TRAILER1.
Murali,
C before a constant is optional in TRAILER1. ',' and C',' are equivalent in TRAILER1.
Back to top
Skolusu Senior Member Joined: 07 Dec 2007Posts: 2205 Location: San Jose
The following DFSORT JCL will give you the desired results. The Control cards calculate the day of the week and if it is sat/sun/mon then it picks the last friday date.
Code:
//STEP0100 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SYMNAMES DD *
FNAME,C'INPUT FILENAME'
//SORTIN DD DSN=your input file,
// DISP=SHR
ABCDEFGHIJKLMNOPQRSTUVWXYZ
//SORTOUT DD DSN=&&T1,DISP=(,PASS),SPACE=(TRK,(1,1))
//SYSIN DD *
OPTION COPY
OUTREC OVERLAY=(81:DATE1,C',',DATE1-1,C',',DATE1-2,C',',DATE1-3)
OUTFIL REMOVECC,NODETAIL,
TRAILER1=(01:FNAME,45:C',',COUNT=(M10,LENGTH=8),',',81,35)
//*
//STEP0200 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=&&T1,DISP=SHR
//SORTOUT DD SYSOUT=*
//SYSIN DD *
OPTION COPY,NOSZERO
INREC IFTHEN=(WHEN=INIT,
OVERLAY=(101:55,04,ZD,MOD,+4,EDIT=(T),
102:55,04,ZD,MOD,+100,EDIT=(TTT),
105:55,04,ZD,MOD,+400,EDIT=(TTT)),HIT=NEXT),
IFTHEN=(WHEN=(105,3,ZD,EQ,0,OR,
(101,1,ZD,EQ,0,AND,102,3,ZD,GT,0)),
OVERLAY=(108:C'L'),HIT=NEXT),
IFTHEN=(WHEN=(59,02,ZD,EQ,01,AND,
61,02,ZD,GT,31),
OVERLAY=(110:C'INVALID'),HIT=NEXT),
IFTHEN=(WHEN=(108,01,CH,NE,C'L',AND,
059,02,ZD,EQ,02,AND,
061,02,ZD,GT,28),
OVERLAY=(110:C'INVALID'),HIT=NEXT),
IFTHEN=(WHEN=(108,01,CH,EQ,C'L',AND,
059,02,ZD,EQ,02,AND,
061,02,ZD,GT,29),
OVERLAY=(110:C'INVALID'),HIT=NEXT),
IFTHEN=(WHEN=(59,02,ZD,EQ,03,AND,
61,02,ZD,GT,31),
OVERLAY=(110:C'INVALID'),HIT=NEXT),
IFTHEN=(WHEN=(59,02,ZD,EQ,04,AND,
61,02,ZD,GT,30),
OVERLAY=(110:C'INVALID'),HIT=NEXT),
IFTHEN=(WHEN=(59,02,ZD,EQ,05,AND,
61,02,ZD,GT,31),
OVERLAY=(110:C'INVALID'),HIT=NEXT),
IFTHEN=(WHEN=(59,02,ZD,EQ,06,AND,
61,02,ZD,GT,30),
OVERLAY=(110:C'INVALID'),HIT=NEXT),
IFTHEN=(WHEN=(59,02,ZD,EQ,07,AND,
61,02,ZD,GT,31),
OVERLAY=(110:C'INVALID'),HIT=NEXT),
IFTHEN=(WHEN=(59,02,ZD,EQ,08,AND,
61,02,ZD,GT,31),
OVERLAY=(110:C'INVALID'),HIT=NEXT),
IFTHEN=(WHEN=(59,02,ZD,EQ,09,AND,
61,02,ZD,GT,30),
OVERLAY=(110:C'INVALID'),HIT=NEXT),
IFTHEN=(WHEN=(59,02,ZD,EQ,10,AND,
61,02,ZD,GT,31),
OVERLAY=(110:C'INVALID'),HIT=NEXT),
IFTHEN=(WHEN=(59,02,ZD,EQ,11,AND,
61,02,ZD,GT,30),
OVERLAY=(110:C'INVALID'),HIT=NEXT),
IFTHEN=(WHEN=(59,02,ZD,EQ,12,AND,
61,02,ZD,GT,31),
OVERLAY=(110:C'INVALID'),HIT=NEXT),
IFTHEN=(WHEN=(59,02,ZD,GT,12,OR,
55,04,ZD,LT,1600,OR,
55,04,ZD,GT,9999),
OVERLAY=(110:C'INVALID'),HIT=NEXT),
IFTHEN=(WHEN=NONE,
OVERLAY=(110:7X))
OUTREC IFTHEN=(WHEN=(110,07,CH,EQ,C' ',AND,
059,02,ZD,LT,3),
OVERLAY=(120:+01,SUB,55,04,ZD,EDIT=(TTTT),
124:+10,ADD,59,02,ZD,EDIT=(TT)),HIT=NEXT),
IFTHEN=(WHEN=(110,07,CH,EQ,C' ',AND,
59,02,ZD,GE,3),
OVERLAY=(120:55,04,
124:+02,SUB,59,02,ZD,EDIT=(TT)),HIT=NEXT),
IFTHEN=(WHEN=(110,07,CH,EQ,C' '),
OVERLAY=(127:120,4,ZD,DIV,+100,EDIT=(TTTT),
131:120,4,ZD,MOD,+100,EDIT=(TT),
135:((+26,MUL,124,2,ZD),SUB,+2),DIV,+10,LENGTH=8,
143:135,8,SFF,ADD,
061,2,ZD,ADD,
131,2,ZD,LENGTH=8,
151:143,8,SFF,ADD,
(131,2,ZD,DIV,+4),ADD,
(127,4,ZD,DIV,+4),
LENGTH=8,
159:(151,8,SFF,SUB,
(+2,MUL,127,4,ZD)),MOD,+7,LENGTH=8),HIT=NEXT),
IFTHEN=(WHEN=(159,8,SFF,LT,0),
OVERLAY=(170:+7,ADD,159,8,SFF,EDIT=(T)),HIT=NEXT),
IFTHEN=(WHEN=(159,8,SFF,GE,0),
OVERLAY=(170:159,8,SFF,EDIT=(T)))
OUTFIL IFOUTLEN=71,
IFTHEN=(WHEN=(110,07,CH,EQ,C' ',AND,
170,01,CH,EQ,C'0'),
BUILD=(01,63,73,8)),
IFTHEN=(WHEN=(110,07,CH,EQ,C' ',AND,
170,01,CH,EQ,C'1'),
BUILD=(01,63,82,8)),
IFTHEN=(WHEN=NONE,
BUILD=(01,71))
/*
Back to top
Please enable JavaScript!