Unhashable type dict FESolicitarCae

92 views
Skip to first unread message

Leax Guidi

unread,
Jun 18, 2014, 3:00:01 PM6/18/14
to pyaf...@googlegroups.com, Leax Guidi
Estimados, disculpen las molestias, tengo un problema cuando solicito el cae de una factura, al momento de enviar al servidor de afip el diccionario de iva, tributos y comprobantes asociados me da ese error "Unhashable type dict", adjunto el codigo de la clase cliente del proyecto pysoap. si necesitan mas informacion pidanme que adjunto lo que hice yo y las demas clases que estoy utilizando. muchas gracias.

cuando hace el if key not in struct, me da el error.

print "1.struct:" + str(struct)  
            print "2.dict:" + str(dict)
            print "2.1.value:" + str(value)
            if struct and value:
                for key in value:
                    if key not in struct:
                        valid = False
                        errors.append('Argument key %s not in parameter. parameter: %s, args: %s' % (key, struct, value))
                    else:
                        print "   3.Llamada struct[key]:" + str(struct[key]) 
                        print "   4.Llamada value[key]:" + str(value[key]) 
                        next_valid, next_errors, next_warnings = self.wsdl_validate_params(struct[key], value[key])
                        if not next_valid:
                            valid = False
                        errors.extend(next_errors)
                        warnings.extend(next_warnings)
                for key in struct:
                    if key not in value:
                        warnings.append('Parameter key %s not in args. parameter: %s, value: %s' % (key, struct, value))
            elif struct and not value:
                warnings.append('parameter keys not in args. parameter: %s, args: %s' % (struct, value))
            elif not struct and value:
                valid = False
                errors.append('Args keys not in parameter. parameter: %s, args: %s' % (struct, value))
            else:

Mariano Reingart

unread,
Jun 19, 2014, 11:11:57 AM6/19/14
to pyaf...@googlegroups.com
2014-06-18 16:00 GMT-03:00 Leax Guidi <lg....@gmail.com>:
Estimados, disculpen las molestias, tengo un problema cuando solicito el cae de una factura, al momento de enviar al servidor de afip el diccionario de iva, tributos y comprobantes asociados me da ese error "Unhashable type dict", adjunto el codigo de la clase cliente del proyecto pysoap. si necesitan mas informacion pidanme que adjunto lo que hice yo y las demas clases que estoy utilizando. muchas gracias.

cuando hace el if key not in struct, me da el error.

Ese es un error en la biblioteca subyacente de manejo de webservices (pysimplesoap), no entiendo bien como llega a suceder (no debería porque justamente de todo ese manejo se encarga esta librería).
Podes adjuntar tu código que estas usando para ver cual sería el error, igualmente podes ver las opciones a continuación:

Si lo necesitas para python, podes ver los test unitarios usando esta librería (pyafipws y python obviamente):


Si queres conectarte directamente al webservice, podes ver los tests te la bibiloteca SOAP (pysimplesoap):


No recomiendo esta última opción porque tendrías que hacer todo el manejo de errores, reproceso, campos opcionales, etc. que ya esta implementado en esta biblioteca.

Sds

Leax Guidi

unread,
Jun 19, 2014, 11:48:27 AM6/19/14
to pyaf...@googlegroups.com, lg....@gmail.com
Mariano adjunto el código completo, de paso probare los test unitarios que me recomendaste, pero adjunto los archivos para que los veas. Muchas gracias por responder y por la ayuda.
FE.rar

Mariano Reingart

unread,
Jun 19, 2014, 12:13:23 PM6/19/14
to pyaf...@googlegroups.com, lg....@gmail.com
2014-06-19 12:48 GMT-03:00 Leax Guidi <lg....@gmail.com>:
Mariano adjunto el código completo, de paso probare los test unitarios que me recomendaste, pero adjunto los archivos para que los veas. Muchas gracias por responder y por la ayuda.


En principio estaría bien el código, justo armé un ejemplo similar porque no me quedaba claro como lo estabas usando:

https://code.google.com/p/pyafipws/wiki/FacturaElectronicaPython

¿Que versión de pysimplesoap estas usando (debes usar la rama "reingart")?
¿Seguiste los pasos de instalación como dice el instructivo?


Más allá de eso, ¿podrías llenar un ticket? asi en cuanto tenga tiempo lo pruebo bien para ver si puedo reproducirlo con la última versión de las bibliotecas

Leax Guidi

unread,
Jun 19, 2014, 1:02:10 PM6/19/14
to Mariano Reingart, pyaf...@googlegroups.com
no instale el pysimplesoap, directamente se lo agregue al proyecto y lo llame desde ahí, necesita alguna librería mas para funcionar correctamente? disculpa las molestias


Lea Guidi

Mariano Reingart

unread,
Jun 19, 2014, 1:40:51 PM6/19/14
to Leax Guidi, pyaf...@googlegroups.com
2014-06-19 14:02 GMT-03:00 Leax Guidi <lg....@gmail.com>:
no instale el pysimplesoap, directamente se lo agregue al proyecto y lo llame desde ahí, necesita alguna librería mas para funcionar correctamente? disculpa las molestias


Puede que tengas la versión de desarrollo de la biblioteca SOAP, te recomiendo descargar la última versión estable como dice el instructivo:

https://pysimplesoap.googlecode.com/archive/reingart.zip

Te debería funcionar sin problema, igualmente si podes llena un issue como te comente en el mail anterior asi cuando tenga tiempo veo si puedo reproducirlo y depurarlo.

También, fijate el ejemplo que documente en la wiki, tiene algunas cosas corregidas y comentarios que veo que en tu prueba tenes mal (por ej. moneda DOL no se puede utilizar ahora):

Leax Guidi

unread,
Jun 19, 2014, 1:58:21 PM6/19/14
to Mariano Reingart, pyaf...@googlegroups.com
Mariano, Muchísimas gracias por tu ayuda ahí pude obtener el cae de la factura, gracias.


Lea Guidi
Reply all
Reply to author
Forward
0 new messages