Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

run the jcl step depending on the date

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> JCL & VSAM
View previous topic :: :: View next topic  
Author Message
msagar

New User


Joined: 10 Jul 2009
Posts: 3
Location: Bangalore

PostPosted: Mon Jul 27, 2009 3:31 pm    Post subject: run the jcl step depending on the date
Reply with quote

Hi,

I have a job with 12 steps and each step should run on first day of every month.

//JOBname Job ...
//Step1 .. this has to execute on 1st of jan
//step2 .. this has to execute on 1st of feb
//step3 .. this has to execute on 1st of mar
..
..
//step12 .... this has to execute on 1st of Dec

Can this be done with out using Scheduler..



Back to top
View user's profile Send private message

expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8593
Location: Back in jolly old England

PostPosted: Mon Jul 27, 2009 3:32 pm    Post subject:
Reply with quote

Probably
Back to top
View user's profile Send private message
msagar

New User


Joined: 10 Jul 2009
Posts: 3
Location: Bangalore

PostPosted: Mon Jul 27, 2009 3:36 pm    Post subject: Reply to: run the jcl step depending on the date
Reply with quote

can I know how we can do that in jcl ?
Back to top
View user's profile Send private message
superk

Moderator Team Head


Joined: 26 Apr 2004
Posts: 4649
Location: Raleigh, NC, USA

PostPosted: Mon Jul 27, 2009 3:38 pm    Post subject: Reply to: run the jcl step depending on the date
Reply with quote

The job will have to run everyday.

The first step will have to be a program to determine if the current date is the first day of the month, and to set the return-code value appropriately.

I'd go with RC=0 for normal processing, and RC=1 through 12 for each of the first days for the 12 months.
Back to top
View user's profile Send private message
msagar

New User


Joined: 10 Jul 2009
Posts: 3
Location: Bangalore

PostPosted: Mon Jul 27, 2009 3:47 pm    Post subject:
Reply with quote

Lovely !! Thanks for your Prompt response.
This was my first question in this forum. I felt delighted after seeing your prompt responses.
Back to top
View user's profile Send private message
superk

Moderator Team Head


Joined: 26 Apr 2004
Posts: 4649
Location: Raleigh, NC, USA

PostPosted: Mon Jul 27, 2009 5:56 pm    Post subject: Reply to: run the jcl step depending on the date
Reply with quote

I'd be really curious to know how you were originally planning to approach this task.
Back to top
View user's profile Send private message
gcicchet

Senior Member


Joined: 28 Jul 2006
Posts: 1703
Location: Australia

PostPosted: Tue Jul 28, 2009 6:36 pm    Post subject:
Reply with quote

Hi,

following Kevin's suggestion, here is a way to achieve this
Code:
//STEP0000 EXEC PGM=ICEMAN                     
//SYSOUT   DD SYSOUT=*                         
//SORTIN   DD *                                 
RECORD                                         
/*                                             
//SORTOUT  DD DSN=&&DATE,                       
//            DISP=(,PASS,DELETE),             
//            UNIT=SYSDA,                       
//            SPACE=(TRK,(1)),                 
//            DCB=(RECFM=FB,LRECL=80)           
//SYSIN    DD *                                 
  OPTION COPY                                   
*                   YYYYMMDD                   
  INREC OVERLAY=(01:DATE1)                     
  OUTREC IFTHEN=(WHEN=(5,4,CH,EQ,C'0101',OR,   
                       5,4,CH,EQ,C'0201',OR,   
                       5,4,CH,EQ,C'0301',OR,   
                       5,4,CH,EQ,C'0401',OR,   
                       5,4,CH,EQ,C'0501',OR,                           
                       5,4,CH,EQ,C'0601',OR,                           
                       5,4,CH,EQ,C'0701',OR,                           
                       5,4,CH,EQ,C'0801',OR,                           
                       5,4,CH,EQ,C'0901',OR,                           
                       5,4,CH,EQ,C'1001',OR,                           
                       5,4,CH,EQ,C'1101',OR,                           
                       5,4,CH,EQ,C'1201'),                             
             BUILD=(01:C' SET MAXCC=',5,2,80:X)),                       
         IFTHEN=(WHEN=NONE,                                             
             BUILD=(01:C' SET MAXCC=00',80:X)) 
/*                       
//*********************************************************************
/*
//SETMAXCC EXEC PGM=IDCAMS                                             
//SYSPRINT DD SYSOUT=*                                                 
//SYSIN    DD DSN=&&DATE,DISP=SHR                                       
//*                                                                     
//*********************************************************************
//*                                                                     
//JAN      EXEC PGM=IEFBR14,COND=(1,NE,SETMAXCC)                       
//*                                                           
//FEB      EXEC PGM=IEFBR14,COND=(1,NE,SETMAXCC)             
//*                                                           
//MAR      EXEC PGM=IEFBR14,COND=(1,NE,SETMAXCC)             
//*                                                           
//APR      EXEC PGM=IEFBR14,COND=(1,NE,SETMAXCC)             
//*                                                           
//MAY      EXEC PGM=IEFBR14,COND=(1,NE,SETMAXCC)             
//*                                                           
//JUN      EXEC PGM=IEFBR14,COND=(1,NE,SETMAXCC)             
//*                                                           
//JUL      EXEC PGM=IEFBR14,COND=(1,NE,SETMAXCC)             
//*                                                           
//AUG      EXEC PGM=IEFBR14,COND=(1,NE,SETMAXCC)             
//*                                                           
//SEP      EXEC PGM=IEFBR14,COND=(1,NE,SETMAXCC)             
//*                                                           
//OCT      EXEC PGM=IEFBR14,COND=(1,NE,SETMAXCC)             
//*                                                           
//NOV      EXEC PGM=IEFBR14,COND=(1,NE,SETMAXCC)                       
//*                                                                   
//DEC      EXEC PGM=IEFBR14,COND=(1,NE,SETMAXCC)                       
//*                                                                   
//NOT1ST   EXEC PGM=IEFBR14,COND=(0,NE,SETMAXCC)                       
//*                                                                   
//*********************************************************************



Gerry
Back to top
View user's profile Send private message
Anuj Dhawan

Senior Member


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

PostPosted: Tue Jul 28, 2009 7:18 pm    Post subject:
Reply with quote

Just out of curiosity -- is it a practical Production Problem?
Back to top
View user's profile Send private message
superk

Moderator Team Head


Joined: 26 Apr 2004
Posts: 4649
Location: Raleigh, NC, USA

PostPosted: Tue Jul 28, 2009 7:36 pm    Post subject: Reply to: run the jcl step depending on the date
Reply with quote

I've needed to do something similar in the past ...
Back to top
View user's profile Send private message
Douglas Wilder

Active User


Joined: 28 Nov 2006
Posts: 305
Location: Deerfield IL

PostPosted: Wed Jul 29, 2009 1:56 am    Post subject:
Reply with quote

Building on Gerry's solution; here is a little simpler way with a bug fixed:
Code:
//STEP0000 EXEC PGM=ICEMAN                     
//SYSOUT   DD SYSOUT=*                         
//SORTIN   DD *                                 
RECORD                                         
/*                                             
//SORTOUT  DD DSN=&&DATE,                       
//            DISP=(,PASS,DELETE),             
//            UNIT=SYSDA,                       
//            SPACE=(TRK,(1)),                 
//            DCB=(RECFM=FB,LRECL=80)           
//SYSIN    DD *                                 
  OPTION COPY                                   
*                   YYYYMMDD                   
  INREC OVERLAY=(01:DATE1)                     
  OUTREC IFTHEN=(WHEN=(7,2,CH,EQ,C'01'),                             
             BUILD=(01:C' SET MAXCC=',5,2,80:X)),                       
         IFTHEN=(WHEN=NONE,                                             
             BUILD=(01:C' SET MAXCC=00',80:X)) 
/*                       
//*********************************************************************
/*
//SETMAXCC EXEC PGM=IDCAMS                                             
//SYSPRINT DD SYSOUT=*                                                 
//SYSIN    DD DSN=&&DATE,DISP=SHR                                       
//*                                                                     
//*********************************************************************
//*                                                                     
//JAN      EXEC PGM=IEFBR14,COND=(1,NE,SETMAXCC)                       
//*                                                           
//FEB      EXEC PGM=IEFBR14,COND=(2,NE,SETMAXCC)             
//*                                                           
//MAR      EXEC PGM=IEFBR14,COND=(3,NE,SETMAXCC)             
//*                                                           
//APR      EXEC PGM=IEFBR14,COND=(4,NE,SETMAXCC)             
//*                                                           
//MAY      EXEC PGM=IEFBR14,COND=(5,NE,SETMAXCC)             
//*                                                           
//JUN      EXEC PGM=IEFBR14,COND=(6,NE,SETMAXCC)             
//*                                                           
//JUL      EXEC PGM=IEFBR14,COND=(7,NE,SETMAXCC)             
//*                                                           
//AUG      EXEC PGM=IEFBR14,COND=(8,NE,SETMAXCC)             
//*                                                           
//SEP      EXEC PGM=IEFBR14,COND=(9,NE,SETMAXCC)             
//*                                                           
//OCT      EXEC PGM=IEFBR14,COND=(10,NE,SETMAXCC)             
//*                                                           
//NOV      EXEC PGM=IEFBR14,COND=(11,NE,SETMAXCC)                       
//*                                                                   
//DEC      EXEC PGM=IEFBR14,COND=(12,NE,SETMAXCC)                       
//*                                                                   
//NOT1ST   EXEC PGM=IEFBR14,COND=(0,NE,SETMAXCC)                       
//*                                                                   
//*********************************************************************
Back to top
View user's profile Send private message
gcicchet

Senior Member


Joined: 28 Jul 2006
Posts: 1703
Location: Australia

PostPosted: Wed Jul 29, 2009 3:59 am    Post subject:
Reply with quote

Thanks Douglas for simplifying it.


Gerry
Back to top
View user's profile Send private message
MBabu

Active User


Joined: 03 Aug 2008
Posts: 401
Location: Mumbai

PostPosted: Wed Jul 29, 2009 4:29 am    Post subject: Reply to: run the jcl step depending on the date
Reply with quote

Or simpler (to me)...
Code:
//* Use a tiny Rexx exec to check both month and year           
//* If 1st of month, return number of month, else return 99         
//MAKEREXX EXEC PGM=IEBUPDTE,PARM=NEW                               
//SYSIN    DD  DATA                                                 
./        ADD   NAME=CHKDATE                                         
 if substr(date(u),4,2)=1 then return substr(date(u),1,2); return 99
/*                                                                   
//SYSUT2   DD  DISP=(,PASS),SPACE=(TRK,(1,1,2),RLSE),UNIT=VIO,       
//             DCB=(LRECL=80,BLKSIZE=80,DSORG=PS,RECFM=F)           
//SYSPRINT DD  DUMMY                                                 
//*  Now run the exec to get a return code                           
//SETMAXCC EXEC PGM=IRXJCL,PARM='CHKDATE'                           
//SYSEXEC  DD  DSNAME=*.MAKEREXX.SYSUT2,DISP=(OLD,DELETE)           
//SYSTSIN  DD  DUMMY                                                 
//SYSTSPRT DD  DUMMY                                                 
/*  Proceed as in other solutions                                   
//JAN      EXEC PGM=IEFBR14,COND=(1,NE,SETMAXCC)                     
//*                                                                 
//FEB      EXEC PGM=IEFBR14,COND=(2,NE,SETMAXCC)                     
//*           
// ...                                                       
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> JCL & VSAM All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts How to add header with Date(YYMMDD) i... Rajan Moorthy DFSORT/ICETOOL 2 Thu Jul 06, 2017 11:44 pm
No new posts Restart=Step not working ALAK SAHA JCL & VSAM 6 Fri Jun 30, 2017 6:28 pm
No new posts Validate date and numeric fields and ... Rick Silvers DFSORT/ICETOOL 6 Thu May 11, 2017 6:51 pm
No new posts LISTIDR compiled date/time jerryte IBM Tools 3 Thu Apr 20, 2017 7:37 pm
No new posts SUBSTR for Date functions Shaheen Shaik DB2 4 Thu Apr 06, 2017 2:14 pm


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us