[uylug-programming] Fwd: [uylug-linux] Suds-community 1.0 release
Arlequín
arle at vera.com.uy
Mon Nov 15 18:14:48 PST 2021
----- Mensaje reenviado -----
De: "zetam.imap" <>
Para: <uylug-linux at listas.uylug.org.uy>
Enviados: Lunes, 15 de Noviembre 2021 17:38:15
Asunto: [uylug-linux] Suds-community 1.0 release
https://github.com/suds-community/suds#overview
Alternativa en software libre para consumir los ws de la facturación
electrónica oriental, por ejemplo. Claro, en el caso que fuera posible
hacerlos funcionar con algo que no sea C#, .NET, JAVA, GX... Intentarlo
con PHP ya empieza a complicarte la vida.
Pero bueno, cuantos más seamos en la brega supongo que habrá mayores
chances...
Para las personas del riñon java, suds sería como usar bindings de
jax-ws pero sin generar clases!
Un poco más lento, sí, mucho más sencillo, también.
Sin permisos de root, se instala así:
$~ pip install suds-community --user
Una sencilla pruebita:
$~ python
>>> from suds.client import Client
>>> cliente =
Client("https://efactura.dgi.gub.uy:6460/ePrueba/ws_consultasPrueba?wsdl")
>>> print(cliente)
>>> print(cliente.wsdl.services)
Ahí te va a mostrar los métodos, operaciones, servicios, etc que están
disponibles es ese ws.
Ahora, cayendo en el planeta tierra, te vas a chocar con dificultades
como las que se relatan aquí, tratando de hacerlo con php:
https://gist.github.com/MaskeZen/bb33acc685732ce0161bb23bdf5f4ab8
Si no te prendés a alguno de esos """tip$""", por ahora es muy difícil
lograr que efactura-dgi funcione.
Haciéndola corta, uno que funciona con suds es el ws de cotizaciones de BCU
https://github.com/emezeta/cotizabcu#cotizaciones-de-moneda-extranjera-bcu
este debería funcionar
|from suds.client import Client # toc toc, el menú del día cual es?
cliente =
Client('https://cotizaciones.bcu.gub.uy/wscotizaciones/servlet/awsbcucotizaciones?wsdl')
# print(cliente.wsdl) <- acá podés ver métodos, operaciones, etc... que
trae suds al consultar el ws. # con esa info creamos el objeto
cotiza_obj = cliente.factory.create("wsbcucotizacionesin") # cargamos
los valores de la consulta (son los valores que llevará nuestro mensaje
SOAP) cotiza_obj.FechaDesde = '2021-11-10' cotiza_obj.FechaHasta =
'2021-11-15' cotiza_obj.Grupo = 2 cotiza_obj.Moneda = {'item': 2225} #
consumimos el servicio web (`cliente` lleva el mensaje SOAP, el servidor
atiende y carga # su propio mensaje de respuesta, que guardamos en
`resultados`) resultados = cliente.service.Execute(cotiza_obj) # a ver
que sale? print(resultados) |
ave fun fun fun! (que significa "que se diviertan mucho" para los que
sabemos esperanto, obvio)
More information about the Uylug-programming
mailing list