FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Leer Archivo XML de respuesta de webServices SOAP en un ClientDataSet
Buenas Noches queridos amigos de este famoso foro hispanohablante club delphi, resulta que tengo implementado un webservices SOAP hecho en Delphi que se conecta a una bases de datos MySQL(en realidad MariaDB); al invocar unos de sus metodos publicados, el web Services me responde el siguiente mensaje en formato XML:
Código:
<DeudaList> <nro>1</nro> <fecha>29/05/2018</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>0.16</saldo> <nro>2</nro> <fecha>29/06/2018</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>0.66</saldo> <nro>3</nro> <fecha>29/07/2018</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>0.66</saldo> <nro>4</nro> <fecha>29/08/2018</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>641.66</saldo> <nro>5</nro> <fecha>29/09/2018</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>641.66</saldo> <nro>6</nro> <fecha>29/10/2018</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>641.66</saldo> <nro>7</nro> <fecha>29/11/2018</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>641.66</saldo> <nro>8</nro> <fecha>29/12/2018</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>641.66</saldo> <nro>9</nro> <fecha>29/01/2019</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>641.66</saldo> <nro>10</nro> <fecha>28/02/2019</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>641.66</saldo> <nro>11</nro> <fecha>29/03/2019</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>641.66</saldo> <nro>12</nro> <fecha>29/04/2019</fecha> <monto>641.74</monto> <idpp>1</idpp> <saldo>641.74</saldo> </DeudaList> Como sabran uds. , a la herramienta "XML Mapper" le pasamos el formato de archivo XML que recibimos y con esta herramientas mapeamos los campos y demas y generamos otro archivo con extension *.xdb , este archivo generado asignamos a la propiedad TransformRead.TransformationFile de la sigte. forma: Obviamente tambien se lo puede hacer en tiempo de diseño en el editor de propiedades, posteriormente he configurado tambien la propiedad "ProvideName" del ClientdataSet para que se enganche al XMLTransformProvider, todo funciona correctamente, con excepcion que en el DbGrid solo se muestra la primera fila de las muchas que deberia mostrarse; pienso que talvez mi problema está en como estoy haciendo la conversion usando la herramienta "XML Mapper"(es que la verdad primera vez que la uso ), he probado a generar el archivo *.xdb de muchas formas pero no logro hacer que funcione el muestreo de datos correctamente. Habrá un alma caritativa que me pueda hechar una mano con este asunto? Les quedaré agradecido de antemano. Saludos cordiales. PostData: Estoy Usando RadStudio XE 10.2 |
#2
|
||||
|
||||
Echa un vistazo al tutorial del compañero Neftali, seguramente encontrarás lo que buscas.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
Gracias Querido Camiro Notevi, le he hechado una buena leida al blog de Neftali, mas sin embargo, en ese tutorial, él esta usando JSON y no XML como formato de comunicacion entre el WebServices y los clientes, que tienen sus diferencias, ya habia pensado meterle los registro a mano al clientdataSet, pero me dije asi mismo Delphi debe tener un componente que haga esa cuestion, de ahí que me decanté por usar un XMLTransformProvider. En ultimo caso tendré no mas que recorrer el XML a mano e ir metiendo los datos a mano,aunque aun estoy dando mis pininos con Delphi en esta cuestion, si alguien me puede orientar le quedaré muy agradecido ya sea para solucionar el tema de la transformacion usando XMLTransformProvider, o recorrer a mano el xml he ir insertando al clientDataSet.
Saludos. |
#4
|
||||
|
||||
Pues se tratado varias veces por aquí, con ejemplos de código y todo, a ver si puedes encontrarlo, ¿has hecho alguna búsqueda por los foros?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
|||
|
|||
Muchas gracias por las respuestas Casimiro Notevi, les comparto como he solucionado el tema en cuestion:
He modificado la aplicacion del webServices en el servidor para que la respuesta XML tenga el siguiente formato: Código:
<DeudaList> <Registro> <nro>1</nro> <fecha>29/05/2018</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>0.16</saldo> </Registro> <Registro> <nro>2</nro> <fecha>29/06/2018</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>0.66</saldo> </Registro> <Registro> <nro>3</nro> <fecha>29/07/2018</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>0.66</saldo> </Registro> <Registro> <nro>4</nro> <fecha>29/08/2018</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>641.66</saldo> </Registro> <Registro> <nro>5</nro> <fecha>29/09/2018</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>641.66</saldo> </Registro> <Registro> <nro>6</nro> <fecha>29/10/2018</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>641.66</saldo> </Registro> <Registro> <nro>7</nro> <fecha>29/11/2018</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>641.66</saldo> </Registro> <Registro> <nro>8</nro> <fecha>29/12/2018</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>641.66</saldo> </Registro> <Registro> <nro>9</nro> <fecha>29/01/2019</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>641.66</saldo> </Registro> <Registro> <nro>10</nro> <fecha>28/02/2019</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>641.66</saldo> </Registro> <Registro> <nro>11</nro> <fecha>29/03/2019</fecha> <monto>641.66</monto> <idpp>1</idpp> <saldo>641.66</saldo> </Registro> <Registro> <nro>12</nro> <fecha>29/04/2019</fecha> <monto>641.74</monto> <idpp>1</idpp> <saldo>641.74</saldo> </Registro> </DeudaList> Saludos cordiales. |
#6
|
||||
|
||||
Gracias por compartir la solución.
Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Lentitud al leer ClientDataSet.ChangeCount / Delta | rcarrillom | Providers | 14 | 11-06-2014 20:21:16 |
WebServices HTTPRIO SOAP XmlBlackBox | ppb | Internet | 1 | 06-11-2012 18:55:04 |
Dudas sobre Webservices Soap y Indy | XaviQ | OOP | 6 | 30-03-2011 08:12:18 |
leer archivo log | Producto77 | Varios | 1 | 24-03-2009 17:48:21 |
Al guardar un clientDataSet en archivo no me mantiene los cambios | David | Conexión con bases de datos | 1 | 12-08-2008 15:15:07 |
|