給java就業(yè)jbpm44課程工作流Workflow就是業(yè)務(wù)過程部分或整體在計(jì)算機(jī)應(yīng)用環(huán)境_第1頁
給java就業(yè)jbpm44課程工作流Workflow就是業(yè)務(wù)過程部分或整體在計(jì)算機(jī)應(yīng)用環(huán)境_第2頁
給java就業(yè)jbpm44課程工作流Workflow就是業(yè)務(wù)過程部分或整體在計(jì)算機(jī)應(yīng)用環(huán)境_第3頁
給java就業(yè)jbpm44課程工作流Workflow就是業(yè)務(wù)過程部分或整體在計(jì)算機(jī)應(yīng)用環(huán)境_第4頁
給java就業(yè)jbpm44課程工作流Workflow就是業(yè)務(wù)過程部分或整體在計(jì)算機(jī)應(yīng)用環(huán)境_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

(Workflow工作流管理系統(tǒng)(WfMS,WorkflowManagementSystem)的主要功能是通過計(jì)算機(jī)技實(shí)現(xiàn)更好的業(yè)務(wù)過程控制,提高顧務(wù)質(zhì)降低系統(tǒng)開發(fā)和成jBPMjavaBusinessProcessManagementjava的業(yè)務(wù)流程管理系統(tǒng)。jBPMActive模型。jBPM4.4使用了hibernate(3.3.1版jBPMrequiresaJDK(standardjava)version5or Toexecutetheantscripts,you'llneedapacheantversion1.7.0or2,Eclipse地址(EclipseIDEforJavaEEDevelopers(163MB),Version:3.5GPD(GraphicalProcessDesigner)Eclipse安裝方法說明(jBPM4.4UserGuide2.11.2InstalltheGPDpluginintoeclipseHelp-->InstallNewClickIndialogAddSitedialog,clickClickingOKintheAddSitedialogwillbringyoubacktothedialogSelectthejPDL4GPDUpdateSitethathasappearedClickNext...andthenFinishApprovetheRestarteclipsewhenthatis查看是否成功安裝了插件:Window→PreferenceJbossjBPMEclipsejPDL4.4SchematothecatalogClickWindow-->PreferencesSelectXML-->XMLCatalogClick'Add...'The'AddXMLCatalogEntry'dialogClickthebuttonwiththemap-iconnexttolocationandselect'FileofthejBPMinstallationroot.Click'Open'andcloseallthe所使用的數(shù)據(jù)庫對(duì)應(yīng)的驅(qū)動(dòng)的jar(第2步所添加的jar包中已包含mysql的org.hibernate.dialect.MySQL5InnoDBDialect。sql語法錯(cuò)誤。2jbpm.tx.hibernate.cfg.xml中的hibernate(指classpath的相對(duì)路徑。2Hibernate的自動(dòng)建表,在jbpm.hibernate.cfg.xml概念ProcessdefinitionprocessinstanceProcessProcess有運(yùn)行階段,其中最典型的屬性就是當(dāng)前節(jié)點(diǎn)的指針。不需要了解流程實(shí)例和執(zhí)行之間功能的區(qū)別。因此,API里只有一個(gè)執(zhí)行類型來流假設(shè)匯款和存檔可以同時(shí)執(zhí)行,那么主流程實(shí)例就包含了2個(gè)用來狀態(tài)的子節(jié)點(diǎn)ProcessEngineServiceInctingwithjBPMoccursthroughservices.Theserviceinastaticmemberfield.ProcessEngineProcessEngineprocessEngine=newProcessEngineProcessEngineprocessEngine=ProcessEngineProcessEngineprocessEngine=newjBPMServiceRepositoryServiceRepositoryServicerepositoryService=ExecutionServiceexecutionService=TaskServicetaskService=HistoryServicehistoryService=ManagementServicemanagementService=歷史管理(執(zhí)行完的數(shù)據(jù)管理,主要是查詢APIProcessDefinitionQueryprocessDefinitionQuery=(流程實(shí)例ProcessInstanceQueryprocessInstanceQuery=processEngine.getExecutionService()//TaskQuerytaskQuery=//(流程實(shí)例歷史HistoryTaskQueryhistoryTaskQuery=processDefinitionQcessDefinitionKey(請(qǐng)假是指定查詢taskQuery.assignee("")是指定辦理人為””的任務(wù)調(diào)用調(diào)用xxQuery.page(firstResultxxQuery.uniqueResult();StringdeploymentId=示例代碼2:一次添加多個(gè)流程定義有關(guān)文件(要先zip包)StringdeploymentId=1.addResourceFromClasspath(resource)2.addResourceFromInputStream(resourceNameinputStream)添加一個(gè)文件(InputStream)示例代碼1:刪除流程定義,如果有關(guān)聯(lián)的流程實(shí)例示例代碼2:刪除流程定義,并刪除關(guān)聯(lián)的流程實(shí)例API1ProcessDefinitionQuerypdQuery=2longcount=List<ProcessDefinitionlistpdQuery.page(0100).list()分頁:取//3,顯示結(jié)果for(ProcessDefinitionpd:list){System.out.println("id="+pd.getId()//+",deploymentId="++",name="++",version="++",key="+pd.getKey());}//1,查詢,按version升序排序,則最大版本排在最后面List<ProcessDefinitionallprocessEngine.getRepositoryService()////2,過濾出所有不同Key的版本(因?yàn)樽畲蟀姹驹谧詈竺鍹ap<String,ProcessDefinition>map=newHashMap<String,ProcessDefinition>()map的key是流程定義的key,map的vlaue是流程定義對(duì)象for(ProcessDefinitionpd:all){map.put(pd.getKey(),}Collection<ProcessDefinition>result=3for(ProcessDefinitionpd:result){System.out.println("deploymentId="+pd.getDeploymentId()//tid=pd.getId(流程定義的id,格式:{key}-+",\tname="++",\tkey="++",\tversion="+}jbpm4_lobNAME_StringdeploymentId="90001";StringresourceName="test.png";InputStreamin=StringprocessDefinitionId"test-1"流程定義的idStringactivityName="start1";//活動(dòng)的名稱ActivityCoordinatesc=System.out.println("x="++",y="++",width="++",height="+示例代碼1:使用指定key的版本的流程定義啟ProcessInstancepi=示例代碼2:使用指定key的版本的流程定義啟Map<StringObjectvariablesnewHashMap<StringObject>();variables.put("申請(qǐng)人","");variables.put("報(bào)銷金額ProcessInstancepi= Map<StringObjectvariablesnewHashMap<StringObject>();variables.put("結(jié)果","同意"); e="toend1"; e="toMap<StringObjectvariablesnewHashMap<StringObject>();variables.put("結(jié)果","同意"); e,方式 方式2:List<Tasklistfor(Tasktask:taskList){System.out.println("id=task.getId()/任務(wù)的id",name=task.getName(",assignee=task.getAssignee(",createTime=task.getCreateTime(任務(wù)的創(chuàng)建(生成)}方式1方式2List<TasklistStringtaskId="420001"; StringtaskId=1,設(shè)置為false代表:辦理完任務(wù)后不向后移動(dòng)(默認(rèn)為true)TaskImpltaskImpl=(TaskImpl)processEngine//2,辦理完任務(wù)1TaskService.takeTask(taskIduserId),拾取組任務(wù)到個(gè)人任務(wù)列表中,如果assignee,則會(huì)拋異常。2processEngine.getTaskService().assignTask(taskIduserId),轉(zhuǎn)交任務(wù)(null表示組任務(wù)沒有人辦理了)1executionIdExecutionService.setVariable(executionId,name,ObjectobjexecutionService.getVariable(executionId請(qǐng)假人2taskIdTaskService.setVariables(taskIdvariables)ObjectobjexecutionService.getVariable(executionId請(qǐng)假人流程變量所支持的值的類型(jBPMUserGuide,7.2.Variabletypes)7.2.VariablejBPMsupportsfollowingJavatypesasprocessbyte[](bytearray)char[](charhibernateentitywithalongidhibernateentitywithastringidForpersistenceofthesevariable,thetypeofthevariableischeckedisstored.StringprocessInstanceId="test.10001";是.jpdl.xmlnamekey10Transitionnull代表流程的開始邊界,一個(gè)流程有且只能有一個(gè)Start活動(dòng)。開始活動(dòng)只能指定一個(gè)Transition的活動(dòng),流程就結(jié)束了。1actor=#{String型的變量2,AssignmentHandler ,需要在<task> 元素中寫<assignment-handler1expression,如:expr="#{'tostate2'}"2HandlerDecisionHandler接口3expressionHandlerexpressionHandler1,在<custom>class2ExternalActivityBehaviour2,signal(ActivityExecution,StringMap),在當(dāng)前節(jié)點(diǎn)等待時(shí),外部發(fā)信號(hào)時(shí)的行為3execute()方法中,可以調(diào)用以下方法對(duì)流程進(jìn)行控制2,ActivityExecution.takeDefaultTransition()Transition離開,當(dāng)前節(jié)signal時(shí)會(huì)有類轉(zhuǎn)換異常。1,在根元素中,或在節(jié)點(diǎn)元素中,使用<onevent="">元素指定,其中event屬性代表EventListener接口3,類型在Start節(jié)點(diǎn)中只有end,在End節(jié)點(diǎn)中只有start在<transition>元素中直接寫<event-listenerclass="">,就是配置(因?yàn)樵谶@里只有一個(gè),所以不用寫on與類型)Spring集成(jBPM4.4DevelopersGuide,Chapter17.SpringIntegration)1,刪除配置:<importresource="jbpm.tx.hibernate.cfg.xml2,增加配置:<importresource="jbpm.tx.spring.cfg.xml"/>ProcessEngine(jBPM4)jbpmCfgclasspathjbpm.cfg.xml<beanid="springHelper"<propertyname="jbpmCfg"<beanid="processEngine"factory-bean="springHelper"factory-method="createProcessEngine"/>@TestpublicvoidtestProcessEngine()ProcessEngineprocessEngine=(ProcessEngine)ac.getBean("processEngine");}序中就一定要使用Spring注入ProcessEngine,千萬不能使用Configuration.getProcessEngine()ProcessEngine,因?yàn)檫@時(shí)內(nèi)部的代碼有以下邏輯:如果整合了Spring但沒有ApplicationContext,就默認(rèn)讀取applicationContext.xml創(chuàng)建ApplicationContext實(shí)例并從中獲取名 ”ProcessEngine”的 就會(huì)有無限循環(huán),不停的創(chuàng)建ApplicationContext了!1讓Jbpm使用SessionFactory.getCurrentSession:修改為<hibernate-sessioncurrent="true"/>2SessionFactory.getCurrentSession(),在jbpm.hibernate.cfg.xml中配置:<property3,要使用同一個(gè)SessionFactory,且都要使用SessionFactory.getCurrentSession()獲取=BaseDaoImplgetSession(){returnHibernateUtils.getSessionFactory().getCurrentSession();getProcessEngine(returnorg.jbpm.api.Configuration.getProcessEngine(4OpenSessionInViewFilter控制事務(wù)。啟動(dòng)Tomcat后,JSP時(shí)(使用的是自帶的Tomcat,是6.0),報(bào)錯(cuò):Causedby:linkingjavax/el/ExpressionFactoryclassatorg.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)atorg.

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論