2

我试图解决的问题是我们无法报告待定批准。

我已经看到了我们在每个步骤之后执行的操作中更新正在路由的对象上的字段的建议 - 但是,当该步骤用于并行批准时,这不起作用。

我找不到一个可以在每个人批准后触发的对象。

在一天结束的时候,我需要能够生成一份谁需要批准什么的报告(我知道每个人都会在他们的主页上看到他们需要批准的内容,我需要其他人能够在所有未决的批准)。

有任何想法吗?

4

2 回答 2

4

由于我确实需要任何人都能够在任何给定时间检查特定用户的所有待处理批准或待处理批准,因此我创建了一个 VisualForce 页面并使用以下查询,具体取决于查找每个待处理批准或用户的批准。

对于所有待批的批准:

[SELECT Status, TargetObject.Name, TargetObjectId, TargetObject.Type, (SELECT Actor.Id, Actor.Name, Actor.Email, CreatedDate FROM WorkItems)
                                    FROM ProcessInstance
                                    WHERE TargetObject.Type = 'ObjectICareAbout__c' and Status='Pending']

对于给定用户的待批准:

[SELECT ActorId, Actor.Name, Actor.Email, CreatedDate, ProcessInstance.Status, ProcessInstance.TargetObjectId, ProcessInstance.TargetObject.Name
                                            FROM ProcessInstanceWorkitem
                                            WHERE ActorId = :user AND ProcessInstance.Status = 'Pending' AND ProcessInstance.TargetObject.Type = 'ObjectICareAbout__c']

然后将它们映射到通用视图模型以显示在 VF 页面中。

于 2010-12-23T18:42:55.487 回答
0

首先也是最重要的 - 转到报告 -> 管理报告 -> 所有待处理的批准请求

检查一下,看看是否可以对其进行微调以满足您的需求。如果您需要能够与非管理员共享它 - 考虑用它制作一个仪表板(可以是表格)并安排它用于日常运行和电子邮件发送......

如果您觉得您仍然需要解决方法 - 我们当然可以尝试

但是,当该步骤用于并行批准时,这不起作用

您是否尝试过在更新中使用公式?类似的东西someHiddenNumberField +1可能会起作用(我目前无法在我的开发版中对其进行测试);如果不是直接那样,那么使用一些语法糖,例如PRIORVALUE(). 或者甚至更好 - 有一个文本字段并在其中附加日期/时间 + 谁批准。然后在最后一步清除“计数器”并完成。

如果使用基于公式的更新的技巧不起作用(没有承诺,这只是一个想法),那么可能会保留设置特殊字段的旧方法,但还要在此对象(或工作流?)上定义“更新前”触发器?但这又是一个公式) 将检查值,更新“计数器”并将隐藏字段设置回原始值。

于 2010-12-17T20:40:20.847 回答