0

![]() |
![]() |
Administrador |
@Joseg, acabo de probar con https https://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl y funciona con SoapUI 2.5.1
¿Te han ayudado? NO TE OLVIDES de darle al botón
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
- Haciendo clic en el icono
al lado de su nick
- Haciendo clic en el editor al botón
y escribiendo su nick.
![]() |
![]() |
Senior |
Hola @Joseg, El problema esta en el dato de envio es invalido, estuve probando el ejemplo original de RUI , y le falta el cierre deagregando esta linea a la variable de envio Traffic-Conditions funciona bien ....XML Código:
</tns1:checkVat>
Me trajo los datos correctos
Saludos..
![]() |
![]() |
Administrador |
@fastpho, bien visto compañero
Yo utilicé el WSDL original con el SoapUI y será por eso que me funcionó.
Lo raro es que antes haya funcionado...
¿Te han ayudado? NO TE OLVIDES de darle al botón
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
- Haciendo clic en el icono
al lado de su nick
- Haciendo clic en el editor al botón
y escribiendo su nick.
![]() |
![]() |
Senior |
Não esta a faltar !!
Ver este código. Continua a não funcionar![]()
COBOL Código:
MOVE ZERO TO COUNTER. INSPECT XTRNIF TALLYING COUNTER FOR ALL SPACES. SUBTRACT COUNTER FROM 50 GIVING COUNTER. ADD 1 TO COUNTER. MOVE "</tns1:vatNumber>" TO XTRNIF(COUNTER:). INVOKE COM "CREATE-OBJECT" USING WINHTTP RETURNING WEBSERVICE
![]() |
![]() |
Administrador |
@Joseg, has probado con https?
¿Te han ayudado? NO TE OLVIDES de darle al botón
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
- Haciendo clic en el icono
al lado de su nick
- Haciendo clic en el editor al botón
y escribiendo su nick.
![]() |
![]() |
Senior |
Hola @Joseg, te paso un ejemplo funcionando con tus datos ......
La respuesta del servidor es leida con chilkat xml
SaludosCOBOL Código:
ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. *---------------------------------------------------------------------- * Variables para el Objeto WinHttpRequest *---------------------------------------------------------------------- 01 HttpJob pic x(128) value "WinHttp.WinHttpRequest.5.1". 01 WinHttpReq usage object reference OLE. *> POST , GET , PUT 01 TipoEnvio pic x(4) value "POST". * Verdero o falso dependiendo si la comunicacion es asyn - sync 01 OLE-TRUE PIC 1(1) BIT VALUE B"1". 01 OLE-FALSE PIC 1(1) BIT VALUE B"0". *https: 01 ServerName pic x(256) value "http://ec.europa.eu/taxation_customs/vies/services/checkVatService". 01 ReqHead1 pic x(256) value "Content-Type". 01 ReqHead2 pic x(256) value "application/soap+xml; charset=utf-8". 01 status-string pic x(256). 01 Respuesta PIC x(450). 01 xTraffic-Conditions. 03 xtr01 pic x(42) value "<?xml version=""1.0"" encoding=""UTF-8""?>". 03 xtr02 pic x(80) value "<SOAP-ENV:Envelope xmlns:SOAP-ENV=""http://schemas.xmlsoap.org/soap/envelope/"">". 03 xtr03 pic x(17) value " <SOAP-ENV:Body>". 03 xtr04 pic x(86) value " <tns1:checkVat xmlns:tns1=""urn:ec.europa.eu:taxud:vies:services:checkVat:types"">". 03 xtr05 pic x(24) value " <tns1:countryCode>". 03 xtrPais pic X(02) VALUE "PT". *>IT 03 XTR05A pic X(19) VALUE "</tns1:countryCode>". 03 xtr06 pic x(22) value " <tns1:vatNumber>". *> 03 XTRNIF pic X(11) VALUE "07392740960". 03 XTRNIF pic X(9) VALUE "510944299". 03 xtr06C pic x(17) value "</tns1:vatNumber>". *> falta del ejemplo de RUI 03 xtr07 pic x(16) value "</tns1:checkVat>". 03 xtr08 pic x(18) value " </SOAP-ENV:Body>". 03 xtr09 pic x(20) value "</SOAP-ENV:Envelope>". 01 Traffic-Conditions redefines xTraffic-Conditions pic x(374). 01 ReturnValue pic s9(5) comp-5 VALUE ZEROS. 01 Campo-Valida pic x(10). 01 Campo-Name pic x(30). 01 Campo-Address pic x(30). PROCEDURE DIVISION. *----------------- INICIO-Peticion. *----------------------------- * Crea el objeto WinHttpRequest invoke OLE "CREATE-OBJECT" using HttpJob returning WinHttpReq. *------------------------------ * Open la HTTP request. invoke WinHttpReq "OPEN" using TipoEnvio , ServerName , ole-true. * invoke WinHttpReq "setRequestHeader" using ReqHead1 ReqHead2. * * ------------------------------ * Envia HTTP request. invoke WinHttpReq "send" using Traffic-Conditions. *------------------------------ * Espera la respuesta completa invoke WinHttpReq "WaitForResponse" using ole-true. *------------------------------- *-------------------------------------------- * Muestra Estado de comunicacion invoke WinHttpReq "get-StatusText" returning status-string. display "*---------------------------------*" display "Respuesta Server: " , status-string * --------------------------------------------------------------------------- invoke WinHttpReq "get-Responsetext" RETURNING Respuesta. display "*-------xml de salida--------*" display Respuesta. display "*-------fin de salida--------*". * --------------------------------------------------------------------------- Leo-Xml. *>chilkat xml INVOKE ChilkatXml1 "LoadXml" USING Respuesta RETURNING ReturnValue. if ReturnValue not = 1 then INVOKE pow-self "DisplayMessage" USING "error" exit program end-if. INVOKE ChilkatXml1 "TagContent" USING "valid" RETURNING Campo-Valida. INVOKE ChilkatXml1 "TagContent" USING "name" RETURNING Campo-Name. INVOKE ChilkatXml1 "TagContent" USING "address" RETURNING Campo-Address. display "valid : " , Campo-Valida. display "name : " , Campo-Name. display "address:" , Campo-Address.
![]() |
![]() |
Senior |
@Joseg, revisando detenidamente el ejemplo de RUI , no me había dado cuenta
que inserta a la variable Traffic-Conditions , cuando el usuario ingresa el
valor del NIF con las siguientes lineasel problema que le veo al ejemplo es la peticion en las cabecerasCOBOL Código:
MOVE ZERO TO COUNTER. INSPECT XTRNIF TALLYING COUNTER FOR ALL SPACES. SUBTRACT COUNTER FROM 50 GIVING COUNTER. ADD 1 TO COUNTER. MOVE "</tns1:vatNumber>" TO XTRNIF(COUNTER:).
cambiando estas lineas :Por esta sola :COBOL Código:
INVOKE WEBSERVICE "setRequestHeader" USING OP6 OP4 . INVOKE WEBSERVICE "setRequestHeader" USING OP6 OP5 . INVOKE WEBSERVICE "setRequestHeader" USING OP6 OP4. Funciona perfectamenteCOBOL Código:
INVOKE WEBSERVICE "setRequestHeader" USING OP4 OP5 .
Saludos .....
![]() |
![]() |
Administrador |
@Joseg, he hecho pruebas (acabé instalando el Fujitsu).
Funciona en mi caso comentando las siguientes líneas:
COBOL Código:
*>INVOKE WEBSERVICE "setRequestHeader" USING OP6 OP4 . *>INVOKE WEBSERVICE "setRequestHeader" USING OP6 OP5 . *>INVOKE WEBSERVICE "setRequestHeader" using OP6 OP4 .
Este es mi código:
COBOL Código:
*> IDENTIFICATION DIVISION. PROGRAM-ID. TEST001. ENVIRONMENT DIVISION. CONFIGURATION SECTION. REPOSITORY. CLASS COM AS "*COM" CLASS COMEXCEPTION AS "*COM-EXCEPTION". DATA DIVISION. WORKING-STORAGE SECTION. 01 WINHTTP PIC X(128) VALUE "WinHttp.WinHttpRequest.5.1". 01 WSDL PIC X(256) VALUE "https://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl". 01 xTraffic-Conditions PIC X(384). *>01 Traffic-Conditions redefines xTraffic-Conditions pic x(386). 01 WEBSERVICE USAGE OBJECT REFERENCE COM. 01 OP1 PIC X(256) VALUE "POST". 01 OP2 PIC X(256) VALUE "http://ec.europa.eu/taxation_customs/vies/services/checkVatService/". 01 OP3 PIC X(256) VALUE "FALSE". * 01 OP4 PIC X(256) VALUE "Content-Type". 01 OP5 PIC X(256) VALUE "text/xml; charset=utf-8". 01 OP6 PIC X(256) VALUE "SOAPAction". 01 RESPOSTA PIC X(8192). 01 resultado1 PIC X(5). 01 resultado2 PIC X(5). *>01 long PIC 9(4) COMP-5. PROCEDURE DIVISION. MAIN SECTION. MAIN-00. STRING '<?xml version="1.0" encoding="UTF-8"?>' & X"0D0A" '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">' & X"0D0A" ' <SOAP-ENV:Body>' & X"0D0A" ' <tns1:checkVat xmlns:tns1="urn:ec.europa.eu:taxud:vies:services:checkVat:types">' & X"0D0A" ' <tns1:countryCode>ES</tns1:countryCode>' & X"0D0A" ' <tns1:vatNumber>B63272603</tns1:vatNumber>' & X"0D0A" ' </tns1:checkVat>' & X"0D0A" ' </SOAP-ENV:Body>' & X"0D0A" '</SOAP-ENV:Envelope>' & X"0D0A" * '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:ec.europa.eu:taxud:vies:services:checkVat:types">' & X"0D0A" * ' <soapenv:Header/>' & X"0D0A" * ' <soapenv:Body>' & X"0D0A" * ' <urn:checkVat>' & X"0D0A" * ' <urn:countryCode>ES</urn:countryCode>' & X"0D0A" * ' <urn:vatNumber>B63272603</urn:vatNumber>' & X"0D0A" * ' </urn:checkVat>' & X"0D0A" * ' </soapenv:Body>' & X"0D0A" * '</soapenv:Envelope>' & X"0D0A" DELIMITED BY SIZE INTO xTraffic-Conditions display xTraffic-Conditions display " " INVOKE COM "CREATE-OBJECT" USING WINHTTP RETURNING WEBSERVICE. * INVOKE WEBSERVICE "OPEN" USING op1 op2 op3. * *>INVOKE WEBSERVICE "setRequestHeader" USING OP6 OP4 . *>INVOKE WEBSERVICE "setRequestHeader" USING OP6 OP5 . *>INVOKE WEBSERVICE "setRequestHeader" using OP6 OP4 . * *>compute long = function stored-char-length(xTRAFFIC-CONDITIONS) *>display long INVOKE WEBSERVICE "send" USING xTRAFFIC-CONDITIONS * INVOKE WEBSERVICE "get-Responsetext" RETURNING RESPOSTA display RESPOSTA display " " unstring RESPOSTA delimited by "<valid>" into resultado1 resultado2 inspect resultado2 replacing all "<" by spaces display "RESULTADO: " resultado2 EXIT PROGRAM .
Resultado:
Código:<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <tns1:checkVat xmlns:tns1="urn:ec.europa.eu:taxud:vies:services:checkVat:types"> <tns1:countryCode>ES</tns1:countryCode> <tns1:vatNumber>B63272603</tns1:vatNumber> </tns1:checkVat> </SOAP-ENV:Body> </SOAP-ENV:Envelope> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><checkVatResponse xmlns="urn:ec.europa.eu:taxud:vies:services:checkVat:types"><countryCode>ES</countryCode><vatNumber>B63272603</vatNumber><requestDate>2021-11-11+01:00</requestDate><valid>true</valid><name>---</name><address>---</address></checkVatResponse></soap:Body></soap:Envelope> RESULTADO: true
¿Te han ayudado? NO TE OLVIDES de darle al botón
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
- Haciendo clic en el icono
al lado de su nick
- Haciendo clic en el editor al botón
y escribiendo su nick.
Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)