Posté : lun. 26 nov. 2018, 09:47:24
Bonjour,
J'essaye de mettre en place le traitement suivant :
Depuis java via une connection JDBC, j'appelle une procédure stockée (qui appelle un SQLRPGLE) qui me retournera l'édition d'un document (ARC, BL...) dans un BLOB :
- Génération du spool
- Transformation du spool en PDF sur l'IFS par mapping
- Passage en paramètre dans un blob du fichier pdf de l'IFS via une fonction table.
Tous le traitement fonctionne lors de l'appelle du SQLRPGLE mais le problème se produit lors de l'appelle de la procédure stockée.
Voici le message lorsque j'exécute depuis le le requeteur d'Iséeries Navigator (dans mon cas je passe par ACS) :
[ Fri Nov 23 11:18:32 GMT 2018 ] Exécution globale... CALL GESD940010.PTRKCDE_06 ('POU', 'NI', 'AR', '007898348', null, null, null) Etat SQL : 42926 Code fournisseur : -7034 Message : [SQL7034] Les pointeurs LOB et XML ne sont pas admis avec COMMIT(*NONE). Cause . . . . . : Les pointeurs LOB et XML ne peuvent pas être utilisés avec un contrôle de validation de niveau *NONE ou *NC. Que faire . . . : Utilisez un contrôle de validation de niveau *CHG, *UR, *CS, *ALL, *RS ou *RR. L'instruction mise en évidence a échoué, entraînant l'interruption du traitement Instructions ayant échoué : 1
Suite à ce message j'ai changer le paramétrage de ma connection JDC de "Pas de validation (*NC et *NONE)" en "lecture stable (*RS et *ALL)" et j'ai le message suivant :
[ Fri Nov 23 11:22:45 GMT 2018 ] Exécution globale... CALL GESD940010.PTRKCDE_06 ('POU', 'NI', 'AR', '007898348', null, null, null) Etat SQL : 58004 Code fournisseur : -901 Message : [SQL0901] Erreur système SQL. Cause . . . . . : Une erreur système SQL est intervenue. L'instruction SQL en cours ne peut s'exécuter avec succès. Cette erreur n'empêchera pas cependant l'exécution des instructions suivantes. Il se peut que des messages précédents aient signalé un incident lié à cette instruction SQL et que SQL n'ait pas correctement diagnostiqué l'erreur. Les messages précédents indiquent peut-être qu'un incident s'est produit sur cette instruction SQL, mais que le diagnostic n'a pas été correctement effectué par SQL. L'ID message précédent est MCH0601. Une erreur interne de type 7018 s'est produite. S'il s'agit d'une précompilation, le traitement s'interrompra sur cette instruction. Que faire . . . : Consultez les messages précédents pour déterminer si un incident s'est produit sur cette instruction SQL. Pour consulter les messages, utilisez la commande DSPJOBLOG en mode interactif, ou la commande WRKJOB pour visualiser la sortie d'une précompilation. Un programme d'application recevant ce code retour peut tenter de lancer de nouvelles instructions SQL. Corrigez les erreurs éventuelles et renouvelez votre demande. L'instruction mise en évidence a échoué, entraînant l'interruption du traitement Instructions ayant échoué : 1
Ci-dessous ma procédure stockée :
CREATE PROCEDURE GESD940010/PTRKCDE_06(
IN excste CHAR (3 ),
IN exetab CHAR (2 ),
IN extdoc CHAR (2 ),
IN exndoc NUMERIC(9, 0),
OUT rfdocu BLOB ,
OUT rfreto CHAR (1 ),
OUT rfmess CHAR (80 ))
LANGUAGE RPGLE SPECIFIC GESD940010/PTRKCDE_06
NOT DETERMINISTIC READS SQL
DATA CALLED ON NULL INPUT
EXTERNAL NAME GESD940010/PTRKCDE_06
PARAMETER STYLE GENERAL
Merci d'avance pour votre aide
J'essaye de mettre en place le traitement suivant :
Depuis java via une connection JDBC, j'appelle une procédure stockée (qui appelle un SQLRPGLE) qui me retournera l'édition d'un document (ARC, BL...) dans un BLOB :
- Génération du spool
- Transformation du spool en PDF sur l'IFS par mapping
- Passage en paramètre dans un blob du fichier pdf de l'IFS via une fonction table.
Tous le traitement fonctionne lors de l'appelle du SQLRPGLE mais le problème se produit lors de l'appelle de la procédure stockée.
Voici le message lorsque j'exécute depuis le le requeteur d'Iséeries Navigator (dans mon cas je passe par ACS) :
[ Fri Nov 23 11:18:32 GMT 2018 ] Exécution globale... CALL GESD940010.PTRKCDE_06 ('POU', 'NI', 'AR', '007898348', null, null, null) Etat SQL : 42926 Code fournisseur : -7034 Message : [SQL7034] Les pointeurs LOB et XML ne sont pas admis avec COMMIT(*NONE). Cause . . . . . : Les pointeurs LOB et XML ne peuvent pas être utilisés avec un contrôle de validation de niveau *NONE ou *NC. Que faire . . . : Utilisez un contrôle de validation de niveau *CHG, *UR, *CS, *ALL, *RS ou *RR. L'instruction mise en évidence a échoué, entraînant l'interruption du traitement Instructions ayant échoué : 1
Suite à ce message j'ai changer le paramétrage de ma connection JDC de "Pas de validation (*NC et *NONE)" en "lecture stable (*RS et *ALL)" et j'ai le message suivant :
[ Fri Nov 23 11:22:45 GMT 2018 ] Exécution globale... CALL GESD940010.PTRKCDE_06 ('POU', 'NI', 'AR', '007898348', null, null, null) Etat SQL : 58004 Code fournisseur : -901 Message : [SQL0901] Erreur système SQL. Cause . . . . . : Une erreur système SQL est intervenue. L'instruction SQL en cours ne peut s'exécuter avec succès. Cette erreur n'empêchera pas cependant l'exécution des instructions suivantes. Il se peut que des messages précédents aient signalé un incident lié à cette instruction SQL et que SQL n'ait pas correctement diagnostiqué l'erreur. Les messages précédents indiquent peut-être qu'un incident s'est produit sur cette instruction SQL, mais que le diagnostic n'a pas été correctement effectué par SQL. L'ID message précédent est MCH0601. Une erreur interne de type 7018 s'est produite. S'il s'agit d'une précompilation, le traitement s'interrompra sur cette instruction. Que faire . . . : Consultez les messages précédents pour déterminer si un incident s'est produit sur cette instruction SQL. Pour consulter les messages, utilisez la commande DSPJOBLOG en mode interactif, ou la commande WRKJOB pour visualiser la sortie d'une précompilation. Un programme d'application recevant ce code retour peut tenter de lancer de nouvelles instructions SQL. Corrigez les erreurs éventuelles et renouvelez votre demande. L'instruction mise en évidence a échoué, entraînant l'interruption du traitement Instructions ayant échoué : 1
Ci-dessous ma procédure stockée :
CREATE PROCEDURE GESD940010/PTRKCDE_06(
IN excste CHAR (3 ),
IN exetab CHAR (2 ),
IN extdoc CHAR (2 ),
IN exndoc NUMERIC(9, 0),
OUT rfdocu BLOB ,
OUT rfreto CHAR (1 ),
OUT rfmess CHAR (80 ))
LANGUAGE RPGLE SPECIFIC GESD940010/PTRKCDE_06
NOT DETERMINISTIC READS SQL
DATA CALLED ON NULL INPUT
EXTERNAL NAME GESD940010/PTRKCDE_06
PARAMETER STYLE GENERAL
Merci d'avance pour votre aide