Ver Mensaje Individual
  #18
Antiguo 11 de noviembre de 2021, 12:12
fastpho
El Foro es mi casa
Innovación: Por aportar innovaciones - Issue reason: SQLite + OO Cobol class Concurso: Primer puesto: Ganador/a del Primer puesto en un concurso - Issue reason: Acceso a datos Cobol vía web 
Última Actividad 21.08.2026 18:08
Posts Posts: 365
Likes enviados Enviados: 252
Likes recibidos Recibidos: 243

Hola @Joseg, te paso un ejemplo funcionando con tus datos ......
La respuesta del servidor es leida con chilkat xml
Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4. *----------------------------------------------------------------------
  5. * Variables para el Objeto WinHttpRequest
  6. *----------------------------------------------------------------------
  7.  01  HttpJob           pic x(128) value "WinHttp.WinHttpRequest.5.1".
  8.  01  WinHttpReq        usage object reference OLE.
  9. *> POST , GET , PUT
  10.  01  TipoEnvio         pic x(4) value "POST".
  11. * Verdero o falso dependiendo si la comunicacion es asyn -  sync
  12.  01 OLE-TRUE           PIC 1(1)  BIT VALUE B"1".
  13.  01 OLE-FALSE          PIC 1(1)  BIT VALUE B"0".
  14. *https:
  15.  01 ServerName         pic x(256) value "http://ec.europa.eu/taxation_customs/vies/services/checkVatService".
  16.  01 ReqHead1           pic x(256) value "Content-Type".
  17.  01 ReqHead2           pic x(256) value "application/soap+xml; charset=utf-8".
  18.  01 status-string      pic  x(256).
  19.  01 Respuesta          PIC  x(450).
  20.  01 xTraffic-Conditions.
  21.     03 xtr01   pic x(42) value "<?xml version=""1.0"" encoding=""UTF-8""?>".
  22.     03 xtr02   pic x(80) value "<SOAP-ENV:Envelope xmlns:SOAP-ENV=""http://schemas.xmlsoap.org/soap/envelope/"">".
  23.     03 xtr03   pic x(17) value "  <SOAP-ENV:Body>".
  24.     03 xtr04   pic x(86) value "    <tns1:checkVat xmlns:tns1=""urn:ec.europa.eu:taxud:vies:services:checkVat:types"">".
  25.     03 xtr05   pic x(24) value "      <tns1:countryCode>".
  26.     03 xtrPais pic X(02) VALUE "PT". *>IT
  27.     03 XTR05A  pic X(19) VALUE "</tns1:countryCode>".
  28.     03 xtr06   pic x(22) value "      <tns1:vatNumber>".  *> 03 XTRNIF  pic X(11) VALUE "07392740960".
  29.     03 XTRNIF  pic X(9) VALUE "510944299".
  30.     03 xtr06C  pic x(17) value "</tns1:vatNumber>". *> falta del ejemplo de RUI
  31.     03 xtr07   pic x(16) value "</tns1:checkVat>".
  32.     03 xtr08   pic x(18) value "  </SOAP-ENV:Body>".
  33.     03 xtr09   pic x(20) value "</SOAP-ENV:Envelope>".
  34.  01 Traffic-Conditions redefines xTraffic-Conditions pic x(374).
  35.  01 ReturnValue      pic s9(5) comp-5 VALUE ZEROS.    
  36.  
  37.  01 Campo-Valida     pic x(10).
  38.  01 Campo-Name       pic x(30).
  39.  01 Campo-Address    pic x(30).  
  40.  
  41.  PROCEDURE       DIVISION.
  42. *-----------------    
  43.  INICIO-Peticion.
  44. *-----------------------------
  45. * Crea el objeto WinHttpRequest      
  46.      invoke OLE "CREATE-OBJECT"   using HttpJob returning WinHttpReq.
  47. *------------------------------
  48. * Open la  HTTP request.
  49.      invoke WinHttpReq  "OPEN" using   TipoEnvio ,  ServerName , ole-true.
  50. *
  51.       invoke WinHttpReq "setRequestHeader" using ReqHead1 ReqHead2.
  52. *
  53. * ------------------------------    
  54. *  Envia HTTP request.
  55.      invoke WinHttpReq  "send" using Traffic-Conditions.
  56. *------------------------------    
  57. * Espera la respuesta completa
  58.      invoke WinHttpReq  "WaitForResponse" using  ole-true.
  59. *-------------------------------
  60.  
  61. *--------------------------------------------
  62. * Muestra Estado de comunicacion
  63.  
  64.      invoke WinHttpReq  "get-StatusText" returning status-string.
  65.      display "*---------------------------------*"
  66.      display "Respuesta Server: " , status-string
  67.  
  68.      
  69. * ---------------------------------------------------------------------------
  70.      invoke WinHttpReq "get-Responsetext" RETURNING Respuesta.
  71.      display "*-------xml de salida--------*"    
  72.      display Respuesta.
  73.      display "*-------fin de salida--------*".      
  74.    
  75. * ---------------------------------------------------------------------------
  76.  Leo-Xml. *>chilkat xml
  77.      INVOKE ChilkatXml1 "LoadXml" USING Respuesta RETURNING ReturnValue.
  78.       if ReturnValue not = 1 then
  79.            INVOKE pow-self "DisplayMessage" USING "error"
  80.            exit program
  81.       end-if.
  82.  
  83.      INVOKE ChilkatXml1 "TagContent" USING "valid"    RETURNING Campo-Valida.
  84.      INVOKE ChilkatXml1 "TagContent" USING "name"     RETURNING Campo-Name.
  85.      INVOKE ChilkatXml1 "TagContent" USING "address"  RETURNING Campo-Address.
  86.      display "valid : " , Campo-Valida.
  87.      display "name  : " , Campo-Name.
  88.      display "address:" , Campo-Address.
  89.      
  90.      
Saludos
Imágenes Adjuntas
 
fastpho is offline   Responder Con Cita