Bonjour,

je créé un client en python qui consomme un service web via un wsdl qui genere l'interface de mes methodes.
j'ai 2 methode, une qui liste des string dans une bd, et une seconde qui peut ajouter des valeur. ( listPs et createPs)

l'appel de list est ok, je recupere le message soap
mais la deuxieme je bataille pour lui fournir des données en argument, pour lui setter les champs (equivalent java).

voila ma classe interface:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class createPs_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
        schema = "http://service.repository.codac.iter.org/"
        type = (schema, "createPs")
        def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
            ns = ns0.createPs_Def.schema
            TClist = [ZSI.TC.String(pname="arg0", aname="_arg0", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="arg1", aname="_arg1", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="arg2", aname="_arg2", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
            self.attribute_typecode_dict = attributes or {}
            if extend: TClist += ofwhat
            if restrict: TClist = ofwhat
            ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
            class Holder:
                typecode = self
                def __init__(self):
                    # pyclass
                    self._arg0 = None
                    self._arg1 = None
                    self._arg2 = None
                    return
            Holder.__name__ = "createPs_Holder"
            self.pyclass = Holder

l'appel du web service :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from ZSI import TC
from ZSI.client import Binding
 
from PlantSystemServiceImplService_services import *
from PlantSystemServiceImplService_services_types import *
import sys
import PlantSystemServiceImplService_services
import PlantSystemServiceImplService_services_types
serverPath ="http://localhost:8080/repository/services/PlantSystemService"
 
 
mybind = Binding(url=serverPath,port=8080,tracefile=sys.stdout)
 
msg2= PlantSystemServiceImplService_services.createPs()
create= ns0.createPs_Def()
#setter les arg
create....
 
 
#msgresp=PlantSystemServiceImplService_services_types.ns0.listPsResponse_Dec()
 
mybind.Send(serverPath,"ns1:createPs", msg2)
 
response= mybind.ReceiveRaw()
je galere depuis hier aprés, si quelqu'un peut m'aider