Ver Mensaje Individual
  #1  
Antiguo 05-06-2018
Matias_ Matias_ is offline
Miembro
NULL
 
Registrado: abr 2018
Posts: 11
Reputación: 0
Matias_ Va por buen camino
Thumbs up 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 se puede apreciar en el archivo xml, se pueden distinguir 5 campos para mostrarlos en el DBGrid enganchado al clientDataset que tengo, he utilizado la herramienta "XML Mapper" del IDE de Delphi (Rad Studio>Tools>XML Mapper), para mapear y poder hacer la conversion al formato DataPacket y asi lograr que el cliendataset lea la informacion correctamente usando un componente XMLTransformProvider, pero por alguna razon solo me muestra una y solo una sola fila de la respuesta que se recibe.
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:
Código Delphi [-]
XMLTransformProvider1.TransformRead.TransformationFile:= 'RUTA\MiArchivo.xtr';
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
Responder Con Cita