Activiti7工作流引擎:基礎(chǔ)篇(二)自動(dòng)生成表結(jié)構(gòu)_第1頁(yè)
Activiti7工作流引擎:基礎(chǔ)篇(二)自動(dòng)生成表結(jié)構(gòu)_第2頁(yè)
Activiti7工作流引擎:基礎(chǔ)篇(二)自動(dòng)生成表結(jié)構(gòu)_第3頁(yè)
Activiti7工作流引擎:基礎(chǔ)篇(二)自動(dòng)生成表結(jié)構(gòu)_第4頁(yè)
Activiti7工作流引擎:基礎(chǔ)篇(二)自動(dòng)生成表結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Activiti7?作流引擎:基礎(chǔ)篇(?)?動(dòng)?成表結(jié)構(gòu)當(dāng)你的才華撐不起你的野?的時(shí)候,你就必須靜下?來(lái)學(xué)習(xí)。Acitiviti7?作流框架就是提供了?個(gè)Service來(lái)操作?張表,作為?個(gè)框架?然已經(jīng)為我們提供好了表結(jié)構(gòu),我們只需要配置數(shù)據(jù)庫(kù)表處理策略databaseSchemaUpdate=true當(dāng)表不存在時(shí)?動(dòng)?成即可。?:?動(dòng)?成表結(jié)構(gòu)1.1pom.xml新建?個(gè)基礎(chǔ)的maven?程(不需要springboot?程),引?Activiti相關(guān)依賴、數(shù)據(jù)庫(kù)、?志相關(guān)依賴。<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><piler.source>1.8</piler.source><piler.target>1.8</piler.target><slf4j.version>1.6.6</slf4j.version><log4j.version>1.2.12</log4j.version><activiti.version>7.0.0.SR1</activiti.version></properties><dependencies><dependency><groupId>org.activiti</groupId><artifactId>activiti-engine</artifactId><version>${activiti.version}</version></dependency><!--bpmn模型處理--><dependency><groupId>org.activiti</groupId><artifactId>activiti-bpmn-model</artifactId><version>${activiti.version}</version></dependency><!--bpmn轉(zhuǎn)換--><dependency><groupId>org.activiti</groupId><artifactId>activiti-bpmn-converter</artifactId><version>${activiti.version}</version></dependency><!--bpmnjson數(shù)據(jù)轉(zhuǎn)換--><dependency><groupId>org.activiti</groupId><artifactId>activiti-json-converter</artifactId><version>${activiti.version}</version></dependency><!--bpmn布局--><dependency><groupId>org.activiti</groupId><artifactId>activiti-bpmn-layout</artifactId><version>${activiti.version}</version></dependency><dependency><groupId>org.activiti.cloud</groupId><artifactId>activiti-cloud-services-api</artifactId><version>${activiti.version}</version></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-spring</artifactId><version>${activiti.version}</version></dependency><!--activiti云?持--><!--mysql驅(qū)動(dòng)--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.40</version></dependency><!--mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.5</version></dependency><!--鏈接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.23</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><!--logstart--><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency></dependencies>1.2resources/pertieslog4j.rootCategory=debug,CONSOLE,LOGFILE.apache.axis.enterprise=FATAL,CONSOLElog4j.appender.CONSOLE=org.apache.log4j.ConsoleAppenderlog4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601}%-6r[%15.15t]%-5p%30.30c%x-%m\nlog4j.appender.LOGFILE=org.apache.log4j.FileAppenderlog4j.appender.LOGFILE.File=./activiti.loglog4j.appender.LOGFILE.Append=truelog4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayoutlog4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601}%-6r[%15.15t]%-5p%30.30c%x-%m\n1.3resources/activiti.cfg.xml配置數(shù)據(jù)源。<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="/schema/beans"xsi="/2001/XMLSchema-instance"context="/schema/context"tx="/schema/tx"schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/contex/schema/context/spring-context.xsd/schema/tx/schema/tx/spring-tx.xsd"><!--默認(rèn)id對(duì)應(yīng)的值為processEngineConfiguration--><beanid="processEngineConfiguration"class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"><propertyname="dataSource"ref="dataSource"/><!--activiti數(shù)據(jù)庫(kù)表處理策略:true表?數(shù)據(jù)庫(kù)中已經(jīng)存在相應(yīng)的表,那么直接使?,如果不存在,那么會(huì)創(chuàng)-->建<propertyname="databaseSchemaUpdate"value="true"/></bean><!--這?可以使?鏈接池--><beanid="dataSource"class="com.alibaba.druid.pool.DruidDataSource"><propertyname="driverClassName"value="com.mysql.jdbc.Driver"/><propertyname="url"value="jdbc:mysql://localhost:3306/activiti"/><propertyname="username"value="root"/><propertyname="password"value="root123"/><propertyname="maxActive"value="3"/><propertyname="maxIdle"value="1"/></bean></beans>1.4創(chuàng)建數(shù)據(jù)庫(kù)DROPDATABASEactiviti;CREATEDATABASEactivitiDEFAULTCHARACTERSETutf8;1.5?成表結(jié)構(gòu)@TestpublicvoidtestCreateDBTable(){//getDefaultProcessEngine()會(huì)讀取activiti.cfg.xml拿到?個(gè)ProcessEngineConfiguration對(duì)象,進(jìn)?獲取?個(gè)?作流引擎實(shí)例ProcessEngineprocessEngine=ProcessEngines.getDefaultProcessEngine();System.out.println(processEngine);ProcessEngine}org/activiti/db/create/activiti.mysql.create.engine.sqlorg/activiti/db/create/activiti.mysql.create.history.sql注意:開發(fā)環(huán)境?般配置databaseSchemaUpdate=true,?產(chǎn)環(huán)境?般都配置為false。注意:使?ProcessEngines.getDefaultProcessEngine()獲取默認(rèn)的流程引擎時(shí)activiti.cfg.xml中的bean配置id只能是processEngineConfiguration不能修改成別的,class也只能配置成StandaloneProcessEngineConfiguration。?:數(shù)據(jù)庫(kù)表Activiti的表都以ACT_作為前綴,第?部分是表?表的?途的兩個(gè)字母標(biāo)識(shí),?途也和服務(wù)的API對(duì)應(yīng),?共25張表,但不是所有表都需要了解,我們只需要了解最長(zhǎng)?的表即可。ACT_RE:'RE’表?repository倉(cāng)庫(kù)、資源,這個(gè)前綴的表包含了流程定義act_re_procdef和流程靜態(tài)資源act_re_bytearray(.bpmn和.png?件)。ACT_RU:'RU’表?runtime運(yùn)?時(shí),這些運(yùn)?時(shí)的表包含流程實(shí)例execution,任務(wù)task,變量variable,異步任務(wù)job等運(yùn)?中的數(shù)據(jù)。Activiti只在流程實(shí)例執(zhí)?過(guò)程中保存這些數(shù)據(jù),在流程結(jié)束時(shí)就會(huì)刪除這些記錄,這樣運(yùn)?時(shí)表的數(shù)據(jù)量會(huì)?常少,數(shù)據(jù)庫(kù)操作會(huì)?常快。ACT_HI:'HI’表?history歷史,這些表包含歷史數(shù)據(jù),?如歷史流程實(shí)例,變量,任務(wù)等等。ACT_GE:GE表?general,通?數(shù)據(jù),?于保存?下屬性配置。表分類表名解釋通?數(shù)據(jù)ACT_GE_BYTEARRAY流程資源?件.bpmn、.png系統(tǒng)相關(guān)屬性ACT_GE_PROPERTY流程定義表ACT_RE_PROCDEFACT_RE_DEPLOYMENTACT_RE_MODEL已部署的流程定義,?般.bpmn?件對(duì)應(yīng)?條數(shù)據(jù)部署信息運(yùn)?實(shí)例表ACT_RU_EXECUTIONACT_RU_TASK運(yùn)?時(shí)流程執(zhí)?實(shí)例運(yùn)?時(shí)任務(wù)ACT_RU_IDENTITYLINKACT_RU_VARIABLE運(yùn)?時(shí)節(jié)點(diǎn)任務(wù)參與?運(yùn)?時(shí)變量表流程歷史記錄ACT_HI_PROCINSTACT_HI_TASKINSTACT_HI_VARINST歷史的流程實(shí)例歷史的任務(wù)實(shí)例歷史的流程運(yùn)?中的變量表歷史的流程運(yùn)?過(guò)程中任務(wù)參與?歷史的流程實(shí)例ACT_HI_IDENTITYLINKACT_HI_ACTINSTACT_HI_COMMENT歷史意見三:Service類service名稱RepositoryServiceRuntimeServiceservice作?activiti的資源管理類,?般?于操作act_re表,部署。activiti的流程運(yùn)?管理類,?般?于啟動(dòng)流程實(shí)例。activiti的任務(wù)管理類,?般?于查詢?nèi)蝿?wù)、設(shè)置變量、設(shè)置任務(wù)負(fù)責(zé)?、拾取任務(wù)、解決任務(wù)、添加審批意見、完成任務(wù)。TaskServiceHistoryServiceManagerServiceactiviti的歷史管理類,常?于?些查詢操作。activiti的引擎管理類,?般使?不到。IdentityServiceFormServiceactiviti6中有,activiti7中已經(jīng)移除。3.1RepositoryService資源管理類,?于對(duì)ACT_RE_DEPLOYMENT(資源部署表)、ACT_RE_PROCDEF(資源流程定義表)和ACT_GE_BYTEARRAY(資源?件表.bpmn、.png?件)的CRUD操作。//將流程定義?件insert到數(shù)據(jù)庫(kù)中//同?個(gè).bpmnversion_字段都+1?件允許部署多次,每次部署ProcessEngineprocessEngine=ProcessEngines.getDefaultProcessEngine();RepositoryServicerepositoryService=processEngine.getRepositoryService();Deploymentdeploy=repositoryService.createDeployment().addClasspathResource("bpmn/xxx.bpmn").name("請(qǐng)假流程").deploy();//刪除部署repositoryService.deleteDeployment(deploymentId,true);//查詢流程定義List<ProcessDefinition>processDefinitionList=repositoryService.createProcessDefinitionQuery().processDefinitionKey(KEY).list();//掛起流程定義repositoryService.suspendProcessDefinitionById(processDefinitionId);//激活流程定義repositoryService.activateProcessDefinitionById(processDefinitionId);3.2RuntimeService流程運(yùn)?管理類??梢詮倪@個(gè)服務(wù)類中獲取很多關(guān)于正在運(yùn)?的流程執(zhí)?相關(guān)的信息。//啟動(dòng)流程實(shí)例,開始發(fā)起?個(gè)申請(qǐng)請(qǐng)求ProcessInstanceprocessInstance=processEngine.getRuntimeService().startProcessInstanceByKey(KEY);3.3TaskService任務(wù)管理類??梢詮倪@個(gè)類中獲取任務(wù)的信息。//查詢某個(gè)流程下的某個(gè)負(fù)責(zé)?待辦的任務(wù)Tasktask=processEngine.getTaskService().createTaskQuery().processDefinitionKey(KEY).taskAssignee("張三").singleResult();//設(shè)置變量taskService.setVariables(taskId,variables);taskService.setVariable(taskId,variableName,value);//歸還任務(wù),將任務(wù)負(fù)責(zé)?設(shè)置為nulltaskServi

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論