首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >未创建所有记录

未创建所有记录
EN

Stack Overflow用户
提问于 2012-06-07 10:24:29
回答 2查看 1K关注 0票数 0

在顶端代码中,我写了2个触发器。我有两个对象A和B,我需要在创建A对象时创建B对象的记录。例如:当创建对象A的1个记录时,然后创建对象B的4个记录。我已经写了2个触发器1用于在创建A对象时在B对象中的一些字段(这是在插入之前,在更新之前)触发器和2个触发器是在创建A的记录时创建对象B的记录(这是在插入之后,在更新之后)触发器。

但当我创建对象A的I记录时,然后创建了4个记录id。但当使用Apex Data Loader创建对象A的记录时,此时将为A创建2条记录,但对于B对象仅创建4条记录。这是为A对象的第二条记录创建的。

我将代码更改为

对于(对象e: Trigger.new){

for(){为B对象创建4条记录}}

当我这样做的时候,我得到了这个错误

插入失败。第0行的第一个异常,id为abcdef12345;第一个错误: INVALID_FIELD_FOR_INSERT_UPDATE,无法在插入调用中指定Id : Id

有人能帮我解决这个问题吗?感谢Anu

EN

回答 2

Stack Overflow用户

发布于 2012-06-07 15:49:34

错误消息告诉您无法为ID字段赋值。ID字段受保护,其值由Salesforce.com自动生成。

从insert语句中删除ID字段。

票数 0
EN

Stack Overflow用户

发布于 2012-06-07 15:55:03

在before insert触发器期间,Id还没有填充,所以您可能引用它太早了,可能试图将B记录指向A记录。另一个问题是试图给B.Id赋值。这两个代码问题如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
trigger trigA on A__c (before insert) {
    List<B__c> listB = new List<B__c>();
    for (A__c a : trigger.new) {
        B__c b = new B__c();
        B__c.reference_to_A__c = a.Id; // <-- Wrong! a.Id isn't populated yet in before insert
        B__c.Id = '...'; // <-- Wrong! Salesforce generates the Id field for you
        listB.add(b);
    }
    insert listB;
}

多看看你的代码会很有帮助的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10929954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文