




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)用文檔文案大全工作流Activiti介紹與應(yīng)用工作流(workflow)就是工作流程的計(jì)算模型,即將工作流程中的工作如何 前后組織在一起的邏輯和規(guī)則在計(jì)算機(jī)中以恰當(dāng)?shù)哪P瓦M(jìn)行表示并對(duì)其實(shí)施計(jì) 算。我的理解就是:將部分或者全部的工作流程、邏輯讓計(jì)算機(jī)幫你來處理,實(shí) 現(xiàn)自動(dòng)化。1 Activiti 簡介Activiti是由Alfresco軟件在2010年5月17日發(fā)布的業(yè)務(wù)流程管理(BPM)f 架,它是覆蓋了業(yè)務(wù)流程管理,工作流,服務(wù)協(xié)作等領(lǐng)域的一個(gè)開源,靈活的, 易擴(kuò)展的可執(zhí)行流程語言框架。它實(shí)現(xiàn)了 BPMN 2.0規(guī)范,可以發(fā)布設(shè)計(jì)好的流 程定義,并通過api進(jìn)行流程調(diào)度。1.1 Activ
2、iti 基礎(chǔ)編程框架Activiti的基礎(chǔ)編程框架如下:ProcessEngineCommandCo ntextlnterce pte r(Co mmandE xecutor)xxCmdyyCmdzzCmdContextExecutioncontextComma ndContotPersistenceframeworkEvent-ListenerFrameworkCacheComponentActiviti基于Spring, ibatis等開源中間件作為軟件平臺(tái),在此之上構(gòu)建了非常 清晰的開發(fā)框架。上圖列出了 Activiti的核心組件。I.ProcessEngine流程引擎的抽象,對(duì)于開發(fā)者
3、來說,它是我們使用Activiti的外觀(fa?ade)通過它可以獲得我們需要的一切服務(wù)。2.XXServic e TaskService,RuntimeService,RepositoryService):Activ 膿照流程的生 命周期(定義,部署,運(yùn)行)把不同階段的服務(wù)封裝在不同的Service中,用戶可以非常清晰地使用特定階段的接口。通過ProcessEnginett夠獲彳導(dǎo)這些Service實(shí)例。1.2 Activiti 重要服務(wù)類ProcessEngine :流程引擎的抽象,通過它我們可以獲得我們需要的一切服務(wù)。RepositoryServiceActiviti中每一個(gè)不同版本的業(yè)
4、務(wù)流程的定義都需要使用一些定義文 件,部署文件和支持?jǐn)?shù)據(jù)(例如BPMN2.0 XML文件,表單定義文件,流程定義圖像文件等), 這些文件都存儲(chǔ)在 Activiti 內(nèi)建的 Repository 中。RepositoryService 提供了對(duì) repository 的存取服務(wù)。TaskService在Activiti業(yè)務(wù)流程定義中每一個(gè)執(zhí)行節(jié)點(diǎn)都被稱作一個(gè) Task流程 運(yùn)行過程中,與每個(gè)任務(wù)節(jié)點(diǎn)相關(guān)的接口, 比如complete, delete,delegate等等都 是 TaskService1供的。IdentityService : Activiti中內(nèi)置了用戶以及組管理的功能,必須使用
5、這些用戶和組的信息才能獲取到相應(yīng)的 Tasko IdentityService 提供了對(duì)Activiti系統(tǒng)中的用戶和組的管理功能。FormService Activiti中的流程和 Task狀態(tài)均可關(guān)聯(lián)業(yè)務(wù)相關(guān)的數(shù)據(jù)。通過 FormService可以存取啟動(dòng)和完成任務(wù)所需要的表單數(shù)據(jù)。RuntimeService在Activiti中,每當(dāng)一個(gè)流程定義被啟動(dòng)一次之后,都會(huì)生成一個(gè)相應(yīng)的流程對(duì)象實(shí)例。RuntimeService 提供了啟動(dòng)流程、查詢流程實(shí)例、設(shè)置獲取流程實(shí)例變量二|等功能。此外它還提供了對(duì)流程部署,流程定義和流程實(shí)例的存取服務(wù)。二|.ManagementService : Ma
6、nagementService 提供了對(duì)Activiti流程引擎的管理和維護(hù)功能, 這些功能不在工作流驅(qū)動(dòng)的應(yīng)用程序中使用,主要用于Activiti系統(tǒng)的日常維護(hù)。HistoryService : HistoryService 用于獲取正在運(yùn)行或已經(jīng)完成的流程實(shí)例的信息,與 RuntimeService 中獲取的流程信息不同,歷史信息包含已經(jīng)持久化存儲(chǔ)的永久信息,并已 經(jīng)被針對(duì)查詢優(yōu)化。關(guān)于ProcessEngine口 XXService的關(guān)系,可以看下面這張圖:2 Activiti 深入2.1 Activiti 配置類分析ProcessEngineConfiguratio啖的結(jié)構(gòu)圖如下圖:正
7、如上圖所示,ProcessEngineConfiguration 是全部配置類的 父類,有一個(gè) ProcessEngineConfigurationlmpl 子類,ProcessEngineConfigurationlmpl下面有三個(gè)直接的子類,其中 ProcessEngineConfiguration 和 ProcessEngineConfigurationImpl都是抽象類。這個(gè)類是我們編程時(shí)第一個(gè)使用的類,有了這個(gè)類的層級(jí)結(jié)構(gòu),我們就比較容易理解通過該類獲取各種具體實(shí)現(xiàn)的ProcessEngineConfiguration 類的實(shí)例了。ProcessEngineConfiguration
8、.createProcessEngineConfigurationFromResourceDefa ult();ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(acti viti.cfg.xml);ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();通過上面的方法,可以獲取流程引擎的配置類的實(shí)例,這些實(shí)例有的是通過配置文件進(jìn)行配置的,有的則是通過程序的方法進(jìn)行指定,比如:ProcessEngineConfig
9、uration.createStandaloneProcessEngineConfiguration();生成這樣的配置實(shí)例后,需要對(duì)該實(shí)例進(jìn)行數(shù)據(jù)庫連接相關(guān)的配置等等。2.2 Activiti命令執(zhí)行器分析ACTIVITI所有執(zhí)行過程都是采用命令模式,使用命令執(zhí)行器進(jìn)行執(zhí)行,這個(gè)可是從RuntimeServiceImpl啟動(dòng)流程的代碼可以看出來:public Processinstance startProcessInstanceByKey(StringprocessDefinitionKey , StringbusinessKey ) return commandExecutor .exe
10、cute( newStartProcessInstanceCmd(processDefinitionKey , null , businessKeynull ); 為了了解命令執(zhí)行commandExecutor ,特分如下幾節(jié)來說明它的構(gòu)造,傳遞,以及命令執(zhí)行執(zhí)行的過車過你。2.2.1 命令執(zhí)行器的構(gòu)造命令執(zhí)行器是一個(gè)采用攔截器鏈?zhǔn)降慕Y(jié)構(gòu),這個(gè)可以從如下的分析得出:commandExecutor 對(duì)象是首先在 ProcessEngineConfigurationImpl的初始化方法中產(chǎn)生:protected void initCommandExecutor() if ( commandExec
11、utor =null ) Commandinterceptorfirst = initInterceptorChain(commandinterceptors );commandExecutor = new CommandExecutorImpl(getDefaultCommandConfig(), first ); ) ) 而這個(gè)命令執(zhí)行器 commandExecutor 的構(gòu)造過程中跟 commandinterceptors中的第一個(gè)命令攔截器有關(guān),而commandinterceptors是命令攔截器的列表。protected void initCommandinterceptors()
12、if ( commandinterceptors =null ) commandinterceptors = new ArrayList();if ( customPreCommandinterceptors != null ) commandinterceptors .addAll( customPreCommandinterceptors );commandinterceptors .addAll(getDefaultCommandinterceptors();if ( customPostCommandinterceptors != null ) commandinterceptors
13、.addAll( customPostCommandinterceptors );commandinterceptors .add( commandinvoker ); protected Collection getDefaultCommandinterceptors() Listinterceptors = new ArrayList();interceptors .add( new Loginterceptor();Commandinterceptortransactioninterceptor=createTransactioninterceptor();!= null ) if (
14、transactioninterceptorinterceptors .add( transactioninterceptor );interceptors .add( new CommandContextInterceptor( commandContextFactory , this ); return interceptors ;同時(shí)每個(gè)攔截器又是通過next域的方式將不同的攔截器進(jìn)行鏈接形成一個(gè)鏈接結(jié)構(gòu),這個(gè)可以從initInterceptorChain方法可以看出來:protected Commandinterceptor initInterceptorChain(Listchain
15、 ) if ( chain =null | chain .isEmpty() throw new ActivitiException( invalid command interceptor chain configuration:+chain );for ( int i = 0; i chain .size()-1; i +) chain .get( i ).setNext( chain .get( i +1); return chain .get(0);2.2.2 命令執(zhí)行器的傳遞的初始化方法中生命令執(zhí)行器 commandExecutor 對(duì)象在 ProcessEngineConfigur
16、ationimpl成,那么為什么它會(huì)在 RuntimeService 等service對(duì)象中獲取呢?依然 回至1J ProcessEngineConfigurationimplinitServices定。方法, 將 runtimeService 等 Service初始化過程,初始化過程會(huì)調(diào)用實(shí)例與該命令執(zhí)行體 commandExecutor 進(jìn)行綁initService(repositoryServiceinitService(runtimeService );initService(historyService );initService(identityService);initServi
17、ce(taskService );initService(formService );initService(managementServiceinitService(dynamicBpmnServiceinitServices() );););protected voidprotectedvoidinitService(Objectservice ) if ( serviceinstanceof Serviceimpl) (Serviceimpl)service ).setCommandExecutor(commandExecutor ); protectedvoid initService
18、(Objectservice ) if ( serviceinstanceof Serviceimpl) (Servicelmpl)service ).setCommandExecutor( commandExecutor );2.2.3 命令執(zhí)行器執(zhí)行命令過程這個(gè)可以從CommandExecutor的具體實(shí)現(xiàn)類 CommandExecutorlmpl 的execute方法進(jìn)行分析:public T execute(Command command) return execute( defaultConfig , command); public T execute(CommandConfig
19、config , Command command) return first .execute( config , command);從中可以看出其實(shí)是將命令的處理交給命令攔截器first 去處理其中這個(gè)巾rst就是LogInterceptor對(duì)象的引用,它執(zhí)行的邏輯如下:public T execute(CommandConfig config , Command command) if (! log .isDebugEnabled() / do nothing here if we cannot log return next .execute( config , command);log
20、 .debug( n);log .debug( starting ,commandgetClass().getSimpleName();try return next .execute( config , command); finally log .debug( finished ,commandgetClass().getSimpleName();log .debug( n); CommandContextInterceptor 顧名思義,它是一個(gè)攔截器,攔截所有命令,在命令執(zhí)行前后 執(zhí)行一些公共性操作。比如 CommandContextInterceptor的核心方法:Java 代碼 立
21、1. public T execute(Command command) 2. CommandContext context = commandContextFactory.createCommandContext(command);3.4. try 5. /執(zhí)行前保存上下文6. Context.setCommandContext(context);7. Context.setProcessEngineConfiguration(processEngineConfiguration);8. return next.execute(command); / 執(zhí)行命令9.10. catch (Exc
22、eption e) 11. context.exception(e);12. finally 13. try 14. /關(guān)閉上下文,內(nèi)部會(huì) flush session ,把數(shù)據(jù)持久化到 db等15. context.close();16. finally 17. /釋放上下文18. Context.removeCommandContext();19. Context.removeProcessEngineConfiguration();20. 21. 22.23. return null ;24. LogInterceptor 對(duì)象主要是打印一下日志,最后執(zhí)行 next .execute( c
23、onfig , command);將命令交給下一個(gè)攔截器處理,依次類推。這種將命令依次交給一條鏈表中的不同節(jié)點(diǎn)的執(zhí)行體執(zhí)行的設(shè)計(jì)模式就是責(zé)任鏈模式。最后一個(gè)攔截器 CommandInvoker的處理邏輯如下:public T execute(CommandConfig config , Command command) return command.execute(Context. getCommandContext (); 上面Service中定義的各個(gè)方法都對(duì)應(yīng)相應(yīng)的命令對(duì)象(xxCmd), Service把各種請(qǐng)求委托給xxCmd, xxCmd來決定命令的接收者,接收者執(zhí)行后返回結(jié)果。比
24、如 processEngineConfiguration.buildProcessEngineft作二命令:SchemaOperationsProcessEngineBuildruntimeService.startProcessInstanceByKey()動(dòng)流程操作=命令:StartProcessInstanceCmd2.3 Activiti重要表結(jié)構(gòu)描述2.3.1 邏輯結(jié)構(gòu)設(shè)計(jì)Activiti的后臺(tái)是有數(shù)據(jù)庫的支持,所有的表都以ACT才頭。第二部分是表示表的用途的兩個(gè)字母標(biāo)識(shí)。用途也和服務(wù)的API對(duì)應(yīng)。1)ACT_RE_*: R凄示repository0這個(gè)前綴的表包含了流程定義和流程靜
25、態(tài) 資源(圖彳,規(guī)則,等等)。2)ACT_RU_*: RU表示runtime。這些運(yùn)行時(shí)的表,包含流程實(shí)例,任務(wù), 變量,異步行務(wù)率運(yùn)行中的數(shù)據(jù)。Activiti只在流程實(shí)例執(zhí)行過程中保存這些數(shù)據(jù),在流程結(jié)束時(shí)就會(huì)刪除這些記錄。3)ACT_ID_*: ID表示identity。這些表包含身份信息,比如用戶,組等等。 ACT_HI_*: HI表示history。這些表包含歷史數(shù)據(jù),比如歷史流程實(shí)例,變量,任務(wù)會(huì)本4) ACT_HI_*: H葭示history。這些表包含歷史數(shù)據(jù),比如歷史流程實(shí)例,變 量,任務(wù)等豕。5)ACT_GE_*:通用數(shù)據(jù),用于不同場景下,如存放資源文件2.3.2 資源庫流
26、程規(guī)則表 部署信息表(act_re_deployment)1)簡要描述部署流程定義時(shí)需要被持久化保存下來的信息。2)表結(jié)構(gòu)說明字段名稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_ID_nvarchar(64)主鍵IDNAME_部署名稱nvarchar(255)VCATEGORY.分類nvarchar(255)V類別DEPLOY_TIME_部署時(shí)間datetimeV部署時(shí)間 流程設(shè)計(jì)模型部署表(act_re_mod el )1)簡要描述流程設(shè)計(jì)器設(shè)計(jì)流程后,保存數(shù)據(jù)到該表2)表結(jié)構(gòu)說明字段名稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_ID_nvarchar(64)ID_REV_
27、樂觀鎖intV樂觀鎖NAME_名稱nvarchar(255)V名稱KEY_KEY_nvarchar(255)V分類,例如:CATEGORY.分類nvarchar(255)V分類CREATE_TIME_創(chuàng)建時(shí)間datetimeV創(chuàng)建時(shí)間LAST_UPDATE_TIME_最新修改時(shí)間datetimeV最新修改時(shí)間VERSION.版本intV版本META_INFO_META_INFO_nvarchar(255)V以json格式保 存流程定義的信息DEPLOYMENT_ID_部署IDnvarchar(255)V部署IDEDITOR_SOURCE_VALUE_ID_datetimeVEDITOR_SOU
28、RCE_EXTRA_VALUE_ID_datetimeV 流程定義數(shù)據(jù)表(act_re_procdef )1Z簡要描述業(yè)務(wù)流程定義數(shù)據(jù)表。此表和ACT_RE_DEPLOYMENT 是多對(duì)一的關(guān)系,即,一個(gè)部署的bar包里可能包含多個(gè)流程定義文件,每個(gè)流程定義文件都會(huì)有一條記錄在ACT_REPROCDEF 表內(nèi),每個(gè)流程定義的數(shù)據(jù), 者B會(huì)又于 ACT_GE_BYTEARRAY 表內(nèi)的一個(gè)資源文件 和PNG 圖片文件。和 ACT GE BYTEARRAY 的關(guān)聯(lián) 是通過程序用 ACT_GE_BYTEARRAY .NAME 與 ACT_RE_PROCDEF .NAME_ 完成的,在數(shù)
29、據(jù)庫表結(jié)構(gòu)|中沒有體現(xiàn)。2)表結(jié)構(gòu)說明字段名稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_ID_nvarchar(64)ID_REV_樂觀鎖intV樂觀鎖CATEGORY.分類nvarchar(255)V流程定義的Namespace 就是類別NAME_名稱nvarchar(255)V名稱KEY_定義的KEYnvarchar(255)流程定義IDVERSION.版本int版本DEPLOYMENT_ID_部署表IDnvarchar(64)V部署表IDRESOURCE_NAME_bpmn文件名稱nvarchar(4000 )V流程bpmn 文件名稱DGRM_RESOURCE_N AME_png圖片名稱nv
30、archar(4000 )V流程圖片名稱DESCRIPTION.描述nvarchar(4000 )V描述HAS_START_FORM_KEY_是否存在開始節(jié)點(diǎn) formKeytinyintVstart 節(jié)點(diǎn)是否 存在 formKey0否1是2.3.3 運(yùn)行時(shí)數(shù)據(jù)庫表 運(yùn)行時(shí)流程執(zhí)行實(shí)例表(act_ru_execution )1)簡要描述流程執(zhí)行記錄表。2)表結(jié)構(gòu)說明字段名稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_ID_nvarchar(64)ID_REV_樂觀鎖intV樂觀鎖PROC_INST_ID_流程實(shí)例IDnvarchar(64)流程實(shí)例IDBUSINESS_KEY_業(yè)務(wù)主鍵
31、IDnvarchar(255)V業(yè)務(wù)主鍵IDPARENT_ID_父節(jié)點(diǎn)實(shí)例IDnvarchar(64)V父節(jié)點(diǎn)實(shí)例IDPROC_DEF_ID_流程定義IDnvarchar(64)V流程定義IDSUPER_EXEC_SUPER_EXECnvarchar(64)VSUPER_EXEC_ACT_ID_節(jié)點(diǎn)實(shí)例IDnvarchar(255)V節(jié)點(diǎn)實(shí)例ID即ACT_HI_ACT INST 中 IDIS_ACTIVE_是否存活tinyintV是否存活I(lǐng)S_CONCURRENT_是否并行tinyintV是否為并行(true/false )IS_SCOPE_IS_SCOPE_tinyintVIS_SCOPE_
32、IS_EVENT_SCOPE_IS_EVENT_S COPE_tinyintVIS_EVENT_S COPE_SUSPENSION_STATE_是否掛起tinyintV掛起狀態(tài)1激活2掛起CACHED_ENT_STATEintV 運(yùn)行時(shí)流程人員表(act_ru_identitylink )1)簡要描述2)表結(jié)構(gòu)說明字段名稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_ID_nvarchar(64)ID_REV_樂觀鎖intV樂觀鎖GROUP_ID_組IDnvarchar(64)V組IDTYPE_nvarchar(255)V備注7USER_ID_用戶IDnvarchar(64)V用戶IDT
33、ASK_ID_節(jié)點(diǎn)實(shí)例IDnvarchar(64)V節(jié)點(diǎn)實(shí)例IDPROC_INST_ID_流程實(shí)例IDnvarchar(64)V流程實(shí)例ID 運(yùn)行時(shí)任務(wù)節(jié)點(diǎn)表(act_ru_task )1)簡要描述運(yùn)行時(shí)任務(wù)數(shù)據(jù)表。2)表結(jié)構(gòu)說明字段名稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_ID_nvarchar(64)ID_REV_樂觀鎖int樂觀鎖EXECUTION_ID_執(zhí)行實(shí)例IDnvarchar(64)V執(zhí)行實(shí)例IDPROC_INST_ID_流程實(shí)例IDnvarchar(64)V流程實(shí)例IDPROC_DEF_ID_流程定義IDnvarchar(64)V流程定義IDNAME_節(jié)點(diǎn)定義名稱
34、nvarchar(255)V節(jié)點(diǎn)定義名稱PARENT_TASK_ID_父節(jié)點(diǎn)實(shí)例IDnvarchar(64)V父節(jié)點(diǎn)實(shí)例IDDESCRIPTION.節(jié)點(diǎn)定義描述nvarchar(4000)V節(jié)點(diǎn)定義描述TASK_DEF_KEY_節(jié)點(diǎn)定義的KEYnvarchar(255)V任務(wù)定義的IDOWNER_實(shí)際簽收人nvarchar(255)V擁有者(一M情 況下為空,只后 在委托時(shí)才有 值)ASSIGNEE.簽收人或委托 人nvarchar(255)V簽收人或委托 人DELEGATION.委托類型nvarchar(64)V備注8PRIORITY.優(yōu)先級(jí)別intV優(yōu)先級(jí)別,默認(rèn)為:50CREATE_TI
35、ME_創(chuàng)建時(shí)間datetimeV創(chuàng)建時(shí)間DUE_DATE_過期時(shí)間datetimeV耗時(shí)SUSPENSION_STATE_是否掛起intV1代表激活2 代表掛起 運(yùn)行時(shí)流程變量數(shù)據(jù)表(act_ru_variable )1)簡要描述運(yùn)行時(shí)流程變量數(shù)據(jù)表。2)表結(jié)構(gòu)說明字段名稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_ID_nvarchar(64)主鍵標(biāo)識(shí)REV_樂觀鎖intV樂觀鎖TYPE_nvarchar(255)備注9NAME_名稱nvarchar(255)變量名稱EXECUTION_ID_執(zhí)行實(shí)例IDnvarchar(64)V執(zhí)行的IDPROC_INST_ID_流程實(shí)例IDnva
36、rchar(64)V流程實(shí)例IDTASK_ID_節(jié)點(diǎn)實(shí)例IDnvarchar(64)V節(jié)點(diǎn)實(shí)例ID(Local )BYTEARRAY_ID_字節(jié)表IDnvarchar(64)V字節(jié)表的ID(ACT_GE_BYTEARRAY )DOUBLE_DOUBLE_floatV存儲(chǔ)變量類型為 DoubleLONG_LONG_numeric(19)V存儲(chǔ)變量類型為 longTEXT_TEXT_nvarchar(4000)V存儲(chǔ)變量值類 型為String如此處存儲(chǔ) 持久化對(duì)象時(shí), 值jpa對(duì)象的 classTEXT2_TEXT2_nvarchar(4000 )此處存儲(chǔ)的是 JPA持久化對(duì) 象時(shí),才會(huì)有 值。此
37、值為對(duì)象ID 運(yùn)行時(shí)定時(shí)任務(wù)數(shù)據(jù)表(act_ru_job )1)簡要描述運(yùn)行時(shí)定時(shí)任務(wù)數(shù)據(jù)表。2)表結(jié)構(gòu)說明字段名稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_標(biāo)識(shí)nvarchar(64)V標(biāo)識(shí)REV_版本intV版本TYPE_類型nvarchar(255)類型LOCK_EXP_TIME_鎖定釋放時(shí)間datetimeV鎖定釋放時(shí)間LOCK_OWNER_掛起者nvarchar(255)V掛起者EXCLUSIVE.bitVEXECUTION_ID_執(zhí)行實(shí)例IDnvarchar(64)V執(zhí)行實(shí)例IDPROCESS_INSTANCE_ID_流程實(shí)例IDnvarchar(64)V流程實(shí)例IDPR
38、OC_DEF_ID_流程定義IDnvarchar(64)V流程定義IDRETRIES_intVEXCEPTION_STACK_ID_異常信息IDnvarchar(64)V異常信息IDEXCEPTION_MSG_異常信息nvarchar(4000)V異常信息DUEDATE_到期時(shí)間datetimeV到期時(shí)間REPEAT_重復(fù)nvarchar(255)V重復(fù)HANDLER_TYPE_處理類型nvarchar(255)V處理類型HANDLER_CFG_nvarchar(4000)V標(biāo)識(shí)2.3.4 歷史數(shù)據(jù)庫表 歷史節(jié)點(diǎn)表(act_hi_actinst )1)簡要描述歷史活動(dòng)信息。這里記
39、錄流程流轉(zhuǎn)過的所有節(jié)點(diǎn),與HI_TASKINST 不同的是,taskinst 只記錄 usertask 內(nèi)容。2)表結(jié)構(gòu)說明字段名稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_ID_nvarchar(64)PROC_DEF_ID_流程定義IDnvarchar(64)PROC_INST_ID_流程實(shí)例IDnvarchar(64)EXECUTION_ID_執(zhí)行實(shí)例IDnvarchar(64)ACT_ID_節(jié)點(diǎn)IDnvarchar(225)節(jié)點(diǎn)定義IDTASK_ID_任務(wù)實(shí)例IDnvarchar(64)V任務(wù)實(shí)例ID 其他節(jié)點(diǎn)類型 實(shí)例ID在這里 為空CALL_PROC_INST_ID調(diào)用外部的流程實(shí)例I
40、Dnvarchar(64)V調(diào)用外部流程 的流程實(shí)例IDACT_NAME_節(jié)點(diǎn)名稱nvarchar(225)V節(jié)點(diǎn)定義名稱ACT_TYPE_節(jié)點(diǎn)類型nvarchar(225)如startEvent 、userTaskASSIGNEE.簽收人nvarchar(64)V節(jié)點(diǎn)簽收人START_TIME_開始時(shí)間datetime2013-09-1511:30:00END_TIME_結(jié)束時(shí)間datetimeV2013-09-1511:30:00DURATION.耗時(shí)numeric(19,0)V毫秒值 歷史任務(wù)實(shí)例表(act_hi_taskinst )1)簡要描述歷史任務(wù)實(shí)例表。2)表結(jié)構(gòu)說
41、明字段名稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_ID_nvarchar(64)主鍵IDPROC_DEF_ID_流程定義IDnvarchar(64)V流程定義IDTASK_DEF_KEY_節(jié)點(diǎn)定義IDnvarchar(255)V節(jié)點(diǎn)定義IDPROC_INST_ID_流程實(shí)例IDnvarchar(64)V流程實(shí)例IDEXECUTION_ID_執(zhí)行實(shí)例IDnvarchar(64)V執(zhí)行實(shí)例IDNAME_名稱varchar(255)V名稱PARENT_TASK_ID_父節(jié)點(diǎn)實(shí)例IDnvarchar(64)V父節(jié)點(diǎn)實(shí)例IDDESCRIPTION.描述nvarchar(400)V描述OWNER_實(shí)際簽收人
42、任 務(wù)的擁有irnvarchar(255)V簽收人(默認(rèn)為 空,只后在委托 時(shí)才有值)ASSIGNEE.簽收人或被委 托nvarchar(255)V簽收人或被委 托START_TIME_開始時(shí)間datetime開始時(shí)間CLAIM_TIME_提醒時(shí)間datetimeV提醒時(shí)間END_TIME_結(jié)束時(shí)間datetimeV結(jié)束時(shí)間DURATION.耗時(shí)numeric(19)V耗時(shí)DELETE_REASON_刪除原因nvarchar(4000)V刪除原因 (completed, deleted)PRIORITY.優(yōu)先級(jí)別intV優(yōu)先級(jí)別DUE_DATE_過期時(shí)間datetimeV過期時(shí)間,表明 任務(wù)應(yīng)
43、在多長 時(shí)間內(nèi)完成FORM_KEY_ 歷史變量表(act_hi_varinst )1)簡要描述歷史變量表。2)表結(jié)構(gòu)說明字段名稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_ID_nvarchar(64)ID_PROC_INST_ID_流程實(shí)例IDnvarchar(64)流程實(shí)例IDEXECUTION_ID_執(zhí)行實(shí)例IDnvarchar(255)V執(zhí)行實(shí)例IDTASK_ID_任務(wù)實(shí)例IDnvarchar(64)V任務(wù)實(shí)例IDNAME_名稱nvarchar(64)參數(shù)名稱(英文)VAR_TYPE_參數(shù)類型varchar(255)V備注5REV_樂觀鎖nvarchar(64)V樂觀鎖Vers
44、ionBYTEARRAY_ID_字節(jié)表IDnvarchar(400)VACT_GE_BYTEARRAY表的主鍵DOUBLE_DOUBLE_nvarchar(255)V存儲(chǔ)DoubleType類型的數(shù)據(jù)LONG_LONG_nvarchar(255)V存儲(chǔ)LongType 類型的數(shù)據(jù)TEXT_TEXT_datetimeV備注6TEXT2_TEXT2_datetimeV此處存儲(chǔ)的是 JPA持久化對(duì) 象時(shí),才會(huì)有 值。此值為對(duì)象ID2.3.5通用數(shù)據(jù)表 二進(jìn)制數(shù)據(jù)表(act_ge_bytearray )1)簡要描述保存流程定義圖片和bpmn文件,即保存所有二進(jìn)制數(shù)據(jù)。2)表結(jié)構(gòu)說明字段名
45、稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_ID_nvarchar(64)主鍵IDREV_樂觀鎖intVVersion(版本)NAME_名稱nvarchar(255)V部署的文件名稱,如:mail.bpmn 、 mail.png 、mail.bpmn20.xmlDEPLOYMENT_ID_部署IDnvarchar(64)V部署表IDBYTES_varbinary(max)V部署文件GENERATED.是否是引擎 生成tinyintV0為用戶生成1為Activiti 生成3開發(fā)前準(zhǔn)備3.1 下載 Activiti下載的官方網(wǎng)站的地址:http:/download.html 。
46、下載后解壓(我 所使用的是activiti-5.21.0版本的),看到如下目錄:1) database:里面存放的是Activiti使用到的數(shù)據(jù)庫信息的sql文件,它支持 主流的數(shù)據(jù)庫類型,使用時(shí)只需執(zhí)行你自己的數(shù)據(jù)庫類型的文件即可。如:你的數(shù)據(jù)庫是MySQL那么就執(zhí)行activiti.mysql.create.*sql即可。2) docs:毫無疑問,api文檔是也。3) libs:使用Activiti所需要的所有的jar包和源文件。4) wars:官方給我們提供的示例 Demo,通過使用Demo可以更加快速的了 解 Activiti。3.2 下載安裝流程設(shè)計(jì)器(eclipse插件)下載act
47、iviti-designer-5.18.0.zip工作流設(shè)計(jì)插件,在 eclipse安裝該插件,安 裝后,我們可以在eclipse里面很方便的設(shè)計(jì)出流程圖。安裝完成后在菜單選項(xiàng)中會(huì)出現(xiàn)activiti的目錄選項(xiàng)| tyipfr filtg-rQr In terfac eJava Project案 Java Project fromi EMinting Ant Buildfile Pluig-im Projectt ier General. i w? Activrti Activiti Diagram Adrvrtf ProjectL * Connertion Profiles 匚 r Dbtab函與e Web Services設(shè)置eclipse activit插件的畫流程圖選項(xiàng),打開菜單 Windows - Preferences- Activiti -Save Actions下,設(shè)置流程圖片的生成方式:|type filter textGeneral ActivitiActiviti languages Alfreizo settings EditorSave ActionsActiviti cloud editor3E Preferences 回Save ActionsO * Q * Set
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030高等教育行業(yè)市場發(fā)展分析及前景趨勢與投融資發(fā)展機(jī)會(huì)研究報(bào)告
- 2025至2030年乙酸鋰項(xiàng)目投資價(jià)值分析報(bào)告
- 2025年隱形內(nèi)增高墊項(xiàng)目可行性研究報(bào)告
- 2025年鍛造鐵藝歐式門項(xiàng)目可行性研究報(bào)告
- 級(jí)行政事業(yè)單位房產(chǎn)租賃合同
- 農(nóng)業(yè)科技服務(wù)與技術(shù)推廣合作合同書
- 【正版授權(quán)】 ISO/IEC TS 33062:2025 EN Information technology - Process assessment - Process assessment model for quantitative processes to support higher levels of process capability in
- 【正版授權(quán)】 ISO 9038:2025 EN Determination of sustained combustibility of liquids
- 【正版授權(quán)】 ISO 8600-1:2025 EN Endoscopes - Medical endoscopes and endotherapy devices - Part 1: General requirements
- 【正版授權(quán)】 ISO 7012-3:2025 EN Paints and varnishes - Determination of preservatives in water-dilutable coating materials - Part 3: Determination of in-can isothiazolinones with LC-UV a
- DL-T-1878-2018燃煤電廠儲(chǔ)煤場盤點(diǎn)導(dǎo)則
- 《扣件式鋼管腳手架安全技術(shù)規(guī)范》JGJ130-2023
- 建設(shè)項(xiàng)目3000萬元以下估算投資額分檔收費(fèi)標(biāo)準(zhǔn)
- 《禮儀培訓(xùn)》PPT課件
- 能源計(jì)量網(wǎng)絡(luò)圖范例二
- 歷代皇帝年號(hào)表
- 超星爾雅學(xué)習(xí)通《時(shí)間管理》章節(jié)測試含答案
- 110ZM241塔型圖
- 二至六年級(jí)24點(diǎn)試題與部分答案
- 2016年江蘇開放大學(xué)-實(shí)踐性考核作業(yè)-建設(shè)工程施工管理1課件
- 生產(chǎn)部崗位技能矩陣圖
評(píng)論
0/150
提交評(píng)論