Foros del Web » Programación para mayores de 30 ;) » Programación General »

Error al obtener cadena original para Factura Digital

Estas en el tema de Error al obtener cadena original para Factura Digital en el foro de Programación General en Foros del Web. Haber si me pueden orientar un poco en mi problema: El año pasado desarrollé en vb .NET el software para la famosa factura electrónica. En ...
  #1 (permalink)  
Antiguo 04/01/2011, 13:12
 
Fecha de Ingreso: enero-2011
Mensajes: 8
Antigüedad: 13 años, 3 meses
Puntos: 0
Error al obtener cadena original para Factura Digital

Haber si me pueden orientar un poco en mi problema:

El año pasado desarrollé en vb .NET el software para la famosa factura electrónica. En mucho me apoyé en los tips de este foro asi como otros consejos de un amigo que tambien es miembro de este foro.

El programa funcionó bien durante diciembre de 2010. Eso fué hasta ayer 3 de enero de 2011 que el programa dejó de crear la cadena original.

El error se presenta en la siguiente instrucción:

Código:
 Public Function crearCadenaOriginal(ByVal sCadenaO As String, ByVal sXMLfile As String, _                                       ByVal sArchivoGenerado As String) As String
            Try
                'Instanciar el objeto XslCompiledTransform
                Dim transformer As New XslCompiledTransform

                'Cargar la hoja de estilos proporcionada por el SAT
                transformer.Load(sCadenaO)
                'Aplicar a XML de factE
                transformer.Transform(sXMLfile, sArchivoGenerado)                Console.WriteLine(System.IO.File.ReadAllText(sArchivoGenerado))
                Return System.IO.File.ReadAllText(sArchivoGenerado)
            Catch ex As Exception
                WriteLogErr("Error al crear la cadena original de " & sXMLfile & ".xml" & vbCrLf & _
                            "Mensaje: " & ex.Message)
                Return Nothing
            End Try
        End Function
obviamente en sCadenaO llevo la ruta y nombre del archivo cadenaoriginal_2_0.xslt; mientras que en sXMLfile llevo ruta y nombre de mi archivo XML correspondiente a la factura.

No hay error aparente, pero al debugear el código encontré que en esa instrucción me devuelve el mensaje:

Excepción del tipo 'System.Xml.Xsl.XslLoadException' en System.Data.SqlXml.dll

Cabe recalcar que el software estuvo operando bien durante 2010 y los primeros dias de 2011.

Si alguien tiene alguna idea mucho se los agradeceré.
  #2 (permalink)  
Antiguo 04/01/2011, 13:44
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 4 meses
Puntos: 37
Respuesta: Error al obtener cadena original para Factura Digital

Revisa dentro de tu XSLT, quiza algunos includes hagan referencia a archivos en la web del sat y no esten disponibles.. tu programa funcionaba bien sin conexion a internet???

En mi caso, quite las referencias de includes externos, me descargue los archivos relacionados y de esa manera ya funciono sin conexion a internet.
  #3 (permalink)  
Antiguo 04/01/2011, 14:02
 
Fecha de Ingreso: enero-2011
Mensajes: 8
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Error al obtener cadena original para Factura Digital

Gracias por responder tan pronto. Mi programa nunca funcionó sin internet. Si descargo los archivos (supongo que te refieres a los XSD o esquemas que emplea el SAT) cómo los debería definir en mi programa para que funcionen?, esa parte no la comprendo muy bien.
  #4 (permalink)  
Antiguo 05/01/2011, 12:00
 
Fecha de Ingreso: enero-2011
Mensajes: 8
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Error al obtener cadena original para Factura Digital

Les comento que hoy 5 de enero de 2010, mi programa volvió a operar con normalidad y sin haberle hecho cambios. Coincidentemente con el dia en el que los trabajadores del SAT retornaron de sus merecidas vacaciones; pero repito, eso debió de ser una cochina coincidencia nada más. Lo que si me queda la duda de cómo wwwmaster logra validar sus facturas, sin internet y descargando los archivos del sat. Para mi que es pura cábula. Gracias. Tendré que seguir investigando porque ya no quiero que vuelva a pasarme lo de quedarme sin facturar cada que los del sat se van de vacaciones (y ya viene semana santa).
  #5 (permalink)  
Antiguo 05/01/2011, 19:31
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 4 meses
Puntos: 37
Respuesta: Error al obtener cadena original para Factura Digital

Por alli lo lei, en algun foro.. explicaban bien a bien para q servia cada include... uno para terceros, otro para aduanas o importadores, etc..

El caso es q como ningun de los includes me servian relamente removi todas las referencias:

ANTES: <xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/2/cadenaoriginal_2_0/utilerias.xslt"/>
<!--
En esta sección se define la inclusión de las demás plantillas de transformación para
la generación de las cadenas originales de los complementos fiscales
-->
<xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/ecc/ecc.xslt"/>
<xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/psgecfd/psgecfd.xslt"/>
<xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/donat/donat.xslt"/>
<xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/divisas/divisas.xslt"/>
<xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/ecb/ecb.xslt"/>
<xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/detallista/detallista.xslt"/>
<xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/implocal/implocal.xslt"/>
<xsl:include href="http://www.sat.gob.mx/sitio_internet/cfd/terceros/terceros.xslt"/>
<!-- Aquí iniciamos el procesamiento de la cadena original con su | inicial y el terminador || -->
<xsl:template match="/">|<xsl:apply-templates select="/cfd:Comprobante"/>||</xsl:template>
<!-- Aquí iniciamos el procesamiento de los datos incluidos en el comprobante -->
<xsl:template match="cfd:Comprobante">


DESPUES:

<!--
En esta sección se define la inclusión de las plantillas de utilería
-->
<xsl:include href="utilerias.xslt"/>
<!--
En esta sección se define la inclusión de las demás plantillas de transformación para
la generación de las cadenas originales de los complementos fiscales
-->
<!-- Aquí iniciamos el procesamiento de la cadena original con su | inicial y el terminador || -->
<xsl:template match="/">|<xsl:apply-templates select="/cfd:Comprobante"/>||</xsl:template>
<!-- Aquí iniciamos el procesamiento de los datos incluidos en el comprobante -->


Fue para un proyecto con Visual FOXPRO, asi ya no hubo problema con la conexion a internet
  #6 (permalink)  
Antiguo 05/01/2011, 20:15
 
Fecha de Ingreso: enero-2011
Mensajes: 8
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Error al obtener cadena original para Factura Digital

Fijate wwwmaster que ya lo hice asi pero no se si tenga que ver que mi proyecto este en vb, sin embargo no creo que vaya por ahi el asunto, sacame de otra duda, en la parte en la que se define la hoja de estilos, también quitaste las referencias al sat?

Ejemplo: algo como esto?

Antes:
Código:
<?xml version="1.0" encoding="UTF-8" ?> 
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:cfd="http://www.sat.gob.mx/cfd/2" xmlns:ecc="http://www.sat.gob.mx/ecc" xmlns:psgecfd="http://www.sat.gob.mx/psgecfd" xmlns:divisas="http://www.sat.gob.mx/divisas" xmlns:detallista="http://www.sat.gob.mx/detallista" xmlns:ecb="http://www.sat.gob.mx/ecb" xmlns:implocal="http://www.sat.gob.mx/implocal" xmlns:terceros="http://www.sat.gob.mx/terceros">
Despues
Código:
<?xml version="1.0" encoding="UTF-8" ?> 
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:cfd="C:/Inetpub/wwwroot/FD">
Porque a mi con tan solo cambiar los include no me localiza los archivos xslt en mi disco duro, supongo que algo estoy haciendo mal, en C:/Inetpub/wwwroot/FD guardé los xslt del SAT.

Etiquetas: factura, original, xml, cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:16.