Luis Alberto,
Es porque en el último While estás usando ReadType, con lo cual se saltea los cambios de DetGuia hasta consumir todo el documento.
Probalo de esta forma:
do while &ArchivoXML.eof <> 1
Do While &ArchivoXML.ReadType(1, 'DATOS') <> 0
do while &ArchivoXML.ReadType(1, 'guias') <> 0
do while &ArchivoXML.ReadType(1, 'DetGuias') <> 0
Do While &ArchivoXML.ReadType(1) <> 0
Do Case
Case &ArchivoXML.Name = 'SuCCodigo'
&SuCCodigoDat = &ArchivoXML.Value.ToNumeric()
Case &ArchivoXML.Name = 'GxSSerie'
&GxSSerie = &ArchivoXML.Value.Trim()
Case &ArchivoXML.Name = 'GxSNumFis'
&GxSNumFis = &ArchivoXML.Value.ToNumeric()
Case &ArchivoXML.Name = 'DetalleIndividual'
&ArchivoXML.ReadType(1, 'GSDNumBul')
&GSDNumBul = &ArchivoXML.Value.ToNumeric()
&ArchivoXML.ReadType(1, 'GSDPrecio')
&GSDPrecio = &ArchivoXML.Value.ToNumeric()
&ArchivoXML.ReadType(&ArchivoXML.EndTagType, 'DetalleIndividual')
EndCase
EndDo
enddo
enddo
enddo
enddo
Saludos,
Pablo Moleri
Es porque en el último While estás usando ReadType, con lo cual se saltea los cambios de DetGuia hasta consumir todo el documento.
Probalo de esta forma:
do while &ArchivoXML.eof <> 1
Do While &ArchivoXML.ReadType(1, 'DATOS') <> 0
do while &ArchivoXML.ReadType(1, 'guias') <> 0
do while &ArchivoXML.ReadType(1, 'DetGuias') <> 0
Do While &ArchivoXML.ReadType(1) <> 0
Do Case
Case &ArchivoXML.Name = 'SuCCodigo'
&SuCCodigoDat = &ArchivoXML.Value.ToNumeric()
Case &ArchivoXML.Name = 'GxSSerie'
&GxSSerie = &ArchivoXML.Value.Trim()
Case &ArchivoXML.Name = 'GxSNumFis'
&GxSNumFis = &ArchivoXML.Value.ToNumeric()
Case &ArchivoXML.Name = 'DetalleIndividual'
&ArchivoXML.ReadType(1, 'GSDNumBul')
&GSDNumBul = &ArchivoXML.Value.ToNumeric()
&ArchivoXML.ReadType(1, 'GSDPrecio')
&GSDPrecio = &ArchivoXML.Value.ToNumeric()
&ArchivoXML.ReadType(&ArchivoXML.EndTagType, 'DetalleIndividual')
EndCase
EndDo
enddo
enddo
enddo
enddo
Saludos,
Pablo Moleri
From: "Luis Alberto Sangacha V." <luis_sangacha@outlook.com>
To: "Genexus Programacion" <gx-l@gxtech.com.uy>, "Foro GX Genexus" <vfp-l@gxtech.com.uy>
Sent: Miércoles, 26 de Diciembre 2012 11:22:41
Subject: [gx-l] Enviar Datos por XML
Que tal, deseándoles unas lindas navidades y de paso un lindo fin de año para todos, espero alguien me pueda dar una guía en un problema que tengo:
Necesito pasar los datos de las guías de una sucursal a otra y quiero usar un archivo XML, he podido Generar el archivo pero la lectura del mismo es el que me da problemas y no logro ver la solución, la estructura y el problema es el siguiente:
To: "Genexus Programacion" <gx-l@gxtech.com.uy>, "Foro GX Genexus" <vfp-l@gxtech.com.uy>
Sent: Miércoles, 26 de Diciembre 2012 11:22:41
Subject: [gx-l] Enviar Datos por XML
Que tal, deseándoles unas lindas navidades y de paso un lindo fin de año para todos, espero alguien me pueda dar una guía en un problema que tengo:
Necesito pasar los datos de las guías de una sucursal a otra y quiero usar un archivo XML, he podido Generar el archivo pero la lectura del mismo es el que me da problemas y no logro ver la solución, la estructura y el problema es el siguiente:
<?xml version="1.0" encoding="ISO-8859-1"?>
<DATOS>
<Anio>2012</Anio>
<Mes>01</Mes>
<guias>
<DetGuias>
<GxSSecuen>2209</GxSSecuen>
<SuCCodigo>2</SuCCodigo>
<GxSSerie>002</GxSSerie>
<GxSNumFis>8069</GxSNumFis>
<GxSRemCiuT>QUITO</GxSRemCiuT>
<DetalleIndividual>
<GSDNumBul>7</GSDNumBul>
<GSDPrecio>0.8</GSDPrecio>
<GSDParcial>5.6</GSDParcial>
<GSDConten>CAJAS</GSDConten>
</DetalleIndividual>
<DetalleIndividual>
<GSDNumBul>1</GSDNumBul>
<GSDPrecio>1.2</GSDPrecio>
<GSDParcial>5.00</GSDParcial>
<GSDConten>VIDRIOS</GSDConten>
</DetalleIndividual>
</DetGuias>
<DetGuias>
<GxSSecuen>2209</GxSSecuen>
<SuCCodigo>2</SuCCodigo>
<GxSSerie>002</GxSSerie>
<GxSNumFis>666</GxSNumFis>
<GxSRemCiuT>QUITO</GxSRemCiuT>
<DetalleIndividual> <GSDNumBul>7</GSDNumBul>
<GSDPrecio>0.7</GSDPrecio>
<GSDParcial>5.5</GSDParcial>
<GSDConten>MALETAS</GSDConten>
</DetalleIndividual>
</DetGuias>
</guias>
</DATOS>
El problema esta al querer leer el DetalleIndividual, éste me lee todos sin tomar en cuenta la cabecera, mi proceso de lectura es el siguiente:
do while &ArchivoXML.eof <> 1
Do While &ArchivoXML.ReadType(1, 'DATOS') <> 0
do while &ArchivoXML.ReadType(1, 'guias') <> 0
do while &ArchivoXML.ReadType(1, 'DetGuias') <> 0
&SuCCodigoDat = &ArchivoXML.Value.ToNumeric()
&GxSSerie = &ArchivoXML.Value.Trim()
&GxSNumFis = &ArchivoXML.Value.ToNumeric()
Do while &ArchivoXML.ReadType(1, 'DetalleIndividual') <> 0
&GSDNumBul = &ArchivoXML.Value.ToNumeric()
&GSDPrecio = &ArchivoXML.Value.ToNumeric()
EndDo
enddo
enddo
enddo
enddo
Alguien que por favor me diga que hago mal o que si tienen un ejemplo de envío de transacciones cabecera detalles.
Les agradezco de forma anticipada
0 Response to "Re: [gx-l] Enviar Datos por XML"
Publicar un comentario