Возможно, компромиссная архитектура заключалась бы в написании чрезвычайно маленького и простого триггера после удаления, который просто копирует удаленные записи, о которых идет речь, в какой-то новый пользовательский объект.Этот новый пользовательский объект запускает ваше правило рабочего процесса и, таким образом, отправляет искомое исходящее сообщение.Единственная проблема заключается в том, чтобы периодически очищать данные пользовательских объектов, размер которых будет увеличиваться по мере удаления записей из другого объекта.Другими словами, ваш «царапающий» объект просто нуждается в периодической очистке - что может быть выполнено по ночному расписанию с помощью пакетного Apex.
Вот триггер удаления, который бы справился с задачей, используя Opportunity в качестве примера:
trigger AfterDelete on Opportunity (after delete)
{
List<CustObj__c> co = new List<CustObj__c>();
for(Opportunity o : Trigger.old)
{
CustObj__c c = new CustObj__c();
c.Name = o.Name;
c.Amount__c = o.Amount;
c.CloseDate__c = o.CloseDate;
c.Description__c = o.Description;
// etc.
co.add(c);
}
insert co;
}
Это не идеально, но по крайней мере это избавит вас от необходимости кодировать ваши собственные исходящие сообщения на основе триггера.Это может быть сделано только с помощью аннотации @Future, кстати, поскольку вызовы непосредственно из триггеров запрещены.Надеюсь, это поможет.