Hola
Tengo un par de años de timbrar exitosamente con CFDLib.dll, sin embargo nunca he logrado implementar la funcion GetError, por lo que, utilizo el parámetro 'verbose', para saber el resultado del timbrado y manualmente indicarle al sistema si fue exitoso o no el timbrado
Este es el código que utilizo para timbrar
retval = Shell(Forms!ruta!Rut & "CFDBatch.exe inifile=" & Forms!ruta!Rut & "Timbrar.ini" & " clavellaveprivada=" & Forms!empresa!ClaveCertDig & " timbrar verbose", vbMinimizedFocus)
Respuesta = InputBox("DEBES ESPERAR EL AVISO DEL PAC" & Chr(13) & "(puede tardar varios segundos)" & Chr(13) & "CONTESTA CON LAS LETRAS INICIALES ENTRE ()" & Chr(13) & Chr(13) & "El Timbrado fué (E)xitoso, (F)allido, (V)erificarlo", "RESULTADO DEL TIMBRADO")
If Respuesta = "E" Or Respuesta = "e" Then
.....codigo timbrado exitoso
else
...... codigo timbrado fakkido
end if
Alguien que sepa programar con vb access que me quiera ayudar por favor, a implementar la funcion Geterror para cachar el resultado sin la intervención del usuario
Gracias de antemano

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
.
GETERROR CON VB ACCESS 2010
-
- Mensajes: 73
- Registrado: Vie Nov 01, 2013 8:37 pm
- Ubicación: México, Azcapotzalco, D.F.
- Contactar:
- Dado
- Mensajes: 15981
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: GETERROR CON VB ACCESS 2010
Ya no programo en VB Access, pero te puedo recomendar que mejor veas la opcion del Servitimbre que ofrecemos aqui
Ese Servitimbre se aplica mucho mejor a la forma que estas trabajando.
Ese Servitimbre se aplica mucho mejor a la forma que estas trabajando.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 370
- Registrado: Lun Oct 10, 2011 11:50 am
Re: GETERROR CON VB ACCESS 2010
Sin quitarle importancia al consejo que te da DADO, te explico lo siguiente por si te puede ayudar:
Cuando utilizamos el CFDBatch.exe para sellar y timbrar, el proceso nos regresa los resultados en archivos separados:
Factura.xml
Factura-CadenaDelPAC.txt
Factura-CadenaOriginalEmisor.txt
Factura-SelloDigitalEmisor.txt
Factura-SelloDigitalSAT.txt
bitacora de proceso.txt
-Error.txt
Entonces para ver si el proceso tuvo o no error te recomiendo que veas el contenido del archivo "-Error.txt"
Si esta vacio entonces el proceso fue exitoso
Si trae cualquier informacion, despliegala como mensaje de error
Por supuesto que al decirte que "veas" el archivo, me refiero a que desarrolles una rutina de codigo donde lo abras y lo leas
Cuando utilizamos el CFDBatch.exe para sellar y timbrar, el proceso nos regresa los resultados en archivos separados:
Factura.xml
Factura-CadenaDelPAC.txt
Factura-CadenaOriginalEmisor.txt
Factura-SelloDigitalEmisor.txt
Factura-SelloDigitalSAT.txt
bitacora de proceso.txt
-Error.txt
Entonces para ver si el proceso tuvo o no error te recomiendo que veas el contenido del archivo "-Error.txt"
Si esta vacio entonces el proceso fue exitoso
Si trae cualquier informacion, despliegala como mensaje de error
Por supuesto que al decirte que "veas" el archivo, me refiero a que desarrolles una rutina de codigo donde lo abras y lo leas
-
- Mensajes: 73
- Registrado: Vie Nov 01, 2013 8:37 pm
- Ubicación: México, Azcapotzalco, D.F.
- Contactar:
Re: GETERROR CON VB ACCESS 2010
Hola Tienes toda la razon, algo tan simple pero no se me habia ocurrido, buscar el -error.txt.
asi lo hare gracias
asi lo hare gracias
-
- Mensajes: 73
- Registrado: Vie Nov 01, 2013 8:37 pm
- Ubicación: México, Azcapotzalco, D.F.
- Contactar:
Re: GETERROR CON VB ACCESS 2010
Ya logre timbrar con la funcion "TimbrarCFDExt", pero ahora al recuperar la cadenaoriginal() o el mensaje de error, el sistema se truena y se sale inesperadamente, probe con las 2 funciones TimbrarCFD y TimbrarCFDExt y en ambas pasa lo mismo, busque en el foro, pero no logro encontrar la soluci??n, paso el c??digo que uso a ver si alguien me puede ayudar.
Option Compare Database
Declare Function GeneraCFD Lib "c:\ZaviCFDIv\c:\ZaviCFDIv\CFDLib.dll" (ByVal IniFileName As String, ByVal ClaveLlavePrivada As String) As Byte
Declare Function GeneraCFDExt Lib "c:\ZaviCFDIv\CFDLib.dll" (ByVal IniFileName As String, ByVal ClaveLlavePrivada As String, ByVal Cadena As String, ByVal Sello As String, ByVal Error As String, ByVal ErrorExt As String) As Byte
Declare Function TimbrarCFD Lib "c:\ZaviCFDIv\CFDLib.dll" (ByVal IniFileName As String) As Byte
Declare Function TimbrarCFDExt Lib "c:\ZaviCFDIv\CFDLib.dll" (ByVal IniFileName As String, ByVal Cadena As String, ByVal Sello As String, ByVal Error As String, ByVal ErrorExt As String) As Byte
Declare Function CancelarCFD Lib "c:\ZaviCFDIv\CFDLib.dll" (ByVal IniFileName As String) As Byte
Declare Function RecuperaAcuseCancelacion Lib "c:\ZaviCFDIv\CFDLib.dll" (ByVal IniFileName As String) As Byte
Declare Function ConsultaSaldo Lib "c:\ZaviCFDIv\CFDLib.dll" (ByVal IniFileName As String) As Byte
Declare Function RecuperarCFD Lib "c:\ZaviCFDIv\CFDLib.dll" (ByVal IniFileName As String) As Byte
Declare Function CFDLibVersion Lib "c:\ZaviCFDIv\CFDLib.dll" () As String
Declare Function GetError Lib "c:\ZaviCFDIv\CFDLib.dll" () As String
Declare Function GetErrorExt Lib "c:\ZaviCFDIv\CFDLib.dll" () As String
Declare Function CadenaOriginal Lib "c:\ZaviCFDIv\CFDLib.dll" () As String
Declare Function SelloDigital Lib "c:\ZaviCFDIv\CFDLib.dll" () As String
y llamo la funcion asi...
Dim Cadena As String
Dim Sello As String
Dim Error As String
Dim ErrorExt As String
' Hay que reservar espacio en memoria para las variables
Cadena = String(16000, vbNullChar)
Sello = String(1024, vbNullChar)
Error = String(200, vbNullChar)
ErrorExt = String(200, vbNullChar)
If TimbrarCFDExt(Forms!ruta!Rut & "Timbrar.ini", Cadena, Sello, Error, ErrorExt) = 0 Then
MsgBox ("EXITO!! La Cadena DEL PAC es " & CadenaOriginal()) ' SI ME DA LA CADENA PERO AQUI TRUENA Y SE SALE
Else
MsgBox "Hubo un error " & vbCrLf & vbCrLf & GetError() & vbCrLf & vbCrLf & GetErrorExt(), vbCritical, "Sistemas Zavi" ' SI ME DA EL ERROR PERO AQUI TRUENA Y SE SALE
End If
me pueden ayudar por favor?
Option Compare Database
Declare Function GeneraCFD Lib "c:\ZaviCFDIv\c:\ZaviCFDIv\CFDLib.dll" (ByVal IniFileName As String, ByVal ClaveLlavePrivada As String) As Byte
Declare Function GeneraCFDExt Lib "c:\ZaviCFDIv\CFDLib.dll" (ByVal IniFileName As String, ByVal ClaveLlavePrivada As String, ByVal Cadena As String, ByVal Sello As String, ByVal Error As String, ByVal ErrorExt As String) As Byte
Declare Function TimbrarCFD Lib "c:\ZaviCFDIv\CFDLib.dll" (ByVal IniFileName As String) As Byte
Declare Function TimbrarCFDExt Lib "c:\ZaviCFDIv\CFDLib.dll" (ByVal IniFileName As String, ByVal Cadena As String, ByVal Sello As String, ByVal Error As String, ByVal ErrorExt As String) As Byte
Declare Function CancelarCFD Lib "c:\ZaviCFDIv\CFDLib.dll" (ByVal IniFileName As String) As Byte
Declare Function RecuperaAcuseCancelacion Lib "c:\ZaviCFDIv\CFDLib.dll" (ByVal IniFileName As String) As Byte
Declare Function ConsultaSaldo Lib "c:\ZaviCFDIv\CFDLib.dll" (ByVal IniFileName As String) As Byte
Declare Function RecuperarCFD Lib "c:\ZaviCFDIv\CFDLib.dll" (ByVal IniFileName As String) As Byte
Declare Function CFDLibVersion Lib "c:\ZaviCFDIv\CFDLib.dll" () As String
Declare Function GetError Lib "c:\ZaviCFDIv\CFDLib.dll" () As String
Declare Function GetErrorExt Lib "c:\ZaviCFDIv\CFDLib.dll" () As String
Declare Function CadenaOriginal Lib "c:\ZaviCFDIv\CFDLib.dll" () As String
Declare Function SelloDigital Lib "c:\ZaviCFDIv\CFDLib.dll" () As String
y llamo la funcion asi...
Dim Cadena As String
Dim Sello As String
Dim Error As String
Dim ErrorExt As String
' Hay que reservar espacio en memoria para las variables
Cadena = String(16000, vbNullChar)
Sello = String(1024, vbNullChar)
Error = String(200, vbNullChar)
ErrorExt = String(200, vbNullChar)
If TimbrarCFDExt(Forms!ruta!Rut & "Timbrar.ini", Cadena, Sello, Error, ErrorExt) = 0 Then
MsgBox ("EXITO!! La Cadena DEL PAC es " & CadenaOriginal()) ' SI ME DA LA CADENA PERO AQUI TRUENA Y SE SALE
Else
MsgBox "Hubo un error " & vbCrLf & vbCrLf & GetError() & vbCrLf & vbCrLf & GetErrorExt(), vbCritical, "Sistemas Zavi" ' SI ME DA EL ERROR PERO AQUI TRUENA Y SE SALE
End If
me pueden ayudar por favor?
-
- Mensajes: 205
- Registrado: Sab Nov 03, 2012 11:48 am
Re: GETERROR CON VB ACCESS 2010
Quita de los msgbox la variable Cadenaoriginal o cualquier otra variable muy grande (sello digital, etc.).
En vb6 o vba las cadenas grandes en los msgbox te dan error de desborde.
En vb6 o vba las cadenas grandes en los msgbox te dan error de desborde.
-
- Mensajes: 370
- Registrado: Lun Oct 10, 2011 11:50 am
Re: GETERROR CON VB ACCESS 2010
Mi aplicacion fue desarrollada en VB6 como una simple aplicacion que imprimia facturas y con el tiempo fue creciendo a CFD y posteriormente a CFDI...
Yo utilizaba la libreria para sellar y timbrar cfdi , todo iba bien mientras los clientes tuvieran XP oero en cuanto empezaron a cambiar a versiones de winddows 7, 8 y 10, asi empezaron a tener problemas con la aplicacion que se salia sin explicacion...
Precisamente por esos errores sin explicacion fue que me empece a utilizar el CFDBatch.exe
y a partir de eso ya no he tenido problemas con ninguna instalacion de mi aplicacion en todas las versiones de windows
Aclaro que ya desarrolle version .net y ahi si utilizo sin ningun problema las llamadas directas a la libreria...
Yo utilizaba la libreria para sellar y timbrar cfdi , todo iba bien mientras los clientes tuvieran XP oero en cuanto empezaron a cambiar a versiones de winddows 7, 8 y 10, asi empezaron a tener problemas con la aplicacion que se salia sin explicacion...
Precisamente por esos errores sin explicacion fue que me empece a utilizar el CFDBatch.exe
y a partir de eso ya no he tenido problemas con ninguna instalacion de mi aplicacion en todas las versiones de windows
Aclaro que ya desarrolle version .net y ahi si utilizo sin ningun problema las llamadas directas a la libreria...