如果对象“ A”的阶段字段具有“已完成”作为值,则我试图防止删除作为对象“ A”的子级的记录。
如何使用触发器满足条件? 如果触发器无法做到这一点,那么还有更好的方法吗? 预先谢谢你。
答案 0 :(得分:0)
如果该关系是主从关系,则可以对主对象执行汇总汇总和验证规则,例如ISPICKVAL(Stage__c, 'Completed') && PRIORVALUE(Rollup__c) > Rollup__c
。
如果只是查找-在子对象上触发。验证规则不会在要删除的记录上触发。
这样的事情(可能有语法错误,但只是为了让您理解)
trigger ObjectATrigger on ObjectA__c (before delete){
Map<Id, Parent__c> parents = new Map<Id, Parent__c>([SELECT Id
FROM Parent__c
WHERE Stage__c = 'Completed'
AND Id IN (SELECT Parent__c FROM ObjectA__c WHERE Id IN :trigger.old)]);
for(ObjectA__c o : trigger.old){
if(parents.containsKey(o.Parent__c)){
o.addError('Nice try');
}
}
}
答案 1 :(得分:0)
很抱歉如此模棱两可地提出问题。实际上,我很想知道如果“文件”对象的相关父级的状态字段值设置为“已完成”,则可以防止插入/更新/删除。答案是利用ContentDocument和ContentDocumentLink上的触发器。谢谢!