From: Thorsten H. <tho...@ar...> - 2008-12-10 15:32:50
|
Hi, I'm currently writing a client using SOAP::Lite, that connects to an IBM Tivoli Data Integrator. Here are some excerpts from the wsdl-file: ... <element name="updatePLZInformationen"> <complexType> <sequence> <element name="clientid" nillable="true" type="xsd:string" /> <element name="securitytoken" nillable="true" type="xsd:string" /> <element maxOccurs="unbounded" minOccurs="0" name="plzinfos" type="tns2:PLZInfo" /> </sequence> </complexType> </element> ... <complexType name="PLZInfo"> <sequence> <element name="kurzname" nillable="true" type="xsd:string" /> <element name="plz" nillable="true" type="xsd:string" /> <element name="stadt" nillable="true" type="xsd:string" /> <element name="status" nillable="true" type="xsd:string" /> <element name="typ" nillable="true" type="xsd:string" /> <element name="zusatz" nillable="true" type="xsd:string" /> </sequence> </complexType> ... And here is my code: ... while(...) { # Hash zusammenbasteln $hash{"kurzname"} = $kurzname; $hash{"plz"} = $plz; $hash{"stadt"} = $stadt; $hash{"status"} = $status; $hash{"typ"} = $typ; $hash{"zusatz"} = $zusatz; push(@ary,%hash); } eval { $dss->updatePLZInformationen(@ary); }; ... sub updatePLZInformationen() { my @data = shift(); my $plz = SOAP::Lite -> service('file:/path/Service.wsdl'); $plz->updatePLZInformationen(SOAP::Data->type("xsd:string")->name("clientid" => "foo")->value, SOAP::Data->type("xsd:string")->name("securitytoken" => "bar")->value, SOAP::Data->type("tns2:PLZInfo")->name("plzinfos" => @data)); } My problem is, that the last argument ("plzinfos") does not seem to be correct, because the ITDI does not recognize it as an array. Any hints, tipps, etc. would be highly appreciated :-) Thanks in advance, Thorsten |