Depurar XML (quitar addendas previas y otros atributos)
Publicado: Mar Ene 18, 2011 12:31 pm
Mr DADO, buen día.
Continuo depurando mis XMLs.
Tengo unas dudas con el código de la addenda soriana, ojala tengas tiempo de contestarlas (ojala sean utiles para muchos más).
Si usando mi aplicacion se inserta la addenda a un documento y luego alguien la añade de nuevo (por error) porque no se fijo o como fuera (ya me paso esto a mi).
Voy a usar el RFC del receptor para permitir o negar añadir la addenda "x" en este caso soriana.
Gracias a tu consejo logre depurar el XML con:
Me pregunto si:
Digamos por ejemplo que si quiero quitar en las retenciones lo siguiente:
y dejarlo asi (esto si lo acepto soriana):
¿Esto podria ser quizas así?:
(caray, ahora pregunte y no probe la idea del codigo, disculpa).
Claro, al final debo de re-sellar el XML.
Si, es un gran lio... jeje
Ya me estoy tardando en desarrollar un connector propio a SQL Server (usando vistas).
Continuo depurando mis XMLs.
Tengo unas dudas con el código de la addenda soriana, ojala tengas tiempo de contestarlas (ojala sean utiles para muchos más).
Si usando mi aplicacion se inserta la addenda a un documento y luego alguien la añade de nuevo (por error) porque no se fijo o como fuera (ya me paso esto a mi).
- ¿Como puedo hacer que al añadir la addenda quite todas las addendas previamente registradas? (se esta insertando la addenda cada vez).
Voy a usar el RFC del receptor para permitir o negar añadir la addenda "x" en este caso soriana.
- ¿Ademas del RFC del receptor, que otra cosa puedo usar para determinar cual addenda tiene el XML?
- Si puedo detectar que el XML trae addenda ¿Puedo determinar cual es (soriana, femsa, etc)?
Código: Seleccionar todo
Cargar XML
IF ExisteAddendaX //revisa todo tipo de addendas
BEGIN
Desactiva_Añadir_Addenda;
Activa_Borrar_Addenda;
END
ELSE BEGIN
Activa_Añadir_Addenda;
Desactiva_Borrar_Addenda;
END
Código: Seleccionar todo
FacturaEForm.CFD.SetAttribute('xmlns:basura',null);
FacturaEForm.CFD.SetAttribute('xsi:schemaLocation','http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd');
- Existe algun glosario que me puedas proporcionar para poder hacer lo mismo con otros atributos que estan quedando como basura y me empiezan a ocasionar problemas?.
Digamos por ejemplo que si quiero quitar en las retenciones lo siguiente:
Código: Seleccionar todo
<Impuestos>
<Retenciones>
<Retencion importe="0.0" impuesto="ISR"/>
<Retencion importe="0.0" impuesto="IVA"/>
</Retenciones>
<Traslados>
<Traslado importe="0.00000" impuesto="IVA" tasa="0.0"/>
</Traslados>
</Impuestos>
Código: Seleccionar todo
<Impuestos>
<Retenciones>
<Retencion importe="0.0" impuesto="IVA"/>
</Retenciones>
<Traslados>
<Traslado importe="0.00000" impuesto="IVA" tasa="0.0"/>
</Traslados>
</Impuestos>
Código: Seleccionar todo
FacturaEForm.CFD.SetAttribute('Retenciones',null);
FacturaEForm.CFD.SetAttribute('Retenciones','Retencion importe="0.0" impuesto="IVA"');
Claro, al final debo de re-sellar el XML.
Si, es un gran lio... jeje
Ya me estoy tardando en desarrollar un connector propio a SQL Server (usando vistas).