消息中心中如何自定义任务主题

关键词:工作流、任务主题
一、需求
流程审批遇会审节点驳回,需要在待办任务列表的主题列看到驳回人信息。目前情况如下图:第一条待办任务主题,显示单据编号信息,第二条待办任务主题(通过配置实现)显示驳回信息。第二条待办任务主题的问题是,会审节点部分参与人执行驳回操作即可结束会审,待办任务主题通过配置只能显示所有处理人。例如:3个参与人中2人执行驳回,因为没有达到会审50%的通过比例要求,任务被驳回会审结束。需求是:上游节点会审驳回,待办任务主题显示实际执行驳回的操作人,非所有的处理人。



二、思路与方案
思路与方案:
根据单据编号作为过滤条件,从历史任务处理结果表中按处理时间倒叙查出历史处理结果,处理结果中取出第一条信息(审批节点编码、审批策略、审批人),并遍历后续处理结果信息,如果后续遍历的处理结果里有节点编码(wf_hicomment的activityid字段)和第一条信息的节点编码一样并且审批策略编码是Reject,那么说明这条处理结果也是上一次会审审批节点执行驳回的信息,当遍历到审批节点编码和第一条信息的审批节点编码不一样时,说明已经不是上一个节点的审批处理结果。
通过上面的逻辑即可找到前面会审节点执行驳回操作的处理人了。

三、实现过程
1、代码逻辑
public class ReqToThemeWorkflowPlugin implements Plugin, IWorkflowPlugin {
@Override
public String parseBillSubject(AgentExecution execution, String lang) {
String billNo = ((ExecutionEntityImpl) execution).getBillNo();
//获取单据对应的历史任务处理结果,时间倒叙排序
DynamicObject[] wfs = BusinessDataServiceHelper.load("wf_hicomment", "assignee,activityid,resultnumber,decisiontype,activityname,sendername", new QFilter[]{
new QFilter("billno", QCP.equals,billNo )//taskId
},"time desc");
List<TaskEntity> tasks = ((ExecutionEntityImpl) execution).getTasks();
TaskInfo taskById = WorkflowServiceHelper.findTaskById(execution.getCurrentTask().getId());
StringBuilder theme=new StringBuilder();
if(wfs != null && wfs.length > 0){
//处理时间倒叙后的第一条记录
String activityid = wfs[0].getString("activityid");//审批节点编码
消息中心中如何自定义任务主题
关键词:工作流、任务主题一、需求 流程审批遇会审节点驳回,需要在待办任务列表的主题列看到驳回人信息。目前情况如下图:第一条...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



