|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| Débuté par mpujol, 19 oct. 2015 15:32 - 33 réponses |
| |
| | | |
|
| |
| Posté le 19 octobre 2015 - 15:32 |
Bonjour à tous ,
J'essaie d'appeler un webservice founi par la poste afin d'editer des etiquettes prepayées , mais je rencontre l'erreur suivante :
"Erreur dans le decodage de la reponse du webservice . La réponse du serveur ne coontient pas de balise enveloppe . Erreur numéro 40055"
Ci desssous mon code :
date est une Date dateconvert est une chaîne test2 est une labelResponse test3 est une generateLabelResponse
date=DateSys() dateconvert=DateVersChaîne(date,"AAAA-MM-JJ")
Vgenerate est une generateLabel test4 est une GenerateLabelResponseType Vgenerate.generateLabelRequest.contractNumber=11111 Vgenerate.generateLabelRequest.password="mdp" //outputformat Vgenerate.generateLabelRequest.outputFormat.outputPrintingType="DPL_10x15_300dpi" //letter //service Vgenerate.generateLabelRequest.letter.service.productCode="DOM" Vgenerate.generateLabelRequest.letter.service.depositDate=dateconvert Vgenerate.generateLabelRequest.letter.service.commercialName="TEST"
//parcel Vgenerate.generateLabelRequest.letter.parcel.weight=0.5
//customDECLARATION
//Vgenerate.generateLabelRequest.letter.customsDeclarations.contents.category Vgenerate.generateLabelRequest.letter.customsDeclarations.contents.category.value=1
//sender -- Paty Maro Vgenerate.generateLabelRequest.letter.sender.address.companyName="TEST" //Vgenerate.generateLabelRequest.letter.sender.address.lastName //Vgenerate.generateLabelRequest.letter.sender.address.firstName Vgenerate.generateLabelRequest.letter.sender.address.line2="6 rue du test " Vgenerate.generateLabelRequest.letter.sender.address.countryCode="FR" Vgenerate.generateLabelRequest.letter.sender.address.city="Villefranche sur mer" Vgenerate.generateLabelRequest.letter.sender.address.zipCode="06230" //Vgenerate.generateLabelRequest.letter.sender.address.mobileNumber Vgenerate.generateLabelRequest.letter.sender.address.email="test@orange.fr"
//adressee
Vgenerate.generateLabelRequest.letter.addressee.address.lastName="test" Vgenerate.generateLabelRequest.letter.addressee.address.firstName="test" Vgenerate.generateLabelRequest.letter.addressee.address.line2="test" Vgenerate.generateLabelRequest.letter.addressee.address.countryCode="FR" Vgenerate.generateLabelRequest.letter.addressee.address.city="marseille" Vgenerate.generateLabelRequest.letter.addressee.address.zipCode="06320" Vgenerate.generateLabelRequest.letter.addressee.address.mobileNumber="0600000000" Vgenerate.generateLabelRequest.letter.addressee.address.email="test@orange.fr"
//methode GenerateLabel
generateLabel(Vgenerate)
Je dois surement oublier quelque chose quelque part , si vous pouvez m'aider ça serait genial .
Merci d'avance, |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 105 messages |
|
| Posté le 20 octobre 2015 - 06:20 |
Bonjour Mélanie,
Dans un premier temps et lorsque tu consommes le WS, tu n'utilises aucune variable pour récupérer la réponse... Dans un deuxième temps, il serait judicieux d'avoir l'adresse du wsdl en complément.
A+ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 148 messages |
|
| Posté le 20 octobre 2015 - 10:00 |
Bonjour
"Erreur dans le decodage de la reponse du webservice . La réponse du serveur ne coontient pas de balise enveloppe . Erreur numéro 40055"
Vérifier le contrat de WSDL de votre service, peut être le chemin
Bon dev
-- FETOUI MOHAMED Consultant et Formateur fib.fetouimed@gmail.com https://www.linkedin.com/pub/mohamed-el-fetoui/a0/680/109 MAROC+212(0)661249774 |
| |
| |
| | | |
|
| | |
| |
| Posté le 20 octobre 2015 - 10:32 |
Bonjour ,
Merci pour votre réponse .
c'est la première fois que j'utilise des Webservices , du coup je ne sais pas vraiment comment récupérer la réponse ...
ci dessous le lien pour le wsdl avec lequel j'ai importé le webservice :
https://ws.colissimo.fr/sls-ws/SlsServiceWS…
Merci d'avance. |
| |
| |
| | | |
|
| | |
| |
| Posté le 20 octobre 2015 - 10:33 |
bonjour ,
merci pour votre réponse .
Je pense que le chemin est bon puisque j'ai reussi à importer le webservice via la lien founi par la poste . |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 105 messages |
|
| Posté le 20 octobre 2015 - 11:19 |
(re)Bonjour Mélanie,
Le wsdl est plutôt "étoffé"... quelle est la structure (types) à récupérer ?
Selon le cas et par exemple si l'objectif est generateLabelResponse alors tu dois déclarer la variable (comme tu l'as fait) puis l'utiliser lors de la consommation. Typiquement : test3 = generateLabel(Vgenerate)
Tu pourras ensuite parcourir les membres de la structure et récupérer leur valeur...
A+ |
| |
| |
| | | |
|
| | |
| |
| Posté le 20 octobre 2015 - 16:04 |
la structure à recuperer est de cette forme :
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:generateLabelResponse xmlns:ns2="http://sls.ws.coliposte.fr"> <return> <messages> <id>0</id> <messageContent>La requête a été traitée avec succès</messageContent> <type>INFOS</type> </messages> <labelResponse> <label> <xop:Include href="cid:b7d20d99-e780-4acc-bd01-4d1954654130-31558@cxf.apache.org" xmlns:xop="http://www.w3.org/2004/08/xop/include"/> </label> <parcelNumber>6A13136540098</parcelNumber> </labelResponse> </return> </ns2:generateLabelResponse> </soap:Body> </soap:Envelope>
Ok j'ai rajouté dans le code : test3=generateLabel(Vgenerate) mais j'ai toujours le meme message d'erreur . |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 105 messages |
|
| Posté le 21 octobre 2015 - 10:03 |
Tu devrais tester ton wsdl avec le SOA Client de Firefox (ou un utilitaire équivalent)... Ainsi tu comprendras mieux sa structure et les paramètres attendus/reçus.
A+ |
| |
| |
| | | |
|
| | |
| |
| Posté le 30 octobre 2015 - 23:24 |
Salut je travaille sur le même web service. Après un rapprochement stratégique avec la Poste, j ai appris que le problème venait de leur web service a priori peu compatible avec l'appel direct du webservice en windev. un développement prochain devrait solutionner le problème.
En attendant nous sommes invités a utiliser les appels SOAP UI...
Mais la encore les surprises nous attendent. je suis en train de faire des tests : retour du serveur : "requête traitée avec succès" et si j'ouvre l'url que le serveur me donne, sur le même serveur donc, réponse du serveur : les arguments ne sont pas valides..... |
| |
| |
| | | |
|
| | |
| |
| Posté le 20 novembre 2015 - 11:16 |
Bonjour,
Il faut utiliser les fonctions SOAP (SAOPExe.).. au lieu d'importer le projet Webservice. Etant donné que la réponse est un pseudo xml avec xop (transfert fichier joint) il faut parser la réponse du ws |
| |
| |
| | | |
|
| | |
| |
| Posté le 02 février 2016 - 02:02 |
| Quelqu'un a réussi a sortir une étiquette colissimo avec Soapexe ou l'import du webservice ? Personnellement avec le webservice importé, j'ai le même code d'erreur et avec soapexecutexml, je n'ai pas de résultat... Quelqu'un a abouti à quelque chose ? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 841 messages |
|
| Posté le 02 février 2016 - 18:07 |
Pour moi ca fonctionne, j'ai fais ça il y a 3 mois et j'ai bien mes PDF
sCompte est une chaîne="AAAAAA" sMDP est une chaîne="aaa1234" gsNumeroDuChargeur est une chaîne="XXXXXXXXXX"
v1 est un generateLabel v2 est un generateLabelResponse
v1.generateLabelRequest.contractNumber=sCompte v1.generateLabelRequest.password=sMDP v1.generateLabelRequest.outputFormat.outputPrintingType="PDF_10x15_300dpi"
v1.generateLabelRequest.letter.service.productCode="DOS" v1.generateLabelRequest.letter.service.depositDate=DateDuJour()[[1 A 4]]+"-"+DateDuJour()[[5 A 6]]+"-"+DateDuJour()[[7 A 8]] v1.generateLabelRequest.letter.service.commercialName=gsNumeroDuChargeur
v1.generateLabelRequest.letter.parcel.weight=2.20
v1.generateLabelRequest.letter.sender.address.companyName="AAAAA" v1.generateLabelRequest.letter.sender.address.line1="Magasin" v1.generateLabelRequest.letter.sender.address.line2="32 rue de xxxxxxx" v1.generateLabelRequest.letter.sender.address.countryCode="FR" v1.generateLabelRequest.letter.sender.address.city="Paris" v1.generateLabelRequest.letter.sender.address.zipCode="75010"
v1.generateLabelRequest.letter.addressee.address.lastName="HAGGAD" v1.generateLabelRequest.letter.addressee.address.firstName="Carot" v1.generateLabelRequest.letter.addressee.address.line1="etage imm etc" v1.generateLabelRequest.letter.addressee.address.line2="44 rue de xxxxxx" v1.generateLabelRequest.letter.addressee.address.countryCode="FR" v1.generateLabelRequest.letter.addressee.address.city="Vincennes" v1.generateLabelRequest.letter.addressee.address.zipCode="94300"
byBuffer est un Buffer = SOAPPrepare(generateLabel,v1)
SOAPExécuteXML("https://ws.colissimo.fr/sls-ws/SlsServiceWS", byBuffer) v2=generateLabel(v1) SI ErreurDétectée = Vrai ALORS SAI_INFO=ErreurInfo() SINON SI v2.return.messages.id>0 ALORS SAI_INFO=v2.return.messages.messageContent SINON SAI_INFO=v2.return.labelResponse.label FIN FIN
-- Cordialement, Camus |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 841 messages |
|
| Posté le 03 février 2016 - 13:30 |
Je reviens sur ce que j'ai dis...
En phase de test cela fonctionne mais j'ai recu mes codes production aujourd'hui et cela ne fonctionne pas !
Erreur dans le décodage de la réponse du Webservice : La réponse du serveur ne contient pas de balise 'Envelope'.
-- Cordialement, Camus |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 841 messages |
|
| Posté le 04 février 2016 - 10:09 |
Pour ceux qui veulent travailler sur des étiquettes PDF voici une fonction permettant de contourner le probleme. Il suffit d'envoyer en parametre la variable GenerateLabel construite et le dossier ou sauvegarder le pdf .... Testé rapidement uniquement sur les envois à domicile, reste les RDV Points de retrait et les bureaux de poste mais cela ne devrait pas poser de problemes. Je pense que le code est adaptable pour le ZPL ou le XML. Bonne journée
FONCTION GenerePdf(pV,pDossier="") sXml,sPdfUrl,sUrl sont des chaînes nIdMessage est un entier sTexteMessage est une chaîne sParcel est une chaîne bLabelcreee est un booléen sDossier est une chaîne
sDossier=ComplèteRep(pDossier)
byBuffer est un Buffer = SOAPPrepare(generateLabel,pV) SOAPExécuteXML("https://ws.colissimo.fr/sls-ws/SlsServiceWS", byBuffer) sXml=SOAPDonneRésultat(SOAPRésultatHTTP)
nIdMessage=XMLExtraitChaîne(XMLExtraitChaîne(sXml,"messages"),"id") sTexteMessage=XMLExtraitChaîne(XMLExtraitChaîne(sXml,"messages"),"messageContent") SI nIdMessage>0 ALORS Erreur(sTexteMessage) RENVOYER ("",0,nIdMessage,sTexteMessage) FIN
sParcel=XMLExtraitChaîne(XMLExtraitChaîne(sXml,"labelResponse"),"parcelNumber") sPdfUrl=XMLExtraitChaîne(sXml,"pdfUrl") sUrl=XMLVersTexte(sPdfUrl)
bufPDF est un Buffer HTTPRequête(sUrl) bufPDF=HTTPDonneRésultat(httpRésultat) SI PAS fRépertoireExiste(sDossier) ALORS fRepCrée(sDossier) FIN bLabelcreee=fSauveBuffer(sDossier+"eti_poste_temp.pdf",bufPDF) RENVOYER (sParcel,bLabelcreee,nIdMessage,sTexteMessage)
-- Cordialement, Camus |
| |
| |
| | | |
|
| | |
| |
| Posté le 08 mars 2016 - 17:04 |
Bonjour,
J'ai testé votre code mais j'obtiens systématiquement l'erreur suivante :
Vous avez appelé la fonction SOAPPrépare. Aucune opération 'generateLabel' avec 1 paramètre(s) n'a été trouvée.
Avez-vous eu ce problème ?
Cordialement,
Rodolphe |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 841 messages |
|
| Posté le 08 mars 2016 - 18:46 |
Oui mais je ne me souviens plus quand. Peut etre que les parametres n'ont pas été saisis dans l'ordre chose que la doc n'indique pas
-- Cordialement, Camus |
| |
| |
| | | |
|
| | |
| |
| Posté le 08 mars 2016 - 19:35 |
Merci pour votre réponse.
J'ai bien suivi l'ordre du wsdl mais j'ai toutjours le même problème.
Pouvez-vous m'envoyer votre code ? Est-ce bien le même que celui que vous avez déposé au-dessus ?
Enfin, la date sous le format "AAAA-MM-JJ" ne passe pas, je suis obligé de contourner le code d'erreur avec une date du type "AAAAMMJJ", avez-vous eu cette modification à faire ou est-ce que mon erreur vient de là ?
Cordialement,
Rodolphe |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 841 messages |
|
| Posté le 09 mars 2016 - 08:14 |
Je vais vous redonner le code. Il fonctionne actuellement en production. Le temps de supprimer les données de notre entreprise.
-- Cordialement, Camus |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 841 messages |
|
| Posté le 09 mars 2016 - 08:23 |
Voila, j'utilise SumatraPDF pour imprimer l’étiquette Windev n'y arrive pas. Le code était bon, ici il est un peu modifié cela doit donc venir de tes paramètres, je t'envoie la structure que j'utilise un peu plus tard.
Procedure LaPoste_Generepdf(pV,pDossier="")
sXml,sPdfUrl,sUrl sont des chaînes nIdMessage est un entier sTexteMessage est une chaîne sParcel est une chaîne bLabelcreee est un booléen sDossier est une chaîne
sDossier=ComplèteRep(pDossier)
byBuffer est un Buffer = SOAPPrepare(generateLabel,pV) SOAPExécuteXML("https://ws.colissimo.fr/sls-ws/SlsServiceWS", byBuffer) sXml=SOAPDonneRésultat(SOAPRésultatHTTP)
nIdMessage=XMLExtraitChaîne(XMLExtraitChaîne(sXml,"messages"),"id") sTexteMessage=XMLExtraitChaîne(XMLExtraitChaîne(sXml,"messages"),"messageContent") SI nIdMessage>0 ALORS Erreur(sTexteMessage) RENVOYER ("0") FIN
sParcel=XMLExtraitChaîne(XMLExtraitChaîne(sXml,"labelResponse"),"parcelNumber") sPdfUrl=XMLExtraitChaîne(sXml,"pdfUrl") sUrl=XMLVersTexte(sPdfUrl)
bufPDF est un Buffer HTTPRequête(sUrl) bufPDF=HTTPDonneRésultat(httpRésultat) SI PAS fRépertoireExiste(sDossier) ALORS fRepCrée(sDossier) FIN bLabelcreee=fSauveBuffer(sDossier+"eti_poste_temp.pdf",bufPDF) SI PAS bLabelcreee ALORS RENVOYER ("0") FIN LanceAppli("sumatraPDF.exe -print-to ""Datamax M-4206 Mark II"" """+sDossier+"eti_poste_temp.pdf"" -exit-on-print") RENVOYER (sParcel)
-- Cordialement, Camus |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 841 messages |
|
| Posté le 09 mars 2016 - 08:27 |
Voici ce que j'ai mis pour la date... je pense que cela vient de là
v1.generateLabelRequest.letter.service.depositDate=DateDuJour()[[1 A 4]]+"-"+DateDuJour()[[5 A 6]]+"-"+DateDuJour()[[7 A 8]]
-- Cordialement, Camus |
| |
| |
| | | |
|
| | |
| |
| Posté le 09 mars 2016 - 12:12 |
| J'ai toujours le même problème, le webservice refuse la date. Vous avez téléchargé le webservice et utilisez les structures du webservice ou vous avez programmé vos structures en windev ? |
| |
| |
| | | |
|
| | |
| |
| Posté le 09 mars 2016 - 12:45 |
Avec votre format de date, j'obtiens le problème suivant :
La valeur '2016-00-03' ne respecte pas le schéma XSD.
Il transforme systématiquement '2016-08-03' en '2016-00-03'. Il met 00 à la place du mois et je pense que c'est pour cela que la date n'est pas reconnue. J'ai essayé avec "2016-11-03" et j'obtiens le code d'erreur :
La valeur '2016-255-01' ne respecte pas le schéma XSD.
Je n'y comprends pas grand chose... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 841 messages |
|
| Posté le 09 mars 2016 - 15:10 |
Il y a forcement quelque chose de modifié par rapport a ce que j'ai donné parce que sinon on aurait eu la date d'aujourd'hui pouvez vous m'envoyer votre ligne pour la date et me dire d'ou provient la date parce qu'il n'y a aucune raison que cela fonction chez moi et pas chez vous
-- Cordialement, Camus |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 841 messages |
|
| Posté le 09 mars 2016 - 15:19 |
Voici mon code... les données viennent d'une bdd HFSQL mais c'est quand meme comprehensible
sCompte est une chaîne="<CODE CLIENT>" sMDP est une chaîne="<PASSE CLIENT>" sColissimo est une chaîne bRelais est un booléen=Faux sNumeroDePortable est une chaîne sAdresse est une chaîne sLine0,sLine1,sLine2 sont des chaînes sCP,sVille,sMail sont des chaîne sCountryCode est une chaîne = "FR" nNbRc est un entier sNomPrenom,sNom,sPrenom est une chaîne bChouka est un booléen sSuivi est une chaîne sFichierArchive est une chaîne sRegion est une chaîne sSoColissimo est une chaîne sClient_Adresse est une chaîne
v1 est un generateLabel
HLitRecherche(EXPEDIER,NUM,pNumExpe) SI PAS HTrouve(EXPEDIER) ALORS Info("L’expédition n'existe pas") RENVOYER("0") FIN sRegion=EXPEDIER.region sSoColissimo=Remplace(EXPEDIER.socolissimo,"<BR>",RC) bChouka=(EXPEDIER.CHOUKA=Vrai) sNomPrenom=(SansAccent(EXPEDIER.NOM)) sClient_Adresse = Remplace(Remplace(EXPEDIER.ADRESSE,"<BR>",RC),"<br>",RC) nNbRc=ChaîneOccurrence(sNomPrenom," ") SI nNbRc > 0 ALORS sNom=LaPoste_nettoie_caract_speciaux(ExtraitChaîne(sNomPrenom,1," ")) sPrenom=LaPoste_nettoie_caract_speciaux(sNomPrenom[[Position(sNomPrenom," ") A]]) SINON sNom = LaPoste_nettoie_caract_speciaux(sNomPrenom) sPrenom=LaPoste_nettoie_caract_speciaux(sNomPrenom) FIN sAdresse = SansAccent(Remplace(EXPEDIER.ADRESSE,Caract(10),"")) nNbRc=ChaîneOccurrence(sAdresse,Caract(13)) sLine2=LaPoste_nettoie_caract_speciaux(ExtraitChaîne(sAdresse,1,Caract(13))) SI sLine2=EOT ALORS sLine2="" SI nNbRc > 0 ALORS sLine0=LaPoste_nettoie_caract_speciaux(ExtraitChaîne(sAdresse,2,Caract(13))) SI sLine0=EOT ALORS sLine0="" SI nNbRc > 1 ALORS sLine1=LaPoste_nettoie_caract_speciaux(ExtraitChaîne(sAdresse,3,Caract(13))) SI sLine1=EOT ALORS sLine1="" FIN FIN
sCP=SansEspace(EXPEDIER.CP) SI sCP[[1 A 2]]="99" OU sCP[[1 A 2]]="98" ALORS sCountryCode="MC" FIN sVille=SansEspace(EXPEDIER.VILLE) sMail = SansEspace(EXPEDIER.MAIL) SI Taille(sMail)=0 ALORS sMail="courrier@adepem.com" FIN SI EXPEDIER.region="BEDOM" ALORS sCountryCode="BE" FIN SI EXPEDIER.region="SO_RELAIS" ALORS sColissimo=EXPEDIER.socolissimo bRelais=Vrai sNumeroDePortable=EXPEDIER.COORD1 FIN
v1.generateLabelRequest.contractNumber=sCompte v1.generateLabelRequest.password=sMDP
v1.generateLabelRequest.outputFormat.y=3 v1.generateLabelRequest.outputFormat.outputPrintingType="PDF_10x15_300dpi" v1.generateLabelRequest.letter.service.productCode="DOS" SI bRelais ALORS v1.generateLabelRequest.letter.service.productCode=ExtraitChaîne(sColissimo,2,"||") FIN
v1.generateLabelRequest.letter.service.depositDate=DateDuJour()[[1 A 4]]+"-"+DateDuJour()[[5 A 6]]+"-"+DateDuJour()[[7 A 8]] v1.generateLabelRequest.letter.service.commercialName=gsNumeroDuChargeur
v1.generateLabelRequest.letter.parcel.weight=pPoid SI pBnc ALORS v1.generateLabelRequest.letter.parcel.nonMachinable=1 FIN
SI bRelais ALORS v1.generateLabelRequest.letter.parcel.pickupLocationId=ExtraitChaîne(sColissimo,3,"||") FIN
v1.generateLabelRequest.letter.sender.address.companyName="<NOM CLIENT>" v1.generateLabelRequest.letter.sender.address.line1="Magasin" v1.generateLabelRequest.letter.sender.address.line2="<ADRESSE CLIENT>" v1.generateLabelRequest.letter.sender.address.countryCode="FR" v1.generateLabelRequest.letter.sender.address.city="<VILLE CLIENT>" v1.generateLabelRequest.letter.sender.address.zipCode="<CP CLIENT>" finclient sFichierArchive = "ARCHIVECOLIS" v1.generateLabelRequest.letter.addressee.address.lastName=sNom v1.generateLabelRequest.letter.addressee.address.firstName=sPrenom SI sLine0 <> "" ALORS v1.generateLabelRequest.letter.addressee.address.line0=sLine0[[1 A 35]] FIN SI sLine1 <> "" ALORS v1.generateLabelRequest.letter.addressee.address.line1=sLine1[[1 A 35]] FIN SI sLine2 <> "" ALORS v1.generateLabelRequest.letter.addressee.address.line2=sLine2[[1 A 35]] FIN v1.generateLabelRequest.letter.addressee.address.countryCode=sCountryCode v1.generateLabelRequest.letter.addressee.address.city=sVille v1.generateLabelRequest.letter.addressee.address.zipCode=sCP SI bRelais ALORS v1.generateLabelRequest.letter.addressee.address.mobileNumber=Remplace(sNumeroDePortable,".","") FIN v1.generateLabelRequest.letter.addressee.address.email=sMail
sSuivi=LaPoste_Generepdf(v1,"C:\ETIQ_POSTE") SI sSuivi <>"0" ALORS archiver(sFichierArchive,sNomPrenom,sClient_Adresse,sCP,pPoid,pNumExpe,sSuivi,"FR",pBnc,sRegion,sSoColissimo,"",Vrai) FIN RENVOYER(sSuivi)
-- Cordialement, Camus |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 841 messages |
|
| Posté le 09 mars 2016 - 15:21 |
il manque les 2 slash au début de finclient c'est un commentaire donc remplacer par
v1.generateLabelRequest.letter.sender.address.companyName="<NOM CLIENT>" v1.generateLabelRequest.letter.sender.address.line1="Magasin" v1.generateLabelRequest.letter.sender.address.line2="<ADRESSE CLIENT>" v1.generateLabelRequest.letter.sender.address.countryCode="FR" v1.generateLabelRequest.letter.sender.address.city="<VILLE CLIENT>" v1.generateLabelRequest.letter.sender.address.zipCode="<CP CLIENT>"
-- Cordialement, Camus |
| |
| |
| | | |
|
| | |
| |
| Posté le 09 mars 2016 - 16:06 |
J'ai importé le webservice via l'outil soap de windev 16.
Voici mon code, en l'état il plante au niveau de la date, si je tape manuellement la date "20160309", je vais jusqu'à SOAPprepare et là j'ai une erreur sur generatelabel inconnu avec un argument.
etiquetteColissimo est un generateLabel etiquetteColissimo.generateLabelRequest.contractNumber="******" etiquetteColissimo.generateLabelRequest.password="******"
etiquetteColissimo.generateLabelRequest.outputFormat.x=3 etiquetteColissimo.generateLabelRequest.outputFormat.y=3 etiquetteColissimo.generateLabelRequest.outputFormat.outputPrintingType="PDF_10x15_300dpi"
etiquetteColissimo.generateLabelRequest.letter.service.productCode="DOS" etiquetteColissimo.generateLabelRequest.letter.service.depositDate=DateDuJour()[[1 A 4]]+"-"+DateDuJour()[[5 A 6]]+"-"+DateDuJour()[[7 A 8]] etiquetteColissimo.generateLabelRequest.letter.service.commercialName="TEST"
etiquetteColissimo.generateLabelRequest.letter.parcel.weight=5.2
etiquetteColissimo.generateLabelRequest.letter.sender.address.companyName="*****" etiquetteColissimo.generateLabelRequest.letter.sender.address.line1="******" etiquetteColissimo.generateLabelRequest.letter.sender.address.line2="*****" etiquetteColissimo.generateLabelRequest.letter.sender.address.countryCode="FR" etiquetteColissimo.generateLabelRequest.letter.sender.address.city="*****" etiquetteColissimo.generateLabelRequest.letter.sender.address.zipCode="*****"
etiquetteColissimo.generateLabelRequest.letter.addressee.address.lastName="*****" etiquetteColissimo.generateLabelRequest.letter.addressee.address.firstName="*****" etiquetteColissimo.generateLabelRequest.letter.addressee.address.line1="*****" etiquetteColissimo.generateLabelRequest.letter.addressee.address.line2="*****" etiquetteColissimo.generateLabelRequest.letter.addressee.address.countryCode="FR" etiquetteColissimo.generateLabelRequest.letter.addressee.address.city="*****" etiquetteColissimo.generateLabelRequest.letter.addressee.address.zipCode="*****"
byBuffer est un Buffer = SOAPPrepare(generateLabel,etiquetteColissimo) SOAPExécuteXML("https://ws.colissimo.fr/sls-ws/SlsServiceWS?wsdl", byBuffer) sXml est une chaîne=SOAPDonneRésultat(SOAPRésultatHTTP)
nIdMessage est un entier=XMLExtraitChaîne(XMLExtraitChaîne(sXml,"messages"),"id") sTexteMessage est une chaîne=XMLExtraitChaîne(XMLExtraitChaîne(sXml,"messages"),"messageContent") Info(sTexteMessage) |
| |
| |
| | | |
|
| | |
| |
| Posté le 12 mars 2016 - 03:51 |
| Pour moi, le problème venait du fait que j'utilisais windev 16, avec windev 19, ça fonctionne sans problème. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 841 messages |
|
| Posté le 13 mars 2016 - 10:51 |
Pour l'instant je suis a 20 je n'installe les nouvelles versions qu'a la première mise a jour donc demain
-- Cordialement, Camus |
| |
| |
| | | |
|
| | |
| |
| Posté le 15 mars 2016 - 18:43 |
Un grand merci !! rien à ajouter |
| |
| |
| | | |
|
| | |
| |
| Posté le 17 mars 2016 - 15:31 |
Bonjour,
je pensais bien m'en être sortie mais voilà que je suis bloquée pour l'impression automatique : je n'arrive pas à imprimer sur mon imprimante étiquettes sans qu'elle soit définie "imprimante par défaut"
L'imprimante par défaut doit rester l'imprimante A4 et je veux imprimer sur ma TSC les étiquettes. WinDev ne veut pas modifier temporairement cette imprimante :
scheminFichier est une chaîne = "C:\EtiqPoste\" sFichier est une chaîne = "eti_poste_temp.pdf" sImp est une chaîne = gsValParam("IMP_ZEBRAWEB",gnNumMag,gnNumPoste,"ZEBRA_WEB") iConfigure(sImp,Vrai) LanceAppliAssociée( scheminFichier+sFichier,"print") et malgré tout l'imprimante par défaut reste celle de Windows
impossible d'installer Sumatra sur les postes en exploitation car trop de postes
help ! |
| |
| |
| | | |
|
| | |
| |
| Posté le 17 mars 2016 - 16:24 |
Pour info mon problème d'impression semble résolu  pour ceux que ça peut intéresser : ImprimanteDéfaut est une chaîne = iInfoImprimante(Faux) //configure l'imprimante désirée, qui n'est pas celle par défaut bImpressionAuto est un booléen = Oui SI PAS iConfigure(sImp,Faux) ALORS bImpressionAuto = Faux SI EnModeTest() ALORS Info("Info de config de l'imprimante etiquette colis"+sImp) SINON Erreur("erreur de config de l'imprimante etiquette colis"+sImp) FIN FIN
ExeTermine("AcroRd32.exe") ExeTermine("Acrobat.exe") SI bImpressionAuto ALORS LanceAppliAssociée( sCheminFichier+sFichier,"print") SINON LanceAppliAssociée( sCheminFichier+sFichier) FIN //remet l'imprimante par défaut iConfigure(ImprimanteDéfaut,Faux) |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 841 messages |
|
| Posté le 17 mars 2016 - 17:02 |
Bonjour,
L'avantage de SumatraPDF.exe par rapport à acrobat c'est qu'on peut imprimer sur l'imprimante qu'on veut... ici sur une Datamax M-4206 Mark II
LanceAppli("sumatraPDF.exe -print-to ""Datamax M-4206 Mark II"" """+sDossier+"eti_poste_temp.pdf"" -exit-on-print")
-- Cordialement, Camus |
| |
| |
| | | |
|
| | |
| |
| Posté le 29 juillet 2016 - 14:45 |
Bonjour
merci pour vos reponses. j'arrive à generer une etiquette en pdf mais pas en DPL . ( d'après le service technique la poste sur datamax il vaut mieux utiliser du DPL) . j'ai egalement essayé d'imprimer du pdf sur la datamax mais rien ne sors meme avec SumatraPDF.exe
LanceAppli("sumatraPDF.exe -print-to ""Datamax-O'Neil E-Class MarkIII"" """+sDossier+"eti_poste_temp.pdf"" -exit-on-print")
Merci d'avance, |
| |
| |
| | | |
|
| | |
| |
| Posté le 13 avril 2018 - 09:54 |
Bonjour,
Voici mon code pour récupérer l'étiquette. (Ne fonctionne qu'avec un seul fichier attaché) je vais faire des tests avec un CN23
J'espère qu'il servira
Bon Dev !
//Préparation de la requète byBuffer est un Buffer = SOAPPrépare(generateLabel,MaDemande)
//Execution de la requète SOAPExécuteXML("https://ws.colissimo.fr/sls-ws/SlsServiceWS", byBuffer)
//Récupération du résultat sXml est un Buffer = SOAPDonneRésultat(SOAPRésultatXML)
sCIDPdf est un Buffer sParcel est un chaîne
//Récuperation du n° de colis sParcel=XMLExtraitChaîne(XMLExtraitChaîne(sXml,"labelResponse"),"parcelNumber")
//Récupération de la zone contenant le CID de la pièce jointe sCIDPdf=XMLExtraitChaîne(sXml,"label") // Exemple : sCIDPdf =
//Extraction du CID de la zone : sMoncid est une chaîne sMoncid = Milieu(sCIDPdf,Position(sCIDPdf,"href=""",0)+6,((Position(sCIDPdf,"""/>",0)-Position(sCIDPdf,"href=""",0))-6)) // Exemple : sMoncid = cid:be253c20-243f-4d8d-9ca1-d3bcb371d7c2-59131@cxf.apache.org
//On supprime le cid: sMoncid=Remplace(sMoncid,"cid:","")
//Extraction de la pièce jointe à partir de la position de fin du cid (+4 pour ne pas prendre les 2 rc) bufMonPdf est un Buffer= Milieu(sXml,Position(sXml,"Content-ID: <"+sMoncid+">",0)+Taille("Content-ID: <"+sMoncid+">")+4,Taille(sXml))
//Sauvegarde du pdf (numerodecolis.pdf) fSauveTexte("c:\monrep\"+sParcel+".pdf",bufMonPdf) |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|