<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><category>pcsoft.fr.windev</category><copyright>Copyright 2026, PC SOFT</copyright><lastBuildDate>5 Apr 2019 04:04:13 Z</lastBuildDate><pubDate>27 Feb 2019 12:16:27 Z</pubDate><description>Bonjour à tous,&#13;
j'ai créé un webService SOAP qui contient 2 Procédures globales qui sont :&#13;
- PG_XML_IMPORT (issu des exemples PCsoft)&#13;
- PushData(flux est une chaine)&#13;
&#13;
mon fournisseur m'envoi un flux par la procédure &lt;PushData&gt;&#13;
&#13;
mon problème : je récupère ce flux mais je ne peux ni récupérer le contenu par fichier texte, ni récupérer les données.&#13;
Quand je le fait à partir d'un programme test dans windev (avec utilisation du fichier WSDL) ça fonctionne.&#13;
&#13;
voici mes 2 procédures, ci-dessous.&#13;
&#13;
Merci à tous de votre aide.&#13;
LH&#13;
&#13;
======================&#13;
PROCÉDURE PushData(sFluxXML est une chaîne)&#13;
s_DOCXML				est une chaîne="DOCXML"&#13;
&#13;
sFichierXML			est une chaîne = "c:\temp\PushData_"+DateSys()+"_"+HeureSys()+".xml"&#13;
sFluxEntrant			est une chaîne = sFluxXML&#13;
sFluxReponse			est une chaîne&#13;
bResFlux				est un booléen = Faux&#13;
&#13;
fSauveTexte(sFichierXML,sFluxEntrant)&#13;
QUAND EXCEPTION DANS &#13;
	//ouverture du document&#13;
	bResFlux = XMLDocument(s_DOCXML,sFluxEntrant)&#13;
	SI bResFlux = Faux ALORS PI_FluxReponse("200")&#13;
	&#13;
	//positionnement à la racine&#13;
	XMLRacine(s_DOCXML)&#13;
&#13;
	//parcours du document&#13;
	PG_XML_IMPORT(s_DOCXML)&#13;
&#13;
	//fin du document&#13;
	XMLTermine(s_DOCXML)&#13;
&#13;
	PI_FluxReponse("OK")&#13;
FAIRE&#13;
	bResFlux		= Faux&#13;
	PI_FluxReponse("100")&#13;
FIN&#13;
RENVOYER sFluxReponse&#13;
&#13;
&#13;
	PROCÉDURE INTERNE PI_FluxReponse(sErreurCode)&#13;
		SI PAS bResFlux ALORS&#13;
			sFluxReponse=[&#13;
				&lt;success&gt;false&lt;/success&gt;&#13;
				&lt;errorMessage&gt;%1&lt;/errorMessage&gt;&#13;
			]&#13;
			sFluxReponse = ChaîneConstruit(sFluxReponse,sErreurCode)&#13;
			&#13;
		SINON&#13;
			sFluxReponse=[&#13;
				&lt;success&gt;true&lt;/success&gt;&#13;
				&lt;errorMessage&gt;%1&lt;/errorMessage&gt;&#13;
			]&#13;
			sFluxReponse = ChaîneConstruit(sFluxReponse,sErreurCode)&#13;
		FIN&#13;
	FIN&#13;
&#13;
====================&#13;
PROCÉDURE PRIVÉE PG_XML_IMPORT(sDocXML, nNiveau=0)&#13;
nPositionXML	est un entier&#13;
sElement		est une chaîne&#13;
bAttribut		est un booléen&#13;
bBalise			est un booléen&#13;
sData			est une chaîne&#13;
&#13;
// Parcours de tous les éléments&#13;
XMLPremier(sDocXML)&#13;
TANTQUE PAS XMLEnDehors(sDocXML)&#13;
	// Récupère les données de l'élément&#13;
	sData = XMLDonnée(sDocXML)&#13;
	&#13;
	//Type d'élément&#13;
	bAttribut	= Faux&#13;
	bBalise		= Faux&#13;
	SELON XMLTypeElement(sDocXML)&#13;
		CAS XMLAttribut 		// Attribut affiché entre côtes&#13;
			sElement = XMLNomElément(sDocXML)&#13;
			bAttribut = Vrai&#13;
		CAS XMLBalise  			// Attribut affiché entre &lt; et &gt;&#13;
			sElement = XMLNomElément(sDocXML)&#13;
			bBalise = Vrai&#13;
		AUTRE CAS				// dont CAS XMLErreur&#13;
			sElement = "Erreur XML"&#13;
	FIN &#13;
	&#13;
	// Il y a des données pour cet élément ?&#13;
	SI ChaîneFormate(sData, ccSansPonctuationNiEspace + ccSansEspace + ccSansAccent) = "" ALORS&#13;
		// Pas de données&#13;
	SINON&#13;
		// OK données&#13;
		SELON sElement&#13;
			CAS "groupName"&#13;
				goXmlImport &lt;- allouer un cXmlImport&#13;
				goXmlImport.PL_Statut_Changer(StAjouter)&#13;
				goXmlImport:m_GroupName = sData&#13;
			CAS "key"&#13;
				goXmlImport:m_Key = sData&#13;
			CAS "value"&#13;
				goXmlImport:m_Value = sData&#13;
				goXmlImport.PL_Data_Enregistrer(goErreur)&#13;
			//CAS "customerID"&#13;
			//	bCustomerID = vrai&#13;
			//si GetGUIDid(sData) = "ACTIF" alors bCustomerID = vrai&#13;
			AUTRE CAS&#13;
		FIN&#13;
	FIN&#13;
&#13;
	// Il y a des balises ou des attributs pour cet élément ?&#13;
	SI XMLFilsExiste(sDocXML, XMLBalise + XMLAttribut) = Vrai ALORS&#13;
		// Sauve la position actuelle&#13;
		nPositionXML = XMLSauvePosition(sDocXML)&#13;
		// Se positionne sur le fils&#13;
		XMLFils(sDocXML)&#13;
		// Parcourt le fils&#13;
		PG_XML_IMPORT(sDocXML, nNiveau+1)&#13;
		// Se repositionne comme avant le positionnement sur le fils&#13;
		XMLRetourPosition(sDocXML, nPositionXML, XMLRPDéfaut)&#13;
	FIN&#13;
	&#13;
	// Suite du XML&#13;
	XMLSuivant(sDocXML)&#13;
FIN&#13;
&#13;
--&#13;
LH</description><ttl>30</ttl><generator>WEBDEV</generator><language>fr_FR</language><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/224310-probleme-recuperation-flux-xml-webservice-soap/read.awp</link><title>Problème Récupération Flux XML (WebService SOAP)</title><managingEditor>moderateur@pcsoft.fr (El moderador)</managingEditor><webMaster>webmaster@pcsoft.fr (El webmaster)</webMaster></channel></rss>
