2023年8月1日发(作者:)
Activit7之流程设计与流程API基本使⽤Activit7之流程设计与流程API基本使⽤Activiti Designer流程设计器Activiti Designer的安装Activiti Designer的使⽤New-BpmnFile,命令⽂件名称loan,进⼊流程设计页⾯绘制流程,指定流程定义key(流程定义的标识)以及流程名称。选中任务结点,在左侧视图中指定每个任务结点的负责⼈图形绘制好后,将⽂件修改为,选中⽂件右键Diagrams->Show BPMN 2.0 Designer⽣成预览图并保存。activiti-app的使⽤下载与部署功能概述输⼊默认的⽤户名/密码即可登录并制作流程: admin/test主界⾯的三个菜单主要承担以下功能:Kickstart App1主要⽤于流程模型管理、表单管理及应⽤(App)管理,⼀个应⽤可以包含多个流程模型,应⽤可发布给其他⽤户使⽤。Task App1⽤于管理整个activiti-app的任务,在该功能⾥⾯也可以启动流程。Idenity management1⾝份信息管理,可以管理⽤户、⽤户组等数据。创建⽤户⾸页点击Identity management,进去之后选择Users标签页,添加⼀些⽤户数据。创建流程定义新建流程模型主界⾯点击Kickstart App,进⼊流程模型管理的主界⾯,点击“Create Process”按钮,弹出新建流程模型界⾯填写流程基本信息输⼊模型信息后,会进⼊流程模型设计界⾯结点设置id与名称为每⼀个结点设置id与名称分配负责⼈为每⼀个任务结点设置负责⼈选择创建好的⽤户任务执⾏者可以是单个⽤户(Assignee),候选⽤户组 (Candidate Users),候选组(Candidate Groups)设置路由条件导出流程设计流程设计好后保存从设计流程模型列表选择设计项进⼊后下载流程的基本使⽤相关依赖82936373839464748495657585960616263
创建ProcessEngineConfiguration对象 *
第⼀个参数:配置⽂件名称 *
第⼆个参数:processEngineConfiguration的bean的id */ ProcessEngineConfiguration configuration = ProcessEngineConfigurationFromResource(""); // ProcessEngineConfiguration configuration = ProcessEngineConfigurationFromResource("","proces //创建ProcesEngine对象 ProcessEngine processEngine = rocessEngine(); //
获取各类Service RepositoryService repositoryService = ositoryService(); TaskService taskService = kService(); RuntimeService runtimeService = timeService(); }简单创建⽅式11121314 @Test public void test() { /** *
需满⾜2点强制要求: * activiti配置⽂件名称: * bean的id="processEngineConfiguration" */ ProcessEngine processEngine = aultProcessEngine();
//
获取各类Service RepositoryService repositoryService = ositoryService(); TaskService taskService = kService(); RuntimeService runtimeService = timeService(); }⾃动⽣成25张表表的命名表都以act_开头,第⼆部分的两个字母标识表⽰表的⽤途, ⽤途也和服务的API对应。1234567act_re_*: re表⽰ repository。 这个前缀的表包含了流程定义和流程静态资源 (图⽚,规则,等等)act_ru_*: ru表⽰ runtime。 这些运⾏时的表,包含流程实例,任务,变量,异步任务,等运⾏中的数据。 Activiti只在流程实例执⾏过程中保存这些数据, 在流act_hi_*: hi表⽰ history。 这些表包含历史数据,⽐如历史流程实例, 变量,任务等等act_ge_*: ge表⽰ general。通⽤数据, ⽤于不同场景下Service通过ProcessEngine创建 Service,Service 是⼯作流引擎提供⽤于进⾏⼯作流部署、执⾏、管理的服务接⼝。service名称RepositoryServiceRuntimeServiceTaskServiceHistoryServiceservice说明activiti的资源管理类,提供了管理和控制流程发布包和流程定义的操作。activiti的流程运⾏管理类,可以从这个服务类中获取很多关于流程执⾏相关的信息activiti的任务管理类,可以从这个类中获取任务的信息。activiti的历史管理类,可以查询历史信息,执⾏流程时,引擎会保存很多数据,这个服务主要通过查询功能来获得这些数据。activiti的引擎管理类,提供对Activiti流程引擎的管理和维护功能,这些功能不在⼯作流驱动的应⽤程序中使⽤,主要⽤于Activiti 系统的⽇常维护ManagerService部署流程定义通过调⽤activiti的api将流程定义的bpmn和png两个⽂件添加部署到activiti中,或者将两个⽂件打zip包进⾏部署。单个⽂件部署⽅式1718 public static void main(String[] args) { //创建ProcessEngine对象 ProcessEngine processEngine = aultProcessEngine(); //得到RepositoryService实例 RepositoryService repositoryService = ositoryService(); //
将指定的bpm⽂件和图⽚⽂件保存在activiti数据库 Deployment deployment = Deployment() .addClasspathResource("") .addClasspathResource("") .name("借款申请流程") .deploy(); //输出部署信息 n(e()); n(()); }压缩包部署⽅式将与压缩命名为17181920 public static void main(String[] args) { ProcessEngine processEngine = aultProcessEngine(); RepositoryService repositoryService = ositoryService(); //转化出ZipInputStream流对象 InputStream is = ssLoader().getResourceAsStream(""); //将inputstream流转化为ZipInputStream流 ZipInputStream zipInputStream = new ZipInputStream(is); //部署 Deployment deployment = Deployment() .addZipInputStream(zipInputStream) .name("借款申请流程") .deploy(); //输出部署信息 n(e()); //
借款申请流程 n(()); // 1 }涉及的表12345act_re_deployment 流程定义部署表,记录流程部署信息
act_re_procdef 流程定义表,记录流程定义信息
act_ge_bytearray 资源表,定义的bpmn⽂件及png⽂件act_re_deployment 和 act_re_procdef ⼀对多关系,⼀次部署在流程部署表⽣成⼀条记录,但⼀次部署可以部署多个流程定义,每个流程定义在流程定义表⽣成⼀条记录。每⼀个流程定义在act_ge_bytearray会存在两个资源记录,bpmn 和 png。建议:⼀次部署⼀个流程,这样部署表和流程定义表是⼀对⼀有关系,⽅便读取流程部署及流程定义信息。启动流程实例流程定义部署后就可以通过⼯作流管理业务流程了,即部署的借款申请流程可以使⽤了。启动⼀个流程表⽰发起⼀个新的借款申请流程,可重复多次发起。public static void main(String[] args) { //得到ProcessEngine对象 ProcessEngine processEngine = aultProcessEngine(); //得到RunService对象 RuntimeService runtimeService = timeService(); //创建流程实例,根据流程定义key启动流程 ProcessInstance processInstance = rocessInstanceByKey("loan"); //输出实例的相关信息 n("流程部署ID:" + loymentId()); // null n("流程定义ID:" + cessDefinitionId()); // loan:1:4 n("流程实例ID:" + ()); // 2501 n("活动ID:" + ivityId()); // null }涉及表:1234567 act_hi_actinst 已完成的活动信息 act_hi_identitylink 参与者信息 act_hi_procinst 流程实例 act_hi_taskinst 任务实例 act_ru_execution 执⾏表 act_ru_identitylink 参与者信息 act_ru_task 任务任务查询-负责⼈user1流程启动后,各各任务的负责⼈就可以查询⾃⼰当前需要处理的任务,查询出来的任务都是该⽤户的待办任务。17181920public static void main(String[] args) { ProcessEngine processEngine = aultProcessEngine(); TaskService taskService = kService(); //根据流程定义的key,负责⼈assignee来实现当前⽤户的任务列表查询 List
填写表单信息 } }任务处理任务负责⼈查询待办任务,选择任务进⾏处理,完成任务。 public static void main(String[] args) { ProcessEngine processEngine = aultProcessEngine(); TaskService taskService = kService(); //任务id String taskId = "2505"; //处理任务,结合当前⽤户任务列表的查询操作 te(taskId); n("完成任务id: " + taskId); }涉及表:12345act_hi_actinstact_hi_identitylinkact_hi_taskinstact_ru_identitylinkact_ru_task任务查询-负责⼈user2负责⼈user1进⾏任务处理后,查询负责⼈user2的任务 public static void main(String[] args) { ProcessEngine processEngine = aultProcessEngine(); TaskService taskService = kService(); //根据流程定义的key,负责⼈assignee来实现当前⽤户的任务列表查询 Task task = TaskQuery() .processDefinitionKey("loan") .taskAssignee("user2") .singleResult(); n("流程实例ID:" + cessInstanceId()); n("任务ID:" + ()); n("任务负责⼈:" + ignee()); n("任务名称:" + e()); }1234流程实例ID:2501任务ID:5002任务负责⼈:user2任务名称:项⽬经理
发布者:admin,转转请注明出处:http://www.yc00.com/news/1690872286a451804.html
评论列表(0条)