Bonjour,
je crée une fonction ainsi :
Create function NEWART/ETAT ( art decimal(7, 0),
date decimal(8, 0),
zone char(7) )
returns decimal(1, 0)
language rpgle
external name 'NEWART/UTIL01PS(AUTETAT)'
parameter style general
la fonction est créée, mais lorsque je tente de l'utiliser
j'ai le message suivant
ETAT de type *N dans NEWART non trouvé.
si vous avez une idée ...
Merci pour vos réponses.
probleme utilisation d'une fonction
-
- Site Admin
- Messages : 813
- Enregistré le : mer. 14 févr. 2007, 18:00:03
- Localisation : Nantes
- Contact :
(sans texte)
C'est probablement un problème de signature.
qu'est-ce que la signature d'une fonction ? le nombre et le type de paramètres.
si vous transmettez par ex 432, il y a toutes les chances que cela soit pris par SQL pour du binaire (les règles se sont bien assouplies en 7.2) et il n'y a pas de version de votre fonction attendant du binaire, d'où le message.
Essayez de caster : DEC(432, 7 , 0), et dites nous...
qu'est-ce que la signature d'une fonction ? le nombre et le type de paramètres.
si vous transmettez par ex 432, il y a toutes les chances que cela soit pris par SQL pour du binaire (les règles se sont bien assouplies en 7.2) et il n'y a pas de version de votre fonction attendant du binaire, d'où le message.
Essayez de caster : DEC(432, 7 , 0), et dites nous...
Christian Massé (Volubis.fr)
(sans texte)
j'ai caster tous les numériques, sans résultat.
l'iserie est en v7r2.
parallèlement, j'ai crée une fonction en sql qui fonctionne bien
lorsque que je fais wrkobj *all/etat aucun objet apparait ???
l'iserie est en v7r2.
parallèlement, j'ai crée une fonction en sql qui fonctionne bien
lorsque que je fais wrkobj *all/etat aucun objet apparait ???
-
- Site Admin
- Messages : 813
- Enregistré le : mer. 14 févr. 2007, 18:00:03
- Localisation : Nantes
- Contact :
(sans texte)
Vérifiez que l'objet NEWART/UTIL01PS existe, vérifiez la procédure AUTETAT par un DSPSRVPGM. Est-elle exportée (EXPORT en RPG ).
il n'y a pas d’objet correspondant au CREATE FUNCTION, mais une ligne dans SYSFUNCS de QSYS2
il n'y a pas d’objet correspondant au CREATE FUNCTION, mais une ligne dans SYSFUNCS de QSYS2
Christian Massé (Volubis.fr)
(sans texte)
l'objet NEWART/UTIL01PS existe
la procédure AUTETAT par un DSPSRVPGM ok
Est-elle exportée (EXPORT en RPG ) ? OUI
un enregistrement existe dans le fichier sysfuncs de qsys2
la procédure AUTETAT par un DSPSRVPGM ok
Est-elle exportée (EXPORT en RPG ) ? OUI
un enregistrement existe dans le fichier sysfuncs de qsys2
-
- Site Admin
- Messages : 813
- Enregistré le : mer. 14 févr. 2007, 18:00:03
- Localisation : Nantes
- Contact :
(sans texte)
Alors , je persiste, je pense que c'est un problème de signature (définition des paramètres envoyés)
Christian Massé (Volubis.fr)
(sans texte)
Bonjour,
J'ai casté les paramètres avec cast et pas dec comme au début.
La fonction est bien appelée mais j'ai toujours un plantage peut-être
lié a mon programme ?
j'analyse le problème
cdlt
J'ai casté les paramètres avec cast et pas dec comme au début.
La fonction est bien appelée mais j'ai toujours un plantage peut-être
lié a mon programme ?
j'analyse le problème
cdlt
(sans texte)
Bonjour,
Réponse au problème des paramètres :
Dans le programme de service :
les paramètres ne doivent avoir aucune option ou CONST (surtout pas value)
Par contre l'utilisation du programme de service dans un rpgle imposera que les paramètres soient des variables.
Cdlt
Réponse au problème des paramètres :
Dans le programme de service :
les paramètres ne doivent avoir aucune option ou CONST (surtout pas value)
Code : Tout sélectionner
Create function Mabib/myfunc ( art decimal(7, 0),
date decimal(8, 0),
zone varchar(7) ) '<------ ATTENTION VARCHAR ICI
returns decimal(1, 0)
language rpgle
external name 'mybib/mysrvpgm(myproc)'
parameter style general
Par contre l'utilisation du programme de service dans un rpgle imposera que les paramètres soient des variables.
Cdlt