Envoi et récupération xml via url
Bonjour,
Je cherche à intégrer la technologie FIANET dans mes fonctions.
Pour cela, je dois envoyer un flux xml à l'aide d'un url et on me renvoi un flux pour me dire si je n'ai pas d'erreurs.
Voici mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
CREATE OR REPLACE PROCEDURE p_envoifianet (
p_codsoc IN NUMBER,
p_siteid IN NUMBER -- identifiant de site pour FIA-NET
)
IS
wa_xmldoc CLOB;
wa_url_envoi CLOB;
wa_xmlresponse xmldom.domdocument;
wa_xmltest CLOB;
wa_retval VARCHAR2 (15);
wa_deterror VARCHAR2 (30);
fichier_dbase UTL_FILE.file_type;
w_repertoire VARCHAR2 (15);
fic_dbase VARCHAR2 (15);
WebPageURL HttpUriType;
BEGIN
wa_xmldoc := f_generexmlfianet (p_codsoc, p_siteid);
--url de test
WebPageURL := HttpUriType.createUri('http://secure.fia-net.com/pprod/engine/stacking.cgi?siteid='
|| p_siteid
|| '&controllcallback='
|| wa_xmldoc);
wa_xmltest:=WebPageURL.getCLOB();
--On vérifie si FIA-NET a validé le format de notre flux XML
IF xpath.TEST (wa_xmltest, 'validstack/result/@avancement="en cours"')
THEN
wa_retval := 'valide';
ELSE
wa_retval := 'error';
wa_deterror :=
xpath.valueof (wa_xmlresponse, 'validstack/result/detail');
END IF;
xmldom.freedocument (wa_xmlresponse);
EXCEPTION
WHEN OTHERS
THEN
xmldom.freedocument (wa_xmlresponse);
END;
/ |
Or cela ne fonctionne pas, lorsque je vais voir sur mon interface fianet, ils n'ont pas reçu mon flux.
Ma fonction "f_generexmlfianet" me renvoie bien un CLOB (car chaine de caractères trop petit) et je l'ai testé, elle fonctionne.
Apparemment, le souci vient lorsque j'effectue le "wa_xmltest:=WebPageURL.getCLOB();"
Après je ne sais pas si j'utilise vraiment la bonne méthode.
Si quelqu'un a déjà envoyé des flux xml en utilisant cette méthode ou intégré fianet,....