Although CL was noted as an option, I have no idea how to make that
work, except as a procedure called from a[n SQL] UDF. Notice your CLP
has been coded with a parameter, not a return value; it is a procedure,
not a function. Probably best to create an RPG procedure in a service
program of similar utility functions, and then use CREATE FUNCTION to
refer to the RPG with EXTERNAL NAME 'THELIB/THESRVPGM(GETJOBDATE)'
Regards, Chuck
MKirkpatrick@xxxxxxxxxxxxxxxxx wrote:
I think the UDF is a great idea. I have created one (my first) but it
doesn't work quite right.
CREATE FUNCTION WDSSYS.GETJOBDATE ( )
RETURNS DATE
LANGUAGE CL
SPECIFIC WDSSYS.GETJOBDATE
NOT DETERMINISTIC
NO SQL
CALLED ON NULL INPUT
DISALLOW PARALLEL
EXTERNAL NAME 'MKIRKPAT/GETJOBDATE'
PARAMETER STYLE SQL ;
My CL pgm:
<code>
pgm parm(&jobdateymd)
DCL VAR(&JOBDATE) TYPE(*CHAR) LEN(6)
DCL VAR(&JOBDATEYMD) TYPE(*CHAR) LEN(10)
RTVJOBA DATE(&JOBDATE)
CVTDAT DATE(&JOBDATE) TOVAR(&JOBDATEYMD) +
TOFMT(*YYMD) TOSEP(*NONE)
endpgm
</code>
What am I missing? Thanks.
Elvis wrote:
I am not aware of an SQL special register or a built-in
function that would give you a job date. Writing a UDF
that does this would be very simple
though (CL or RPG), and you could reuse it elsewhere.