如何将工作流审批信息写入单据字段。

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

如何将工作流审批信息写入单据字段。

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...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息