[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