It looks like the intent was to just use the custom field values from the incident object directly. This is more convenient for updates than adds, becuause you have a 'fully populated' CustomFieldValues object. I think you can just fetch any incident record (just need to do this once) and use it's CustomFieldValues as a template for new ones that you create.
But there seems to be some problems with add & update web services in 2008, I cannot get any of them to work (even with the new api's that don't have the custom field values as the third param)
Any time I try an update, I get the following:
SoapException: Server was unable to process request. ---> Procedure
or function spU_DefectCustomFields has too many arguments specified.
at
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage
message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at OnTime.DefectService.DefectHandler.UpdateDefect(Guid securityToken,
Defect defect) in C:\Documents and Settings\cprinos\My Documents\Visual
Studio 2005\Projects\OnTime\OnTime2008\Web
References\DefectService\Reference.cs:line 245
also, looking at the response from the web service asmx pages, it seems like some fields (and all custom fields) are just missing: For this is the one for https://OnTimeServer/OnTime2008sdk/IncidentService.asmx?op=AddIncident (the same thing in 2007 shows all custom fields):
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<AddIncident xmlns="http://axosoft.com/ontime/webservices/">
<securityToken>guid</securityToken>
<incident>
<IncidentId>int</IncidentId>
<CreatedDateTime>dateTime</CreatedDateTime>
<LastUpdatedDateTime>dateTime</LastUpdatedDateTime>
<IncidentNumber>string</IncidentNumber>
<Description>string</Description>
<ReplicationProcedures>string</ReplicationProcedures>
<Resolution>string</Resolution>
<Notes>string</Notes>
<StatusTypeId>int</StatusTypeId>
<SeverityTypeId>int</SeverityTypeId>
<ReportedDate>dateTime</ReportedDate>
<StartDate>dateTime</StartDate>
<CompletionDate>dateTime</CompletionDate>
<PercentComplete>unsignedByte</PercentComplete>
<EscalationLevelId>int</EscalationLevelId>
</incident>
</AddIncident>
</soap:Body>
</soap:Envelope>