2023年8月1日发(作者:)
Activiti⽤户绑定申请审批全流程演⽰,Java开发不得不会create-drop:Activiti启动时,会执⾏数据库表的创建操作,在Activiti关闭时,执⾏数据库表的删除操作。drop-create:Activiti启动时,执⾏数据库表的删除操作在Activiti关闭时,会执⾏数据库表的创建操作。启动应⽤,会在数据库⾥创建28张表,表创建好之后停⽌应⽤。ties⽂件修改配置项#每次应⽤启动不检查Activiti数据表是否存在及版本号是否匹配,提升应⽤启动速度se-schema-update=false2、ties⽂件增加配置项#保存历史数据级别设置为full最⾼级别,便于历史数据的追溯y-level=full对于历史数据,保存到何种粒度,Activiti提供了history-level属性对其进⾏配置。history-level属性有点像log4j的⽇志输出级别,该属性有以下四个值:none:不保存任何的历史数据,因此,在流程执⾏过程中,这是最⾼效的。activity:级别⾼于none,保存流程实例与流程⾏为,其他数据不保存。audit:除activity级别会保存的数据外,还会保存全部的流程任务及其属性。audit为history的默认值。full:保存历史数据的最⾼级别,除了会保存audit级别的数据外,还会保存其他全部流程相关的细节数据,包括⼀些流程参数等。3、Activiti的7⼤接⼝完成以上步骤,就可以在程序中使⽤⾃动注⼊的⽅式,使⽤@Autowiredprivate RuntimeService runtimeService;@Autowiredprivate TaskService taskService;@Autowiredprivate IdentityService identityService;@Autowiredprivate RepositoryService repositoryService;@Autowiredprivate ProcessEngine processEngine;@Autowiredprivate HistoryService historyService;三、项⽬中的⽤户、⾓⾊与Activiti中的⽤户、⽤户组整合每个项⽬都有⾃⼰的⽤户、⾓⾊表,Activiti也有⾃⼰的⽤户、⽤户组表。因此项⽬中的⽤户、⾓⾊与Activiti中的⽤户、⽤户组要做整合。//项⽬中每创建⼀个新⽤户,对应的要创建⼀个Activiti⽤户//两者的userId和userName⼀致User admin=r(“1”);tName(“admin”);er(admin);//项⽬中每创建⼀个⾓⾊,对应的要创建⼀个Activiti⽤户组Group adminGroup=up(“1”);e(“admin”);oup(adminGroup);//⽤户与⽤户组关系绑定Membership(“1”,“1”);四、请假审批流程1、请假申请和请假审批数据库表设计表设计原则:流程数据和业务数据相分离。Activiti相关表只负责流程的跳转、⾛向等。流程中产⽣的业务表单数据、审批意见、附件等存储在开发⼈员定义的业务表中。流程数据和业务数据之间通过processInstanceId(流程实例ID)和业务数据主键相互关联。为什么不使⽤Activiti相关表来存储表单数据和附件?Activiti为了应⽤的灵活性和通⽤性采⽤了纵表的⽅式存储表单数据。假设⼀条请假申请表单数据有10个字段,那就需要10条记录存储原本横表只需要⼀条记录存储的数据。采⽤纵表的⽅式会有如下问题:会有⼤量的冗余数据并且数据量会急剧的增长查询语句复杂,查询效率低尤其不适合做后期的统计报表分析Activiti存储附件使⽤Blob数据格式,⽂件存储在数据库⾥,数据库的数据⽂件会变得超⼤,不利于数据库备份和迁移。请假申请表结构2、填写请假申请表单,启动流程实例//启动流程实例,字符串"vacation"是BPMN模型⽂件⾥process元素的idProcessInstance processInstance = rocessInstanceByKey(“vacation”);//流程实例启动后,流程会跳转到请假申请节点Task vacationApply = TaskQuery().processInstanceId(()).singleResult();//设置请假申请任务的执⾏⼈ignee((), rId().toString());//设置流程参数:请假天数和表单ID//流程引擎会根据请假天数days>3判断流程⾛向//formId是⽤来将流程数据和表单数据关联起来Map
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1690873832a452155.html
评论列表(0条)