FoxPro/Visual FoxPro - error com 0x80020006 unknown status code

   
Vista:

error com 0x80020006 unknown status code

Publicado por markus (4 intervenciones) el 22/01/2018 20:55:40
estoy usando este codigo fuente , pueden ve el error
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
wsfev1 = Createobject("FEAFIPLib.wsfev1")
Wait Window "Autorizando con Webservice Afip" Nowait
jcuit=Int(Val(Alltrim(Strtran(_CUIT,"-",""))))
wsfev1.CUIT = jcuit
wsfev1.URL = URLWSW
_archivoKEY          = Sys(5)+Sys(2003)+"\afip\clave.key"
_archivoCRT          = Sys(5)+Sys(2003)+"\afip\certificado.crt"
If wsfev1.login(_archivoCRT,_archivoKEY, URLWSAA) Then
	If Not wsfev1.SFRecuperaLastCMP(Ptovta, Tipocomp) Then
		Messagebox(wsfev1.ErrorDesc)
	Else
		nro = wsfev1.SFLastCmp
	Endif
	wsfev1.Reset()
	If ventas.letra="C"
		m.cuites=Strtran(ventas.CUIT,"-","")
		m.nrofc=ventas.numero
		m.importe = ventas.Total
		wsfev1.AgregaFactura(2, 80, m.cuites,m.nrofc, m.nrofc, xfechacmp, m.importe , 0, m.importe,0, xfechacmp,xfechacmp,xfechavto, "PES", 1)
	ENDIF
	IF INLIST(ventas.letra, "A" , "B")
		m.cuites=Strtran(ventas.CUIT,"-","")
		m.nrofc=ventas.numero
		m.importe = ventas.Total
 
		**** aqui me da el error
WSFEv1.CrearFactura(2,80,m.cuites,Tipocomp,Ptovta,m.nrofc,m.nrofc,m.importe,0,m.xneto,m.xiva,m.ximpint,0,xfechacmp,xfechacmp,xfechavto,xfechavto, "PES", 1)
 
   wsfev1.AgregaIVA(m.xcodiva, m.xneto, m.xiva)
    IF !EMPTY(m.xrni)
        wsfev1.AgregaIVA(4, m.xneto, m.xrni)
    ENDIF
   WSFEv1.AgregarTributo(4, 0, 0, m.ximpint)
      IF !EMPTY(m.ximpint)
       WSFEv1.AgregarTributo(4, 0, 0, m.imp_trib)
      ENDIF
ENDIF
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

error com 0x80020006 unknown status code

Publicado por Fidel José (521 intervenciones) el 22/01/2018 21:56:26
No dices en qué linea se produce el error. Lo más probable es que estés pasando un parámetro con el tipo de dato erróneo. (por ejemplo veo que el cuit de la empresa lo pasas como número y el del cliente como cadena. Fijate en la documentación del autor de la clase (yo no la conozco, trabajo con pyAfip).

Además me parece imprescindible que pongas un control de errores (TRY CATCH FINALLY ENDTRY). A veces el webservice no responde y tienes que adoptar alguna medida al respecto.


Fijate, de paso, que los archivos key y crt, en producción no tienen nombre fijo porque se renuevan cada dos años, por lo que debes recuperarlos de una carpeta en la que solamente tengas los archivos vigentes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

error com 0x80020006 unknown status code

Publicado por markus (4 intervenciones) el 22/01/2018 22:06:20
si lo levanto de la carpeta afip , fijate que antes lo hacia como agregafactura , pero con impuestos internos me da error


**** aqui me da el error
WSFEv1.CrearFactura(2,80,m.cuites,Tipocomp,Ptovta,m.nrofc,m.nrofc,m.importe,0,m.xneto,m.xiva,m.ximpint,0,xfechacmp,xfechacmp,xfechavto,xfechavto, "PES", 1)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

error com 0x80020006 unknown status code

Publicado por Fidel José (521 intervenciones) el 23/01/2018 00:47:18
ximpint debería estar definido cuando lo envías como parámetro. Ahí no veo esa definición, por lo que no sé que decirte.

En cuanto a los certificados, estás poniendo un nombre fijo:
1
2
_archivoKEY = Sys(5)+Sys(2003)+"\afip\clave.key"
_archivoCRT = Sys(5)+Sys(2003)+"\afip\certificado.crt"

Un certificado verdadero se llamará como esto:
thgostar_4c2984a511134e33.crt
y el archivo key respectivo depende del nombre que le pusieron al generarlo con OPENSSL o rutina similar.
En la carpeta Afip deberías tener únicamente el key con su respectivo crt y la forma de saber como se llaman es con ADIR()

1
2
3
4
5
LcDir = Sys(5)+Sys(2003)+"\afip
lnFiles = Adir(laFiles,addbs(lcDir)+"*.key","",1)
if lnFiles = 1
        _archivoKey = addbs(lcDir)+laFiles[1]
endif
Lo mismo para el otro archivo. No necesitas saber el nombre de los archivos. Para cada cliente variará.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

error com 0x80020006 unknown status code

Publicado por markus (4 intervenciones) el 23/01/2018 02:06:26
esta definido solo q no lo puse aca esta completo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
m.xcodiva=codiva
m.xneto  =neto
m.xiva   =iva
m.xrni   =rni
m.ximpint = imp_int
 
_MODO = configuracion.MODO
_CUIT = configuracion.CUIT
Public nro As Long
Public POS As Long
Public tipo As Long
Public m.cae     As Character
Public m.vtocae2 As Charactert
Public m.vtocae  As Date
 
If Upper(_MODO)="H" Or Empty(_MODO)
	Wait Window "Modo Homologacion - para Testeo" Timeout 2
	URLWSAA = "https://wsaahomo.afip.gov.ar/ws/services/LoginCms"
	URLWSW  = "https://wswhomo.afip.gov.ar/wsfev1/service.asmx"
Endif
If Upper(_MODO)="P"
	URLWSAA = "https://wsaa.afip.gov.ar/ws/services/LoginCms"
	URLWSW  = "https://servicios1.afip.gov.ar/wsfev1/service.asmx"
Endif
Ptovta   = ventas.PTO_VTA
Tipocomp = ventas.tipocoafip
xfechacmp = Transform(Year(ventas.fecha),"@L 9999") + Transform(Month(ventas.fecha),"@L 99") + Transform(Day(ventas.fecha),"@L 99") && Tomo la fecha actual como ejemplo
If listas_precios.cta_cte
	m.fechavto=ventas.fecha+30
	xfechavto = Transform(Year(m.fechavto),"@L 9999") + Transform(Month(m.fechavto),"@L 99") + Transform(Day(m.fechavto),"@L 99") && Tomo la fecha actual como ejemplo
Else
	m.fechavto=ventas.fecha
	xfechavto = Transform(Year(m.fechavto),"@L 9999") + Transform(Month(m.fechavto),"@L 99") + Transform(Day(m.fechavto),"@L 99") && Tomo la fecha actual como ejemplo
Endif
wsfev1 = Createobject("FEAFIPLib.wsfev1")
Wait Window "Autorizando con Webservice Afip" Nowait
jcuit=Int(Val(Alltrim(Strtran(_CUIT,"-",""))))
wsfev1.CUIT = jcuit
wsfev1.URL = URLWSW
_archivoKEY          = Sys(5)+Sys(2003)+"\afip\clave.key"
_archivoCRT          = Sys(5)+Sys(2003)+"\afip\certificado.crt"
If wsfev1.login(_archivoCRT,_archivoKEY, URLWSAA) Then
	If Not wsfev1.SFRecuperaLastCMP(Ptovta, Tipocomp) Then
		Messagebox(wsfev1.ErrorDesc)
	Else
		nro = wsfev1.SFLastCmp
	Endif
	wsfev1.Reset()
	If ventas.letra="C"
		m.cuites=Strtran(ventas.CUIT,"-","")
		m.nrofc=ventas.numero
		m.importe = ventas.Total
		wsfev1.AgregaFactura(2, 80, m.cuites,m.nrofc, m.nrofc, xfechacmp, m.importe , 0, m.importe,0, xfechacmp,xfechacmp,xfechavto, "PES", 1)
	ENDIF
	IF INLIST(ventas.letra, "A" , "B")
		m.cuites=Strtran(ventas.CUIT,"-","")
		m.nrofc=ventas.numero
		m.importe = ventas.Total
 
	='/img/emoticons/angry.gif' width='22' height='22' border='0' />	**** aqui me da el error
WSFEv1.CrearFactura(2,80,m.cuites,Tipocomp,Ptovta,m.nrofc,m.nrofc,m.importe,0,m.xneto,m.xiva,m.ximpint,0,xfechacmp,xfechacmp,xfechavto,xfechavto, "PES", 1)
 
       wsfev1.AgregaIVA(m.xcodiva, m.xneto, m.xiva)
        IF !EMPTY(m.xrni)
            wsfev1.AgregaIVA(4, m.xneto, m.xrni)
        ENDIF
       WSFEv1.AgregarTributo(4, 0, 0, m.ximpint)
          IF !EMPTY(m.ximpint)
           WSFEv1.AgregarTributo(4, 0, 0, m.imp_trib)
          ENDIF
    ENDIF
	If wsfev1.Autorizar(Ptovta, Tipocomp) Then
		If wsfev1.SFresultado(0)="A" Then
			m.cae = wsfev1.SFCAE(0)
			m.vtocae2 = wsfev1.SFVencimiento(0)
			m.vtocae  = Ctod(Right(m.vtocae2,2)+"/"+Substr(m.vtocae2,5,2)+"/"+Left(m.vtocae2,4))
			Wait Window "CAE :"+wsfev1.SFCAE(0) + " Vencimiento: " + wsfev1.SFVencimiento(0)+Chr(13)+;
				" Tipo "+Alltrim(Tipocomp)+" Punto Vta. "+Alltrim(Str(Ptovta))+" Factura "+Alltr(Str(nro)) Timeout 4
		Else
			Wait Window wsfev1.AutorizarRespuestaObs(0)
			Messagebox(wsfev1.AutorizarRespuestaObs(0))
		Endif
	Else
		Wait Window wsfev1.ErrorDesc
		Messagebox(wsfev1.ErrorDesc)
	Endif
Else
	Wait Window wsfev1.ErrorDesc
	Messagebox(wsfev1.ErrorDesc)
Endif
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar