From: Stefan K. <st...@ca...> - 2005-07-26 17:25:26
|
Yeah that is basically what I had come up with too. Two things to note, the error I receive back when calling the method I solved when sending that payload by putting in the default namespace into the RQ (ie: xmlns="http://www.test.com/"), maybe I do not have my client setup properly. The second strange thing I am finding is that after I do the call() method and print out the client->request I notice the body of the soap message is empty (<SOAP-ENV:Body><Request/></SOAP-ENV:Body>). Anyway here is the part of the wsdl that relates to this method: <s:element name="RQ" type="s0:RQType"/> <s:complexType name="RQType"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="POS" type="s0:ArrayOfSourceType"/> <s:element minOccurs="0" maxOccurs="1" name="RQCore" type="s0:RQCoreType"/> </s:sequence> <s:attribute default="Production" name="Target" type="s0:TargetType"/> </s:complexType> <s:complexType name="ArrayOfSourceType"> <s:sequence> <s:element minOccurs="0" maxOccurs="unbounded" name="Source" type="s0:SourceType"/> </s:sequence> </s:complexType> <s:complexType name="SourceType"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="RequestorID" type="s0:UniqueID_Type"/> </s:sequence> </s:complexType> <s:complexType name="UniqueID_Type"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="CompanyName" type="s0:CompanyNameType"/> </s:sequence> <s:attribute name="Type" type="s:string"/> <s:attribute name="ID" type="s:string"/> </s:complexType> <s:complexType name="CompanyNameType"> <s:simpleContent> <s:extension base="s:string"> <s:attribute name="CompanyShortName" type="s:string"/> </s:extension> </s:simpleContent> </s:complexType> <s:complexType name="RQCoreType"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="Core" type="s0:CoreType"/> </s:sequence> <s:attribute name="Status" type="s0:InventoryStatusType" use="required"/> </s:complexType> <s:complexType name="CoreType"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="PLocation" type="s0:LocationType"/> <s:element minOccurs="0" maxOccurs="1" name="RLocation" type="s0:LocationType"/> </s:sequence> <s:attribute name="PTime" type="s:dateTime"/> <s:attribute name="RTime" type="s:dateTime"/> </s:complexType> <s:complexType name="LocationType"> <s:simpleContent> <s:extension base="s:string"> <s:attribute name="Code" type="s:string"/> </s:extension> </s:simpleContent> </s:complexType> <s:simpleType name="InventoryStatusType"> <s:restriction base="s:string"> <s:enumeration value="Available"/> <s:enumeration value="Unavailable"/> <s:enumeration value="OnRequest"/> <s:enumeration value="Confirmed"/> <s:enumeration value="All"/> </s:restriction> </s:simpleType> Thanks, Stefan Scott Nichol wrote: >>From just looking at the payload below and not knowing the WSDL, the code to build the request would look something like this: > >$RequestorID = array('!Type' => '00', '!ID' => 'MYID'); >$Source = array('RequestorID' => $RequestorID); >$POS = array('Source' => $Source); > >$PLocation = array('!Code' => '001'); >$RLocation = array('!Code' => '001'); >$Core = array( > '!PTime' => '2005-08-04T09:00:00', > '!RTime' => '2005-08-04T09:00:00', > 'PLocation' => $PLocation, > 'RLocation' => $RLocation >); >$RQCore = array( > '!Status' => 'Available', > 'Core' => $Core >); > >$RQ = array('!Target' => 'Test', 'POS' => $POS, 'RQCore' => $RQCore); > >$ret = $client->call('RQ', array('parameters' => $RQ)); > >Scott Nichol > >Do not send e-mail directly to this e-mail address, >because it is filtered to accept only mail from >specific mail lists. >----- Original Message ----- >From: "Stefan Klopp" <st...@ca...> >To: <nus...@li...> >Sent: Tuesday, July 26, 2005 12:34 PM >Subject: [Nusoap-general] Complex Soap message > > > > >>Hi, >> >>I am trying to do a soap call using client->call() however I am having a >>hard time forming my parameter variable so that it produces the right >>message. I have made a successful method call using the client->send() >>method and creating my own soap message but would prefer using the >>call() method if possible. The message I am trying to send is as follows: >> >><RQ Target="Test" xmlns="http://www.test.com/"> >> <POS> >> <Source> >> <RequestorID Type="00" ID="MYID"> >> </RequestorID> >> </Source> >> </POS> >> <RQCore Status="Available"> >> <Core PTime="2005-08-04T09:00:00" RTime="2005-08-04T09:00:00"> >> <PLocation Code="001" /> >> <RLocation Code="001" /> >> </Core> >> </RQCore> >></RQ> >> >>Any help with this would be greatly appreciated. >> >>Stefan >> >> >>------------------------------------------------------- >>SF.Net email is sponsored by: Discover Easy Linux Migration Strategies >>from IBM. Find simple to follow Roadmaps, straightforward articles, >>informative Webcasts and more! Get everything you need to get up to >>speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click >>_______________________________________________ >>Nusoap-general mailing list >>Nus...@li... >>https://lists.sourceforge.net/lists/listinfo/nusoap-general >> >> >> > > >------------------------------------------------------- >SF.Net email is sponsored by: Discover Easy Linux Migration Strategies >from IBM. Find simple to follow Roadmaps, straightforward articles, >informative Webcasts and more! Get everything you need to get up to >speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&op=click >_______________________________________________ >Nusoap-general mailing list >Nus...@li... >https://lists.sourceforge.net/lists/listinfo/nusoap-general > > > > |