*>
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
.