
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
.
AYUDA: XmlSerializer bastante lento. VB/C#
-
- Mensajes: 67
- Registrado: Jue Mar 23, 2017 11:49 pm
Re: AYUDA: XmlSerializer bastante lento. VB/C#
Hola Martin.
No soy experto en programación VB ni en VB.net pero tengo mi parte del código que si funsióna y utilizo visual estudio 2010 y 2012.
Los namespace los tengo referenciados al SAT no son locales y tarda mili segundos en crear el XML.
Y es importante recalcar que el código que utilizo también lo encontré aquí.
Dime si le echamos montón y hacemos fusionar tu código.
Un saludos a los miembros de este foro.
me quito el sombrero.
No soy experto en programación VB ni en VB.net pero tengo mi parte del código que si funsióna y utilizo visual estudio 2010 y 2012.
Los namespace los tengo referenciados al SAT no son locales y tarda mili segundos en crear el XML.
Y es importante recalcar que el código que utilizo también lo encontré aquí.
Dime si le echamos montón y hacemos fusionar tu código.
Un saludos a los miembros de este foro.
me quito el sombrero.
-
- Mensajes: 502
- Registrado: Mar Dic 28, 2010 1:12 pm
Re: AYUDA: XmlSerializer bastante lento. VB/C#
Nota adicional. Si tienes falla en los DNS de tu Internet, esto afecta la velocidad de resolución de los url y para que te cuento.
Cuando corras tu aplicación usa este comando (como administrador) para que veas a donde se conecta tu programa, ejemplo:
Aquí se observa a donde se está conectando java. Cuando veas que ya no se conecta al sat resolviste tu problema.
Cuando corras tu aplicación usa este comando (como administrador) para que veas a donde se conecta tu programa, ejemplo:
Código: Seleccionar todo
>netstat -bf
Conexiones activas
Proto Dirección local Dirección remota Estado
[javaw.exe]
TCP 192.168.1.88:48355 ssss.aaaa.lan:ms-sql-s ESTABLISHED
[javaw.exe]
TCP 192.168.1.88:48370 a123-12-0-234.deploy.static.akamaitechblahblah.com:http ESTABLISHED
-
- Mensajes: 502
- Registrado: Mar Dic 28, 2010 1:12 pm
Re: AYUDA: XmlSerializer bastante lento. VB/C#
Tip adicional, solo si realmente estas urgido y aún no resuelves lo anterior.
Con este truco con el logré acelerar el proceso (no en milisegundos pero si en pocos segundos), más o menos recuerdo que aproveche que tenemos una intranet (IIS) ahí recree un minisitio con las rutas de los urls + archivos usados por la definición del cfdi y añadí en el archivo "hosts" una referencia que en windows 8.1 64bits seria:
El archivo "hosts" está protegido por windows y solo como administrador puedes editarlo.
Si bien, esto acelero la creación del cfdi en su momento genera situaciones adicionales:
1) Debes estar al pendiente y actualizar periódicamente los archivos del fake-sitio
2) Con este truco la PC dejará de acceder al verdadero sitio del sat, en mi caso, como la PC está exclusivamente dedicada a generar cfds me sirvió sin problema hasta que se resolvió la situación.
Y con esto el programa generó en segundos y no en minutos como nos ocurrió en aquella ocasión.
* Y también se puede instalar el minisitio usando un servidor web local con nginx o apache.
Son al menos unas 2 a 3 horas para implementar este solución temporal que al final es muy útil para muchos casos semejantes: cuando hay sitios que desaparecen por completo y tienes alguna aplicación necesita descargar algún viejo certificado o librería (me estas leyendo mugre idse.imss?)
***
Con esto voy a poder generar de las unidades en Delphi, las cuales Delphi no puede generar debido al cochino error que satan se niega a corregir en el xsd de Pagos10/catPagos:
Entonces hago un fakesitio, le digo al host donde está y Delphi bien contento podrá hacer uso de un catPagos.xsd "corregido a la Mexicana". ¿o como le hiciste tú DADO?
Con este truco con el logré acelerar el proceso (no en milisegundos pero si en pocos segundos), más o menos recuerdo que aproveche que tenemos una intranet (IIS) ahí recree un minisitio con las rutas de los urls + archivos usados por la definición del cfdi y añadí en el archivo "hosts" una referencia que en windows 8.1 64bits seria:
Código: Seleccionar todo
este archvio está en:> dir c:\Windows\System32\drivers\etc\hosts
10/03/2017 12:22 p. m. 1,058 hosts
su contenido de puede ver con:> type c:\Windows\System32\drivers\etc\hosts
# ...
127.0.0.1 www.sat.gob.mx
Si bien, esto acelero la creación del cfdi en su momento genera situaciones adicionales:
1) Debes estar al pendiente y actualizar periódicamente los archivos del fake-sitio
2) Con este truco la PC dejará de acceder al verdadero sitio del sat, en mi caso, como la PC está exclusivamente dedicada a generar cfds me sirvió sin problema hasta que se resolvió la situación.
Y con esto el programa generó en segundos y no en minutos como nos ocurrió en aquella ocasión.
* Y también se puede instalar el minisitio usando un servidor web local con nginx o apache.
Son al menos unas 2 a 3 horas para implementar este solución temporal que al final es muy útil para muchos casos semejantes: cuando hay sitios que desaparecen por completo y tienes alguna aplicación necesita descargar algún viejo certificado o librería (me estas leyendo mugre idse.imss?)
***
Con esto voy a poder generar de las unidades en Delphi, las cuales Delphi no puede generar debido al cochino error que satan se niega a corregir en el xsd de Pagos10/catPagos:
Código: Seleccionar todo
http://www.sat.gob.mx/sitio_internet/cfd/Pagos/Pagos10.xsd
http://www.sat.gob.mx/sitio_internet/cfd/catalogos/Pagos/catPagos.xsd
-
- Mensajes: 7
- Registrado: Sab Abr 22, 2017 7:46 pm
Re: AYUDA: XmlSerializer bastante lento. VB/C#
Bien, les comento, deje locales los archivos catCFDI.xsd y tdCFDI.xsd
PERO:
En el archivo cfdv33.cs (C#) borre todos los elementos de enumeracion, solo deje uno por cada enumeración para usarlo en una clase de prueba y que creen? Lo hace bastante rápido! ahora la duda seria, como incluir tooodos esos elementos de enumeración en mi programa real?? o que alternativas tengo?
PERO:
En el archivo cfdv33.cs (C#) borre todos los elementos de enumeracion, solo deje uno por cada enumeración para usarlo en una clase de prueba y que creen? Lo hace bastante rápido! ahora la duda seria, como incluir tooodos esos elementos de enumeración en mi programa real?? o que alternativas tengo?
-
- Mensajes: 68
- Registrado: Mar Feb 18, 2014 8:09 am
Re: AYUDA: XmlSerializer bastante lento. VB/C#
buenas tardes,
eso es probablemente por que el archivo catCFDI.xsd pesa mas de 6 Mb ...
en mi caso para emisión de facturas pienso ponerme de acuerdo con las áreas contable-fiscal de la empresa para manejar catálogos "light" con las opciones que usemos en la empresa ...
para la validación de facturas recibidas, estaba pensando en hacer unas modificaciones al xsd para hacer las adecuaciones correspondientes para que no se validen los tipos de datos con base en el archivo catCFDI.xsd ... en su lugar, manejar una tabla en SQL Server y hacer mmm no se, un select count(*) from TABLA where ATRIBUTO = "valor del campo en el xml" ... algo así ... pero es solo una idea, necesito hacer pruebas de performance ...
saludos
eso es probablemente por que el archivo catCFDI.xsd pesa mas de 6 Mb ...
en mi caso para emisión de facturas pienso ponerme de acuerdo con las áreas contable-fiscal de la empresa para manejar catálogos "light" con las opciones que usemos en la empresa ...
para la validación de facturas recibidas, estaba pensando en hacer unas modificaciones al xsd para hacer las adecuaciones correspondientes para que no se validen los tipos de datos con base en el archivo catCFDI.xsd ... en su lugar, manejar una tabla en SQL Server y hacer mmm no se, un select count(*) from TABLA where ATRIBUTO = "valor del campo en el xml" ... algo así ... pero es solo una idea, necesito hacer pruebas de performance ...
saludos
-
- Mensajes: 2
- Registrado: Jue Jun 01, 2017 12:10 pm
Re: AYUDA: XmlSerializer bastante lento. VB/C#
Que tal buen día, estoy teniendo el mismo problema de la lentitud
y tu encontraste la solución de ese problema??
y tu encontraste la solución de ese problema??

-
- Mensajes: 7
- Registrado: Sab Abr 22, 2017 7:46 pm
Re: AYUDA: XmlSerializer bastante lento. VB/C#
El problema es la cantidad inmensa de elementos de ennumeracion de la clase que es generada a partir de los esquemas .xsd en mi caso la clase "cfdv33.cs"M-ARISTA escribió:Que tal buen día, estoy teniendo el mismo problema de la lentitud
y tu encontraste la solución de ese problema??
-
- Mensajes: 2
- Registrado: Jue May 25, 2017 12:11 am
Re: AYUDA: XmlSerializer bastante lento. VB/C#
Buen día.
Alguno de ustedes ya logro hacer que la serialización sea mas rápida?
Alguno de ustedes ya logro hacer que la serialización sea mas rápida?
- acanas
- Mensajes: 477
- Registrado: Mar Ene 11, 2011 3:18 pm
Re: AYUDA: XmlSerializer bastante lento. VB/C#
Si, de hecho el problema de que el serializer sea lento es porque tienen todo el catalogo de códigos postales y de claveprodsrv en el mismo ensamblado que representa la clase de Comprobante y tarda en procesar tantos elemento. En mi caso me pasaba exactamente lo mismo que mencionan en esta publicación y lo que hice fue omitir esos 2 catálogos y en los atributos donde se ocupan el código postal y clave del SAT los deje como simples strings en vez de los enumeradores originales (de hecho si se fijan en los xml de cfdi 3.3 timbrados o en el XSD original son puros strings). Con dichos cambios la velocidad de Deserialización/Serialización del objeto Comprobante es bastante rápida. De hecho ya pude hacer mi primer timbre y creo que de aquí en adelante ya me aviento más fácilmente lo que me falta completar del cfdi 3.3
Eso si el control de los codigos postales y claves de producto y servicio para poder validarlos mejor los metí a una tabla de mi sistema o también lo que pueden hacer es separar en otro ensamblado que no vaya usarse para serializar Grabar todo los catálogos de Claves y Codigos Postales.
Eso si el control de los codigos postales y claves de producto y servicio para poder validarlos mejor los metí a una tabla de mi sistema o también lo que pueden hacer es separar en otro ensamblado que no vaya usarse para serializar Grabar todo los catálogos de Claves y Codigos Postales.
- Adjuntos
-
- Pueden separar los catalogos en otro ensamblado y poder hacer busquedas al mismo enumerados si no desean hacerlo desde una base de datos.
- SAT_CLAVEPRODSRV_CODIGO.png (7.1 KiB) Visto 10035 veces
-
- En vez de usar el kilometrico enumerador lo cambio por un string.
- SAT_CLAVEPRODSRV.png (6.4 KiB) Visto 10035 veces
Zyphersoft Development
-
- Mensajes: 12
- Registrado: Jue May 08, 2014 2:15 pm
Re: AYUDA: XmlSerializer bastante lento. VB/C#
Hola Acanas! Buenos días crees que me puedas ayudar con una copia de tus archivos xslt y xsd? Al serializar la cadena original me queda incompleta y no me permite generarla de manera correcta para posteriormente sellarla,acanas escribió:Si, de hecho el problema de que el serializer sea lento es porque tienen todo el catalogo de códigos postales y de claveprodsrv en el mismo ensamblado que representa la clase de Comprobante y tarda en procesar tantos elemento. En mi caso me pasaba exactamente lo mismo que mencionan en esta publicación y lo que hice fue omitir esos 2 catálogos y en los atributos donde se ocupan el código postal y clave del SAT los deje como simples strings en vez de los enumeradores originales (de hecho si se fijan en los xml de cfdi 3.3 timbrados o en el XSD original son puros strings). Con dichos cambios la velocidad de Deserialización/Serialización del objeto Comprobante es bastante rápida. De hecho ya pude hacer mi primer timbre y creo que de aquí en adelante ya me aviento más fácilmente lo que me falta completar del cfdi 3.3
Eso si el control de los codigos postales y claves de producto y servicio para poder validarlos mejor los metí a una tabla de mi sistema o también lo que pueden hacer es separar en otro ensamblado que no vaya usarse para serializar Grabar todo los catálogos de Claves y Codigos Postales.

Saludos