Quoi, tu ne connais pas PB ? Va falloir parcourir tout le forum alors !

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 02-10-2012 11:29:52

bewan  
Membre
Date d'inscription: 15-03-2012
Messages: 17
Pépites: 86
Banque: 0

[RESOLU] Problème utilisation du webservice CHECKVAT

Bonjour à tous,

J'essaye de contrôler un numéro de TVA en utilisant le webservice CHECKVAT mais je reçois une erreur , j'ai beau contrôler mon code et chercher sur le NET je n'arrive pas à trouver la cause de cette erreur, avez-vous une idée ?
Pour info j'utilise Powerbuilder version 9.0.3 Build 8784 sur windows 7

http://www.pclapcounter.be/Forum_data/Checkvat/checkvat_erreur.jpg

Voici le code powerbuilder:

Code: pb

// WebService
SoapConnection lsoap_conn
checkvatport lws_vat
//
long    ll_retval
String  ls_errmsg
//Instantiate SOAP connection
lws_vat = create checkvatport
lsoap_conn = create SoapConnection
// Set trace file to record soap interchange data,
ll_retval = lsoap_conn.SetOptions('SoapLog=' + '"C:\TMP\mySoapLog.log"')
ll_retval = lsoap_conn.CreateInstance(lws_vat,"checkvatport")
if ll_retval <> 0 then
     ls_errmsg = "Unable to create proxy.  " + &
                 "Error Code: " + String(ll_retval)
     MessageBox("WS","Soap Create instance: "+ls_errmsg)
  DESTROY lsoap_conn
  DESTROY lws_vat
  Return -1
end if
// Appel fonction du webservice
String  ls_id_pays,ls_id_tva
Date    ld_today
Boolean  lb_ok
String  ls_nom
String  ls_retval
ls_id_pays  = 'BE'
ls_id_tva   = '0880778905'
ld_today = Today()
try
  ls_retval = lws_vat.checkvat(ls_id_pays,ls_id_tva, ld_today, lb_ok, ls_nom)
   if lb_ok then MessageBox("Checkvat","vat Ok") else MessageBox("WS","vat pas ok")
  MessageBox("CheckVat",ls_nom)
catch ( SoapException e )
   MessageBox("Checkvat",ls_retval+" Login: Soap Exception, Cannot invoke Web Service: " + e.text)
end try

if isvalid(lsoap_conn) then DESTROY lsoap_conn
if isvalid(lws_vat) then DESTROY lws_vat
Return 1
  


un print screen de mon projet:
http://www.pclapcounter.be/Forum_data/Checkvat/checkvat.jpg

Et voici le contenu du fichier MySoapLog.log:

CLOSED
REQUEST:
CLOSED
POST /taxation_customs/vies/services/checkVatService HTTP/1.1
Host: ec.europa.eu
Connection: Keep-Alive
User-Agent: EasySoap++/0.6
Content-Type: text/xml; charset=utf-8
SOAPAction: "urn:ec.europa.eu:taxud:vies:services:checkVat#checkVat"
Content-Length: 654

<E:Envelope
    xmlns:E="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:A="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:s="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:y="http://www.w3.org/2001/XMLSchema"
    E:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<E:Body>
<m:checkVat
    xmlns:m="urn:ec.europa.eu:taxud:vies:services:checkVat:types">
<ns1:countryCode
    xmlns:ns1="urn:ec.europa.eu:taxud:vies:services:checkVat"
    s:type="y:string">BE</ns1:countryCode>
<ns2:vatNumber
    xmlns:ns2="urn:ec.europa.eu:taxud:vies:services:checkVat"
    s:type="y:string">0880778905</ns2:vatNumber>
</m:checkVat>
</E:Body>
</E:Envelope>


RESPONSE:
HTTP/1.1 500 Internal Server Error
Date: Tue, 02 Oct 2012 10:29:25 GMT
Content-Type: text/xml; charset=UTF-8
Server: Europa
Transfer-Encoding: chunked
Connection: Keep-Alive

01d7
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode>soap:Client</faultcode><faultstring>Unmarshalling Error: unexpected element (uri:"urn:ec.europa.eu:taxud:vies:services:checkVat", local:"countryCode"). Expected elements are &lt;{urn:ec.europa.eu:taxud:vies:services:checkVat:types}vatNumber>,&lt;{urn:ec.europa.eu:taxud:vies:services:checkVat:types}countryCode> </faultstring></soap:Fault></soap:Body></soap:Envelope>
0000


Transfer is Chunked!

GetChunkLength: 01d7 = 471
Connection Disconnected


D'avance merci pour votre aide

Dernière modification par bewan (04-10-2012 08:07:36)

Hors ligne

 

#2 02-10-2012 12:58:26

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 720
Pépites: 11,343
Banque: 100,221,387,868,884,300
Site web

Re: [RESOLU] Problème utilisation du webservice CHECKVAT

Bonjour,

Il semblerait que ton proxy PB soit mal généré et je sais pas si c'est possible de le "corriger", le namespace des tags countryCode et vatNumber ne sont pas correcte.
J'ai rencontré exactement le même problème il y a quelque temps sur ce même webservice (lorsqu'il à changé de spécification notamment)

Un rapide test pour montrer que çà fonctionne :

Code: pbperl

pbperl115 -MSOAP::Lite -e "$s=SOAP::Lite->uri('urn:ec.europa.eu:taxud:vies:services:checkVat:types')->proxy('http://ec.europa.eu/taxation_customs/vies/services/checkVatService', timeout => 5 ); $som=$s->checkVat(SOAP::Data->name('countryCode' => 'BE'), SOAP::Data->name('vatNumber' => '0880778905') ); print join $/, $som->result,$som->paramsout"


ce qui génère l’enveloppe suivante pour la requête :

Code: xml

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <checkVat xmlns="urn:ec.europa.eu:taxud:vies:services:checkVat:types">
      <countryCode xsi:type="xsd:string">BE</countryCode>
      <vatNumber xsi:type="xsd:string">0880778905</vatNumber>
    </checkVat>
  </soap:Body>
</soap:Envelope>


Le résultat étant :

Code:

BE
0880778905
2012-10-02+02:00
true
M LANGENAKENS GUY
RUE DE THORICOURT 2
7850  ENGHIEN1

J’espère que ça peux te donner une piste...


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#3 02-10-2012 13:18:10

rincevent  
Modérateur
Award: bf
Lieu: Belgique
Date d'inscription: 06-02-2007
Messages: 722
Pépites: 100,002,023
Banque: 0

Re: [RESOLU] Problème utilisation du webservice CHECKVAT

Puissant le Perl


http://img114.imageshack.us/img114/8519/userbar175801nb.gif
Pourquoi ne puis-je vivre comme n'importe quel être humain ? Pourquoi mon destin est-il de ne pouvoir cesser de me battre ?

Hors ligne

 

#4 02-10-2012 15:12:04

bewan  
Membre
Date d'inscription: 15-03-2012
Messages: 17
Pépites: 86
Banque: 0

Re: [RESOLU] Problème utilisation du webservice CHECKVAT

Merci , c'est une très bonne piste , je vais voir ce qu'on peut faire en PB

Hors ligne

 

#5 04-10-2012 08:06:25

bewan  
Membre
Date d'inscription: 15-03-2012
Messages: 17
Pépites: 86
Banque: 0

Re: [RESOLU] Problème utilisation du webservice CHECKVAT

Houra , j'ai enfin réussi à utiliser ce webservice grace à la piste donnée par xlat .
La solution est tirée par les cheveux mais ca fonctionne:
- en powerbuilder il faut exporter l'objet checkvatport
- Editer le fichier checkvatport.srx et changer:
   - BindingStyle = "document" par BindingStyle = "rpc"
   - address@urn:ec.europa.eu:taxud:vies:services:checkVat*checkVat*urn:ec.europa.eu:taxud:vies:services:checkVat:types
     par
     address@urn:ec.europa.eu:taxud:vies:services:checkVat:types*checkVat*urn:ec.europa.eu:taxud:vies:services:checkVat:types
- Importer le fichier checkvatport.srx en powerbuilder
- Fin

Après cette modif , quand on fait un appel du webservice le fichier Mysoaplog contient maintenant ceci:

CLOSED


REQUEST:
CLOSED
POST /taxation_customs/vies/services/checkVatService HTTP/1.1
Host: ec.europa.eu
Connection: Keep-Alive
User-Agent: EasySoap++/0.6
Content-Type: text/xml; charset=utf-8
SOAPAction: "urn:ec.europa.eu:taxud:vies:services:checkVat:types#checkVat"
Content-Length: 527

<E:Envelope
    xmlns:E="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:A="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:s="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:y="http://www.w3.org/2001/XMLSchema"
    E:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<E:Body>
<m:checkVat
    xmlns:m="urn:ec.europa.eu:taxud:vies:services:checkVat:types">
<m:countryCode
    s:type="y:string">IT</m:countryCode>
<m:vatNumber
    s:type="y:string">06601831008</m:vatNumber>
</m:checkVat>
</E:Body>
</E:Envelope>


RESPONSE:
HTTP/1.1 200 OK
Date: Thu, 04 Oct 2012 07:55:42 GMT
Content-Type: text/xml; charset=UTF-8
Server: Europa
Transfer-Encoding: chunked
Connection: Keep-Alive

01a5
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><checkVatResponse xmlns="urn:ec.europa.eu:taxud:vies:services:checkVat:types"><countryCode>IT</countryCode><vatNumber>06601831008</vatNumber><requestDate>2012-10-04+02:00</requestDate><valid>true</valid><name>ACI GLOBAL SPA</name><address>VIA STANISLAO CANNIZZARO 83/A
00156 ROMA RM</address></checkVatResponse></soap:Body></soap:Envelope>
0000


Transfer is Chunked!

GetChunkLength: 01a5 = 421
Connection Disconnected

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22