我有 2 个基于查找关系的对象,即 1) 分配 2) 库存。
关系是 1 个库存可以分配给多个(1 对多个)。
库存具有称为“状态”的选项列表值,其中包含 2 个值,即“已分配”和“备份”。因此,当分配任何库存时,值将从“备份”更改为“已分配”。
每当删除分配对象的任何记录时,自动关联的对象(库存)字段“状态”应从“已分配”更新为“备份”。
否则我将需要手动更改库存对象的状态 每当从分配中删除任何记录时,“分配”到“备份”,这是我不想要的。
您需要使用 BEFORE DELETE 上下文创建触发器。
trigger Assign on Assign__c ( before delete ) {
if( Trigger.isBefore )
{
if( Trigger.isDelete )
{
List< Inventory__c > lstInventory = [Select Id, Status__c From Inventory__c Where Assign__c =: newMap.kseyset()];
for( Inventory__c i : lstInventory ){
i.Status__c = 'Backup';
}
update lstInventory;
}
}
}
如果不尝试使用 oldMap,则需要检查当删除记录上下文被触发时 newMap 是否已填充。
不要忘记使用最佳实践来开发代码。
希望能帮到你。