| |
Membre enregistré 2 messages |
|
Posté le 09 juin 2015 - 10:33 |
Bonjour à tous,
Est-ce que quelqu'un peut me donner des informations sur l'utilisation d'un Web Service SOAP avec le logiciel SAGE X3. L'importation du web service se passe bien par contre je n'arrive qu'à récupérer le début de la réponse
Je vous joins la déclaration du service.
D'avance merci
|
| |
| |
| | | |
|
| | |
| |
Posté le 10 février 2016 - 21:14 |
Le sujet date un peu mais n'hésitez pas à me contacter si votre problème subsiste.
Cordialement. Portable 06 10 66 32 84 |
| |
| |
| | | |
|
| | |
| |
Posté le 15 février 2018 - 11:58 |
Une piste qui fonctionne bien dans mon code. Remplacer les variable %% par vos données.
Procedure Article(sAbsolu est une chaîne)
wsResponse est une chaîne contaxt est un CAdxCallContext contaxt.codeUser = "%USer%" contaxt.password = "%Mot de passe%" contaxt.poolAlias = "%Alias%" contaxt.codeLang = "FRA" contaxt.requestConfig = "adxwss.trace.on=off&adxwss.trace.size16384&adonix.trace.on=off&adonix.trace.level=3&adonix.trace.size=8&adxwss.optreturn=XML&prefix.id=TSVC.47"
SOAPAjouteEntête(CAdxWebServiceXmlCCService,contaxt)
Param est un ArrayOfCAdxParamKeyValue Param.CAdxParamKeyValue.key = "ITMREF" Param.CAdxParamKeyValue.value = sAbsolu
byBuffer est un Buffer = SOAPPrepare(query, contaxt,"ZART",Param,10) SI PAS SOAPExécuteXML("http://%AdresseServeur%:28880/adxwsvc/services/CAdxWebServiceXmlCC", byBuffer) ALORS Info ("Pas d'accé au WebService") RENVOYER "" FIN wsResponse = SOAPDonneRésultat(SOAPRésultatXML) wsResponse = ExtraitChaîne(wsResponse,2,"<resultXml xsi:type=""xsd:string"">") wsResponse = XMLVersTexte(ExtraitChaîne(wsResponse,1,"</resultXml>"))
RENVOYER wsResponse |
| |
| |
| | | |
|
| | |
| |
Posté le 19 février 2019 - 10:22 |
Bonjour,
j'ai repris ce code avec Windev 24 et X3 version U9. J'accède bien au webService, mais je récupère dans wsResponse, le message suivant :
<html> <head><title>Redirecting...</title></head> <body><a href="/auth/login/page">click here to continue</a></body> </html>
L'authentification semble avoir changé. j'ai donc remplacé le code suivant :
contaxt est un CAdxCallContext contaxt.codeUser = "%USer%" contaxt.password = "%Mot de passe%" contaxt.poolAlias = "%Alias%" contaxt.codeLang = "FRA" contaxt.requestConfig = "adxwss.trace.on=off&adxwss.trace.size16384&adonix.trace.on=off&adonix.trace.level=3&adonix.trace.size=8&adxwss.optreturn=XML&prefix.id=TSVC.47"
par
CAdxWebServiceXmlCCService.Utilisateur = "%User%" CAdxWebServiceXmlCCService.MotDePasse = "%Mot de passe%" CAdxWebServiceXmlCCService.Authentification = auBasic
contaxt est un CAdxCallContext contaxt.poolAlias = "%Alias%" contaxt.codeLang = "FRA" contaxt.requestConfig = "adxwss.trace.on=off&adxwss.trace.size16384&adonix.trace.on=off&adonix.trace.level=3&adonix.trace.size=8&adxwss.optreturn=XML&prefix.id=TSVC.47"
Toutes mes valeurs en parametre fonctionnent très bien depuis une autre application tiers, mais pas dans Windev.
Quelqu'un peut-il me dire ce qui manque où ce qu'il faudrait changer ? Merci |
| |
| |
| | | |
|
| | |
| |
Posté le 19 février 2019 - 12:58 |
Bonjour, Une suggestion : Intercepter le contenu de la requête Http envoyée, dans le cas : - De l'application tiers qui fonctionne. - Du lanceur de test Windev WDTst.exe Avec un logiciel gratuit du genre socketSniff, SOAPUI. Comparer les contenus des deux requêtes. Essayer d'obtenir sous Windev la même requête que sous le logiciel tiers. Au pire, faire le XML de requête SOAP soit même, sans les fonctions SOAPAjouteEnTete() et SOAPPrepare(). Si rien ne marche revenir à la fonction HTTPRequete() au lieu de SOAPExecuteXML() Penser au paramétrage de HTTP.IgnoreErreur qui fonctionne même devant une requête SOAP qui est en fait un type particulier de requête HTTP. Voir https://doc.pcsoft.fr/fr-FR/?3043007&name=HTTPRequete Bien cordialement. |
| |
| |
| | | |
|
| | |
| |
Posté le 20 février 2019 - 10:46 |
Bonjour,
merci pour votre réponse
Pour la première partie on l'a déjà fait sans succès : La requete SOAP générée par SOAPPrepare() fonctionne bien dans SOAPUI, et celle récupérée de SOAP de fonctionne pas dans Windev.
Je suis donc passé par HTTPRequête(), la requête est bien lancée mais elle me retourne le message suivant : {"$diagnoses":[{"$severity":"error","$message":"Header 'soapAction' is missing."}]}
Cdlt, |
| |
| |
| | | |
|
| | |
| |
Posté le 24 septembre 2021 - 12:57 |
Exemple de webservice X3 en V12 qui fonctionne : L'authentification basic ne fonctionnant pas dans notre cas avec les fonction SOAP windev, nous utilisons une requete HTTP :
byBuffer est une chaîne = [ <soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wss="http://www.adonix.com/WSS" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> <soapenv:Header/> <soapenv:Body> <wss:read soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <callContext xsi:type="wss:CAdxCallContext"> <codeLang xsi:type="xsd:string">FRA</codeLang> <poolAlias xsi:type="xsd:string">SEED</poolAlias> <poolId xsi:type="xsd:string"></poolId> <requestConfig xsi:type="xsd:string"></requestConfig> </callContext> <publicName xsi:type="xsd:string">ZWSGESSOH1</publicName> <objectKeys xsi:type="wss:ArrayOfCAdxParamKeyValue" soapenc:arrayType="wss:CAdxParamKeyValue[]"> <ArrayOfCAdxParamKeyValue> <key>SOHNUM</key> <value>SOWFR0110005</value> </ArrayOfCAdxParamKeyValue> </objectKeys> </wss:read> </soapenv:Body> </soapenv:Envelope> ] cMaRequête est un httpRequête cMaRequête.URL = "http://srvsagetest.xxxxx.priv:8124/soap-generic/syracuse/collaboration/syracuse/CAdxWebServiceXmlCC" cMaRequête.Entête["SOAPAction"]="''" cMaRequête.Entête["Authorization"]="Basic VOTRELOGINMOTDEPASSEENCODE"
cMaRequête.Méthode=httpPost cMaRequête.Contenu=byBuffer
cMaRéponse est un httpRéponse = HTTPEnvoie(cMaRequête) SI ErreurDétectée ALORS Erreur(ErreurInfo(errComplet)) SINON Info(HTTPDonneRésultat()) Info(cMaRéponse.Contenu) FIN |
| |
| |
| | | |
|
| | |
| |
Posté le 26 novembre 2021 - 10:43 |
Bonjour,
Merci pour votre exemple utile
petite question pour la partie : Authorization
cMaRequête.Entête["Authorization"]="Basic VOTRELOGINMOTDEPASSEENCODE"
Exemple : Login : TEST / Mot de passe : MDPTEST
Comment remplir
cMaRequête.Entête["Authorization"] = ?
merci à vous |
| |
| |
| | | |
|
| | |
| |
Posté le 24 septembre 2022 - 23:16 |
Bonsoir Est ce que je peux savoir comment vous avez importé le webservice dans windev ? Avec wd25 ça ne marche pas. |
| |
| |
| | | |
|
| | |
| |
Posté le 25 septembre 2022 - 10:13 |
bonjour svp comment vous faites pour importer le webservice x3 v12 ? |
| |
| |
| | | |
|
| | |