IBM MAINFRAME HELP & SUPPORT FORUMS
Technical Forums for IBM Mainframe Applications like COBOL, JCL, CICS, DB2, FileAid, DFSORT, Endevor, Xpediter, CoolGen, CA-7&11, AbendAid, IMS, IDMS, PL/I, MqSeries, SyncSort, Assembler, ChangeMan, Easytrieve, InterTest, REXX, CLIST etc...
 

REXX Date Routine Help (Julian to

THIS IS AN ARCHIVE FORUM: CLICK HERE TO GO TO THE ORIGINAL TOPIC

 
       IBMMAINFRAMES.com - IBM Mainframe Support Forums Index -> CLIST & REXX
View previous topic :: View next topic  
Author Message
gringgo



Joined: 28 Apr 2006
Posts: 2
Location: Phoenix, AZ

Posted: Fri Apr 28, 2006 10:16 pm    Post subject: REXX Date Routine Help (Julian to  

I have a REXX program written by someone else that extracts data from the RACF database and lists several dates. The date format in the output file comes out as yy.ddd, which is a Julian and/or Ordinal date.

The error message listed below shows my attempt at converting to mm/dd/yy format.

Here is the code that I have so far.

IF VUSER = SUBSTR(TAB.LINE#,1,4) THEN DO
KUSER = SUBSTR(TAB.LINE#,6,8)
USER = SUBSTR(TAB.LINE#,6,8)
NAME = SUBSTR(TAB.LINE#,19,20)
CREATDT = SUBSTR(TAB.LINE#,65,6) {this gets me yy.ddd}
CREATED = DATE('J',CREATDT,'U') {hope to get mm/dd/yy}
END

Here is the error message:

49 +++ CREATED = DATE('J',CREATDT,'U')
IRX0040I Error running V100#WSD, line 49: Incorrect call to routine

The ultimate goal is to convert yy.ddd to yyyy/mm/dd.


Any assistance is greatly appreciated.

John
Back to top  
superk



Joined: 26 Apr 2004
Posts: 3381
Location: Charlotte,NC USA

Posted: Fri Apr 28, 2006 11:29 pm    Post subject: Re: REXX Date Routine Help (Julian to  

Code:
...
CREATYY  = SUBSTR(TAB.LINE#,65,2)                     
CREATDDD = SUBSTR(TAB.LINE#,68,3)                     
PARSE VALUE DATE('S',CREATYY||CREATDDD,'J') WITH CCYY 5 MM 7 DD         
CREATED = CCYY'/'MM'/'DD
...


1. A valid Julian date is defined as either YYDDD or CCYYDDD, without the dot.

2. You used the incorrect order for the DATE() function parameters. The required output date format is the first (and only required) parameter, followed by the input date, then by the input date format.
Back to top  
gringgo



Joined: 28 Apr 2006
Posts: 2
Location: Phoenix, AZ

Posted: Sat Apr 29, 2006 2:13 am    Post subject: Re: REXX Date Routine Help (Julian to  

superk,

Thank you for the reponse, but try as I may, I continue to get the same error. I put the code is as you stated and below is the outcome. I don't know why the '5' and '7' exist in the PARSE statement, but I also tried it without and received the same error.

52 +++ PARSE VALUE DATE('S',CREATYY||CREATDDD,'J') WITH CCYY 5 MM 7 DD
IRX0040I Error running V100#WSD, line 52: Incorrect call to routine


IF VUSER = SUBSTR(TAB.LINE#,1,4) THEN DO
KUSER = SUBSTR(TAB.LINE#,6,8)
USER = SUBSTR(TAB.LINE#,6,8)
NAME = SUBSTR(TAB.LINE#,19,20)
CREATYY = SUBSTR(TAB.LINE#,65,2)
CREATDDD = SUBSTR(TAB.LINE#,68,3)
PARSE VALUE DATE('S',CREATYY||CREATDDD,'J') WITH CCYY 5 MM 7 DD
CREATED = CCYY'/'MM'/'DD
END


John
Back to top  
superk



Joined: 26 Apr 2004
Posts: 3381
Location: Charlotte,NC USA

Posted: Sat Apr 29, 2006 2:32 am    Post subject: Re: REXX Date Routine Help (Julian to  

Try just

CREATED = DATE('S',CREATYY||CREATDDD,'J')

and then maybe you can just do some re-formatting on CREATED.

Otherwise, post some TRACE I output for this section of code.
Back to top  
 
       IBMMAINFRAMES.com - IBM Mainframe Support Forums Index -> CLIST & REXX
Page 1 of 1
THIS IS AN ARCIVE FORUM IN READ ONLY MODE. IF YOU WANT TO ASK YOUR DOUBTS USE THE ACTUAL FORUM