将记录插入 Salesforce Apex 中的子自定义对象

Inserting records to a child custom object in Salesforce Apex

我正在尝试将记录插入到子对象中,但出现 StringException:Invalid ID 错误。 在这里,我用要插入的记录填充 cityStats 列表,然后最终 Database.SaveResult[] 保存到 city_stat 对象。在下面的字段部分,我将 theCity 变量值放入两个字段中,一个是主从关系字段,另一个是 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);

放置在 Salesforce 关系字段中的唯一有效值是 Id:15 或 18 个字符的 Salesforce 记录 ID。在关系字段中放置任何其他值是无效的,包括父记录的名称字段或外部 ID 引用。如果您在关系字段中放置有效 Salesforce Id 以外的任何值,您将始终收到 StringException

填充对象的 Name 字段对任何关系都没有影响。

您可以使用父对象上外部 ID 字段的值填充关系字段,只需填充关系字段的 sObject 版本,后缀为 __rApex Developer Guide.

中描述了这样做的语法