activiti常见的问题

一、工作流如何在项目中使用的,以及在使用工作流遇到的问题,以及怎么解决的?
1.1使用的是activiti框架 5.22.0, 使用的是activiti 插件画的流程图,通过 usertask定义一系列角色,在连线定义用户变量,通过流程变量传递
用户ID,使用的是单人提交的方式完成一些列流程的。图形画完以后将工作流程发布,然后将业务的和工作流绑定。
通过 ProcessEngine 流程引擎获取并返回一个  Deployment对象, Deployment对象 获取createDeployment 创建部署对象 .addClasspathResource(path)//加载资源文件,一次只能加载一个文件
                         .deploy(); 完成部署

1.2 通过 RuntimeService对象的 startProcessInstanceByKey方法启动一个流程实例,参数: 流程实例key 业务主键  流程变量

1.3 通过TaskService查询用户的任务以及提交任务。

二、activiti涉及的表
act_hi_procinst 业务主键ID,流程实例ID,起始时间,结束时间,任务耗时总时长;
act_ru_task 正在运行的任务表
act_hi_identitylink 候选人表
act_re_deployment 部署信息表
act_ru_variable 正在执行的流程变量表
ACT_HI_TASKINST 历史的任务实例
ACT_HI_PROCINST 历史的流程实例
三、activiti的核心对象
ProcessEngine         流程引擎     
RepositoryService     流程管理定义
RuntimeService        执行任务,包括启动、推进、删除流程实例等操作
TaskService           任务管理
HistoryService        历史管理(执行完的数据的管理)
IdentityService       组织结构管理

四、activiti的优缺点以及和其他工作流引擎的对比
activiti 和workflow比对
https://blog.csdn.net/qq_30739519/article/details/82493456

五、扩展 activiti的几种任务模式以及监听网管、排他网管
    
     * 指定办理人(转派任务)
     * 直接将办理人 Assiagnee换成别人,相当于将任务转出
        taskservice.setAssignee(taskId, userId);
    
    将任务分给他人处理 委派他人处理
    taskservice.delegateTask(taskId, userId);
    
    被委派人 回到委派人
    taskservice.resolveTask(taskId);
    
    任务认领
    taskservice.claim(taskId,userId);

posted @ 2020-05-07 19:37  哎哟我去a  阅读(1073)  评论(0编辑  收藏  举报