Topic by Roy
Content
I have been able to create most operations through SOAP, but I keep running into problems when I try to add CustomFields belonging to a "package" called ABC to an Incident. I have structured the Incident object exactly the same as the object I get when I retrieve an Incident, but I keep getting the following error:
SOAP faultstring: Expected ObjectValue for property ABC While processing GenericFields[0]: ABC While processing Incident->CustomFields(rng_v1_2::GenericObject).
The PHP code looks like this:
$GenericField3 = new GenericField(); $GenericField3->name = 'abc_id'; $DataValue3 = new DataValue(); $DataValue3->StringValue = '1234'; $GenericField3->DataValue = $DataValue3; $GenericField4 = new GenericField(); $GenericField4->name = 'abc_key'; $DataValue4 = new DataValue(); $DataValue4->StringValue = 'abcdef'; $GenericField4->DataValue = $DataValue4; $genericObject = new GenericObject(); $genericObjectType = new ObjectType(); $genericObjectType->TypeName = 'IncidentCustomFieldsABC'; $genericObject->ObjectType = $genericObjectType; $genericObject->GenericFields = array($GenericField3,$GenericField4); $DataValue = new DataValue(); $DataValue->ObjectValue = $genericObject; $GenericField = new GenericField(); $GenericField->name = 'ABC'; $GenericField->DataValue = $DataValue; $CustomFields = new GenericObject(); $CustomFieldsType = new ObjectType(); $CustomFieldsType->TypeName = 'IncidentCustomFields'; $CustomFields->ObjectType = $CustomFieldsType; $CustomFields->GenericFields = array($GenericField); $Incident->CustomFields = $CustomFields;
When I look at the XML being generated it's obvious that there is something wrong as it doesn't contain and fields called abc_id or abc_key (which explains the fault response):
<ns1:CustomFields> <ns2:ObjectType> <ns2:Namespace xsi:nil="true"/> <ns2:TypeName>IncidentCustomFields</ns2:TypeName> </ns2:ObjectType> <ns2:GenericFields name="ABC"> <ns2:DataValue/> </ns2:GenericFields> </ns1:CustomFields>
Getting the SOAP API to work in the first place was quite a challenge, but once you understand the (quite complex) RightNow model I was able to create all the operations I needed. Unfortunately these custom fields are quite important for the entire flow to work as we designed... if anyone has any ideas I would be very grateful :)
I hope Oracle / RightNow adds some clearer examples and documentation for PHP to this site, that would make life a lot easier.