【发布时间】:2018-07-14 23:10:49
【问题描述】:
下面的触发器用于从审批流程列表中提取最新的“分配给”用户(或OriginalActorId),Approval_started__c 字段被检查为来自特定审批流程的初始提交操作。
我遇到的问题是,下面的 system.debug 语句没有显示在最后一个待处理的批准请求中分配给用户的最新请求,而是显示在用户单击提交以待批准之前分配给用户的最新请求,所以它跳过用户单击提交以供批准时所做的“批准请求提交步骤”和等待批准/拒绝的初始提交操作待处理步骤(用户选择批准者)并返回旧请求就在这 2 个之前。
我的目标是提取“分配给”用户或OriginalActorId 值的最新待处理请求。
有什么想法吗?谢谢。
这是批准流程列表的屏幕截图,黑色是我在调试日志行中使用此触发器获取的值,蓝色是预期值。
trigger Assigned2testTrigger on LLC_BI__Product_Package__c(after update) {
list < LLC_BI__Product_Package__c > listpp = new list < LLC_BI__Product_Package__c > ();
for (LLC_BI__Product_Package__c pp: trigger.new) {
If(!checkRecursive.SetOfIDs.contains(pp.Id)) {
if (pp.Approval_started__c == true) {
system.debug('---------> My ProcessInstance ' + string.valueof([Select Id, (Select TargetObjectId, SystemModstamp, StepStatus, RemindersSent, ProcessInstanceId, OriginalActorId, IsPending, IsDeleted, Id, CreatedDate, CreatedById, Comments, ActorId From ProcessSteps order by SystemModstamp desc) from LLC_BI__Product_Package__c where Id =: pp.id].ProcessSteps[0].OriginalActorId));
}
checkRecursive.SetOfIDs.add(pp.Id);
}
}
}
【问题讨论】:
标签: triggers salesforce apex-code apex soql