I am having major problems calling a WSDL function. I believe the function creates an object but I am unsure how to call the WSDL function. I am trying to call the PutData function but I need the ImportPlannedVisit complexType. I do not know how to create the complexType so that I can use the PutData function. I keep getting a 500 error.
This is how I call the WSDL:
$this->client = new soapClient("somewsdl.asmx?wsdl",array(
"location"=>"somewsdl.asmx"
));
Here is part of the WSDL:
<s:element name="PutData">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ID" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Pwd" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Token" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="BatchData" nillable="true" type="tns:ImportBatch" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ImportBatch">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="AgenciesBatch" type="tns:ArrayOfImportAgency" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfImportAgency">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="AgencyBatch" nillable="true" type="tns:ImportAgency" />
</s:sequence>
</s:complexType>
<s:complexType name="ImportAgency">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="PlannedVisits" type="tns:ArrayOfImportPlannedVisit" />
</s:sequence>
</s:complexType>
<s:complexType name="ImportPlannedVisit">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="UniquePlannedVisitID" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="Date1" type="s:dateTime" />
<s:element minOccurs="0" maxOccurs="1" name="StartTime" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="EndTime" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="AlarmTime" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="UniqueClientID" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="UniqueCarerID" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="StaffAlarmTime" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ChargeCode" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="VisitNotes" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ContactTypeID" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="IsInvoiceFlag" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="IsRaiseAlerts" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ContractReference" type="s:string" />
</s:sequence>
</s:complexType>
<s:complexType name="ImportPlannedVisit">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="UniquePlannedVisitID" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="Date1" type="s:dateTime" />
<s:element minOccurs="0" maxOccurs="1" name="StartTime" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="EndTime" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="AlarmTime" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="UniqueClientID" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="UniqueCarerID" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="StaffAlarmTime" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ChargeCode" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="VisitNotes" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ContactTypeID" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="IsInvoiceFlag" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="IsRaiseAlerts" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ContractReference" type="s:string" />
</s:sequence>
</s:complexType>
Here is what I have tried:
$return = $this->client->ImportPlannedVisit(
$id, // UniquePlannedVisitID
$datedos, // Date1
$timein, // StartTime
$timeout, // EndTime
$alarm_time, // AlarmTime
$ptid, // UniqueClientID
$agent1, // UniqueCarerID
"", // StaffAlarmTime
"$hcpcs|$mod1-$mod2-$mod3-$mod4|$pricegroup|$pricecode|$dadscontract", // ChargeCode
"", // VisitNotes
"", // ContactTypeID
"", // IsInvoiceFlag
"", // IsRaiseAlerts
$contractreference // ContractReference
);
And:
$return = $this->client->ImportPlannedVisit(array(
'UniquePlannedVisitID' => $id,
'Date1' => $datedos,
'StartTime' => $timein,
'EndTime' => $timeout,
'AlarmTime' => $alarm_time,
'UniqueClientID' => $ptid,
'UniqueCarerID' => $agent1,
'ChargeCode' => "$hcpcs|$mod1-$mod2-$mod3-$mod4|$pricegroup|$pricecode|$dadscontract",
'contractreference' => $contractreference
));