0

你好,代码爱好者,我正在尝试学习 apex 代码并遇到一个问题。由于这里的大多数人都是狂热的代码爱好者并且对解决问题感到兴奋,我想我可以解决问题。

我正在尝试在一个名为 Book 的对象上创建一个触发器,该触发器执行以下操作:删除时,所有关联的章节也被删除 还有一个名为 Chapter 的对象,它具有对 book 的查找。

这是我的尝试。这是我第一次尝试顶点,所以请耐心等待。有人愿意涉足这段代码吗?

 trigger DeleteChaptersTrigger on Book__c (before delete) {
 List<Book__c> book = Trigger.old;
 List<Chapter__c> chapters = new List<Chapter__c>();
 Set set = new Set();

  for (Book__c b :books){
  if ()
   }
 }
4

2 回答 2

3

您需要编写所有触发器,考虑到触发器可能在任何时候处理许多记录,因此您需要批量处理触发器代码。

以下是触发器对象上可用的变量。

您想要获取所有将被删除的记录 ID。使用 上的keyset方法oldmap来获取此信息,而无需循环和创建您自己的集合。然后您可以删除从查询返回的记录。

trigger DeleteChaptersTrigger on Book__c (before delete) {
    Set<string> bookids = Trigger.oldMap.keyset();
    delete [SELECT Id FROM Chapter__c WHERE Book__c IN :bookids];     
}

Apex 代码与其他语言不同,它与重复使用的单词混淆,比如设置为变量名。Apex 也不区分大小写。

于 2013-02-12T23:49:12.170 回答
2

由于您拥有完全控制权,我建议您更改自定义对象相互关联的方式。

没有一本书,一章就没有意义/价值,所以我们想改变两者之间的关系。

移除对章节对象的查找并将其替换为主从细节。当主记录被删除时,Salesforce 会自动删除与详细信息相关的记录。这就是您想要的,并且无需编码。

于 2013-02-12T23:28:35.277 回答