Página 1 de 1
Segundo timbrado marca error
Publicado: Mié Jun 20, 2012 7:38 am
por ManuelJaime
Buenos días dado
El día de ayer me acabo de dar cuenta que al timbrar la primera vez lo hace correctamente, al querer generar un segundo timbrado me marca error al timbrar pero las funciones de error vienen en blanco, al consultar a mi pac que es buzón e veo que si se timbro todas las veces que me marco error, tienes algún comentario que compartir acerca de este problema?
Re: Segundo timbrado marca error
Publicado: Mié Jun 20, 2012 9:11 am
por Dado
Que error es el que te marca?
Entiendo que no pudiste leer las funciones de error, pero no te marca en pantalla algo que nos pueda dar una idea de lo que esta pasando?
Re: Segundo timbrado marca error
Publicado: Mié Jun 20, 2012 9:22 am
por ManuelJaime
No ningun error eso es lo mas raro, me salgo del programa entro de nuevo y timbra bien 1 vez, estoy investigando en estos momentos cualquier cosa la subo
Re: Segundo timbrado marca error
Publicado: Mié Jun 20, 2012 9:28 am
por MOGG
ManuelJaime escribió:No ningun error eso es lo mas raro, me salgo del programa entro de nuevo y timbra bien 1 vez, estoy investigando en estos momentos cualquier cosa la subo
Pudiera ser algo similar a lo que me pasa a mi con las librerias en tu caso tal ves pudiera funcionar que uses la funcion para liberar la libreria
Dim ok As Variant
ok = FinalizaCFDLib()
Se me ocurre que la libreria se queda cargada y por eso te marca error.. despues de revisarlo espero puedas ayudarme con un problema que tengo
Re: Segundo timbrado marca error
Publicado: Mié Jun 20, 2012 11:26 am
por ManuelJaime
aqui anexo un poco de mi codigo para ver que problema puede ser
Private Declare Function GeneraCFD Lib "c:\sistema\CFDLib.dll" (ByVal IniFileName As String, ByVal ClaveLlavePrivada As String) As Byte
Private Declare Function TimbrarCFD Lib "c:\sistema\CFDLib.dll" (ByVal IniFileName As String) As Byte
Private Declare Function CancelarCFD Lib "c:\sistema\CFDLib.dll" (byvalIniFileName As String) As Byte
Private Declare Function GetError Lib "c:\sistema\CFDLib.dll" () As String
Private Declare Function GetErrorExt Lib "c:\sistema\CFDLib.dll" () As String
Private Declare Function CadenaOriginal Lib "c:\sistema\CFDLib.dll" () As String
Private Declare Function SelloDigital Lib "c:\sistema\CFDLib.dll" () As String
Private Declare Function FinalizaCFDLib Lib "c:\sistema\CFDLib.dll" () As String
If GeneraCFD("c:\sistema\FacturaCFDI.ini", IIf(Trim(FuncionesCFDI.TipoFuncionCFDI) = "Produccion", "clave", "a0123456789")) = 0 Then
If TimbrarCFD("c:\sistema\FacturaCFDI.ini") = 0 Then
Else
cnBase.RollbackTrans
MsgBox "Error al Timbrar XML, Favor de Reportar " + GetError + " " + GetErrorExt, vbOKOnly + vbCritical, "Error"
Exit Sub
End If
Else
MsgBox "Resultado Generacion : OK. " + GetError + " " + GetErrorExt
cnBase.RollbackTrans
Exit Sub
End If
FinalizaCFDLib
asi es como lo tengo en vb6
Re: Segundo timbrado marca error
Publicado: Mié Jun 20, 2012 12:36 pm
por MOGG
ManuelJaime escribió:
MsgBox "Resultado Generacion : OK. " + GetError + " " + GetErrorExt
En teoria el codigo es correctopero creo te pasa algo similar a mi al invocar las funciones geterror y GetErrorExt... segun mi punto de vista la libreria devuelve o no devuelve un valor y esto ocasiona que la aplicacion se quede colgada esperando respuesta y marque un error.. en tu caso solo no muestra el resultado
Sigo intentando haciendo pruebas de llamada a la libreria pero el resultado siempre es el mismo ..Alguna Idea??
Re: Segundo timbrado marca error
Publicado: Mié Jun 20, 2012 2:07 pm
por ManuelJaime
Dado mira estoy mandando llamar la funcion FinalizaCDFLib antes de correr las otras funciones y al final y me regresa un valor 244 que significa eso en la funcion?
o=FinalizaCFDLib
o=244
Re: Segundo timbrado marca error
Publicado: Mié Jun 20, 2012 2:12 pm
por Dado
ManuelJaime escribió:Dado mira estoy mandando llamar la funcion FinalizaCDFLib antes de correr las otras funciones y al final y me regresa un valor 244 que significa eso en la funcion?
o=FinalizaCFDLib
o=244
FinalizaCFDLib NO ES UNA FUNCION que devuelva algun valor
Y como su nombre lo indica es para FINALIZAR la libreria, esta DESTRUYE TODOS LOS OBJETOS y no deberia ser llamada a la mitad de un proceso o si se intenta seguir timbrando.
Esta funcion se debe usar solo si al cerrar el programa principal se genera una excepcion (un error), de hecho se recomienda NO USARLA a menos que sea indispensable