GETERROR CON VB ACCESS 2010

Para quienes programan Visual Basic aqui esta la solucion
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
lrzarza
Mensajes: 73
Registrado: Vie Nov 01, 2013 9:37 pm
Ubicación: México, Azcapotzalco, D.F.
Contactar:

GETERROR CON VB ACCESS 2010

Mensajepor lrzarza » Vie Jul 01, 2016 6:26 pm

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

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: GETERROR CON VB ACCESS 2010

Mensajepor Dado » Vie Jul 01, 2016 7:53 pm

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.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

jggtz
Mensajes: 357
Registrado: Lun Oct 10, 2011 12:50 pm

Re: GETERROR CON VB ACCESS 2010

Mensajepor jggtz » Sab Jul 02, 2016 8:07 pm

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

lrzarza
Mensajes: 73
Registrado: Vie Nov 01, 2013 9:37 pm
Ubicación: México, Azcapotzalco, D.F.
Contactar:

Re: GETERROR CON VB ACCESS 2010

Mensajepor lrzarza » Sab Jul 02, 2016 10:43 pm

Hola Tienes toda la razon, algo tan simple pero no se me habia ocurrido, buscar el -error.txt.
asi lo hare gracias

lrzarza
Mensajes: 73
Registrado: Vie Nov 01, 2013 9:37 pm
Ubicación: México, Azcapotzalco, D.F.
Contactar:

Re: GETERROR CON VB ACCESS 2010

Mensajepor lrzarza » Sab Jul 02, 2016 10:56 pm

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?

Edcoram
Mensajes: 205
Registrado: Sab Nov 03, 2012 12:48 pm

Re: GETERROR CON VB ACCESS 2010

Mensajepor Edcoram » Dom Jul 03, 2016 12:19 am

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.

jggtz
Mensajes: 357
Registrado: Lun Oct 10, 2011 12:50 pm

Re: GETERROR CON VB ACCESS 2010

Mensajepor jggtz » Dom Jul 03, 2016 3:44 pm

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...


Volver a “Visual Basic”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados