activiti简单的方式设置流程下一个节点的处理人

activiti简单的方式设置流程下一个节点的处理人
activiti 6.0
使用场景:流程创建时每个节点已经设置了多个审批人,需求场景需要每次审批都可以手动再设置下一步的审批人。
例:节点1的审批人有经理A,经理B,经理C。员工A提交业务审核时需要选择给经理A审核,经理A审核完需要选择总经理A审核…
简单的流程图``
在这里插入图片描述

/**
     *  设置下一个节点的审核人
     * @param processId:流程实例ID
     * @param Assignee:审核人ID
     *
     */
    public void setFirstTaskAssignee(String processId,String Assignee){
        TaskService taskService = processEngine.getTaskService();
        //查询当前所有待执行的节点
        List<Task> tasks = taskService.createTaskQuery().list();
        for (Task t:tasks) {
            //判断当前实例待执行的节点
            if (t.getProcessInstanceId().equals(processId)){
                //设置审核人  (参数:节点ID,审核人ID)
                taskService.setAssignee(t.getId(),Assignee);
            }
        }
    }
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面我来给您演示一个简单的Flowable工作流实例。 首先,我们需要准备以下三个环节: 1. Flowable引擎配置:用于配置Flowable引擎相关的参数。 2. 流程定义:用于定义工作流的流程。 3. 流程实例:用于实例化工作流,并执行流程。 接下来,我将逐一演示这三个环节的具体实现。 1. Flowable引擎配置: ```java @Configuration public class FlowableConfig { @Bean public ProcessEngineConfigurationImpl processEngineConfiguration() { SpringProcessEngineConfiguration configuration = new SpringProcessEngineConfiguration(); configuration.setDataSource(dataSource); configuration.setTransactionManager(transactionManager); configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE); configuration.setAsyncExecutorActivate(false); configuration.setHistory(ProcessEngineConfiguration.HISTORY_FULL); configuration.setJobExecutorActivate(false); return configuration; } @Bean public ProcessEngineFactoryBean processEngine() { ProcessEngineFactoryBean factoryBean = new ProcessEngineFactoryBean(); factoryBean.setProcessEngineConfiguration(processEngineConfiguration()); return factoryBean; } @Bean public RepositoryService repositoryService() { return processEngine().getObject().getRepositoryService(); } @Bean public RuntimeService runtimeService() { return processEngine().getObject().getRuntimeService(); } @Bean public TaskService taskService() { return processEngine().getObject().getTaskService(); } @Bean public HistoryService historyService() { return processEngine().getObject().getHistoryService(); } @Bean public ManagementService managementService() { return processEngine().getObject().getManagementService(); } } ``` 在这个配置类中,我们使用了SpringProcessEngineConfiguration来配置Flowable引擎,同时通过各个@Bean方法来获取Flowable引擎的各个服务对象。 2. 流程定义: ```java public class SimpleApprovalWorkflow { public static final String PROCESS_DEFINITION_KEY = "simpleApproval"; public static BpmnModel createProcessModel() { BpmnModel model = new BpmnModel(); Process process = new Process(); process.setId(PROCESS_DEFINITION_KEY); process.setName("Simple Approval Workflow"); model.addProcess(process); // Start Event StartEvent startEvent = new StartEvent(); startEvent.setId("startEvent"); process.addFlowElement(startEvent); // User Task UserTask userTask = new UserTask(); userTask.setId("userTask"); userTask.setName("Approve Request"); userTask.setAssignee("${employee}"); process.addFlowElement(userTask); // End Event EndEvent endEvent = new EndEvent(); endEvent.setId("endEvent"); process.addFlowElement(endEvent); // Sequence Flow process.addFlowElement(new SequenceFlow("startEvent", "userTask")); process.addFlowElement(new SequenceFlow("userTask", "endEvent")); return model; } } ``` 在这个流程定义中,我们定义了一个包含一个用户任务的工作流。其中,用户任务会被分配给一个变量名为employee的用户,该用户需要执行审批操作。 3. 流程实例: ```java @Service public class SimpleApprovalWorkflowService { @Autowired private RuntimeService runtimeService; public void startWorkflow(String employee) { Map<String, Object> variables = new HashMap<>(); variables.put("employee", employee); runtimeService.startProcessInstanceByKey(SimpleApprovalWorkflow.PROCESS_DEFINITION_KEY, variables); } } ``` 在这个流程实例中,我们使用了RuntimeService来启动工作流,并通过variables参数来指定需要执行审批操作的用户。 好了,以上就是一个简单的Flowable工作流实例的实现过程。当然,实际的工作流实现会更为复杂,但基本的流程定义、引擎配置和流程实例的实现思路大致相同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值