PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → requete chronopost
requete chronopost
Iniciado por supercdfr, jan., 27 2020 8:38 AM - 10 respostas
Membro registado
18 mensagems
Publicado em janeiro, 27 2020 - 8:38 AM
Bonjour,

chronopost m'a transferé un exemple de requete soap pour chez eux. D'aprés eux, cela fonctionne, mais je n'arrive pas a obtenir quoi que ce soit, cela me retourne uniquement du vide.
Pour info, le compte mis dans cet exemple est le compte generique de test de chronopost, renvoyant des données specimens :
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cxf="http://cxf.shipping.soap.chronopost.fr/">

<soapenv:Body>

<cxf:shippingMultiParcelV3>

<headerValue>

<accountNumber>19869502</accountNumber>

<idEmit>CHRFR</idEmit>

<identWebPro/>

<subAccount/>

</headerValue>

<shipperValue>

<shipperAdress1>ADRESSE EXPEDITEUR</shipperAdress1>

<shipperAdress2/>

<shipperCity>PARIS</shipperCity>

<shipperCivility>M</shipperCivility>

<shipperContactName>NOM CONTACT</shipperContactName>

<shipperCountry>FR</shipperCountry>

<shipperCountryName>FRANCE</shipperCountryName>

<shipperEmail>adresse@mail.fr</shipperEmail>

<shipperMobilePhone/>

<shipperName>NOM EXPEDITEUR</shipperName>

<shipperName2></shipperName2>

<shipperPhone>0102030405</shipperPhone>

<shipperPreAlert>0</shipperPreAlert>

<shipperZipCode>75002</shipperZipCode>

<shipperType>1</shipperType>

</shipperValue>

<customerValue>

<customerAdress1>ADRESSE CLIENT</customerAdress1>

<customerAdress2/>

<customerCity>PARIS</customerCity>

<customerCivility>M</customerCivility>

<customerContactName>NOM CONTACT</customerContactName>

<customerCountry>FR</customerCountry>

<customerCountryName>FRANCE</customerCountryName>

<customerEmail>adresse@mail.fr</customerEmail>

<customerMobilePhone/>

<customerName>NOM CLIENT</customerName>

<customerName2></customerName2>

<customerPhone>0607080910</customerPhone>

<customerPreAlert>0</customerPreAlert>

<customerZipCode>75002</customerZipCode>

<printAsSender>N</printAsSender>

</customerValue>

<recipientValue>

<recipientName>NOM DESTINATAIRE</recipientName>

<recipientName2></recipientName2>

<recipientAdress1>ADRESSE 1 DESTINATAIRE</recipientAdress1>

<recipientAdress2>ADRESSE 2 DESTINATAIRE</recipientAdress2>

<recipientZipCode>78180</recipientZipCode>

<recipientCity>MONTIGNY LE BRETONNEUX</recipientCity>

<recipientCountry>FR</recipientCountry>

<recipientContactName>CONTACT DESTINATAIRE</recipientContactName>

<recipientEmail>mail@gmail.com</recipientEmail>

<recipientPhone>1234567890</recipientPhone>

<recipientMobilePhone/>

<recipientPreAlert>0</recipientPreAlert>

<recipientType>2</recipientType>

</recipientValue>

<refValue>

<customerSkybillNumber></customerSkybillNumber>

<recipientRef>recipientRef</recipientRef>

<shipperRef>shipperRef</shipperRef>

<idRelais></idRelais>

</refValue>

<skybillValue>

<bulkNumber>1</bulkNumber>

<codCurrency>EUR</codCurrency>

<codValue>0</codValue>

<content1></content1>

<content2></content2>

<content3></content3>

<content4></content4>

<content5></content5>

<customsCurrency>EUR</customsCurrency>

<customsValue/>

<evtCode>DC</evtCode>

<insuredCurrency>EUR</insuredCurrency>

<insuredValue>0</insuredValue>

<latitude></latitude>

<longitude></longitude>

<masterSkybillNumber/>

<objectType>MAR</objectType>

<portCurrency/>

<portValue>0</portValue>

<productCode>1S</productCode>

<qualite/>

<service>0</service>

<shipDate>2020-01-17</shipDate>

<shipHour>17</shipHour>

<skybillRank>1</skybillRank>

<source></source>

<weight>10</weight>

<weightUnit>KGM</weightUnit>

<height>30</height>

<length>50</length>

<width>40</width>

<as></as>

<subAccount></subAccount>

<toTheOrderOf></toTheOrderOf>

<skybillNumber></skybillNumber>

<carrier>1</carrier>

<skybillBackNumber></skybillBackNumber>

</skybillValue>

<skybillParamsValue>

<duplicata>N</duplicata>

<mode>PDF</mode>

<withReservation>2</withReservation>

</skybillParamsValue>

<password>255562</password>

<modeRetour>2</modeRetour>

<numberOfParcel>1</numberOfParcel>

<version>2.0</version>

<multiParcel>N</multiParcel>

</cxf:shippingMultiParcelV3>

</soapenv:Body>

</soapenv:Envelope>
Membro registado
201 mensagems
Popularité : +6 (10 votes)
Publicado em janeiro, 27 2020 - 9:17 AM
Bonjour
As tu essayé la requête en dehors de windev ? Genre avec un outil comme SoapUI ?
Membro registado
18 mensagems
Publicado em janeiro, 27 2020 - 6:42 PM
oui, et ca a l'air de marché
Membro registado
201 mensagems
Popularité : +6 (10 votes)
Publicado em janeiro, 28 2020 - 9:14 AM
ça a l'air ? c'est à dire ?
si ça fonctionne hors windev, c'est soit un soucis de Windev et faut attendre la correction, soit il y a un soucis dans la manière ou t'as implémenté la lecture de la réponse qui fait que y a du vide ou dans l'appel ce qui fait que chronopost te renvoit du vide
t'as suivi un tutorial ou une aide PCSOFT ? T'as essayé avec d'autres webservices que chronopost ? as tu une erreur de compilation et/ou un avertissement dans l'audit ?
Membro registado
133 mensagems
Popularité : +3 (3 votes)
Publicado em janeiro, 29 2020 - 9:35 AM
l'adresse du WS est https://ws.chronopost.fr/shipping-cxf/ShippingServiceWS…
j'ai essayé en direct, via httprequete, mais rien n'est renvoyé. Les autres fonctions du WS fonctionnent bien.
Membro registado
1.623 mensagems
Popularité : +100 (114 votes)
Publicado em janeiro, 29 2020 - 12:01 PM
Hello,

Puisque tu as a ta disposition le fichier WSDL, pourquoi ne pas l'importer directement dans windev ?
Tu pourra ma manipuler le webservices comme un objec avec des membres et des methodes.

Ce sera bien plus simple
Membro registado
133 mensagems
Popularité : +3 (3 votes)
Publicado em janeiro, 29 2020 - 2:25 PM
J'ai déjà essayé.,L'importation, pas de soucis, mais en essayant de suivre l'exemple soap qu'ils ont fournis, ont obtient rien. Comme si certains paramètres étaient spéciaux. Et la doc de chronopost est generique et n'indique pas le type attendu.
Membro registado
1.623 mensagems
Popularité : +100 (114 votes)
Publicado em janeiro, 29 2020 - 2:45 PM
Ha ok, donc le flux est bien envoyé mais leur webservice ne répond RIEN si tout n'est pas envoyé correctement..
J'ai passé beaucoup de temps avec leur webservice Shipping.. justement pour ce genre de problème.

Pas d'autres choix que d'y aller petit a petit, on remplit tout ce qu'on peut puis on retire ce dont on a pas besoin un par un jusqu’à obtenir satisfaction. Une vraie galère leur WS !
Membro registado
1.623 mensagems
Popularité : +100 (114 votes)
Publicado em janeiro, 29 2020 - 2:49 PM
Tiens, si ca peut t'aider, c'est ce que j'utilise pour la methode Shipping :

SI bAvecESD ALORS //Si enlevement demandé
//esdValue
WS_Requete.esdValue.retrievalDateTime=DateVersChaîne(DateHeureEnlevement,"AAAAMMJJHHmmSS")
WS_Requete.esdValue.closingDateTime=DateVersChaîne(DateHeureEnlevement,"AAAAMMJJ")+HeureVersChaîne(HeureFermeture,"HHmm")
WS_Requete.esdValue.specificInstructions=""
WS_Requete.esdValue.height=1.0
WS_Requete.esdValue.width=1.0
WS_Requete.esdValue.length=1.0
WS_Requete.esdValue.shipperCarriesCode=""
WS_Requete.esdValue.shipperBuildingFloor=""
FIN



//headerValue
WS_Requete.headerValue.idEmit = "CHRFR"
WS_Requete.headerValue.accountNumber = Compte.Identifiant


//shipperValue
WS_Requete.shipperValue.shipperName = NomExp
WS_Requete.shipperValue.shipperAdress1 = AdresseExp
WS_Requete.shipperValue.shipperCivility=" "
WS_Requete.shipperValue.shipperCountry="FR"
WS_Requete.shipperValue.shipperAdress2=ComplementExp
WS_Requete.shipperValue.shipperZipCode=CodePostalExp
WS_Requete.shipperValue.shipperCity=VilleExp




//customerValue
WS_Requete.customerValue.customerName = NomExp
WS_Requete.customerValue.customerCivility=" "
WS_Requete.customerValue.customerCountry="FR"


//recipientValue

WS_Requete.recipientValue.recipientName = NomDest
WS_Requete.recipientValue.recipientCountry = "FR"
WS_Requete.recipientValue.recipientAdress1=AdresseDest
WS_Requete.recipientValue.recipientAdress2=ComplementDest
WS_Requete.recipientValue.recipientZipCode=CodePostalDest
WS_Requete.recipientValue.recipientCity=VilleDest





//refValue
WS_Requete.refValue.customerSkybillNumber=RefDossier
WS_Requete.refValue.shipperRef = RefClient
WS_Requete.refValue.recipientRef = RefDossier

//skybillValue
WS_Requete.skybillValue.evtCode = "DC"
WS_Requete.skybillValue.productCode = "01"
WS_Requete.skybillValue.shipDate = DateVersChaîne(DateSys(), "AAAAMMJJ" + HeureVersChaîne(Maintenant, "HHMMSS"))
WS_Requete.skybillValue.shipHour = HeureVersChaîne(Maintenant,"HH")
WS_Requete.skybillValue.weight = 1
WS_Requete.skybillValue.weightUnit = "KGM"
WS_Requete.skybillValue.service = "0"
WS_Requete.skybillValue.objectType = "MAR" //Marchandise
WS_Requete.skybillParamsValue.mode = "PDF" // format de l'étiquette (voir la doc)

WS_Requete.password = Compte.MotDePasse
Membro registado
133 mensagems
Popularité : +3 (3 votes)
Publicado em janeiro, 30 2020 - 2:43 PM
Merci mais je n'avais pas de soucis avec le shiping 'simple'.
C'est le shippingMultiParcel que je n'arrive pas a faire fonctionner. Ca doit etre au niveau des variable a passer, mais impossible de voir de quelle nature elles sont, et chronopost me dit juste que chez eux, en soap, ca passe.
Publicado em março, 09 2021 - 9:53 AM
Bonjour
Je dois utiliser le shippingMultiParcelV4 de Chronopost, et je pense être dans la même problématique.

Depuis SoapUI, ma requête me retourne mon étiquette, mais depuis Windev, j'ai une réponse qui me dit "null while invoking public fr.chronopost.soap.shipping.service.Shipping.ResultMultiParcelExpeditionValue..."

Est-ce que tu as pu trouver une solution ?

Merci pour vos retours d'expérience.