工作流Activit介紹與應(yīng)用_第1頁
工作流Activit介紹與應(yīng)用_第2頁
工作流Activit介紹與應(yīng)用_第3頁
工作流Activit介紹與應(yīng)用_第4頁
工作流Activit介紹與應(yīng)用_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實用文檔文案大全工作流Activiti介紹與應(yīng)用工作流(workflow)就是工作流程的計算模型,即將工作流程中的工作如何 前后組織在一起的邏輯和規(guī)則在計算機中以恰當?shù)哪P瓦M行表示并對其實施計 算。我的理解就是:將部分或者全部的工作流程、邏輯讓計算機幫你來處理,實 現(xiàn)自動化。1 Activiti 簡介Activiti是由Alfresco軟件在2010年5月17日發(fā)布的業(yè)務(wù)流程管理(BPM)f 架,它是覆蓋了業(yè)務(wù)流程管理,工作流,服務(wù)協(xié)作等領(lǐng)域的一個開源,靈活的, 易擴展的可執(zhí)行流程語言框架。它實現(xiàn)了 BPMN 2.0規(guī)范,可以發(fā)布設(shè)計好的流 程定義,并通過api進行流程調(diào)度。1.1 Activ

2、iti 基礎(chǔ)編程框架Activiti的基礎(chǔ)編程框架如下:ProcessEngineCommandCo ntextlnterce pte r(Co mmandE xecutor)xxCmdyyCmdzzCmdContextExecutioncontextComma ndContotPersistenceframeworkEvent-ListenerFrameworkCacheComponentActiviti基于Spring, ibatis等開源中間件作為軟件平臺,在此之上構(gòu)建了非常 清晰的開發(fā)框架。上圖列出了 Activiti的核心組件。I.ProcessEngine流程引擎的抽象,對于開發(fā)者

3、來說,它是我們使用Activiti的外觀(fa?ade)通過它可以獲得我們需要的一切服務(wù)。2.XXServic e TaskService,RuntimeService,RepositoryService):Activ 膿照流程的生 命周期(定義,部署,運行)把不同階段的服務(wù)封裝在不同的Service中,用戶可以非常清晰地使用特定階段的接口。通過ProcessEnginett夠獲彳導(dǎo)這些Service實例。1.2 Activiti 重要服務(wù)類ProcessEngine :流程引擎的抽象,通過它我們可以獲得我們需要的一切服務(wù)。RepositoryServiceActiviti中每一個不同版本的業(yè)

4、務(wù)流程的定義都需要使用一些定義文 件,部署文件和支持數(shù)據(jù)(例如BPMN2.0 XML文件,表單定義文件,流程定義圖像文件等), 這些文件都存儲在 Activiti 內(nèi)建的 Repository 中。RepositoryService 提供了對 repository 的存取服務(wù)。TaskService在Activiti業(yè)務(wù)流程定義中每一個執(zhí)行節(jié)點都被稱作一個 Task流程 運行過程中,與每個任務(wù)節(jié)點相關(guān)的接口, 比如complete, delete,delegate等等都 是 TaskService1供的。IdentityService : Activiti中內(nèi)置了用戶以及組管理的功能,必須使用

5、這些用戶和組的信息才能獲取到相應(yīng)的 Tasko IdentityService 提供了對Activiti系統(tǒng)中的用戶和組的管理功能。FormService Activiti中的流程和 Task狀態(tài)均可關(guān)聯(lián)業(yè)務(wù)相關(guān)的數(shù)據(jù)。通過 FormService可以存取啟動和完成任務(wù)所需要的表單數(shù)據(jù)。RuntimeService在Activiti中,每當一個流程定義被啟動一次之后,都會生成一個相應(yīng)的流程對象實例。RuntimeService 提供了啟動流程、查詢流程實例、設(shè)置獲取流程實例變量二|等功能。此外它還提供了對流程部署,流程定義和流程實例的存取服務(wù)。二|.ManagementService : Ma

6、nagementService 提供了對Activiti流程引擎的管理和維護功能, 這些功能不在工作流驅(qū)動的應(yīng)用程序中使用,主要用于Activiti系統(tǒng)的日常維護。HistoryService : HistoryService 用于獲取正在運行或已經(jīng)完成的流程實例的信息,與 RuntimeService 中獲取的流程信息不同,歷史信息包含已經(jīng)持久化存儲的永久信息,并已 經(jīng)被針對查詢優(yōu)化。關(guān)于ProcessEngine口 XXService的關(guān)系,可以看下面這張圖:2 Activiti 深入2.1 Activiti 配置類分析ProcessEngineConfiguratio啖的結(jié)構(gòu)圖如下圖:正

7、如上圖所示,ProcessEngineConfiguration 是全部配置類的 父類,有一個 ProcessEngineConfigurationlmpl 子類,ProcessEngineConfigurationlmpl下面有三個直接的子類,其中 ProcessEngineConfiguration 和 ProcessEngineConfigurationImpl都是抽象類。這個類是我們編程時第一個使用的類,有了這個類的層級結(jié)構(gòu),我們就比較容易理解通過該類獲取各種具體實現(xiàn)的ProcessEngineConfiguration 類的實例了。ProcessEngineConfiguration

8、.createProcessEngineConfigurationFromResourceDefa ult();ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(acti viti.cfg.xml);ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();通過上面的方法,可以獲取流程引擎的配置類的實例,這些實例有的是通過配置文件進行配置的,有的則是通過程序的方法進行指定,比如:ProcessEngineConfig

9、uration.createStandaloneProcessEngineConfiguration();生成這樣的配置實例后,需要對該實例進行數(shù)據(jù)庫連接相關(guān)的配置等等。2.2 Activiti命令執(zhí)行器分析ACTIVITI所有執(zhí)行過程都是采用命令模式,使用命令執(zhí)行器進行執(zhí)行,這個可是從RuntimeServiceImpl啟動流程的代碼可以看出來: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í)行器是一個采用攔截器鏈式的結(jié)構(gòu),這個可以從如下的分析得出:commandExecutor 對象是首先在 ProcessEngineConfigurationImpl的初始化方法中產(chǎn)生:protected void initCommandExecutor() if ( commandExec

11、utor =null ) Commandinterceptorfirst = initInterceptorChain(commandinterceptors );commandExecutor = new CommandExecutorImpl(getDefaultCommandConfig(), first ); ) ) 而這個命令執(zhí)行器 commandExecutor 的構(gòu)造過程中跟 commandinterceptors中的第一個命令攔截器有關(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 ;同時每個攔截器又是通過next域的方式將不同的攔截器進行鏈接形成一個鏈接結(jié)構(gòu),這個可以從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 對象在 ProcessEngineConfigur

16、ationimpl成,那么為什么它會在 RuntimeService 等service對象中獲取呢?依然 回至1J ProcessEngineConfigurationimplinitServices定。方法, 將 runtimeService 等 Service初始化過程,初始化過程會調(diào)用實例與該命令執(zhí)行體 commandExecutor 進行綁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í)行命令過程這個可以從CommandExecutor的具體實現(xiàn)類 CommandExecutorlmpl 的execute方法進行分析:public T execute(Command command) return execute( defaultConfig , command); public T execute(CommandConfig

19、config , Command command) return first .execute( config , command);從中可以看出其實是將命令的處理交給命令攔截器first 去處理其中這個巾rst就是LogInterceptor對象的引用,它執(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 顧名思義,它是一個攔截器,攔截所有命令,在命令執(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)部會 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 對象主要是打印一下日志,最后執(zhí)行 next .execute( c

23、onfig , command);將命令交給下一個攔截器處理,依次類推。這種將命令依次交給一條鏈表中的不同節(jié)點的執(zhí)行體執(zhí)行的設(shè)計模式就是責任鏈模式。最后一個攔截器 CommandInvoker的處理邏輯如下:public T execute(CommandConfig config , Command command) return command.execute(Context. getCommandContext (); 上面Service中定義的各個方法都對應(yīng)相應(yīng)的命令對象(xxCmd), Service把各種請求委托給xxCmd, xxCmd來決定命令的接收者,接收者執(zhí)行后返回結(jié)果。比

24、如 processEngineConfiguration.buildProcessEngineft作二命令:SchemaOperationsProcessEngineBuildruntimeService.startProcessInstanceByKey()動流程操作=命令:StartProcessInstanceCmd2.3 Activiti重要表結(jié)構(gòu)描述2.3.1 邏輯結(jié)構(gòu)設(shè)計Activiti的后臺是有數(shù)據(jù)庫的支持,所有的表都以ACT才頭。第二部分是表示表的用途的兩個字母標識。用途也和服務(wù)的API對應(yīng)。1)ACT_RE_*: R凄示repository0這個前綴的表包含了流程定義和流程靜

25、態(tài) 資源(圖彳,規(guī)則,等等)。2)ACT_RU_*: RU表示runtime。這些運行時的表,包含流程實例,任務(wù), 變量,異步行務(wù)率運行中的數(shù)據(jù)。Activiti只在流程實例執(zhí)行過程中保存這些數(shù)據(jù),在流程結(jié)束時就會刪除這些記錄。3)ACT_ID_*: ID表示identity。這些表包含身份信息,比如用戶,組等等。 ACT_HI_*: HI表示history。這些表包含歷史數(shù)據(jù),比如歷史流程實例,變量,任務(wù)會本4) ACT_HI_*: H葭示history。這些表包含歷史數(shù)據(jù),比如歷史流程實例,變 量,任務(wù)等豕。5)ACT_GE_*:通用數(shù)據(jù),用于不同場景下,如存放資源文件2.3.2 資源庫流

26、程規(guī)則表 部署信息表(act_re_deployment)1)簡要描述部署流程定義時需要被持久化保存下來的信息。2)表結(jié)構(gòu)說明字段名稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_ID_nvarchar(64)主鍵IDNAME_部署名稱nvarchar(255)VCATEGORY.分類nvarchar(255)V類別DEPLOY_TIME_部署時間datetimeV部署時間 流程設(shè)計模型部署表(act_re_mod el )1)簡要描述流程設(shè)計器設(shè)計流程后,保存數(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)建時間datetimeV創(chuàng)建時間LAST_UPDATE_TIME_最新修改時間datetimeV最新修改時間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 是多對一的關(guān)系,即,一個部署的bar包里可能包含多個流程定義文件,每個流程定義文件都會有一條記錄在ACT_REPROCDEF 表內(nèi),每個流程定義的數(shù)據(jù), 者B會又于 ACT_GE_BYTEARRAY 表內(nèi)的一個資源文件 和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é)點 formKeytinyintVstart 節(jié)點是否 存在 formKey0否1是2.3.3 運行時數(shù)據(jù)庫表 運行時流程執(zhí)行實例表(act_ru_execution )1)簡要描述流程執(zhí)行記錄表。2)表結(jié)構(gòu)說明字段名稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_ID_nvarchar(64)ID_REV_樂觀鎖intV樂觀鎖PROC_INST_ID_流程實例IDnvarchar(64)流程實例IDBUSINESS_KEY_業(yè)務(wù)主鍵

31、IDnvarchar(255)V業(yè)務(wù)主鍵IDPARENT_ID_父節(jié)點實例IDnvarchar(64)V父節(jié)點實例IDPROC_DEF_ID_流程定義IDnvarchar(64)V流程定義IDSUPER_EXEC_SUPER_EXECnvarchar(64)VSUPER_EXEC_ACT_ID_節(jié)點實例IDnvarchar(255)V節(jié)點實例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 運行時流程人員表(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é)點實例IDnvarchar(64)V節(jié)點實例IDPROC_INST_ID_流程實例IDnvarchar(64)V流程實例ID 運行時任務(wù)節(jié)點表(act_ru_task )1)簡要描述運行時任務(wù)數(shù)據(jù)表。2)表結(jié)構(gòu)說明字段名稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_ID_nvarchar(64)ID_REV_樂觀鎖int樂觀鎖EXECUTION_ID_執(zhí)行實例IDnvarchar(64)V執(zhí)行實例IDPROC_INST_ID_流程實例IDnvarchar(64)V流程實例IDPROC_DEF_ID_流程定義IDnvarchar(64)V流程定義IDNAME_節(jié)點定義名稱

34、nvarchar(255)V節(jié)點定義名稱PARENT_TASK_ID_父節(jié)點實例IDnvarchar(64)V父節(jié)點實例IDDESCRIPTION.節(jié)點定義描述nvarchar(4000)V節(jié)點定義描述TASK_DEF_KEY_節(jié)點定義的KEYnvarchar(255)V任務(wù)定義的IDOWNER_實際簽收人nvarchar(255)V擁有者(一M情 況下為空,只后 在委托時才有 值)ASSIGNEE.簽收人或委托 人nvarchar(255)V簽收人或委托 人DELEGATION.委托類型nvarchar(64)V備注8PRIORITY.優(yōu)先級別intV優(yōu)先級別,默認為:50CREATE_TI

35、ME_創(chuàng)建時間datetimeV創(chuàng)建時間DUE_DATE_過期時間datetimeV耗時SUSPENSION_STATE_是否掛起intV1代表激活2 代表掛起 運行時流程變量數(shù)據(jù)表(act_ru_variable )1)簡要描述運行時流程變量數(shù)據(jù)表。2)表結(jié)構(gòu)說明字段名稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_ID_nvarchar(64)主鍵標識REV_樂觀鎖intV樂觀鎖TYPE_nvarchar(255)備注9NAME_名稱nvarchar(255)變量名稱EXECUTION_ID_執(zhí)行實例IDnvarchar(64)V執(zhí)行的IDPROC_INST_ID_流程實例IDnva

36、rchar(64)V流程實例IDTASK_ID_節(jié)點實例IDnvarchar(64)V節(jié)點實例ID(Local )BYTEARRAY_ID_字節(jié)表IDnvarchar(64)V字節(jié)表的ID(ACT_GE_BYTEARRAY )DOUBLE_DOUBLE_floatV存儲變量類型為 DoubleLONG_LONG_numeric(19)V存儲變量類型為 longTEXT_TEXT_nvarchar(4000)V存儲變量值類 型為String如此處存儲 持久化對象時, 值jpa對象的 classTEXT2_TEXT2_nvarchar(4000 )此處存儲的是 JPA持久化對 象時,才會有 值。此

37、值為對象ID 運行時定時任務(wù)數(shù)據(jù)表(act_ru_job )1)簡要描述運行時定時任務(wù)數(shù)據(jù)表。2)表結(jié)構(gòu)說明字段名稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_標識nvarchar(64)V標識REV_版本intV版本TYPE_類型nvarchar(255)類型LOCK_EXP_TIME_鎖定釋放時間datetimeV鎖定釋放時間LOCK_OWNER_掛起者nvarchar(255)V掛起者EXCLUSIVE.bitVEXECUTION_ID_執(zhí)行實例IDnvarchar(64)V執(zhí)行實例IDPROCESS_INSTANCE_ID_流程實例IDnvarchar(64)V流程實例IDPR

38、OC_DEF_ID_流程定義IDnvarchar(64)V流程定義IDRETRIES_intVEXCEPTION_STACK_ID_異常信息IDnvarchar(64)V異常信息IDEXCEPTION_MSG_異常信息nvarchar(4000)V異常信息DUEDATE_到期時間datetimeV到期時間REPEAT_重復(fù)nvarchar(255)V重復(fù)HANDLER_TYPE_處理類型nvarchar(255)V處理類型HANDLER_CFG_nvarchar(4000)V標識2.3.4 歷史數(shù)據(jù)庫表 歷史節(jié)點表(act_hi_actinst )1)簡要描述歷史活動信息。這里記

39、錄流程流轉(zhuǎn)過的所有節(jié)點,與HI_TASKINST 不同的是,taskinst 只記錄 usertask 內(nèi)容。2)表結(jié)構(gòu)說明字段名稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_ID_nvarchar(64)PROC_DEF_ID_流程定義IDnvarchar(64)PROC_INST_ID_流程實例IDnvarchar(64)EXECUTION_ID_執(zhí)行實例IDnvarchar(64)ACT_ID_節(jié)點IDnvarchar(225)節(jié)點定義IDTASK_ID_任務(wù)實例IDnvarchar(64)V任務(wù)實例ID 其他節(jié)點類型 實例ID在這里 為空CALL_PROC_INST_ID調(diào)用外部的流程實例I

40、Dnvarchar(64)V調(diào)用外部流程 的流程實例IDACT_NAME_節(jié)點名稱nvarchar(225)V節(jié)點定義名稱ACT_TYPE_節(jié)點類型nvarchar(225)如startEvent 、userTaskASSIGNEE.簽收人nvarchar(64)V節(jié)點簽收人START_TIME_開始時間datetime2013-09-1511:30:00END_TIME_結(jié)束時間datetimeV2013-09-1511:30:00DURATION.耗時numeric(19,0)V毫秒值 歷史任務(wù)實例表(act_hi_taskinst )1)簡要描述歷史任務(wù)實例表。2)表結(jié)構(gòu)說

41、明字段名稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_ID_nvarchar(64)主鍵IDPROC_DEF_ID_流程定義IDnvarchar(64)V流程定義IDTASK_DEF_KEY_節(jié)點定義IDnvarchar(255)V節(jié)點定義IDPROC_INST_ID_流程實例IDnvarchar(64)V流程實例IDEXECUTION_ID_執(zhí)行實例IDnvarchar(64)V執(zhí)行實例IDNAME_名稱varchar(255)V名稱PARENT_TASK_ID_父節(jié)點實例IDnvarchar(64)V父節(jié)點實例IDDESCRIPTION.描述nvarchar(400)V描述OWNER_實際簽收人

42、任 務(wù)的擁有irnvarchar(255)V簽收人(默認為 空,只后在委托 時才有值)ASSIGNEE.簽收人或被委 托nvarchar(255)V簽收人或被委 托START_TIME_開始時間datetime開始時間CLAIM_TIME_提醒時間datetimeV提醒時間END_TIME_結(jié)束時間datetimeV結(jié)束時間DURATION.耗時numeric(19)V耗時DELETE_REASON_刪除原因nvarchar(4000)V刪除原因 (completed, deleted)PRIORITY.優(yōu)先級別intV優(yōu)先級別DUE_DATE_過期時間datetimeV過期時間,表明 任務(wù)應(yīng)

43、在多長 時間內(nèi)完成FORM_KEY_ 歷史變量表(act_hi_varinst )1)簡要描述歷史變量表。2)表結(jié)構(gòu)說明字段名稱字段描述數(shù)據(jù)類型主鍵為空取值說明ID_ID_nvarchar(64)ID_PROC_INST_ID_流程實例IDnvarchar(64)流程實例IDEXECUTION_ID_執(zhí)行實例IDnvarchar(255)V執(zhí)行實例IDTASK_ID_任務(wù)實例IDnvarchar(64)V任務(wù)實例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存儲DoubleType類型的數(shù)據(jù)LONG_LONG_nvarchar(255)V存儲LongType 類型的數(shù)據(jù)TEXT_TEXT_datetimeV備注6TEXT2_TEXT2_datetimeV此處存儲的是 JPA持久化對 象時,才會有 值。此值為對象ID2.3.5通用數(shù)據(jù)表 二進制數(shù)據(jù)表(act_ge_bytearray )1)簡要描述保存流程定義圖片和bpmn文件,即保存所有二進制數(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ā)前準備3.1 下載 Activiti下載的官方網(wǎng)站的地址:http:/download.html 。

46、下載后解壓(我 所使用的是activiti-5.21.0版本的),看到如下目錄:1) database:里面存放的是Activiti使用到的數(shù)據(jù)庫信息的sql文件,它支持 主流的數(shù)據(jù)庫類型,使用時只需執(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è)計器(eclipse插件)下載act

47、iviti-designer-5.18.0.zip工作流設(shè)計插件,在 eclipse安裝該插件,安 裝后,我們可以在eclipse里面很方便的設(shè)計出流程圖。安裝完成后在菜單選項中會出現(xiàn)activiti的目錄選項| 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插件的畫流程圖選項,打開菜單 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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論