如何将工作流审批信息写入单据字段。
1 业务背景
很多客户都有需求把流程中的一些信息记录在单据字段上。
2 实现方案
工作流提供很多时机可以写插件,只需要继承工作流的接口IWorkflowPlugin,在封装好的参数对象里就能获取到流程中信息,从而写入到单据的字段上。步骤如下:
步骤一:
二开插件继承IWorkflowPlugin,实现notify方法代码如下
@Override public void notify(AgentExecution execution) { //单据的BusinessKey(业务ID) String BusinessKey = execution.getBusinessKey(); //单据实体编码 String entityNumber = execution.getEntityNumber(); //获取当前节点的审批人 List<Long> currentApprover = execution.getCurrentApprover(); //获取流程发起人 Long startUserId = execution.getStartUserId(); //获取当前节点 WorkflowElement<?> flowElement = execution.getCurrentFlowElement(); //当前流程节点ID String id = flowElement.getId(); //当前节点名称 String nodeName = flowElement.getName(); //当前节点id String number = flowElement.getNumber(); //获取当前任务 AgentTask task = execution.getCurrentTask(); //当前任务ID Long taskId = execution.getCurrentTaskId(); //获取当前 任务执行结果 Object currentTaskResult = execution.getCurrentTaskResult(WFTaskResultEnum.auditName); Object currentTaskResult1 = execution.getCurrentTaskResult(WFTaskResultEnum.auditMessage); Object currentTaskResult2 = execution.getCurrentTaskResult(WFTaskResultEnum.auditNumber); DynamicObject obj = BusinessDataServiceHelper.loadSingle(BusinessKey,entityNumber); //给单据字段赋值 obj.set("wx71_audituser",currentApprover); obj.set("wx71_nodename",nodeName); obj.set("wx71_result",currentTaskResult); OperationServiceHelper.executeOperate("save",entityNumber,new DynamicObject[]{obj}, OperateOption.create()); }
步骤二:
在流程设计图的审批节点的插件上注册二开插件,这里可以选择离开节点时或者同意时都可以写入,区别如下:
1、任务处理时(同意):可以获取到当前节点审批人,在审批同意时触发。
2、离开节点时:无法获取到当前节点审批人,在离开节点时触发。
实现效果可在单据字段上看到流程的信息
如何将工作流审批信息写入单据字段。
1 业务背景很多客户都有需求把流程中的一些信息记录在单据字段上。2 实现方案工作流提供很多时机可以写插件,只需要继承工作流的接口IWor...
点击下载文档
本文2024-09-23 00:55:06发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-142582.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章