I have an application that reads through IFS records, parses out fields and
then writes them to a physical file using SQL. I ran into an issue with the
date. It comes in as MM/DD/CCYY formatted text and I need to get it to a
Julian date (actually a 5 digit number) So I thought the following would
jvDate = %Date(INvDate:*JUL0);
The 2nd parameter of the %date() BIF specifies the format of the date
that it's trying to interpret, not the one that's output from the BIF. I
think that's where you're getting confused.
I'm assuming that InvDate is a character string (not a date field) that's
in MM/DD/YYYY (*USA) format. If that's the case, your code should look
jvDate = %date(InvDate: *USA);
Then, to convert it to a character representation of the julian date,
you'll do the following:
vDate = %char(jvDate: *JUL0);
I am suspecting that the runtime error is occurring because the program is
assuming *ISO for the date format and it is coming in as *USA.
It's not assuming anything. You specifically told it that the date in the
InvDate field is in *JUL0 format. That's why it's confused.
know how to tell %Date built in that I am formatting a date FROM *USA to
*JUL. Do I need to add another step so that I first convert the character
field to *USA date and THEN convert that to a *JUL format?
You specify the format of the date field that %date() outputs on the
D-spec when you declare the date field in the first place. The 2nd
parameter to %date() is the input format, not the output format.