Обновление не работает в API SalesForce

Я пытаюсь обновить запись через API SalesForce (Enterprise WSDL).

Приведенный ниже код выполняет штраф, и возвращенный saveResult говорит, что операция прошла успешно.

Тем не менее, когда я смотрю в SalesForce, запись не обновляется. Единственное, что я могу придумать, это то, что я использую неверный идентификатор. Но у меня есть пятерка, проверили это и снова проверили, а затем повторно проверили.

Кто-нибудь сталкивался с чем-то подобным раньше? В качестве альтернативы, я буду так рад, если кто-то может указать на тупую ошибку, которую я, вероятно, сделал где-то: -)

sforce.Participant__c updateParticipant = new sforce.Participant__c();
 updateParticipant.Id = participant.Id.Length == 15? participant.Id : participant.Id.Substring(0, 15);
 if (updateType == "pre")
 {
 updateParticipant.Manual_Download_Date__c = DateTime.Now;
 updateParticipant.Manual_Download__c = true;
 }
 else if (updateType == "post")
 {
 updateParticipant.Post_Class_Manual_Download__c = true;
 updateParticipant.Post_Class_Manual_Downloaded_Date__c = DateTime.Now;
 }
 sforce.SaveResult[] result = SFLib.sfdc.update(new sforce.sObject[] { updateParticipant });
 if (result == null || result.Length <= 0)
 return false;
 else
 {
 if (result[0].success == true)
 return true;
 else
 throw new Exception("Update participant failed", new Exception(result[0].errors[0].message));
 }
1 ответ

При использовании .Net для вызова метода Update в API вам необходимо явно указать поле * fieldname__cSpecified *. Например.

updateParticipant.aDateField_StartDate__c = DateTime.Now;
updateParticipant.aDateField_StartDate__cSpecified = true;

licensed under cc by-sa 3.0 with attribution.