Обновление не работает в SalesForce API - PullRequest
8 голосов
/ 01 марта 2012

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

Код ниже выполняется нормально, а возвращенный saveResult сообщает, что операция прошла успешно.

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

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

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 Ответ

19 голосов
/ 02 марта 2012

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

updateParticipant.aDateField_StartDate__c = DateTime.Now;
updateParticipant.aDateField_StartDate__cSpecified = true;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...