版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
jBPM用戶手冊目錄jBPM用戶手冊-1-第一章概述-3-第二章安裝-8-第三章流程-10-第四章BPMN2.0-21-第五章API-22-第六章人工任務-23-第七章領域-規(guī)范流程-33-第八章持久化-34-第九章控制臺-39-第十章監(jiān)視-42-第一章概述本章節(jié)將介紹jBPM5謝謝閱讀期和階段。這些階段包括建模、部署、執(zhí)行和監(jiān)視。1.建模jBPM感謝閱讀修改BPMN2.0業(yè)務流程定義。1.1.DroolsFlowforeclipse插件精品文檔放心下載DroolsFlow支持創(chuàng)建,調試流程。1.2.jBPM5foreclipse插件目前仍在開發(fā)中,僅支持創(chuàng)建流程。完成后的版本將完全支持BPMN2.0規(guī)范。感謝閱讀1.3.基于WEB的Oryx編輯器(EXT實現(xiàn))精品文檔放心下載Oryx編輯器整合到GuvnorOryx編輯器支持查看、感謝閱讀更新和創(chuàng)建流程。2.部署GuvnorWEB精品文檔放心下載的控制臺用來查找、修改和測試你的知識庫內(nèi)容。3.執(zhí)行3.1.流程引擎流程引擎是一個基于JAVA語言開發(fā)輕量級工作流引擎。精品文檔放心下載內(nèi)置支持BPMN2.0規(guī)范的流程插件化的數(shù)據(jù)持久層與事務配置審計和歷史日志記錄基于通用的流程引擎目前流程引擎還沒有實現(xiàn)BPMN2.0精品文檔放心下載型已支持。下圖列出所有jBPM5已支持的元素:下面列出所有BPMN2.0定義的元素:流程對象事件*StartEvent(None,Conditional,Signal,Message,Timer)感謝閱讀*EndEvent(None,Terminate,Error,Escalation,Signal,Message,Compensation)感謝閱讀*IntermediateCatchEvent(Signal,Timer,Conditional,Message)立即捕獲事件感謝閱讀*IntermediateThrowEvent(None,Signal,Escalation,Message,Compensation)謝謝閱讀*Non-interruptingBoundaryEvent(Escalation,Timer)非中斷邊界事件謝謝閱讀*InterruptingBoundaryEvent(Escalation,Error,Timer,Compensation)謝謝閱讀活動*ScriptTask(Java、MVEL)JAVA或MVEL腳本表達式語言謝謝閱讀*Task*ServiceTask*UserTask*BusinessRuleTask*ManualTask*SendTask*ReceiveTask*ReusableSub-Process(CallActivity)可復用的子流程精品文檔放心下載*EmbeddedSub-Process嵌入的子流程謝謝閱讀*Ad-HocSub-Process點對點的子流程感謝閱讀*Data-Object關口*分支*Exclusive(Java,MVELorXPathexpressionlanguage)排斥謝謝閱讀*Inclusive(Java,MVELorXPathexpressionlanguage)包含謝謝閱讀*Parallel并行*Event-Based*合并*Exclusive排斥*Parallel并行*Lanes數(shù)據(jù)*Javatypelanguage*Processproperties*EmbeddedSub-Processproperties謝謝閱讀*活動properties連接對象*Sequenceflow時序流3.2.人工任務服務WS-HT人工任務服務是BPM謝謝閱讀jBPM5中的actors代表謝謝閱讀人的抽象,也就是說不一定是人,可以是阿貓阿狗。jBPM5默認提供了一個與感謝閱讀actors交互的實現(xiàn),WS-HT。WS-HT也支持組設置,升級,分配規(guī)則等。精品文檔放心下載3.3.監(jiān)視流程監(jiān)聽器Processlisteners可監(jiān)聽流程引擎運行時環(huán)境發(fā)生的各種事件,如感謝閱讀感謝閱讀析或供BAM業(yè)務活動監(jiān)控進行動態(tài)分析。3.3.1.基于WEB的流程管理控制臺http://localhost:8080/jbpm-console感謝閱讀用戶名/密碼:krisv/krisv通過此控制臺可以管理流程實例。進入流程Overview精品文檔放心下載進入個人任務可以進行流程操作。進入報表可以查看流程報表。感謝閱讀第二章安裝參考/blog/998431謝謝閱讀Guvnor的使用:http://localhost:8080/drools-guvnor謝謝閱讀使用視頻:/kverlaen/install-guvnor-jbpm.swf精品文檔放心下載若有安裝問題,可這樣子:Email:jbpm-dev@謝謝閱讀IRC:#精品文檔放心下載jBPM用戶論壇/en/jbpm?view=discussions精品文檔放心下載FAQ:1.腳本不能下載組件?檢查網(wǎng)絡,或直接手動下載后放到jbpm-installer/lib文件夾。謝謝閱讀2.下載的組件不能解壓?文件有問題,重新下載。3.清除安裝?antclean.demo4.重新啟動報異常?手動人工服務結束進程,再重新啟動。這是腳本缺陷導致的。感謝閱讀5.控制臺或Guvroy報錯?檢查${jboss.home}/server/default/log。如不能解決,發(fā)到論壇。謝謝閱讀第三章流程業(yè)務流程是一張流程圖表,描述一系列執(zhí)行步驟的順序。它由多個結點感謝閱讀組成,結點之間互相連接。結點代表總流程的一個步驟,箭頭代表結點之間的連接,它指定如何從一個結點流向另外一個結點。精品文檔放心下載BMPN2.0已經(jīng)預定義了一組結點元素。本章節(jié)介紹如何定義和使用結點。1.創(chuàng)建流程創(chuàng)建流程有三種方式:EclipseBPMN2.0圖形編輯器插件文本編輯器直接創(chuàng)建通過流程API流程文件擴展名:bpmnbpmn2。圖形編輯器插件需要打開屬性面板配置元素屬性。XML形式:<?xmlversion="1.0"encoding="UTF-8"?>謝謝閱讀<definitionsid="Definition"targetNamespace="http:///javaTypes"謝謝閱讀expressionLanguage="http:///krisv/jbpm/tree/master/jbpm-bpmn2/src/test/resources/謝謝閱讀2.使用流程2.1.創(chuàng)建知識庫KnowledgeBuilderkbuilder=KnowledgeBuilderFactory.newKnowledgeBuilder();感謝閱讀kbuilder.add(ResourceFactory.newClassPathResource("MyProcess.bpmn2"),感謝閱讀ResourceType.BPMN2);KnowledgeBasekbase=kbuilder.newKnowledgeBase();感謝閱讀2.2.創(chuàng)建會話啟動流程流程啟動需要顯式調用startProcess方法。謝謝閱讀StatefulKnowledgeSessionksession=kbase.newStatefulKnowledgeSession();感謝閱讀ksession.startProcess("com.sample.hello");感謝閱讀參數(shù)com.sample.hello代表流程ID。感謝閱讀startProcess(StringprocessId,Mapparameters)方法的Map參數(shù)可傳入額外的感謝閱讀感謝閱讀變量。頂級變量是指變量的作用或是頂級的。2.3.結點類型的細節(jié)解釋流程有如下屬性:ID:惟一NAME:顯示名稱VERSION:版本Package:命名空間Variables:變量,用于傳遞數(shù)據(jù)Swimlanesactor精品文檔放心下載ConnectionLayout連接布局Manual:人工Shortestpath:最短路徑Manhattan:曼哈頓BMPN支持結點類型如下:開始事件與結束事件感謝閱讀束事件的Terminate精品文檔放心下載事件只會結束對應結束事件的路徑。如T2-E2.|-T1-E1(Terminate=false)S-+|-T2-E2(Terminate=false)RuleTask謝謝閱讀Droolsruleformat。規(guī)則可以成為標準規(guī)則流組的一部分通過在頭部使用感謝閱讀ruleflow-group屬性。ruleflow-group感謝閱讀DivergingGateway分支結點,一進多出。Gateway不好翻譯,所以省略。感謝閱讀ANDparallel與,并行,兩個都要滿足(同步)精品文檔放心下載XORorexclusive異或,排斥,只選擇其中一個感謝閱讀ORorinclusive或,包含,至少只要有一個滿足即可(不同步)謝謝閱讀ConvergingGateway合并結點,多進一出。精品文檔放心下載ANDparallel與,并行,兩個都要滿足(同步)精品文檔放心下載XORorexclusive異或,排斥,只選擇其中一個感謝閱讀ReusableSub-Process可復用子流程感謝閱讀Waitforcompletion等待完成On-entryandon-exitactions:綁定入口與出品action.精品文檔放心下載Parameterin/outmapping:in表示輸入?yún)?shù)out表示輸入?yún)?shù)和返回,只有當謝謝閱讀Waitforcompletion為true時,out才可以使用。謝謝閱讀ScriptTask代表一個可執(zhí)行的腳本。支持Java,MVEL方言。腳本綁定到精品文檔放心下載Action.Action:綁定的Action.TimerEvent定時器事件Timerdelay延遲時間msErrorEvent異常事件FaultName異常處理器名FaultVariable異常變量.MessageEvent消息事件,沒有輸入EventType監(jiān)聽事件類型VariableName事件數(shù)據(jù)Scopeinternal流程內(nèi)部事件external外部事件精品文檔放心下載.UserTask用戶任務(人工任務)ActorIdGroupIdSkippable表示這個任務是否可忽略,即不執(zhí)行就結束。謝謝閱讀Swimlane泳道On.entry/on-exitactions:綁定入口、出口Action謝謝閱讀Parametermapping傳入?yún)?shù)Resultmapping返回結果Content:任務數(shù)據(jù).Sub-Process子流程.MultipleInstances多實例子流程,特殊的子流程,允許執(zhí)行多次精品文檔放心下載ServiceTask(WorkItemnode)代表一個抽象的任務??赏ㄟ^它擴展任務。感謝閱讀Additionalparameters擴展參數(shù)定義精品文檔放心下載Data變量,頂級、子級,繼承樹約束:包括代碼約束和規(guī)則約束ActionsAction感謝閱讀流程,分發(fā)事件,插入數(shù)據(jù)。Events事件類型-事件監(jiān)聽(消息事件)-事件處理(action)精品文檔放心下載事件分發(fā):內(nèi)部事件流程管理外部事件actionTimers定時器更新流程//createthesessionandstarttheprocess"cess"精品文檔放心下載KnowledgeBuilderkbuilder=...感謝閱讀StatefulKnowledgeSessionksession=...精品文檔放心下載ProcessInstanceprocessInstance=ksession.startProcess("cess");感謝閱讀//addanewversionoftheprocess"cess2"感謝閱讀kbuilder=KnowledgeBuilderFactory.newKnowledgeBuilder();謝謝閱讀kbuilder.add(...,ResourceType.BPMN2);精品文檔放心下載kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());感謝閱讀//migrateprocessinstancetonewversion謝謝閱讀Map<String,Long>mapping=newHashMap<String,Long>();謝謝閱讀//toplevelnode2ismappedtoanewnodewithid3謝謝閱讀mapping.put("2",3L);//node2,whichispartofcompositenode5,ismappedtoanewnodewithid4精品文檔放心下載mapping.put("5.2",4L);WorkflowProcessInstanceUpgrader.upgradeProcessInstance(ksession,processInstance.get精品文檔放心下載Id(),"cess2",mapping);感謝閱讀第四章BPMN2.0目前jBPM5沒有完全實現(xiàn)BPMN2.0規(guī)范。因此本章略過。謝謝閱讀第五章API精品文檔放心下載何創(chuàng)建。第六章人工任務人工任務規(guī)范/ibmdl/pub/software/dw/specs/ws-bpel4people/WS-H精品文檔放心下載umanTask_v1.pdfjBPM5使用UserTask結點表示人工任務(需要與actorUserTask謝謝閱讀任務結點支持定義任務類型、actorsTaskService可管精品文檔放心下載理UserTask。為了使用人工任務,你必須定義UserTask結點。一個UserTask表示一個需要感謝閱讀actor執(zhí)行的自動化任務。人工任務其實可以簡單認為是任何類型的外部服務。謝謝閱讀外部服務需要被調用,可看成特殊類型的workitem實現(xiàn)。感謝閱讀人工任務惟一的特色是支持泳道來簡化給用戶分配任務。UserTask結點屬性:*Id:結點惟一標識*Name:結點名稱*TaskName:任務名稱*Priority:優(yōu)先級(整數(shù))*Comment:任務注釋*ActorId:actor,多個使用逗號","分隔感謝閱讀*Skippable:任務可跳過(不執(zhí)行就結束)*Content:任務關聯(lián)的數(shù)據(jù)*Swimlane:泳道,可以簡化分配多個人工任務給同一個actor精品文檔放心下載*Waitforcompletion:False謝謝閱讀務后繼續(xù)流程。*On-entryandon-exitactions:綁定入口、出品事件處理器-action感謝閱讀*Parametermapping:參數(shù)*Resultmapping:結果*Timers:定時器*ParentId:父人工服務ID1.泳道說明:這個譯法對于大家來講,不明白怎么回事?但名詞而已,純靠前輩誤導,慢慢誤導就理解了。謝謝閱讀使用泳道前必須在流程定義屬性中配置泳道的集合。后感謝閱讀面的人工任務即使顯式指定actorId,感謝閱讀的actorId。當然我們使用泳道就沒必要再指定actorId,第一個除外。謝謝閱讀試想,有這樣一個場景,公司有2個部門,HR部與IT2個泳道HR、IT感謝閱讀程定義中包含4個人工任務,前兩個人工任務需要與HR部經(jīng)理交互,后兩個人工任務需要精品文檔放心下載與IT部經(jīng)理交互。當我們指定前兩個人工任務的actorId時,需要分配兩次。后面兩個也感謝閱讀是如此?,F(xiàn)在極端情況發(fā)生了,HR經(jīng)理與HT經(jīng)理調崗,我們是不是得去修改流程定義下所精品文檔放心下載有人工服務的actorId?而通過使用泳道,只需要修改第一個和第三個的actorId。感謝閱讀泳道與actorId是一對多的關系,也就是說,一個人工任務可指定給多個actor感謝閱讀來處理。泳道的實質是什么,實質就是把人工任務進行分類,并綁定actor列表。感謝閱讀2.人工任務管理組件人工任務與其它外部服務類似,可作為workitme的擴展被實現(xiàn)和調用。流程僅精品文檔放心下載包含人工任務執(zhí)行所必要的抽象描述。workitemhandler是這個抽象描述的標準精品文檔放心下載實現(xiàn)。用戶使用我們可拔插的workitemhandler方式完成底層的實現(xiàn)。感謝閱讀我們也提供了一個WS-HumanTask規(guī)范的管理組件。通過它來管理任務的生命周感謝閱讀精品文檔放心下載配類型,代理和生死線。3.人工任務生命周期感謝閱讀人工任務進入Created狀態(tài)。當人工任務的Waitforcompletion屬性為False精品文檔放心下載要等待任務完成或終止。進入Created狀態(tài),任務將顯示所有負責執(zhí)行的actors。等待他們來獲取任務。謝謝閱讀一旦有一個actorReserved謝謝閱讀此時任務進入InProgress狀態(tài)。任務開始執(zhí)行,執(zhí)行完成后,用戶必須完成任精品文檔放心下載Completed感謝閱讀入Failed狀態(tài)。上面介紹的正常的生命周期,其它包括:Delegating/forwarding任務,分配任務給另外一個actor來處理謝謝閱讀Revoking回滾任務Temporarlysuspendingandresuming臨時掛起或繼續(xù)任務謝謝閱讀Stoppingataskinprogress停止正在執(zhí)行的任務謝謝閱讀Skipping跳過(不執(zhí)行)4.鏈接人工任務管理組件和引擎4.1.注冊workitemhandlerworkitemhandler的功能是翻譯抽象的workitem(如人工任務)為規(guī)范的精品文檔放心下載調用。我們已經(jīng)實現(xiàn)了個workitemhandler,它在包jbpm-human-task中:感謝閱讀cess.workitem.wsht.WSHumanTaskHandler感謝閱讀注冊代碼示例:StatefulKnowledgeSessionksession=...;精品文檔放心下載ksession.getWorkItemManager().registerWorkItemHandler("Human謝謝閱讀Task",newWSHumanTaskHandler());感謝閱讀若需要持久化會話內(nèi)容,應該使用謝謝閱讀cess.workitem.wsht.CommandBasedWSHumanTaskHandler精品文檔放心下載它們都默認使用Mina來提供C/S通信傳輸。感謝閱讀更快速的實現(xiàn)HornetQ也是可行的。人工任務客戶端使用如下的生命周期管理方法:5.啟動人工任務管理組件前提:數(shù)據(jù)表usersgroups謝謝閱讀taskSession.addUser(user)taskSession.addGroup(group)感謝閱讀確保數(shù)據(jù)庫相關表中至少有一個Administrator用戶和administrator感謝閱讀們提供的evaluation評審示例中會自動加載兩個用戶和組配置文件:感謝閱讀jbpm-installer\task-service\resources\org\jbpm\感謝閱讀LoadUsers.mvelLoadGroups.mvel啟動任務管理組件示例:EntityManagerFactoryemf=Persistence.createEntityManagerFactory("org.jbpm.task");謝謝閱讀TaskServicetaskService=newTaskService(emf,SystemEventListenerFactory.getSystemEvent謝謝閱讀Listener());MinaTaskServerserver=newMinaTaskServer(taskService);謝謝閱讀Threadthread=newThread(server);精品文檔放心下載thread.start();任務管理組件使用JPA來存儲任務數(shù)據(jù),因此需要配置persistence.xml感謝閱讀下面是任務管理組件使用Hibernate和H2數(shù)據(jù)庫存的示例:謝謝閱讀<?xmlversion="1.0"encoding="UTF-8"standalone="yes"?>謝謝閱讀<persistenceversion="1.0"xsi:schemaLocation="/xml/ns/persistence感謝閱讀/xml/ns/persistence/persistence_1_0.xsd
/xml/ns/persistence/orm感謝閱讀/xml/ns/persistence/orm_1_0.xsd"
xmlns:orm="/xml/ns/persistence/orm"
xmlns:xsi="http:///xml/ns/persistence"><persistence-unitname="org.drools.task">精品文檔放心下載<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>org.jbpm.task.Attachment</class><class>org.jbpm.task.Content</class><class>org.jbpm.task.BooleanExpression</class>
<class>org.jbpm.task.Comment</class><class>org.jbpm.task.Deadline</class><class>org.jbpm.task.Comment</class><class>org.jbpm.task.Deadline</class><class>org.jbpm.task.Delegation</class>
<class>org.jbpm.task.Escalation</class>
<class>org.jbpm.task.Group</class><class>org.jbpm.task.I18NText</class><class>org.jbpm.task.Notification</class><class>org.jbpm.task.EmailNotification</class><class>org.jbpm.task.EmailNotificationHeader</class><class>org.jbpm.task.PeopleAssignments</class><class>org.jbpm.task.Reassignment</class><class>org.jbpm.task.Status</class><class>org.jbpm.task.Task</class><class>org.jbpm.task.TaskData</class><class>org.jbpm.task.SubTasksStrategy</class>精品文檔放心下載<class>org.jbpm.task.OnParentAbortAllSubTasksEndStrategy</class>感謝閱讀<class>org.jbpm.task.OnAllSubTasksEndParentEndStrategy</class>謝謝閱讀<class>org.jbpm.task.User</class>感謝閱讀<properties><propertyname="hibernate.dialect"value="org.hibernate.dialect.H2Dialect"/>謝謝閱讀<propertyname="hibernate.connection.driver_class"value="org.h2.Driver"/>感謝閱讀<propertyname="hibernate.connection.url"value="jdbc:h2:mem:mydb"/>精品文檔放心下載<propertyname="hibernate.connection.username"value="sa"/>精品文檔放心下載<propertyname="hibernate.connection.password"value="sasa"/>謝謝閱讀<propertyname="hibernate.connection.autocommit"value="false"/>精品文檔放心下載<propertyname="hibernate.max_fetch_depth"value="3"/>謝謝閱讀<propertyname="hibernate.hbm2ddl.auto"value="create"/>謝謝閱讀<propertyname="hibernate.show_sql"value="true"/>精品文檔放心下載</properties></persistence-unit></persistence>H2數(shù)據(jù)庫實際上是hsqldb2.0+版本.你也可以通過jbpm-human-task源碼包src/test/java目錄下的謝謝閱讀org.jbpm.task.RunTaskService類來啟動任務服務器,它會自動加載感謝閱讀LoadUsers.mvel和LoadGroups.mvel配置文件。感謝閱讀6.與任務管理組件交互最終用戶不可能直接通過底層AP來管理任務,因此開發(fā)者需要使用API來實現(xiàn)精品文檔放心下載與任務管理組件交互。示例:TaskClientclient=newTaskClient(newMinaTaskClientConnector("client1",精品文檔放心下載newMinaTaskClientHandler(SystemEventListenerFactory.getSystemEventListener())));精品文檔放心下載client.connect("",9123);精品文檔放心下載//addingataskBlockingAddTaskResponseHandleraddTaskResponseHandler=newBlockingAddTaskResponseHand感謝閱讀ler();Tasktask=...;client.addTask(task,null,addTaskResponseHandler);精品文檔放心下載longtaskId=addTaskResponseHandler.getTaskId();謝謝閱讀//gettingtasksforuser"bobba"感謝閱讀BlockingTaskSummaryResponseHandlertaskSummaryResponseHandler=精品文檔放心下載newBlockingTaskSummaryResponseHandler();謝謝閱讀client.getTasksAssignedAsPotentialOwner("bobba","en-UK",taskSummaryResponseHandler)謝謝閱讀;List<TaskSummary>tasks=taskSummaryResponseHandler.getResults();精品文檔放心下載//startingataskBlockingTaskOperationResponseHandlerresponseHandler=謝謝閱讀newBlockingTaskOperationResponseHandler();精品文檔放心下載client.start(taskId,"bobba",responseHandler);感謝閱讀//completingataskresponseHandler=newBlockingTaskOperationResponseHandler();感謝閱讀plete(taskId,users.get("bobba").getId(),null,responseHandler);謝謝閱讀7.人工任務管理接口1)Eclipse插件配置URL、端口:Window->PreferencesandselectDroolsTask精品文檔放心下載:91232)基于WEB的控制臺第七章領域-規(guī)范流程謝謝閱讀謝謝閱讀內(nèi)容也不是很多。第八章持久化jBPM5允許持久存儲一些信息,如流程運行時狀態(tài)、歷史信息等。感謝閱讀1.運行時狀態(tài)jBPM支持插件化的持久策略。jBPM默認不會持久化流程運行時狀態(tài)。運行時流感謝閱讀程實例僅包含執(zhí)行所必要的信息,不包括歷史信息。jBPM支持binarypersistencemechanism二進制數(shù)據(jù)的持久機制。精品文檔放心下載SafePoints謝謝閱讀流程和受其影響的其他流程進行持久化。2.配置持久化使用Hibernate來作為JPA持久層的實現(xiàn)和H2謝謝閱讀1)配置依賴包Droolsruntime其它:1.jbpm-persistence-jpa(org.jbpm)精品文檔放心下載2.drools-persistence-jpa(org.drools)感謝閱讀3.persistence-api(javax.persistence)謝謝閱讀4.hibernate-entitymanager(org.hibernate)感謝閱讀5.hibernate-annotations(org.hibernate)謝謝閱讀6.hibernate-commons-annotations(org.hibernate)精品文檔放心下載7.hibernate-core(org.hibernate)謝謝閱讀8.dom4j(dom4j)9.jta(javax.transaction)10.btm(org.codehaus.btm)11.javassist(javassist)12.slf4j-api(org.slf4j)13.slf4j-jdk14(org.slf4j)14.h2(com.h2database)15.commons-collections(commons-collections)感謝閱讀2)配置引擎//createtheentitymanagerfactoryandregisteritintheenvironment感謝閱讀EntityManagerFactoryemf=Persistence.createEntityManagerFactory("org.jbpm.persistence.jpa");感謝閱讀Environmentenv=KnowledgeBaseFactory.newEnvironment();精品文檔放心下載env.set(EnvironmentName.ENTITY_MANAGER_FACTORY,emf);感謝閱讀//createanewknowledgesessionthatusesJPAtostoretheruntimestate感謝閱讀StatefulKnowledgeSessionksession=感謝閱讀JPAKnowledgeService.newStatefulKnowledgeSession(kbase,null,env);謝謝閱讀intsessionId=ksession.getId();謝謝閱讀//invokemethodsonyourmethodhere謝謝閱讀ksession.startProcess("MyProcess");感謝閱讀ksession.dispose();重新創(chuàng)建Session//recreatethesessionfromdatabaseusingthesessionId精品文檔放心下載ksession=JPAKnowledgeService.loadStatefulKnowledgeSession(sessionId,kbase,null,env)精品文檔放心下載;3)配置persistence.xml<?xmlversion="1.0"encoding="UTF-8"standalone="yes"?>精品文檔放心下載<persistenceversion="1.0"xsi:schemaLocation="/xml/ns/persistence精品文檔放心下載/xml/ns/persistence/persistence_1_0.xsd精品文檔放心下載/xml/ns/persistence/orm謝謝閱讀/xml/ns/persistence/orm_1_0.xsd"感謝閱讀xmlns:orm="/xml/ns/persistence/orm"感謝閱讀xmlns:xsi="http:///xml/ns/persistence">謝謝閱讀<persistence-unitname="org.jbpm.persistence.jpa">謝謝閱讀<provider>org.hibernate.ejb.HibernatePersistence</provider>感謝閱讀<jta-data-source>jdbc/processInstanceDS</jta-data-source>精品文檔放心下載<class>org.drools.persistence.session.SessionInfo</class>精品文檔放心下載<class>cessinstance.ProcessInstanceInfo</class>精品文檔放心下載<class>cessinstance.WorkItemInfo</class>感謝閱讀<properties><propertyname="hibernate.dialect"value="org.hibernate.dialect.H2Dialect"/>謝謝閱讀<propertyname="hibernate.max_fetch_depth"value="3"/>精品文檔放心下載<propertyname="hibernate.hbm2ddl.auto"value="update"/>謝謝閱讀<propertyname="hibernate.show_sql"value="true"/>精品文檔放心下載<propertyname="hibernate.transaction.manager_lookup_class"謝謝閱讀value="org.hibernate.transaction.BTMTransactionManagerLookup"/>謝謝閱讀</properties></persistence-unit></persistence>部署到包的META-INF目錄4)配置數(shù)據(jù)源h2.ds<?xmlversion="1.0"encoding="UTF-8"?>謝謝閱讀<datasources><local-tx-datasource><jndi-name>jdbc/testDS1</jndi-name>感謝閱讀<connection-url>jdbc:h2:file:/NotBackedUp/data/process-instance-db</connection-url>感謝閱讀<driver-class>org.h2.jdbcx.JdbcDataSource</driver-class>精品文檔放心下載<user-name>sa</user-name><password>sasa</password></local-tx-datasource></datasources>5)配置事務邊界1.每個請求一個事務,默認行為。2.自定義事務//createtheentitymanagerfactoryandregisteritintheenvironment謝謝閱讀EntityManagerFactoryemf=Persistence.createEntityManagerFactory("org.jbpm.persistence.jpa");感謝閱讀Environmentenv=KnowledgeBaseFactory.newEnvironment();精品文檔放心下載env.set(EnvironmentName.ENTITY_MANAGER_FACTORY,emf);感謝閱讀env.set(EnvironmentName.TRANSACTION_MANAGER,精品文檔放心下載TransactionManagerServices.getTransactionManager());感謝閱讀//createanewknowledgesessionthatusesJPAtostoretheruntimestate謝謝閱讀StatefulKnowledgeSessionksession=感謝閱讀JPAKnowledgeService.newStatefulKnowledgeSession(kbase,null,env);謝謝閱讀//startthetransactionUserTransactionut=(UserTransaction)newInitialContext().lookup("java:comp/UserTransaction");感謝閱讀ut.begin();//performmultiplecommandsinsideonetransaction感謝閱讀ksession.insert(newPerson("JohnDoe"));精品文檔放心下載ksession.startProcess("MyProcess");精品文檔放心下載//mit();3.歷史日志歷史運行日志是引擎執(zhí)行時基于事件生成。jbpm-bam模板包含事件監(jiān)聽器和存儲流程相關的信息到數(shù)據(jù)庫。謝謝閱讀數(shù)據(jù)庫包含兩張表:ProcessInstanceLog:包括流程實例ID,流程定義ID,流程實例的開始結束時謝謝閱讀間NodeInstanceLog:流程實例的節(jié)點為執(zhí)行信息。精品文檔放心下載啟用歷史日志StatefulKnowledgeSessionksession=...;感謝閱讀JPAWorkingMemoryDbLoggerlogger=newJPAWorkingMemoryDbLogger(ksession);謝謝閱讀//invokemethodsoneyoursessionhere精品文檔放心下載logger.dispose();addFilter:過濾日志內(nèi)容配置persistence.xml<persistence-unitname="org.jbpm.persistence.jpa">精品文檔放心下載<provider>org.hibernate.ejb.HibernatePersistence</provider>感謝閱讀<jta-data-source>jdbc/processInstanceDS</jta-data-source>精品文檔放心下載<class>org.drools.persistence.session.SessionInfo</class>謝謝閱讀<class>cessinstance.ProcessInstanceInfo</class>謝謝閱讀<class>cessinstance.WorkItemInfo</class>精品文檔放心下載<class>cess.audit.ProcessInstanceLog</class>謝謝閱讀<class>cess.audit.NodeInstanceLog</class>感謝閱讀<class>cess.audit.VariableInstanceLog</class>謝謝閱讀<properties><propertyname="hibernate.dialect"value="org.hibernate.dialect.H2Dialect"/>精品文檔放心下載<propertyname="hibernate.max_fetch_depth"value="3"/>精品文檔放心下載<propertyname="hibernate.hbm2ddl.auto"value="update"/>謝謝閱讀<propertyname="hibernate.show_sql"value="true"/>謝謝閱讀<propertyname="hibernate.transaction.manager_lookup_class"精品文檔放心下載value="org.hibernate.transaction.BTMTransactionManagerLookup"/>謝謝閱讀</properties></persistence-unit>第九章控制臺http://localhost:8080/jbpm-console謝謝閱讀krisv/krisv1.添加流程/任務表單表單可以完成流程啟動,人工交互。通過使用freemarker動態(tài)創(chuàng)建表單。創(chuàng)建表單模板{processId}.ftlcom.sample.evaluation.ftl示例:感謝閱讀<html><body><h2>開始性能評審</h2><hr><formaction="complete"method="POST"enctype="multipart/form-data">謝謝閱讀用戶
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年陜西省中考英語試題(A卷)含解析
- 通信線路工程施工監(jiān)理規(guī)范方案
- 2014-2019年中國粉煤灰陶瓷墻地磚行業(yè)分析及投資咨詢報告
- 2024至2030年中國底/側密封條行業(yè)投資前景及策略咨詢研究報告
- 2024至2030年中國分體熱合式紗窗行業(yè)投資前景及策略咨詢研究報告
- 2024至2030年中國保險線插座數(shù)據(jù)監(jiān)測研究報告
- 2024至2030年中國L板行業(yè)投資前景及策略咨詢研究報告
- 2024年中國氬氣燈頭市場調查研究報告
- 2024年中國微波信號源市場調查研究報告
- 高中語文唐宋詩5第四課明月何時照我還-羈旅鄉(xiāng)思課件語文版選修唐宋詩詞鑒賞
- 期中檢測卷(1-4單元)(試題)-2024-2025學年二年級上冊數(shù)學人教版
- 2024-2030年中國高嶺土市場運行態(tài)勢分析與發(fā)展現(xiàn)狀調研報告
- 8.2敬畏生命 (課件)-2024-2025學年統(tǒng)編版道德與法治七年級上冊
- 期中測試(1~3單元)(試題)-2024-2025學年三年級上冊數(shù)學蘇教版
- 口腔頜面部損傷-口腔頜面部損傷清創(chuàng)術(口腔科技術)
- JJF 1049-2024溫度傳感器動態(tài)響應校準規(guī)范
- 人教版七年級音樂上冊(簡譜)第一單元《中學時代》 教案
- 高中數(shù)學大單元教學設計研究
- DB50T731-2016 殘疾兒童康復機構等級劃分要求
- 人教版七年級英語上冊教學課件Unit 3 My School
- 2024-2030年中國節(jié)慶飾品市場發(fā)展趨勢及營銷策略分析報告
評論
0/150
提交評論