【问题标题】:Inserting records to a child custom object in Salesforce Apex在 Salesforce Apex 中将记录插入到子自定义对象
【发布时间】:2020-01-31 22:48:01
【问题描述】:

我正在尝试将记录插入到子对象中,它给了我 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 apex apex-code


    【解决方案1】:

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

    填充对象的Name 字段不会影响任何关系。

    您只能通过填充关系字段的 sObject 版本(后缀为__r)来使用父对象上的外部 ID 字段的值来填充关系字段。 Apex Developer Guide 中描述了这样做的语法。

    【讨论】:

    • 那是超级快。谢谢@DavidReed
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    相关资源
    最近更新 更多