Вставка записей в дочерний пользовательский объект в Salesforce Apex - PullRequest
0 голосов
/ 01 февраля 2020

Я пытаюсь вставить запись в дочерний объект, это дает мне StringException: Invalid ID error. Здесь я заполняю список cityStats записями для вставки и затем завершаю Database.SaveResult [] для сохранения в объект city_stat. В приведенном ниже разделе полей я помещаю значение переменной theCity в два поля: одно - в поле отношения master-detail, другое - в столбец Name в объекте city_stat. Это правильный способ вставки в дочерний объект.

    List<sumchans__City_Stat__c> cityStats = new List<sumchans__City_Stat__c>();
    sumchans__City_Stat__c stat = new sumchans__City_Stat__c();
    stat.Name = theCity;// City name column in the City Stat table
    stat.sumchans__Name__c = theCity;**// Master-Detail relationship field - referenced to City_Master, CITY_NAME Column**
    stat.sumchans__ON_BILLINGS__c = onBillings;
    stat.sumchans__OFF_BILLINGS__c = offBillings;
    stat.sumchans__TOTAL_INTERNET_OFFERINGS__c = internetOfferings;
    stat.sumchans__TOTAL_VIDEO_OFFERINGS__c = videoOfferings;
    stat.sumchans__TOTAL_PHONE_OFFERINGS__c = phoneOfferings;
    cityStats.add(stat);
 } 

     Database.SaveResult[] saveCityStats = Database.Insert(cityStats, false);

1 Ответ

1 голос
/ 01 февраля 2020

Единственное допустимое значение, которое нужно поместить в поле отношений Salesforce, - это Id: 15-значный символ записи Salesforce, состоящий из 15 или 18 символов. Недопустимо помещать любое другое значение в поле отношения, включая поле имени родительской записи или ссылку на внешний идентификатор. Вы всегда получите StringException, если поместите любое значение, отличное от действительного Salesforce Id, в поле отношения.

Заполнение поля Name объекта не влияет ни на одно отношение.

Вы можете заполнить поле отношения, используя значение поля External Id в родительском объекте, только заполнив версию поля отношения sObject, в которой добавляется __r. Синтаксис для этого описан в Apex Developer Guide .

...