1、如何取到单据当前在哪个审批节点及当前审批节点信息和工作流相关信息:
//所有审批记录
List allApprovalRecord = WorkflowServiceHelper.getAllApprovalRecord(businessKey);
//最后一条审批记录
//IApprovalRecordGroup iApprovalRecordGroup = allApprovalRecord.get(allApprovalRecord.size()-1);
//;//最后一条审批的第一个子节点(参与人)记录
IApprovalRecordItem iApprovalRecordItem = iApprovalRecordGroup.getChildren().get(0)
String taskId = iApprovalRecordItem.getTaskId();//任务id
String activityName = iApprovalRecordItem.getActivityName();//审批节点名称
TaskInfo taskInfo = WorkflowServiceHelper.findTaskById(Long.valueOf(taskId));//任务信息
String entityNumber = taskInfo.getEntityNumber();//任务对应的实体
DynamicObject dataEntity = BusinessDataServiceHelper.loadSingle(businessKey, entityNumber);
2、工作流撤回功能:
WorkflowServiceHelper.withdraw(entityNumber,operateName);
该方法会校验当前流程是否允许撤回,如不能撤回则会产生异常,异常信息会提示。
实例:
3、工作流常用方法:
TaskInfo taskInfo = WorkflowServiceHelper.findTaskById(Long.valueOf(taskId));//任务信息
WorkflowServiceHelper.viewFlowchart(this.getView().getPageId(), billId);//查看流程图
boolean inProcess = WorkflowServiceHelper.inProcess(businessKey);//是否在流程中
WorkflowServiceHelper.taskTransfer(taskId, transfererId, transferOpinion, transferSubscribe);//工作流转交
DynamicObjectCollection toHandleTasks = WorkflowServiceHelper.getToHandleTasksByUserId(0, Integer.MAX_VALUE, userId);//获取工作流待办
List allApprovalRecord = WorkflowServiceHelper.getAllApprovalRecord(businessKey);//获取审批记录
扩展:审批记录控件
ApprovalRecord appRecord = this.getView().getControl(KEY_APPROVALRECORD);//审批记录控件
Map<String, Object> param = new HashMap();
param.put(“hideChat”, true);//隐藏云之家沟通
param.put(“hideMoreChat”, true);//是否隐藏更多聊天
param.put(“isPC”, “true”);//是否pc端
appRecord.setParameters(param);//为审批记录设置参数
appRecord.setBusinessKey(businessKey);//为审批记录控件设置数据
appRecord.setArData(allApprovalRecord);//为审批记录控件设置数据
实例:在审批记录中加转交记录