美文网首页
Activiti 的一些业务处理Service

Activiti 的一些业务处理Service

作者: MaJiT | 来源:发表于2020-02-23 14:30 被阅读0次

1.业务处理Service

1.RepositoryService:提供一系列管理流程定义和流程部署的API。
2.RuntimeService:在流程运行时对流程实例进行管理与控制。
3.TaskService:对流程任务进行管理,例如任务提醒、任务完成和创建任务分本任务等。
4.IdentityService:提供对流程角色数据进行管理的API,这些角色数据包括用户组、用户以及它们之间的关系。
5.ManagementService:提供对流程引擎进行管理和维护的服务。
6.HistoryService:对流程的历史数据进行操作,包括查询、删除这些历史数据。
7.DynamicBpmnService:使用该服务,可以不需要重新部署流程模型,就可以实现对流程模型的部分修改。

1.1流程引擎

ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
...
engine.close();

1.2流程部署

        // 存储服务
        RepositoryService rs = engine.getRepositoryService();

1.3流程启动

        // 运行时服务
        RuntimeService runService = engine.getRuntimeService();

1.4任务处理

        // 任务服务
        TaskService taskService = engine.getTaskService();

2.流程部署

2.1 原文件形式部署方式

repositoryService.createDeployment().addClasspathResource("first.bpmn").deploy();

2.2 压缩包ZIP形式部署

        DeploymentBuilder builder = repositoryService.createDeployment();
        FileInputStream fis = new FileInputStream(new File("resource/datas.zip"));
        ZipInputStream zis = new ZipInputStream(fis);
        builder.addZipInputStream(zis).deploy();

注意:这一步在数据库中将操作三张表:

a)act_re_deployment 存放流程定义的显示名和部署时间,每部署一次增加一条记录

b)act_re_procdef 存放流程定义的属性信息,部署每个新的流程定义都会在这张表中增加一条记录。

c)act_ge_bytearray 存储流程定义相关的部署信息。即流程定义文档的存放地。每部署一次就会增加两条记录,一条是关于bpmn规则文件的,一条是图片的(如果部署时只指定了bpmn一个文件,activiti会在部署时解析bpmn文件内容自动生成流程图)。两个文件不是很大,都是以二进制形式存储在数据库中。

3流程启动

//返回一个流程实例对象
ProcessInstance pi = runService.startProcessInstanceByKey("myProcess");

注意:操作数据库的act_ru_execution表,如果是用户任务节点,同时也会在act_ru_task添加一条记录

4.任务处理

4.1根据流程实例对象查询任务并完成任务

        //第一种方法 usertask的时候使用complete
        Task task = taskService.createTaskQuery().processInstanceId(pi.getId()).singleResult();
        taskService.complete(task.getId());
        //第二种方法 receivetask时使用trigger
        // 查当前的子执行流
        Execution exe = runService.createExecutionQuery() 
                          .processInstanceId(pi.getId()).onlyChildExecutions()
                          .singleResult();
        // 让它往前走
        runService.trigger(exe.getId());

相关文章

  • Activiti 的一些业务处理Service

    1.业务处理Service 1.RepositoryService:提供一系列管理流程定义和流程部署的API。2....

  • egg 使用小结

    Service 的使用 Service 通常用来做业务代码的处理,如数据库的操作等。将一些代码从 Controll...

  • Spring data rest中使用Validator和Lis

    传统的controller-service-dao模式中,处理业务数据时,可以在service中处理,但是使用**...

  • Springboot多模块搭建 一Service构建

    Service 这个层我们要做缓存还有一些其他的处理比如事物,还有一些其他的业务逻辑,验证 项目结构 缓存 缓存注...

  • SpringBoot整合Activiti项目实战

    SpringBoot整合Activiti实现流程图的在线绘制、流程规则配置、请假流程申请流程流转与业务处理 1、视...

  • MVC思想-03-24

    controller:分发任务service:各种逻辑判断,功能实现,业务处理dao:bean(pojo)

  • Activiti之CommondExecutor

    Activiti提供了一组Service,向用户暴露流程引擎的功能,Service内部通过命令模式执行真正的操作。...

  • 三层架构 和 MVC

    1.三层架构:(没有真正意义的页面的东西) //业务层 service:处理逻辑,一些功能 (一般调用数据操作层)...

  • FastApi (jxzs)

    代码框架 整个项目包含api层、业务逻辑层和service层,在api层进行入参格式校验,业务层处理具体的业务信息...

  • Activity 流程图

    Activiti介绍Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框...

网友评论

      本文标题:Activiti 的一些业务处理Service

      本文链接:https://www.haomeiwen.com/subject/dbqlqhtx.html