Imagen

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.


CARTA PORTE V3.1

ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03


.

Depurar XML ya generado y sellado.

Para los que programamos en Delphi, aqui estan las respuestas
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
Cerrado
s3cr3to
Mensajes: 502
Registrado: Mar Dic 28, 2010 1:12 pm

Depurar XML ya generado y sellado.

Mensaje por s3cr3to »

Buen día DADO.

Estoy analizando el código de la addenda para Soriana, ya he logrado añadirla y enviarla al servidor de prueba. (Todavia es un borrador mi aplicación y esta 99% basada en tu codigo fuente).

Ahora bien, al proveedor al que le compramos el generador de CFDs ha vuelto a meter las p@titas y debido al pendiente que tiene con nosotros de añadir las addendas, metio una corrección que le deja basura a todos mis CFDs (incluso si no necesitan addenda) en el area del schema:

Código: Seleccionar todo

version="2.0"
    xmlns="http://www.sat.gob.mx/cfd/2"
    xmlns:basurita="http://basurita"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd http://www.basurita.com/cfd http://www.basurita.com.mx/cfd/basurita.xsd">
Debido a esto, despues de añadir la addenda (soriana), tengo que abrir el XML y borrar la basura que esta en xmlns. Pero yo quiero que el usuario que va a añadir la addenda no tenga que meterse con el archivo xml manualmente (imaginate el daño!). Total estoy esperando que me corrijan la aplicacion, pero ya se estan tardando dias con algo tan simple y tengo cientos de documentos en espera de ser generados.

Total, mi intencion es limpiar la referencia del schema, y no logro determinar que usar, a como veo el codigo, una vez generado el CFD ya es de solo lectura y no puedo "tocar" nada extra excepto la addenda... (ojala este equivocado).

Intente atacando a los memos (aunque sospecho debo usar el CFD u otra variable en FacturaE), y usando la funcion ReemplazaCad. Pero en un caso me deja dos espacios que no se que son (¿fin de linea?), y en otro caso no lo reemplaza. Reemplazo en el memo con lo siguiente, pero me deja dos espacios que no logro determinar que son (sospecho son fin de linea):

Código: Seleccionar todo

Memo7.Lines.Text:= RemplazaCad( '', ' http://www.basura.com/cfd http://www.basura.com.mx/cfd/basura.xsd', Memo7.Lines.Text);
Este otro no encuentra la cadena, ahi es donde sospecho que son "Enters" or LF o algo:

Código: Seleccionar todo

Memo7.Lines.Text:= RemplazaCad('xmlns="http://www.sat.gob.mx/cfd/2"','xmlns="http://www.sat.gob.mx/cfd/2" xmlns:basura="http://www.basura.com/cfd"', Memo7.Lines.Text);
Quizas estoy atacando mal el problema, pues estoy un Memo en pantalla (con el texto del xml leído), cuando sospecho que debo trabajar directamente con el CFD. ¿Como puedo desde el codigo reemplazar en el CFD esa parte que esta mal conformada? quitando la basura que menciono arriba con lo que el SAT pide:

Código: Seleccionar todo

version="2.0"
    xmlns="http://www.sat.gob.mx/cfd/2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd">
¿En el código fuente habrá algo equivalente a?:

Código: Seleccionar todo

CFD.Set_xmlns('xmlns="http://www.sat.gob.mx/cfd/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd"')
Cuando intento esto:

Código: Seleccionar todo

FacturaEForm.CFD.SetAttribute('xmlns:xsi','http://www.w3.org/2001/XMLSchema-instance');
FacturaEForm.CFD.SetAttribute('xsi:schemaLocation','http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd');
surge este mensaje de error en la aplicación:

Código: Seleccionar todo

Attempt to modify a read-only node.
Tampoco puedo asignarlo directamente (es de solo lectura):

Código: Seleccionar todo

FacturaEForm.XMLDoc.SchemaRef:= 'xmlns="http://www.sat.gob.mx/cfd/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd';
Saludos cordiales y gracias por la ayuda que me puedan proporcionar.

S
Avatar de Usuario
Dado
Mensajes: 15980
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Depurar XML ya generado y sellado.

Mensaje por Dado »

s3cr3to escribió:Buen día DADO.
S

Santo desm.... batman! je je je

Cada idea que se me ocurria ya la haz probado, deja "le muevo" un poco por aca y ver si puedo encontar una respuesta.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
Avatar de Usuario
Dado
Mensajes: 15980
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Depurar XML ya generado y sellado.

Mensaje por Dado »

Listo.

Debes usar

Código: Seleccionar todo

CFD.SetAttribute('xmlns:basurita',null);
CFD.SetAttribute('xsi:schemaLocation','http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd');
El error de "solo lectura" te lo marcaba en el atributo "xmlns:xsi" pero el "xsi:schemalocation" si lo puedes leer y escribir.

Saludos,
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
s3cr3to
Mensajes: 502
Registrado: Mar Dic 28, 2010 1:12 pm

Gracias!!!

Mensaje por s3cr3to »

Mr DADO...

Me dejaste con los ojos cuadrados. Solución sencilla, eficiente y wow!

GRACIAS!
s3cr3to
Mensajes: 502
Registrado: Mar Dic 28, 2010 1:12 pm

¿necesito anexar algo para que el SAT acepta la estructura?

Mensaje por s3cr3to »

Algo que olvide mencionar,

Ya anexo la addenda y le quito la basurita de mi proveedor.
Pero ahora el validador del SAT escupio algo nuevo:
Estructura :
Declaración del namespace de la addenda incorrecto
¿Necesito añadir algo parecido a lo que quite de la basurita, como?:

Código: Seleccionar todo

CFD.SetAttribute('xmlns:PaSoriana','http://algo.que.indique.que.es.addenda.de.soriana');
Si es asi, ¿tendras el dato o un ejemplo para contentar al validador del SAT? (lo estoy buscando pero nomas no lo encuentro.

Saludos y gracias por ayudarnos con tanta duda.

S
Actualización
DADO, este post tuyo
http://www.validacfd.com/phpbb3/viewtop ... =372#p3294.
No debes preocuparte, recuerda que la addenda no tiene valor fiscal. Lo que sucede es que los sistemas de validacion comparan tu XML contra un esquema pero cuando encuantran algo raro (addenda) luego luego repelan, pero no es importante este error.
Responde mi duda respecto al mensaje de estructura.

Saludos
Cerrado