[pyar] Parámetro en webservices...

Mariano Reingart reingart en gmail.com
Sab Ago 24 13:12:10 ART 2013


Hola Mauricio:

Había un inconveniente con los nuevos cambios para anlizar el wsdl en
PySimpleSoap.
Ya esta subida la corrección al repositorio, podes descargarla con:

hg clone https://code.google.com/p/pysimplesoap/
hg pull
hg update wsdl_namespaces

Para los tipos complejos como "guid" en este caso, simplemente tenes
que usar diccionarios.
La llamada sería algo como:

r  = client.CancelaMultiple(
            ListaCancelar=[{"guid": "abcdabcd-abcd-abcd-acbd-abcdabcdabcd"}],
            RFC="AAA010101AAA",
            Token="62cb344df85acab90c3a68174ed5e452b3c50b2a",
            TransaccionID=1234)

Te adjunto un ejemplo de código completo,

Gracias por probarlo, cualquier cosa avisame

Sds

Mariano Reingart
http://www.sistemasagiles.com.ar
http://reingart.blogspot.com


2013/8/24 Mauricio Baeza <mauricio02 en correolibre.org>:
> Hola de nuevo...
>
> Esta resuelto... temporalmente... el mensaje soap correcto es:
>
> xml_soap = """<?xml version="1.0" encoding="UTF-8"?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>     xmlns:cfdi="http://Ecodex.WS.Model/2011/CFDI">
>     <soapenv:Header/>
>     <soapenv:Body>
>     <cfdi:SolicitudCancelaMultiple>
>         <cfdi:ListaCancelar>
>             <cfdi:guid>{uuid}</cfdi:guid>
>         </cfdi:ListaCancelar>
>         <cfdi:RFC>{rfc}</cfdi:RFC>
>         <cfdi:Token>{token}</cfdi:Token>
>         <cfdi:TransaccionID>{transaccion}</cfdi:TransaccionID>
>     </cfdi:SolicitudCancelaMultiple>
>     </soapenv:Body>
> </soapenv:Envelope>
> """.format(
>     uuid = uuid,
>     rfc = rfc_emisor,
>     token = token_usuario,
>     transaccion = id_transaccion)
>
>
> Ahora la pregunta es... ¿como hacer para que pysimplesoap me generé este
> mensaje? la única parte que me falta es:
>
>         <cfdi:ListaCancelar>
>             <cfdi:guid>{uuid}</cfdi:guid>
>         </cfdi:ListaCancelar>
>
> Gracias por adelantado...
>
>
> ____________________________________
> Todo lo que no es dado es perdido
>
>
> 23/08/13 18:32:05, Mauricio Baeza <mauricio02 en correolibre.org>:
>
> Hola a todos...
>
> No logro interpretar el tipo de argumento de un webservices, a ver si
> alguien ha usado uno similar.
>
> El webservices es:
> https://wsdexpruebas.ecodex.com.mx:2045/ServicioCancelacion.svc?wsdl
> El método que me interesa es: CancelaMultiple
>
> Esta es la información de ayuda que me da pysimplesoap
>
> CancelaMultiple(ListaCancelar=[{u'guid': {}}], RFC=<type 'str'>, Token=<type
> 'str'>, TransaccionID=<type 'long'>)
>  -> {u'Resultado': [{u'ResultadoCancelacion': {u'UUID': {}, u'Estatus':
> <type 'str'>}}], u'TransaccionID': <type 'str'>}:
>
> El argumento con el problema es ListaCancelar, suds me lo muestra así:
>
> (ListaCancelar){
>    guid[] = <empty>
>  }
>
> El proveedor tiene un ejemplo pero en C#:
>
>  var lista = new SrvCancelacion.ListaCancelar();
>                     string resultado =
> string.Empty;
>                     foreach (string uuid in
> listado)
>                     {
>                         lista.Add(Guid.Parse(uuid));
>                     }
>
> En la definición del webservices veo lo siguiente que no me aclara mucho:
>
>   <xs:complexType name="ListaCancelar">
>     <xs:sequence>
>       <xs:element minOccurs="0" maxOccurs="unbounded"
> name="guid" type="ser:guid"
> />
>     </xs:sequence>
>
>
>   <xs:element name="guid" nillable="true" type="tns:guid" />
>   <xs:simpleType name="guid">
>     <xs:restriction base="xs:string">
>       <xs:pattern
> value="[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}"
> />
>     </xs:restriction>
>   </xs:simpleType>
>
>
> He probado variantes con listas, tuplas, diccionarios sin éxito...
>
> ¿alguna idea?
>
> Saludos
>
>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: test_mauricio3.py
Type: application/octet-stream
Size: 1226 bytes
Desc: no disponible
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130824/3d1401fe/attachment.obj>


More information about the pyar mailing list