|
then one should take care of correct library list.
By the way, I might be wrong - maybe qualified function name is not
permitted by SQL syntax.
I did not actually check documentation.
But then again library list is important.
Alexei Pytel
speaking only for myself
"Andrew Lutz"
<alutz@pmigroup.c To: <rpg400-l@midrange.com>
om> cc:
Sent by: Subject: Re: UDF:
SQL0204-VALIDTPNBR in *LIBL type *N not
rpg400-l-admin@mi found.
drange.com
04/26/2002 03:51
PM
Please respond to
rpg400-l
What about multi-level (ITG, QA, UAT etc...) development environments?
Qualifying a call is a 'no no'
What would you suggest?
>>> pytel@us.ibm.com 04/26/02 01:41PM >>>
I think you should qualify a call to UDF:
select tpttype, tpt400, tptlib, tptfile, tptfield,
web/VALIDTPNBR(tpttype,'19049 ')
from web/tptype
Alexei Pytel
speaking for myself
rob@dekko.com
Sent by: To:
rpg400-l@midrange.com
rpg400-l-admin@mi cc:
drange.com Subject: UDF:
SQL0204-VALIDTPNBR in *LIBL type *N not found.
04/26/2002 03:31
PM
Please respond to
rpg400-l
This is a multipart message in MIME format.
--
[ Picked text/plain from multipart/alternative ]
I've created a UDF, or User Defined Function, with the following:
P*--------------------------------------
P* Procedure name: VALIDTPNBR
P* Purpose: Validates Trading partner number
P* Returns: '1'=Yes the tp number is valid, '0'=No it is not
P* Parameter: tpttype => Trading partner type
P* Parameter: tpnbr => Trading partner number
P*--------------------------------------
P VALIDTPNBR B EXPORT
D VALIDTPNBR PI N
D tpttype LIKE(tpnbr.tpttype) CONST
D tpnbr LIKE(tpnbr.tpnbr) CONST
D* Local fields
D rValidTpNbr S N
D wTpName s 100a
/free
wTpName=RtvTpData(tpttype:tpnbr:'TPTPNAME');
Select;
When wTpName=*loval or wTpName=*blanks or wTpName='*NONE';
rValidTpNbr=*off;
Other;
rValidTpNbr=*on;
EndSl;
return rValidTpNbr;
/end-free
P VALIDTPNBR E
create function WEB/VALIDTPNBR (CHAR (8), CHAR (10))
returns CHAR (1)
simple call
language rpgle
deterministic
reads sql data
returns null on null input
no external action
allow parallel
external name 'WEB/WEBSRV(VALIDTPNBR)';
This
select tpttype, tpt400, tptlib, tptfile, tptfield
from web/tptype
results in:
Trading AS/400 Library File Field
Partner Partner Partner Partner
Type Type Type Nbr
V01.073 GDISYS DATDIVF AVM VENDOR
This:
select tpttype, tpt400, tptlib, tptfile, tptfield,
VALIDTPNBR(tpttype,'19049 ')
from web/tptype
Results in:
Additional Message Information
Message ID . . . . . . : SQL0204 Severity . . . . . . . : 30
Message type . . . . . : Diagnostic
Message . . . . : VALIDTPNBR in *LIBL type *N not found.
Cause . . . . . : VALIDTPNBR in *LIBL type *N was not found. If this is
an
ALTER TABLE statement and the type is *N, a constraint was not found. If
this is not an ALTER TABLE statement and the type is *N, a function,
procedure, or trigger was not found.
Recovery . . . : Change the name and try the request again. If the
object
is a node group, ensure that the DB2 Multisystem product is installed on
your system and create a nodegroup with the CRTNODGRP CL command.
QSYS2/SYSFUNCS has:
SPECIFIC_SCHEMA SPECIFIC_NAME ROUTINE_SCHEMA ROUTINE_NAME
ROUTINE_CREATED ROUTINE_DEFINER ROUTINE_BODY
QDIRSRV QGLDRSDX QDIRSRV QGLDRSDX
2001-03-10-08.21.26.962000 QDIRSRV EXTERNAL
ROB3 ONHAND ROB3 ONHAND
2001-11-30-08.02.52.040000 ROB EXTERNAL
ROUTINES FAXA ROUTINES FAXA
2002-02-13-08.41.04.050000 ROB EXTERNAL
ROUTINES FAXN ROUTINES FAXN
2002-02-13-08.41.04.695000 ROB EXTERNAL
ROUTINES FAXAREACODE ROUTINES FAXAREACODE
2002-02-13-08.41.04.796000 ROB EXTERNAL
ROUTINES FAXEXCHANGE ROUTINES FAXEXCHANGE
2002-02-13-08.41.04.884000 ROB EXTERNAL
ROUTINES FAXNUMBER ROUTINES FAXNUMBER
2002-02-13-08.41.05.021000 ROB EXTERNAL
ROUTINES FAXNEWAREA ROUTINES FAXNEWAREA
2002-02-13-08.41.05.127000 ROB EXTERNAL
ROB ONHAND ROB ONHAND
2002-02-13-10.16.20.950000 ROB EXTERNAL
ROUTINES FAXNEWPHONEA ROUTINES FAXNEWPHONEA
2002-02-14-10.57.21.240000 ROB EXTERNAL
ROUTINES FAXNEWSTRING ROUTINES FAXNEWSTRING
2002-02-14-10.59.46.287000 ROB EXTERNAL
ROUTINES FAXNEWPHONEN ROUTINES FAXNEWPHONEN
2002-02-14-13.54.38.057000 ROB EXTERNAL
WEB VALIDTPNBR WEB VALIDTPNBR
2002-04-26-15.21.50.249000 ROB EXTERNAL
EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE
IS_DETERMINISTIC SQL_DATA_ACCESS
QSYS/QGLDRSDX C SQL YES NONE
ROB3/INVENTORY(ONHAND) RPGLE GENERAL YES NONE
ROUTINES/SRVPGM(FAXA) RPGLE GENERAL YES NONE
ROUTINES/SRVPGM(FAXN) RPGLE GENERAL YES NONE
ROUTINES/SRVPGM(FAXAREACODE) RPGLE GENERAL YES NONE
ROUTINES/SRVPGM(FAXEXCHANGE) RPGLE GENERAL YES NONE
ROUTINES/SRVPGM(FAXNUMBER) RPGLE GENERAL YES NONE
ROUTINES/SRVPGM(FAXNEWAREA) RPGLE GENERAL YES READS
ROB/ONHAND(ONHAND) RPGLE GENERAL YES NONE
ROUTINES/SRVPGM(FAXNEWPHONEA) RPGLE GENERAL YES NONE
ROUTINES/SRVPGM(FAXNEWSTRING) RPGLE GENERAL YES NONE
ROUTINES/SRVPGM(FAXNEWPHONEN) RPGLE GENERAL YES NONE
WEB/WEBSRV(VALIDTPNBR) RPGLE GENERAL YES READS
Rob Berendt
--
"They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety."
Benjamin Franklin
_______________________________________________
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@midrange.com
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l
or email: RPG400-L-request@midrange.com
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
_______________________________________________
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@midrange.com
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l
or email: RPG400-L-request@midrange.com
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
_______________________________________________
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@midrange.com
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l
or email: RPG400-L-request@midrange.com
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.