
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: 1
- Registrado: Vie Sep 08, 2017 5:30 pm
Re: AYUDA: XmlSerializer bastante lento. VB/C#
Prueba SGEN, me redujo el constructor del XMLSerializer de 3 minutos a milisegundos.
La escritura a archivo si no la reduce, pero esta toma 1 minuto
saludos
La escritura a archivo si no la reduce, pero esta toma 1 minuto
saludos
- acanas
- Mensajes: 477
- Registrado: Mar Ene 11, 2011 3:18 pm
Re: AYUDA: XmlSerializer bastante lento. VB/C#
Ja! es cierto ya no me acordaba del viejo sgen (en mi viejo proyecto del cfdi 3.2 lo usaba por lo mismo pero ya lo había olvidado por completo).
En los build events de tu proyecto debes incluir una línea como esta:
"C:\SGEN4\sgen.exe"/force /assembly:"$(TargetPath)"
y automáticamente creara una versión serializada del ensamblado reduciendo notablemente la inicialización del ensamblado en el proceso de serialización/deserialización del ensamblado. De cualquier forma es mejor quitar todo lo referente a codigo postal y claveprodsrv del ensamblado puesto que es innecesario, es mejor controlarlo desde la base de datos y la velocidad mejora notablemente, ahora con sgen pues mejor.
En los build events de tu proyecto debes incluir una línea como esta:
"C:\SGEN4\sgen.exe"/force /assembly:"$(TargetPath)"
y automáticamente creara una versión serializada del ensamblado reduciendo notablemente la inicialización del ensamblado en el proceso de serialización/deserialización del ensamblado. De cualquier forma es mejor quitar todo lo referente a codigo postal y claveprodsrv del ensamblado puesto que es innecesario, es mejor controlarlo desde la base de datos y la velocidad mejora notablemente, ahora con sgen pues mejor.
Zyphersoft Development
- acanas
- Mensajes: 477
- Registrado: Mar Ene 11, 2011 3:18 pm
Re: AYUDA: XmlSerializer bastante lento. VB/C#
En realidad deberías usar los oficiales pero si ya se te hizo mucho alboroto, pero sospecho que tu problema de la cadena original es por esto: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,De antemano muchas gracias y gracias a todos los que publican su valiosa aportación en este foro.
Saludos
en el archivo cadenaoriginal_tfd_1_1.xslt note que no se estaba buscando desde Complemento/TimbreFiscalDigital entonces se le agregue esta modificación y ya me funciona correctamente la cadena original del TFD:
Código: Seleccionar todo
<!-- Aquí iniciamos el procesamiento de la cadena original con su | inicial y el terminador || -->
<xsl:template match="/Complemento/TimbreFiscalDigital">|<xsl:apply-templates select="/tfd:TimbreFiscalDigital"/>||</xsl:template>
Zyphersoft Development
-
- Mensajes: 12
- Registrado: Jue May 08, 2014 2:15 pm
Re: AYUDA: XmlSerializer bastante lento. VB/C#
Muchas gracias Acanas, me ha sido muy útil la información un saludoacanas escribió:En realidad deberías usar los oficiales pero si ya se te hizo mucho alboroto, pero sospecho que tu problema de la cadena original es por esto: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,De antemano muchas gracias y gracias a todos los que publican su valiosa aportación en este foro.
Saludos
en el archivo cadenaoriginal_tfd_1_1.xslt note que no se estaba buscando desde Complemento/TimbreFiscalDigital entonces se le agregue esta modificación y ya me funciona correctamente la cadena original del TFD:
Código: Seleccionar todo
<!-- Aquí iniciamos el procesamiento de la cadena original con su | inicial y el terminador || --> <xsl:template match="/Complemento/TimbreFiscalDigital">|<xsl:apply-templates select="/tfd:TimbreFiscalDigital"/>||</xsl:template>
-
- Mensajes: 2
- Registrado: Vie Sep 22, 2017 2:28 am
Re: AYUDA: XmlSerializer bastante lento. VB/C#
Hola Alguien me ayuda con la serialización lenta tengo el mismo problema
acanas segui la recomendacion de dividir los catalogos aparte pero no logro hacer que no tarde
este es mi codigo
acanas segui la recomendacion de dividir los catalogos aparte pero no logro hacer que no tarde
este es mi codigo
Código: Seleccionar todo
string fullPatch = Path.GetTempPath() + "tmp\\xml\\";
Directory.CreateDirectory(fullPatch);
XmlTextWriter xmlTextWriter = new XmlTextWriter(fullPatch + "xmlSello.xml", Encoding.UTF8)
{
Formatting = Formatting.Indented
};
XmlSerializer xs = new XmlSerializer(typeof(Comprobante));
xs.Serialize(xmlTextWriter, comprobante);
xmlTextWriter.Close();
StreamReader reader = new StreamReader(fullPatch + "xmlSello.xml");
XPathDocument myXPathDoc = new XPathDocument(reader);
- acanas
- Mensajes: 477
- Registrado: Mar Ene 11, 2011 3:18 pm
Re: AYUDA: XmlSerializer bastante lento. VB/C#
De hecho en esta publicación ya se había respondido como mejorar la velocidad, la clave es activar en tu proyecto de visual studio la PRE-SERIALIZACION de tu Ensamblado de tal manera que ya no se hace a nivel de tiempo de ejecución sino que se carga desde un precompilado.JONYLBCD escribió:Hola Alguien me ayuda con la serialización lenta tengo el mismo problema
acanas segui la recomendacion de dividir los catalogos aparte pero no logro hacer que no tarde
este es mi codigoCódigo: Seleccionar todo
string fullPatch = Path.GetTempPath() + "tmp\\xml\\"; Directory.CreateDirectory(fullPatch); XmlTextWriter xmlTextWriter = new XmlTextWriter(fullPatch + "xmlSello.xml", Encoding.UTF8) { Formatting = Formatting.Indented }; XmlSerializer xs = new XmlSerializer(typeof(Comprobante)); xs.Serialize(xmlTextWriter, comprobante); xmlTextWriter.Close(); StreamReader reader = new StreamReader(fullPatch + "xmlSello.xml"); XPathDocument myXPathDoc = new XPathDocument(reader);
Necesitas usar la utilería de visual studio SGEN que sirve para generar el ensamblado, esto lo debes hacer en la sección de eventos POST-BUILD de tu proyecto, algo así como esto:
"C:\SGEN4\sgen.exe"/force /assembly:"$(TargetPath)"
Este evento va generar un archivo paralelo a tu ensamblado original con el mismo nombre pero finalizando en .XmlSerializers.dll el cual debes distribuir junto con tu aplicación.
- Adjuntos
-
- Build Events- Post Build
- POST_BUILD_VS.png (12.16 KiB) Visto 10697 veces
Zyphersoft Development
-
- Mensajes: 2
- Registrado: Vie Sep 22, 2017 2:28 am
Re: AYUDA: XmlSerializer bastante lento. VB/C#
lo que hice es modificar mi clase serializada y tanto el codigo postal y la claveProSer en string y controlarlo con la aplicacion pero tengo otro problema que la serializacion no me esta creando xml como debe de ser.
no en antepone en los nodos el elemento "<cfdi:" y el pac me lo esta rechazando que sera que me hace falta.
no en antepone en los nodos el elemento "<cfdi:" y el pac me lo esta rechazando que sera que me hace falta.
Código: Seleccionar todo
<?xml version="1.0" encoding="utf-8"?>
<Comprobante xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="3.3" Serie="J" Folio="0001" Fecha="2017-09-26T11:17:04" Sello="En0ihu29TPK+ZL2fcgdENNycZfhQkGdaLORzFxn/ihz7tXPZa238575mfmNh9IUYcJikUBAsyiEqC/J9FlJzehIzQSJgP3b2jwP+dG6Djzn4JWVr9D9p7BS9EfjKRZ4ENq/SaeL6QbSGEYY1Jpr+c3aUP05A5SyXIs2LyEW8L28=" NoCertificado="00001000000302786722" Certificado="MIIEWzCCA0OgAwIBAgIUMDAwMDEwMDAwMDAzMDI3ODY3MjIwDQYJKoZIhvcNAQEFBQAwggGKMTgwNgYDVQQDDC9BLkMuIGRlbCBTZXJ2aWNpbyBkZSBBZG1pbmlzdHJhY2nDs24gVHJpYnV0YXJpYTEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMR8wHQYJKoZIhvcNAQkBFhBhY29kc0BzYXQuZ29iLm14MSYwJAYDVQQJDB1Bdi4gSGlkYWxnbyA3NywgQ29sLiBHdWVycmVybzEOMAwGA1UEEQwFMDYzMDAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBEaXN0cml0byBGZWRlcmFsMRQwEgYDVQQHDAtDdWF1aHTDqW1vYzEVMBMGA1UELRMMU0FUOTcwNzAxTk4zMTUwMwYJKoZIhvcNAQkCDCZSZXNwb25zYWJsZTogQ2xhdWRpYSBDb3ZhcnJ1YmlhcyBPY2hvYTAeFw0xNDAyMDQyMjQ1MjdaFw0xODAyMDQyMjQ1MjdaMIGnMR8wHQYDVQQDExZMVUlTIEZFTElQRSBCQUxBTiBDSEFOMR8wHQYDVQQpExZMVUlTIEZFTElQRSBCQUxBTiBDSEFOMR8wHQYDVQQKExZMVUlTIEZFTElQRSBCQUxBTiBDSEFOMRYwFAYDVQQtEw1CQUNMODMwNTI5UDYyMRswGQYDVQQFExJCQUNMODMwNTI5SFlOTEhTMDkxDTALBgNVBAsTBE1BSU4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJeEIwQmndYVTL+wSvhhc7MQ2/0/P7erAfOS7TMg3UuCv6Ac2VrRFgsInz25A55aLEplYMtVcY33Rcz51M0CelUkYxiGfJajWmu2EHtV6AxUcwADsczuXmD1GdlWZN6TugByeclEB+CIp9yP3rpWvHTcDdWUGfB12/oP6OZ6cVI7AgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBBQUAA4IBAQDP5q/ytQZcEE5BhNY/CVOEtPblMKbXTmbF+v25/jw7w0ERh9mXBkwwQefhjK0Y2dFAe93DN4f5WAJKRZDqtGiEYgOSOfO7bdkh/b1MSMc7p8XgIDEj3JWBsJGbf28bRYMqpx5L61gj77TpoxBILs6FoDET1wvMtFOxrbp/T1c7OwgK4yQbhzXdej3Ymrb2bkDy9egc/1gfGIW1ILRoKNCeyTi/cejbzG7OrpVW87Fn/o51T75dc/8DyfAzpMbCgL7H+vqF84p5g2UbGDbWh1Rt5UHsOWiYh/BxM02Q9sZ18nsnZSaXyibgHVofF1jeZ8CHtsxis3l0y9rlgD4k7vHG" SubTotal="84" Moneda="MXN" Total="100" TipoDeComprobante="I" LugarExpedicion="97970" xmlns="http://www.sat.gob.mx/cfd/3">
<Emisor Rfc="BACL830529P62" Nombre="Luis Felipe Balam Chan" RegimenFiscal="621" />
<Receptor Rfc="CAPJ860129GV9" Nombre="Jonadab Chan Pat" UsoCFDI="G01" />
<Conceptos>
<Concepto ClaveProdServ="30191505" Cantidad="1" ClaveUnidad="MTR" Unidad="METROS" Descripcion="Un Metro de LONA" ValorUnitario="84" Importe="84">
<Impuestos>
<Traslados>
<Traslado Base="0" Impuesto="002" TipoFactor="Tasa" Importe="16.00" />
</Traslados>
</Impuestos>
</Concepto>
</Conceptos>
<Impuestos>
<Traslados>
<Traslado Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.1600" Importe="16.00" />
</Traslados>
</Impuestos>
</Comprobante>
-
- Mensajes: 4
- Registrado: Mar Ago 02, 2016 11:04 am
Re: AYUDA: XmlSerializer bastante lento. VB/C#
Use la recomendacion de SGEN y hay una mala noticia. Solo funciona para 32-Bits, para 64-bits aunque tengas la clase de XmlSerializers y esta sea cargada; el Just-In-Time(JIT) lo recompila tardando hasta 10 minutos. Explore la opcion encadenada de (DLL-> SGEN.exe -> NGEN.exe) para inyectarla, pero despues de 2 hrs no se logró y no devolvío codigo de error claro. Hasta no encontrar una mejor solucion, lo mejor es quedarse en 32 bits.
Microsoft tiene conocimiento de este problema.
https://stackoverflow.com/questions/413 ... it-systems
Microsoft tiene conocimiento de este problema.
https://stackoverflow.com/questions/413 ... it-systems
-
- Mensajes: 1
- Registrado: Mié Nov 22, 2017 1:56 pm
Re: AYUDA: XmlSerializer bastante lento. VB/C#
Que tal ando tambiénmareado con la tardanza de la serialización, mencionas que de preferencia poner lo todo local.
¿Como inicio para poner todo local?
¿En donde coloco esos valores?
¿Es antes de generar la clase? con XSD.EXE
podrías por favor dar los pasos.. te lo agradeceré mucho.
Gracias de antemano
Mi pregunta es ... y disculpa quiza es de kinder...DADO escribió:Si, los que empiecen con xmlns dejalos tal cual
Sabes, creo que si estoy mal, deberia ser asi :
Es decir, hay que respetar los namespace, pero solo cambiar los schemalocationCódigo: Seleccionar todo
<xs:import namespace="http://www.sat.gob.mx/sitio_internet/cfd/catalogos" schemaLocation="D:\catCFDI.xsd"/>
(Una disculpa por no darte 100% la respuesta a la primera, como te decia yo no programo en VB/C# pero trato de ayudar en lo que creo que puede ser la solucion)
¿Como inicio para poner todo local?
¿En donde coloco esos valores?
¿Es antes de generar la clase? con XSD.EXE
podrías por favor dar los pasos.. te lo agradeceré mucho.
Gracias de antemano
-
- Mensajes: 7
- Registrado: Jue Mar 01, 2012 11:33 am
Re: AYUDA: XmlSerializer bastante lento. VB/C#
Para cambiar el schemaLocation tienes que tener el archivo XSD, lo puedes descargar de aquí: http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsdpzhero escribió:Que tal ando tambiénmareado con la tardanza de la serialización, mencionas que de preferencia poner lo todo local.
Mi pregunta es ... y disculpa quiza es de kinder...DADO escribió:Si, los que empiecen con xmlns dejalos tal cual
Sabes, creo que si estoy mal, deberia ser asi :
Es decir, hay que respetar los namespace, pero solo cambiar los schemalocationCódigo: Seleccionar todo
<xs:import namespace="http://www.sat.gob.mx/sitio_internet/cfd/catalogos" schemaLocation="D:\catCFDI.xsd"/>
(Una disculpa por no darte 100% la respuesta a la primera, como te decia yo no programo en VB/C# pero trato de ayudar en lo que creo que puede ser la solucion)
¿Como inicio para poner todo local?
¿En donde coloco esos valores?
¿Es antes de generar la clase? con XSD.EXE
podrías por favor dar los pasos.. te lo agradeceré mucho.
Gracias de antemano
(Básicamente copia todo y pegalo en un archivo de texto y renombralo a "cfdv33.xsd")
Y éste paso creo es previo a la compilación del XSD.