2023年8月1日发(作者:)
IDEA中使⽤activiti⼯作流安装插件actiBPM点击左上⾓的File -> setting -> plugin -> market splace输⼊actiBPM,搜索并安装即可。⼀、actiBPM的搭建,融合Spring1、创建maven项⽬附上我的 4.0.0 activiti_demo2 1.0-SNAPSHOT 1.6.6 1.2.12 ti activiti-engine 1 ti activiti-spring 1 ti activiti-bpmn-model 1 ti activiti-bpmn-converter 1 ti activiti-json-converter 1 ti activiti-bpmn-layout 1 activiti-cloud-services-api 1 1 mysql mysql-connector-java 5.1.40 junit junit 4.12 log4j log4j ${n} 4j slf4j-api ${n} 4j slf4j-log4j12 ${n} s mybatis 3.5.6 commons-dbcp commons-dbcp 1.4 alfresco Activiti Releases /nexus/content/repositories/activiti-releases/ true 2、画图:创建bpmn⽂件。3、创建PNG⽂件先将bpmn⽂件重命名为xml⽂件,右键选择:如果没有diagram选项,到plugin中查找打开diagram(gradle 插件是否打开)
⼆、API的基本使⽤⾸先创建配置⽂件。1、ties# Set root category priority to INFO and its only appender to CONSOLE.#tegory=INFO, CONSOLE debug info warn error tegory=debug, CONSOLE, LOGFILE# Set the enterprise logger category to FATAL and its only appender to rise=FATAL, CONSOLE# CONSOLE is set to be a ConsoleAppender using a E==sionPattern=%d{ISO8601} %-6r[%15.15t] %-5p %30.30c %x - %mn# LOGFILE is set to be a File appender using a E==d:==sionPattern=%d{ISO8601} %-6r[%15.15t] %-5p %30.30c %x - %mn2、 三、项⽬实战不多说了,上代码:import nd_SRC_OUTPeer;import .*;import ment;import sInstance;import ;import ;import tream;import ;import or;import ;public class TestConnect { //@Test public ProcessEngine createTable(){ //加载配置⽂件,创建ProcessEngineConfiguration ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfigurationFromResource("") //创建engine和数据库建表 ProcessEngine processEngine = rocessEngine(); n(processEngine);// //创建RuntimeService activiti的流程运⾏管理类// RuntimeService runtimeService = timeService();// //创建TaskService activiti的任务管理类// TaskService taskService = kService();// //创建HistoryService activiti的历史管理类// HistoryService historyService = toryService();// //创建ManagementService activiti的引擎管理类// ManagementService managementService = agementService(); return processEngine; } //部署流程定义 //@Test public Deployment doDeployment(ProcessEngine processEngine){ //获取repositoryService RepositoryService repositoryService = ositoryService(); //加载BPMN⽂件部署对象 Deployment deploy = Deployment() //加载BPMN⽂件 .addClasspathResource("") .addClasspathResource("").name("请假申请流程").deploy(); n(""); n("流程部署ID:"+()); n("流程部署名称:"+e()); return deploy; } //启动流程实例 @Test public void startProcessInstance(){ //创建流程引擎 ProcessEngine processEngine = createTable(); //流程部署 Deployment deployment = doDeployment(processEngine); //获取RuntimeService RuntimeService runtimeService = timeService(); //根据流程定义KEY启动流程 ProcessInstance processInstance = rocessInstanceByKey("holiday"); n("流程定义ID:"+cessDefinitionId()); n("流程实例ID:"+()); n("当前活跃ID:"+ivityId()); } //查询⾓⾊当前待执⾏的任务 //这段代码需要BPMN⽂件⾥的UserTask设置了Assignee对象,我这⾥设定的是zhangsan @Test @Test public void findPersonalTaskList(){ //任务负责⼈ String assignee = "zhangsan"; //创建TaskService ProcessEngine processEngine = createTable(); TaskService taskService = kService(); List holiday = taskService .createTaskQuery() .processDefinitionKey("holiday") .taskAssignee(assignee) .list(); //Collection遍历 for (Iterator iterator = or(); t(); ) { Task task = (); n(""); n("流程实例ID:"+cessInstanceId()); n("任务ID:"+()); n("任务负责⼈:"+ignee()); n("任务名称:"+e()); } String taskID = "45009"; //完成任务 te(taskID); n(""); n("完成任务id=:"+taskID); } //单个⽂件部署⽅式 //分别部署BPMN和PNG单个⽂件,这种操作可以将BPMN和PNG⽂件放⼊activi数据库中 @Test public void deploySingleFile(){ ProcessEngine processEngine = createTable(); //获取repositoryServie RepositoryService repositoryService = ositoryService(); //bpmn输⼊流 InputStream inputStream_bpmn = ss().getClassLoader().getResourceAsStream(""); //png输⼊流 InputStream inputStream_png = ss().getClassLoader().getResourceAsStream(""); //部署流程 Deployment deploy = ositoryService() .createDeployment() .addInputStream("", inputStream_bpmn) .addInputStream("", inputStream_png) .name("请假流程单⽂件部署") .deploy(); n(""); n("流程部署ID:"+()); n("流程部署名称:"+e()); } //部署ZIP⽂件,并放⼊activi数据库,还没有创建INSTANCE实例 @Test public void employZipFile(){ ProcessEngine processEngine = createTable(); ProcessEngine processEngine = createTable(); //zip输⼊流 InputStream inputStream_zip = ss().getClassLoader().getResourceAsStream(""); //部署流程 RepositoryService repositoryService = ositoryService(); Deployment deploy = Deployment() .addInputStream("", inputStream_zip) .name("Zip⽂件部署") .deploy(); n(""); n("部署名称:"+e()); n("部署ID:"+());// n("ss"+ss().getName()); }}
发布者:admin,转转请注明出处:http://www.yc00.com/news/1690875915a452606.html
评论列表(0条)