[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