(流程開發(fā))PrimetonBPS6.5開發(fā)教程_第1頁
(流程開發(fā))PrimetonBPS6.5開發(fā)教程_第2頁
(流程開發(fā))PrimetonBPS6.5開發(fā)教程_第3頁
(流程開發(fā))PrimetonBPS6.5開發(fā)教程_第4頁
(流程開發(fā))PrimetonBPS6.5開發(fā)教程_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PRIMETONTECHNOLOGIES,LTD.上海普元信息技術(shù)有限責(zé)任公司PrimetonBPS6.5開發(fā)教程EOS開發(fā)模式Nopartofthisdocumentmaybereproduced,storedinanyelectronicretrievalsystem,ortransmittedinanyformorbyanymeans,mechanical,photocopying,recording,otherwise,withoutthewrittenpermissionofthecopyrightowner.COPYRIGHT2008byPrimetonTechnologies,Ltd.ALLRIGHTSRESERVED.導(dǎo)讀本文檔的閱讀對象為軟件設(shè)計和開發(fā)人員,為了能更好的理解和使用(PrimetonBPSTM,BusinessProcessSuite,簡稱普元流程平臺);您需要了解HTML、Javascript、Java、JSP、SQL等J2EE的基本知識,這將為您能更好的學(xué)習(xí)本文檔起到事半功倍的效果。本文檔將通過案例來引導(dǎo)讀者運用PrimetonBPSTM產(chǎn)品在PrimetonEOSTM使讀者能夠很快的運用PrimetonBPSTM平臺中進行實際的流程開發(fā),產(chǎn)品開發(fā)流程應(yīng)用。本文檔旨在讓您學(xué)會使用PrimetonBPSTMForEOS業(yè)務(wù)流程的開發(fā)過程、關(guān)鍵要點及常用場景,包括業(yè)務(wù)流程的定義、開發(fā)、調(diào)試、運行、部署、監(jiān)控、業(yè)務(wù)定制,為了更輕松高效的學(xué)習(xí)本文檔,我們推薦的學(xué)習(xí)方法請參見附錄,同時在學(xué)習(xí)過程中,您也許隨時會用到以下文檔:《PrimetonEOS6程序員教程》《PrimetonBPS開發(fā)指南》《PrimetonBPS參考手冊》《PrimetonBPS管理員手冊》以上文檔請見產(chǎn)品的聯(lián)機幫助。導(dǎo)讀2目錄3第1章BPS6.5概述51.1BPS6.5產(chǎn)品介紹51.2BPS6.5產(chǎn)品組件51.3BPS6.5實現(xiàn)機制71.3.1BPS6.5參考模型71.3.2BPS6.5角色模型81.3.3BPS6.5數(shù)據(jù)模型101.3.4BPS6.5流程引擎與業(yè)務(wù)應(yīng)用部署模式111.4BPS6.5產(chǎn)品安裝13第2章案例實現(xiàn)202.1預(yù)備知識202.2關(guān)鍵知識點202.3需求分析212.4項目準(zhǔn)備222.4.1數(shù)據(jù)模型設(shè)計222.4.2基礎(chǔ)框架搭建232.5流程設(shè)計建模292.5.1組織機構(gòu)建模292.5.2業(yè)務(wù)目錄規(guī)劃312.5.3業(yè)務(wù)流程建模322.5.4業(yè)務(wù)資源定義362.6流程實現(xiàn)402.6.1任務(wù)列表實現(xiàn)402.6.2流程環(huán)節(jié)實現(xiàn)412.7部署發(fā)布502.7.1發(fā)布流程與資源502.7.2發(fā)布EOS程序532.8流程運行與監(jiān)控542.9需求變更582.10流程調(diào)整592.10.1業(yè)務(wù)資源配置592.10.2環(huán)節(jié)調(diào)整612.10.3分支規(guī)則調(diào)整622.10.4參與者規(guī)則調(diào)整642.10.5時間限制調(diào)整652.10.6發(fā)布運行662.11案例分析702.12小結(jié)71第3章常用場景指南733.1業(yè)務(wù)化表單使用733.2結(jié)合業(yè)務(wù)查詢分庫73第4章附錄774.1BPS6.5常用術(shù)語774.2源代碼運行774.3推薦學(xué)習(xí)方式794.4進階學(xué)習(xí)參考804.5FAQ80第1章BPS6.5概述本章提要您將了解PrimetonBPS6TM產(chǎn)品的定位、產(chǎn)品結(jié)構(gòu)圖、相關(guān)組件和概念參考模型。以及您如何將普元流程平臺和自己的應(yīng)用集成?如何在EOS開發(fā)模式下快速的搭建開發(fā)環(huán)境?BPS6.5產(chǎn)品介紹普元業(yè)務(wù)流程平臺套件(PrimetonBPSTM:BusinessProcessSuite,簡稱普元流程平臺)是業(yè)界第一個完全基于業(yè)務(wù)化思想實現(xiàn)的SOA流程平臺產(chǎn)品,負(fù)責(zé)對業(yè)務(wù)流程整個生命周期的管理,包括業(yè)務(wù)流程的設(shè)計建模、測試與調(diào)試、部署、運行、監(jiān)控、管理。PrimetonBPSTM是遵從WfMC參考模型而又具備中國特色特性的流程平臺產(chǎn)品。PrimetonBPSTM是具有中國特色的流程平臺產(chǎn)品。它融入了國內(nèi)電子政務(wù)與電信等行業(yè)的特殊要求,在符合WfMC規(guī)范的同時,又提供了靈活的工作任務(wù)分派策略、業(yè)務(wù)流程版本管理策略、豐富的流程模式、靈活的組織模型等特性,使得它能夠從容應(yīng)對復(fù)雜的中國特色流程模式和人工流程的處理。PrimetonBPSTM采取了多種方式以保證流程引擎高效穩(wěn)定的運行,滿足大型流程應(yīng)用建設(shè)需求,比如良好的事件驅(qū)動式系統(tǒng)架構(gòu)、優(yōu)化的BPS數(shù)據(jù)庫、歷史數(shù)據(jù)與運行數(shù)據(jù)分離、集群高速緩存等等。PrimetonBPSTM業(yè)務(wù)流程定制選件提供基于WEB的業(yè)務(wù)化流程設(shè)計和調(diào)整能力,支持流程建設(shè)階段完全業(yè)務(wù)化的分析建模,以及流程維護階段敏捷的業(yè)務(wù)化流程變更,從而極大提高業(yè)務(wù)人員參與流程建設(shè)的能力,加快流程響應(yīng)業(yè)務(wù)變化的速度。BPS6.5產(chǎn)品組件PrimetonBPSTM由以下九部分產(chǎn)品組件組成:BPSProcessServer(BPS流程引擎)、BPSAPI&ComponentLibrary(BPSAPI和構(gòu)件庫)、BPSStudio(BPS流程設(shè)計建模工具)、BPSProcessComposer(BPS業(yè)務(wù)流程定制)、BPSRuleEngine(BPS規(guī)則引擎)、BPSRuleComposer(BPS業(yè)務(wù)規(guī)則定制)、BPSGovernor(BPS引擎治理工具)、BPSAdmin&Monitor(BPS流程管理監(jiān)控臺)和BPSWorkClient(BPS流程客戶端)。BPS6.5產(chǎn)品結(jié)構(gòu)如圖1-1所示。圖1-1BPS產(chǎn)品結(jié)構(gòu)圖BPSProcessServer(BPS流程引擎)BPSProcessServer(BPS流程引擎)是BPS運行期的核心,為企業(yè)流程運轉(zhuǎn)提供驅(qū)動力,保證大業(yè)務(wù)量并發(fā)場景下的流程操作的順利執(zhí)行。BPSProcessServer共有三個職責(zé):流程調(diào)度、任務(wù)調(diào)度和應(yīng)用調(diào)度。BPSProcessServer支持包含自由流在內(nèi)的多種復(fù)雜的流程模式,能靈活滿足中國特色的業(yè)務(wù)需求;BPSProcessServer支持復(fù)雜的代理代辦模型,對人工任務(wù)的靈活性存在很大的優(yōu)勢;BPSProcessServer同時負(fù)責(zé)與內(nèi)部或外部的各種應(yīng)用以同步或異步方式進行交互,保證引擎處理過程中的事務(wù)完整性,促使互聯(lián)網(wǎng)時代大量業(yè)務(wù)交互能夠順利進行。BPSRuleEngine(BPS規(guī)則引擎)BPSRuleEngine(BPS規(guī)則引擎)是一個高性能的業(yè)務(wù)規(guī)則運行環(huán)境,它能從業(yè)務(wù)變量以及系統(tǒng)環(huán)境數(shù)據(jù)中獲取必要的數(shù)據(jù)作為決策數(shù)據(jù)源,通過復(fù)雜計算得出條件判斷結(jié)果或者參與者集合,然后把結(jié)果傳遞給流程引擎使用。通過把業(yè)務(wù)規(guī)則引擎和流程引擎的配合使用,可以大大提高業(yè)務(wù)配置化能力,快速支持業(yè)務(wù)流程和業(yè)務(wù)策略的變更。BPSAPI&ComponentLibrary(BPSAPI和構(gòu)件庫)BPSAPI&ComponentLibrary(BPSAPI和構(gòu)件庫)提供眾多的流程API與EOS服務(wù)構(gòu)件,為流程業(yè)務(wù)開發(fā)提供了極大的便捷性。在實際的應(yīng)用開發(fā)過程中,Java開發(fā)模式中一般是通過API調(diào)用流程引擎所提供的服務(wù),EOS平臺開發(fā)模式中一般是通過調(diào)用EOS服務(wù)構(gòu)件中的服務(wù)來使用流程引擎所提供的服務(wù)。BPSAPI和構(gòu)件庫是BPS流程引擎的訪問接口,是對引擎功能的完備封裝。BPSAPI和構(gòu)件庫包括:流程定義管理接口和服務(wù)、實例管理接口和服務(wù)、客戶端接口和服務(wù)、代理代辦接口和服務(wù)、特殊功能接口和服務(wù)以及頁面標(biāo)簽庫。BPSStudio(BPS流程設(shè)計建模工具)BPSStudio(BPS流程設(shè)計建模工具)是基于Eclipse插件體系結(jié)構(gòu)實現(xiàn)的可視化流程設(shè)計器,它既可以與用戶基于Eclipse的Java集成開發(fā)環(huán)境融合,又能與PrimetonEOSTM的集成開發(fā)環(huán)境無縫集成,提供一體化的流暢的開發(fā)體驗。BPSGovernor(BPS引擎治理工具)BPSGovernor(BPS引擎治理工具)是集成BPS提供的系統(tǒng)管理工具,系統(tǒng)管理員可以通過它對BPS流程引擎進行配置和管理。BPSProcessComposer(BPS業(yè)務(wù)流程定制)BPSProcessComposer(BPS業(yè)務(wù)流程定制)是在PrimetonBPSTM流程引擎之上實現(xiàn)的基于Web的業(yè)務(wù)化流程定制工具,它支持業(yè)務(wù)部門的流程管理人員基于Web的方式進行流程的業(yè)務(wù)化配置與調(diào)整,為業(yè)務(wù)人員提供完全的業(yè)務(wù)域支撐能力,敏捷響應(yīng)業(yè)務(wù)流程的變更。BPSRuleComposer(BPS業(yè)務(wù)規(guī)則定制)BPSRuleComposer(BPS業(yè)務(wù)規(guī)則定制)是在PrimetonBPSTM流程引擎和PrimetonBPSTM規(guī)則引擎之上實現(xiàn)的基于Web的業(yè)務(wù)化規(guī)則定制工具,通過該組件,業(yè)務(wù)管理人員可以在系統(tǒng)維護期間維護業(yè)務(wù)規(guī)則,使業(yè)務(wù)策略的變更及時體現(xiàn)到IT系統(tǒng)當(dāng)中。業(yè)務(wù)規(guī)則定制過程中可以引用業(yè)務(wù)變量、流程上下文數(shù)據(jù)、活動上下文數(shù)據(jù)等,以"類自然語言"的方式進行靈活的配置,并可以進行各種復(fù)雜的運算。BPSAdmin&Monitor(BPS流程管理監(jiān)控臺)BPSAdmin&Monitor(BPS流程管理監(jiān)控臺)是業(yè)務(wù)流程管控人員的流程操作平臺。通過它,業(yè)務(wù)流程管控人員不但可以對流程實例實施掛起、恢復(fù)、回退等操作,還可以進行代理代辦交接等管理動作,甚至可以查詢業(yè)務(wù)審計日志,對業(yè)務(wù)操作人員的流程動作進行監(jiān)控。BPSWorkClient(BPS流程客戶端)BPSWorkClient(BPS流程客戶端)是一個客戶端的典型案例,它為流程的開發(fā)、調(diào)試和驗證提供極大的便捷性。通過BPS流程客戶端,業(yè)務(wù)人員和開發(fā)人員不但可以執(zhí)行啟動流程、查看任務(wù)、完成任務(wù)等基本操作,還可以進行包括代理、代辦、領(lǐng)取等復(fù)雜操作。BPS流程客戶端主要用來進行流程的模擬調(diào)試,驗證流程的可行性和正確性。在業(yè)務(wù)運行階段,應(yīng)用一般需要構(gòu)造滿足自己特殊需要的客戶端。BPS6.5實現(xiàn)機制1.1.2BPS6.5參考模型1993年,國際工作流管理聯(lián)盟WfMC(WorkflowManagementCoalition)的成立標(biāo)志著工作流技術(shù)開始進入相對成熟的階段。WfMC在工作流管理系統(tǒng)的相關(guān)術(shù)語、體系結(jié)構(gòu)及應(yīng)用編程接口等方面制定了一系列標(biāo)準(zhǔn),提出了工作流參考模型。工作流參考模型確定了工作流管理系統(tǒng)的基本架構(gòu)。該架構(gòu)是開發(fā)工作流軟件時應(yīng)當(dāng)采納的系統(tǒng)模型,當(dāng)然,一個工作流管理系統(tǒng)也可以不遵循這個模型標(biāo)準(zhǔn),或只實現(xiàn)這個模型的一部分,但事實證明,這個模型結(jié)構(gòu)是目前最為合理的。PrimetonBPSTM的參考體系架構(gòu)在WfMC描述的體系架構(gòu)基礎(chǔ)上進行了加強和改進,如圖1-2所示。圖1-1流程參考模型(WfMCExtended)在開發(fā)期,開發(fā)人員主要通過集成BPSStudio的流程定義工具來定義流程。由于流程定義工具需要依賴組織模型和外部相關(guān)應(yīng)用,所以在流程開發(fā)以前需要首先實現(xiàn)組織模型接口,構(gòu)造被調(diào)用的應(yīng)用(Java方法、EOS服務(wù)等)。如果開發(fā)者暫時不確定組織模型,也可以先使用產(chǎn)品內(nèi)置的簡單組織模型。在運行期,流程引擎是所有依賴的中心。BPS流程引擎包含流程調(diào)度引擎和任務(wù)表管理器兩大部分。流程引擎主要完成這些工作:通過從組織模型獲取到適當(dāng)?shù)膮⑴c者來調(diào)度人為參與的人工活動;通過調(diào)用外部應(yīng)用來實現(xiàn)運轉(zhuǎn)的自動活動;通過訪問流程相關(guān)數(shù)據(jù)進行必要的路由判斷;通過流程控制數(shù)據(jù)來記錄流程運行的軌跡;通過訪問日歷接口來進行恰當(dāng)?shù)臅r限設(shè)置。流程調(diào)度引擎和任務(wù)表管理器之間通過任務(wù)表作為聯(lián)系紐帶,通過任務(wù)表的狀態(tài)變遷來進行相互的驅(qū)動。1.1.3BPS6.5角色模型BPS應(yīng)用環(huán)境中一共包含九種角色,分別是:業(yè)務(wù)分析人員職責(zé)描述:進行組織流程框架的規(guī)劃和業(yè)務(wù)流程的梳理、流程的業(yè)務(wù)建模、流程分析?;炯寄芤螅壕骋活I(lǐng)域業(yè)務(wù)知識和流程需求;熟悉業(yè)務(wù)流程梳理概念與方法。產(chǎn)品針對特性:提供流程梳理后的建模與模擬運行功能。業(yè)務(wù)流程配置員職責(zé)描述:進行業(yè)務(wù)流程的流程定制、流程調(diào)整、流程測試與驗證、流程發(fā)布、流程監(jiān)控、流程統(tǒng)計分析、流程優(yōu)化。基本技能要求:熟悉業(yè)務(wù)需求,了解業(yè)務(wù)流程基本概念,了解業(yè)務(wù)流程實現(xiàn)過程。產(chǎn)品針對特性:流程建模功能、程測試驗證功能、流程統(tǒng)計分析功能、流程調(diào)整功能。流程實施人員職責(zé)描述:主要是指開發(fā)商的流程實施人員,基本同流程配置員?;炯寄芤螅夯就鞒膛渲脝T。產(chǎn)品針對特性:基本同流程配置員。流程開發(fā)人員職責(zé)描述:在流程開發(fā)人員的工作過程中,除了開發(fā)流程本身(定義流程、活動等)之外,還要開發(fā)流程相關(guān)的資源。比如,相關(guān)的任務(wù)列表、環(huán)節(jié)展現(xiàn)界面的開發(fā)、活動處理邏輯、組織模型接口的定制等?;炯寄芤螅壕ㄏ嚓P(guān)服務(wù)構(gòu)件開發(fā)所需技能,如JEE開發(fā)技能、EOS構(gòu)件開發(fā)技能等,熟悉業(yè)務(wù)流程基本概念和實現(xiàn)過程。產(chǎn)品針對特性:BPSStudio、業(yè)務(wù)資源管理、業(yè)務(wù)流程定制、流程測試驗證、流程管理監(jiān)控。業(yè)務(wù)操作員職責(zé)描述:一般是通過和任務(wù)表的交互來進行工作的,他們通過工作流客戶端進行流程的發(fā)起、獲取到任務(wù)列表,然后處理具體的任務(wù)。基本技能要求:精通某領(lǐng)域業(yè)務(wù),了解業(yè)務(wù)流程基本概念。產(chǎn)品針對特性:流程客戶端、流程監(jiān)控功能。業(yè)務(wù)管理員職責(zé)描述:對流程進行監(jiān)控和管理,包括監(jiān)控和跟蹤流程和任務(wù)的狀態(tài),對異常流程進行維護等,還可能進行一些代理代辦或工作交接的工作。基本技能要求:熟悉流程監(jiān)控和管理的流程與方法,了解業(yè)務(wù)流程概念。產(chǎn)品針對特性:流程管理監(jiān)控。系統(tǒng)管理員職責(zé)描述:進行系統(tǒng)配置、業(yè)務(wù)目錄管理、權(quán)限設(shè)置等?;炯寄芤螅菏煜ゎI(lǐng)域技術(shù)相關(guān)知識。產(chǎn)品針對特性:業(yè)務(wù)目錄管理、引擎配置管理。應(yīng)用維護人員職責(zé)描述:進行應(yīng)用系統(tǒng)的軟件升級、缺陷修復(fù)、流程所使用資源的管理等?;炯寄芤螅菏煜は到y(tǒng)維護與升級相關(guān)知識,了解業(yè)務(wù)化流程定制過程與方法。產(chǎn)品針對特性:流程管理監(jiān)控、業(yè)務(wù)資源管理。超級系統(tǒng)管理員職責(zé)描述:進行統(tǒng)一流程平臺的配置,包括受管引擎實例的配置等。產(chǎn)品針對特性:受管引擎實例配置。1.1.4BPS6.5數(shù)據(jù)模型基于BPS6.5開發(fā)的應(yīng)用包含以下數(shù)據(jù):業(yè)務(wù)流程定義數(shù)據(jù)、流程控制數(shù)據(jù)、流程相關(guān)數(shù)據(jù)、任務(wù)表數(shù)據(jù)、組織模型數(shù)據(jù)、流程日歷數(shù)據(jù)和流程應(yīng)用數(shù)據(jù)。部分?jǐn)?shù)據(jù)的概念如圖1-3所示。圖1-1流程數(shù)據(jù)模型業(yè)務(wù)流程定義數(shù)據(jù)業(yè)務(wù)流程定義數(shù)據(jù)定義了流程的拓?fù)浣Y(jié)構(gòu)、流程所包含的活動、流程的相關(guān)數(shù)據(jù)定義以及流程使用的資源等流程規(guī)格特性。BPS6.5把業(yè)務(wù)流程定義數(shù)據(jù)存儲在文件系統(tǒng)(開發(fā)時)或關(guān)系數(shù)據(jù)庫(運行時)中。流程控制數(shù)據(jù)流程實例運行期間進行實例化所產(chǎn)生的數(shù)據(jù),由于流程實例經(jīng)常存在于一個相對較長的生命周期中,一般為一天到幾個月,所以工作流控制數(shù)據(jù)需要持久化存儲。BPS6.5把流程的控制數(shù)據(jù)存儲在關(guān)系數(shù)據(jù)庫中。流程相關(guān)數(shù)據(jù)工作流相關(guān)數(shù)據(jù)是在流程運轉(zhuǎn)過程中和控制流程運轉(zhuǎn)條件相關(guān)的數(shù)據(jù),相關(guān)數(shù)據(jù)也可以用來保存在不同活動之間傳遞的信息。在BPS6.5中,相關(guān)數(shù)據(jù)以結(jié)構(gòu)化的形式存儲在關(guān)系數(shù)據(jù)庫中。任務(wù)表數(shù)據(jù)任務(wù)表是流程引擎和參與者(機構(gòu)、角色、人員等)交互的一個媒介。人員通過任務(wù)表來獲取自己的任務(wù)并執(zhí)行。在BPS6.5中,任務(wù)表數(shù)據(jù)存儲在關(guān)系數(shù)據(jù)庫中。組織模型數(shù)據(jù)組織模型是工作流系統(tǒng)依賴的一個重要的資源模型,是人工活動執(zhí)行所需要的必備條件??紤]到組織模型在不同的企業(yè)和單位差異性非常大,BPS6.5提供了接口來限定組織模型,并不提供具體的組織模型數(shù)據(jù)。通過實現(xiàn)組織模型接口,用戶可以使用多種存儲形式的遺留系統(tǒng)數(shù)據(jù)。流程日歷數(shù)據(jù)工作日歷是人工任務(wù)的時間相關(guān)的一個重要概念??紤]到不同企業(yè)和單位的差異性也比較大,BPS6.5也提供了接口來限定工作日歷,并不保存具體的數(shù)據(jù)。流程應(yīng)用數(shù)據(jù)流程應(yīng)用數(shù)據(jù)是所有應(yīng)用數(shù)據(jù)中和工作流相關(guān)的那一部分?jǐn)?shù)據(jù),一般用來保存流程實例在業(yè)務(wù)方面的屬性。流程應(yīng)用數(shù)據(jù)一般不在工作流引擎的管理范圍之內(nèi),但是在BPS6.5中,用戶可以在任務(wù)表和應(yīng)用數(shù)據(jù)之間建立關(guān)聯(lián),從而達到引擎和業(yè)務(wù)的更好的交互。1.1.5BPS6.5流程引擎與業(yè)務(wù)應(yīng)用部署模式BPS6.5ProcessServer主要支持三種典型的與業(yè)務(wù)應(yīng)用的部署方式:獨立部署模式--BPS服務(wù)器與應(yīng)用功能分開部署集中部署模式--BPS服務(wù)器與用戶應(yīng)用集中部署與EOS集中模式--BPS服務(wù)器與EOS應(yīng)用邏輯集中部署這三種部署方式中,前兩者適合與BPS6.5ForJava的環(huán)境,最后一種適合于BPS6.2ForEOS的環(huán)境。獨立部署模式指BPS6.5產(chǎn)品模塊與用戶業(yè)務(wù)應(yīng)用部署在相互獨立的應(yīng)用服務(wù)器下,通過遠(yuǎn)程調(diào)用來訪問BPS6.5引擎和BPS6.5資源,如圖1-4所示。圖1-1獨立流程服務(wù)器應(yīng)用集成集中部署模式指BPS6.5產(chǎn)品模塊與用戶業(yè)務(wù)應(yīng)用耦合在一起,以用戶應(yīng)用為載體(稱為嵌入部署模式)或以BPS引擎所在應(yīng)用為載體部署在應(yīng)用服務(wù)器上,如圖1-5所示。開發(fā)方式采用BPS6.5Studio和Eclipse插件集成開發(fā)。圖1-2嵌入式應(yīng)用集成與EOS集中部署指BPS6.5產(chǎn)品作為EOS應(yīng)用可選組件部署在EOS應(yīng)用中,如圖1-6所示。開發(fā)方式采用EOS環(huán)境中集成的BPS6.5開發(fā)環(huán)境,用戶可以很方便的編輯流程,以及利用EOS一體化開發(fā)平臺。圖1-3EOS應(yīng)用集成BPS6.5產(chǎn)品安裝開發(fā)環(huán)境搭建可參見Flash演示動畫,觀看時,請確保Flash存放在非中文目錄中。BPS其他版本的安裝請參見《PrimetonBPS6.5產(chǎn)品安裝指南》。BPSStudio(BPS流程設(shè)計建模工具)是基于Eclipse插件體系結(jié)構(gòu)實現(xiàn)的可視化流程設(shè)計器,提供可視化的業(yè)務(wù)流程定義、可視化表單開發(fā)與調(diào)試、以及業(yè)務(wù)流程部署等功能。BPSStudio既可以與基于Eclipse的Java集成開發(fā)環(huán)境融合,又能與PrimetonEOSTM的集成開發(fā)環(huán)境無縫集成,本教程介紹第二種集成方式,即安裝PrimetonPlatform6.5開發(fā)版時選擇BPS選件。PrimetonPlatform6.5開發(fā)版安裝1.啟動安裝程序?qū)惭b光盤插入CD-ROM中,在autorun界面中選擇安裝Primeton6.5開發(fā)版。若不是通過autorun形式啟動安裝程序,請直接執(zhí)行安裝程序文件install.exe。2.閱讀安裝簡介,如圖1-7所示,單擊【下一步】按鈕。圖1-4簡介3.閱讀開發(fā)版的許可聲明后,選擇“本人接受許可協(xié)議條款”單選按鈕,如Error!Referencesourcenotfound.所示,單擊【下一步】按鈕。圖1-5許可協(xié)議4.單擊【下一步】按鈕,從彈出的對話框中選擇安裝目錄,如圖1-9所示。設(shè)置完畢,單擊【下一步】按鈕。圖1-6選擇安裝路徑安裝路徑最多可輸入64個字符,只能由半角英文字符、數(shù)字或下劃線“_”組成,且不允許帶空格。如果所選的安裝目錄已經(jīng)安裝過BPS產(chǎn)品,則安裝程序?qū)⑻崾居脩暨x擇其他目錄。5.選擇應(yīng)用服務(wù)器,在下拉列表框中選擇應(yīng)用服務(wù)器,BPS開發(fā)版缺省提供Tomcat-5.5.20服務(wù)器,如圖1-10所示,單擊【下一步】按鈕。圖1-7選擇應(yīng)用服務(wù)器6.選擇安裝組件,如圖1-11所示,單擊【下一步】按鈕。圖1-8選擇安裝組件7.設(shè)置管理員信息,根據(jù)實際情況輸入用戶名稱和機構(gòu)名稱,安裝程序默認(rèn)用戶名稱為當(dāng)前登錄操作系統(tǒng)的用戶名,如圖1-12所示,單擊【下一步】按鈕。圖1-9設(shè)置管理員信息8.選擇IP和管理端口,在下拉列表框中選擇本機IP,如圖1-13所示,單擊【下一步】按鈕。圖1-10選擇IP9.創(chuàng)建應(yīng)用,應(yīng)用名默認(rèn)為default”,如圖1-14所示,單擊【下一步】按鈕。圖1-11創(chuàng)建應(yīng)用10.配置數(shù)據(jù)庫。(1)在下拉列表框中選擇數(shù)據(jù)庫類型,如“Oracle”。(2)輸入數(shù)據(jù)庫的相關(guān)配置信息。配置Oracle類型數(shù)據(jù)庫的界面,如圖1-15所示。圖1-12配置Oracle9類型數(shù)據(jù)庫(3)如果初次安裝BPS且是初次使用某個數(shù)據(jù)庫用戶,建議選擇初始化數(shù)據(jù)庫,將BPS所需表結(jié)構(gòu)建立起來。對于已執(zhí)行過初始化的數(shù)據(jù)庫,再次初始化將覆蓋已經(jīng)存在的BPS系統(tǒng)表。選擇是否“初始化數(shù)據(jù)庫”(4)單擊【數(shù)據(jù)庫連接測試】按鈕,測試所配置數(shù)據(jù)庫是否可以成功連接。(5)單擊【下一步】按鈕。11.開始安裝,安裝過程中顯示各組件的安裝進程,如圖1-16所示。圖1-13正在安裝12.程序提示開發(fā)版已經(jīng)成功安裝,如圖1-17所示。選擇“現(xiàn)在查看readme.txt文件?!睆?fù)選框,可以查看readme文件內(nèi)容。圖1-14安裝完成13.單擊【完成】按鈕,完成BPS開發(fā)版的安裝。14.驗證安裝(1)將在開始程序菜單出現(xiàn)如下菜單,如圖1-18所示。圖1-15快捷菜單(2)檢查安裝日志。打開BPS安裝目錄下的platform_install.log安裝日志文件,檢查安裝過程是否有異常信息。(3)通過“開始程序PrimetonPlatform6.5啟動Server”啟動BPSServer,查看控制臺是否有異常。http偵聽默認(rèn)占用8080端口,此端口容易沖突,沖突導(dǎo)致服務(wù)無法啟動成功。修改Tomcat中的端口:打開安裝目錄\apache_tomcat-5.5.20\conf目錄下的server.xml,修改其中的8080端口。第2章案例實現(xiàn)本章提要您將從一個具體的案例開發(fā)中了解如何在EOS應(yīng)用中開發(fā)BPS流程,如何在流程中調(diào)用WebService服務(wù),如何調(diào)用BPS構(gòu)件庫,觸發(fā)流程引擎一步一步運行;如何在Web界面上定制或調(diào)整業(yè)務(wù)流程,實現(xiàn)敏捷響應(yīng)流程的需求變化。預(yù)備知識建議具備EOS6.0及以上版本的基礎(chǔ)開發(fā)技能。關(guān)鍵知識點本章通過開發(fā)簡單的報銷流程,幫助您了解EOS應(yīng)用中BPS流程的開發(fā)過程和流程中調(diào)用外部WebService的實現(xiàn)方法;通過調(diào)整報銷流程,幫助您了解在Web界面上靈活調(diào)整、敏捷定制業(yè)務(wù)流程的方法;通過對案例的分析,幫助您更深刻地理解EOS應(yīng)用與BPS的結(jié)合原理,功能技術(shù)實現(xiàn)與業(yè)務(wù)流程解耦的開發(fā)方式。關(guān)鍵知識點:流程的設(shè)計開發(fā)過程外部WebService的調(diào)用BPS關(guān)鍵構(gòu)件的使用流程引擎的運行原理業(yè)務(wù)流程的定制案例開發(fā)過程總覽本章案例是基于從“技術(shù)實現(xiàn)”到后期運維階段的“業(yè)務(wù)調(diào)整”的過程進行流程應(yīng)用開發(fā),案例的開發(fā)過程如圖2-1所示。圖2-1案例開發(fā)過程圖整個過程不一定要嚴(yán)格按順序進行,很多情況下是交互或迭代進行的。需求分析在某公司,員工每月的通訊費、車補費、出差車旅費、出差補貼等都需要填寫報銷單后,交給部門主管審批。如果部門主管審批不通過,員工就不能報銷;如果審批通過,就交給財務(wù)審閱。財務(wù)審閱確認(rèn)后,調(diào)用已有的入賬服務(wù),將報銷信息歸檔,員工才會收到報銷的費用。由于公司員工比較多,報銷種類也多,各部門主管和財務(wù)部門每天都會收到很多紙質(zhì)報銷單進行審批或?qū)忛?,對員工來說,無法直接了解自己報銷單的情況,需要跟主管或財務(wù)人員溝通?;谶@種情況,公司急需建立一套報銷流程,進行無紙化辦公,提高報銷效率,減輕部門主管和財務(wù)部門的工作量。了解了這些需求后,我們發(fā)現(xiàn)部門主管審批是否通過是員工能否報銷的關(guān)鍵,考慮到報銷中還會存在一些特殊情況,如報銷費用太大或非預(yù)算項目內(nèi)的報銷,決定將報銷費用和是否是預(yù)算項目這兩個因素設(shè)計在報銷流程中,方便以后報銷流程的優(yōu)化或調(diào)整。整個報銷流程的分析結(jié)果如下:需求分析:1.為公司的財務(wù)部門實現(xiàn)無紙化報銷流程2.報銷流程包含的活動:填寫報銷單,部門主管審批,財務(wù)審閱,報銷信息入賬3.報銷要做的工作:填寫報銷單,保存報銷單,部門主管審批,保存部門主管的審批意見,財務(wù)審閱,保存審閱人信息,報銷信息入賬4.報銷信息入賬是直接調(diào)用公司已經(jīng)存在的WebService服務(wù),不用重復(fù)實現(xiàn)5.報銷流程涉及的人員:員工,部門主管,財務(wù)6.影響報銷的因素:部門主管審批結(jié)果、報銷金額、是否是預(yù)算內(nèi)項目需求設(shè)計:根據(jù)需求分析可以得到如圖2-2所示的流程圖。圖2-2流程設(shè)計圖項目準(zhǔn)備對本章案例提供了源代碼、對應(yīng)的數(shù)據(jù)庫腳本。導(dǎo)入源代碼及部署、運行的方法可參見4.4源代碼運行一節(jié),或者可參見教程配套的Flash演示動畫,觀看時,請確保Flash存放在非中文目錄中。2.1.2數(shù)據(jù)模型設(shè)計1.創(chuàng)建業(yè)務(wù)表根據(jù)報銷流程的需求描述,創(chuàng)建報銷單信息表Expenseinfo、報銷審批信息表Expensecheck。其中Expenseinfo存放員工填寫的報銷單信息、財務(wù)審閱人;Expensecheck存放審批人信息;入賬信息是調(diào)用外部的入賬服務(wù),所以在調(diào)用方不需要創(chuàng)建表。具體的建表腳本如下:--CreatetabledroptableEXPENSEINFO;createtableEXPENSEINFO(EXPIDNUMERIC(18)notnull,PROCESSINSTIDNUMERIC(18)notnull,EXPNAMEVARCHAR(20)notnull,EXPMONEYNUMBERnotnull,REASONVARCHAR(255),ISBUDGETITEMCHAR(1),AUDITORVARCHAR(20));altertableEXPENSEINFOaddconstraintP_EXPprimarykey(EXPID);--AddcommentstothecolumnscommentoncolumnEXPENSEINFO.EXPIDis'報銷單編號';commentoncolumnEXPENSEINFO.PROCESSINSTIDis'流程實例ID';commentoncolumnEXPENSEINFO.EXPNAMEis'報銷人';commentoncolumnEXPENSEINFO.EXPMONEYis'報銷金額';commentoncolumnEXPENSEINFO.REASONis'報銷原因';commentoncolumnEXPENSEINFO.ISBUDGETITEMis'是否預(yù)算內(nèi)項目';commentoncolumnEXPENSEINFO.AUDITORis'財務(wù)審閱人';--CreatetabledroptableEXPENSECHECK;createtableEXPENSECHECK(EXPIDNUMERIC(18),CHECKERVARCHAR2(20),ISAGREECHAR(1),ADVICEVARCHAR(255));--AddcommentstothecolumnscommentoncolumnEXPENSECHECK.EXPIDis'報銷單編號';commentoncolumnEXPENSECHECK.CHECKERis'審批人';commentoncolumnEXPENSECHECK.ISAGREEis'審批結(jié)果';commentoncolumnEXPENSECHECK.ADVICEis'審批意見';建表腳本適用于oralce9i、oralce10g。每次報銷對應(yīng)一個流程實例,所以在報銷單ExpenseInfo表中需要一個字段存放流程實例ID,如PROCESSINSTID。2.1.3基礎(chǔ)框架搭建1.創(chuàng)建項目點擊EOSStudio工具條上的【文件新建EOS項目】啟動項目創(chuàng)建向?qū)?,在彈出的對話框中選擇“空項目”,點擊【下一步】,填寫項目詳細(xì)信息,如圖2-3所示,創(chuàng)建名稱為BPSDemo的項目。圖2-1創(chuàng)建項目點擊【下一步】,顯示項目的引用庫信息。默認(rèn)情況下EOS項目引用基礎(chǔ)構(gòu)件庫和BPS基礎(chǔ)構(gòu)件庫。點擊【完成】,在“資源管理器”視圖中顯示出BPSDemo項目。2.創(chuàng)建構(gòu)件包右鍵單擊資源管理器中項目BPSDemo,在菜單中通過選擇【創(chuàng)建構(gòu)件包】,彈出創(chuàng)建構(gòu)件包對話框,輸入構(gòu)件包名稱為“com.primeton.bps.sample”,點擊【完成】后,“資源管理器”中BPSDemo項目如圖2-4所示。圖2-2項目及構(gòu)件包3.數(shù)據(jù)建模在EOS應(yīng)用開發(fā)中采用數(shù)據(jù)定義的方式來描述數(shù)據(jù)結(jié)構(gòu)。一個數(shù)據(jù)定義由數(shù)據(jù)實體和顯示模型組成,一組數(shù)據(jù)定義組成了一個數(shù)據(jù)集。本案例中涉及到的報銷單信息表Expenseinfo、報銷審批信息表Expensecheck就需要導(dǎo)入成EOS應(yīng)用中的數(shù)據(jù)實體,從而描述數(shù)據(jù)結(jié)構(gòu)的名稱和類型信息。(1)創(chuàng)建數(shù)據(jù)庫表在數(shù)據(jù)庫中、或利用數(shù)據(jù)庫第三方工具運行2.4.1數(shù)據(jù)模型設(shè)計章節(jié)中的數(shù)據(jù)庫腳本創(chuàng)建數(shù)據(jù)表。另外,也可以借助EOS中內(nèi)置的SQL編輯器來運行后綴名為sql的文件,如圖2-5所示。圖2-3創(chuàng)建數(shù)據(jù)庫表(2)創(chuàng)建數(shù)據(jù)集并導(dǎo)入數(shù)據(jù)實體展開com.primeton.bps.sample構(gòu)件包中的【數(shù)據(jù)數(shù)據(jù)模型】,在com.primeton.bps.sample包中創(chuàng)建名稱為expdataset的數(shù)據(jù)集。在數(shù)據(jù)集的空白處,點擊右鍵,在彈出的菜單中選擇【導(dǎo)入數(shù)據(jù)實體】,將Expenseinfo表、Expensecheck表導(dǎo)入到該數(shù)據(jù)集中,導(dǎo)入時如圖2-6所示。圖2-4導(dǎo)入數(shù)據(jù)實體(3)設(shè)置顯示屬性針對數(shù)據(jù)實體中各屬性的類型或特點,可以設(shè)置它們的顯示屬性或者校驗類型等。比如:報銷單信息表Expenseinfo中主鍵expid,流程實例IDprocessinstid,報銷人expname以及報銷金額expmoney不允許為空,可以對數(shù)據(jù)實體中這些屬性設(shè)置校驗類型。打開expname的高級屬性對話框,設(shè)置校驗類型為必填項,如圖2-7所示。同樣的方式,設(shè)置expmoney的驗證類型為實數(shù)且為必填項。設(shè)置Expenseinfo中的reason及Expensecheck中的advice的錄入方式為“textarea”。圖2-5設(shè)置顯示屬性4.導(dǎo)入外部WebService的WSDL外部WebService部署在開發(fā)版自帶的Tomcat服務(wù)器中,具體部署方法參見4.4源代碼運行一節(jié)。(1)訪問發(fā)布的外部WebService報銷信息入賬是調(diào)用公司已經(jīng)存在的入賬服務(wù),本案例模擬實現(xiàn)了一個服務(wù)AccountService。首先要將其部署在應(yīng)用服務(wù)器中,再啟動服務(wù)器,在瀏覽器中訪問該服務(wù)。根據(jù)應(yīng)用服務(wù)器所在IP地址、端口號、應(yīng)用的端口號以及服務(wù)名稱拼裝成服務(wù)的訪問地址::8080/mydomain/services/AccountService?wsdl。如圖2-8所示,在瀏覽器中可以顯示AccountService服務(wù)的WSDL描述,說明這個WebService服務(wù)已經(jīng)發(fā)布成功。BPS6.2調(diào)用WebService支持的WSDL規(guī)格:portType:WSDL中可以定義單portType和多portType;binding:WSDL中可以定義單binding和多binding;service:WSDL中可以定義單service和多service;port:WSDL的service結(jié)點下可以定義單port和多port;part:WSDL的Message結(jié)點下可以定義單part和多part來表示數(shù)據(jù);SOAP:在數(shù)據(jù)傳輸時,支持soap規(guī)范1.1,soap規(guī)范1.2;wsdl:WSDL的定義格式支持規(guī)范1.1。圖2-6訪問發(fā)布的外部WebService本案例模擬的這個服務(wù)暴露的接口是saveAccount方法,輸入?yún)?shù)是ExpInfo類型的服務(wù)數(shù)據(jù)對象,返回值是字符串?dāng)?shù)組類型的變量。調(diào)用時需要特定的用戶名和密碼作為消息頭,傳入報銷單信息(封裝為ExpInfo類型),返回值是消息頭中的用戶名和密碼信息。(2)導(dǎo)入發(fā)布成功的WebService展開com.primeton.bps.sample構(gòu)件包中的【服務(wù)接口定義】,右鍵選中下面的com.primeton.bps.sample包,在菜單中選擇【導(dǎo)入】,在彈出的對話框中選擇【EOS導(dǎo)入WSDL】,點擊【下一步】,在“WSDL地址”中輸入服務(wù)的訪問地址“:8080/mydomain/services/AccountService?wsdl”,如圖2-9所示。圖2-7導(dǎo)入WSDL點擊【完成】,提示“導(dǎo)入已經(jīng)成功完成”,在項目的構(gòu)件包中“服務(wù)”模塊顯示如圖2-10所示。圖2-8服務(wù)導(dǎo)入結(jié)構(gòu)流程設(shè)計建模2.1.4組織機構(gòu)建模報銷流程在運行過程中,要由員工完成填寫報銷單,由部門主管完成審批,由財務(wù)完成審閱。那么這些人員可以是具體的某個人,也可以是某個部門中的一個人,也可以是某個崗位或者擁有某個角色的一個人。那么如何讓流程能夠識別人員或者人員所在的組織機構(gòu)呢?BPS自帶了一個組織機構(gòu),可以方便用戶快速設(shè)置流程中各個活動的參與者。本案例就使用該缺省的組織機構(gòu)。其組織機構(gòu)模型如圖2-11所示。圖2-1BPS缺省的組織機構(gòu)模型BPS支持的組織機構(gòu):缺省的組織機構(gòu)模型在[BPS安裝目錄]\apache-tomcat-5.5.20\webapps\default\WEB-INF\_srv\work\system\com.primeton.workflow.core\META-INF\OMServiceModel.xml中定義。自定義的組織機構(gòu)必須實現(xiàn)BPS提供的一套組織機構(gòu)接口,請參考產(chǎn)品幫助文檔中“BPS幫助文檔開發(fā)參考BPS典型場景開發(fā)指南”中“結(jié)合自定義組織機構(gòu)的使用場景”章節(jié)。通過“開始程序PrimetonPlatform6.5PlatformStudio”啟動EOS集成開發(fā)環(huán)境,默認(rèn)進入到EOS開發(fā)透視圖。如圖2-12所示,啟動EOSServer。圖2-2啟動BPSServerEOSServer啟動成功后,在EOSStudio右邊的“組織模型”視圖中,點擊“”按鈕刷新組織模型,如圖2-13所示。圖2-3刷新組織模型刷新后,將默認(rèn)的組織機構(gòu)數(shù)據(jù)更新到視圖中,如圖2-11所示。刷新“組織模型”時,EOSServer必須處于正常運行狀態(tài)。2.1.5業(yè)務(wù)目錄規(guī)劃公司存在各種各樣的業(yè)務(wù),財務(wù)部門的報銷流程肯定不同于HR部門的請假流程,為了更清晰地區(qū)分各個特定的業(yè)務(wù),方便管理,就需要對業(yè)務(wù)進行分類管理,也就是規(guī)劃公司的業(yè)務(wù)目錄。業(yè)務(wù)目錄也可以分多級進行組織,即每個業(yè)務(wù)目錄還可以包括多個下級業(yè)務(wù)目錄。在項目資源管理器中,雙擊BPSDemo項目下面的“業(yè)務(wù)資源”,打開業(yè)務(wù)資源編輯器。在業(yè)務(wù)資源編輯器中選中“領(lǐng)域業(yè)務(wù)目錄”,點擊“”增加業(yè)務(wù)目錄,默認(rèn)產(chǎn)生的名稱為“業(yè)務(wù)目錄1”。修改其名稱及描述為“A公司”,保存后如圖2-14所示。圖2-1增加業(yè)務(wù)目錄選中“A公司”,再添加一個“財務(wù)”業(yè)務(wù)目錄,用于放置所有跟財務(wù)相關(guān)的流程、業(yè)務(wù)屬性。最終業(yè)務(wù)目錄設(shè)置如圖2-15所示。圖2-2最終業(yè)務(wù)目錄2.1.6業(yè)務(wù)流程建模1.創(chuàng)建流程在業(yè)務(wù)資源編輯器中,選中“財務(wù)”業(yè)務(wù)目錄,為其添加一個流程。如圖2-16所示。圖2-1添加流程在彈出的“創(chuàng)建BPS流程向?qū)А睂υ捒蛑?,選擇構(gòu)件包:com.primeton.bps.sample,輸入文件名稱:exp,顯示名稱:報銷流程,如圖2-17所示。點擊【完成】即創(chuàng)建了exp.workflowx,在中間的流程編輯器中自動創(chuàng)建開始和結(jié)束圖元。圖2-2創(chuàng)建報銷流程2.設(shè)計流程根據(jù)報銷流程的業(yè)務(wù)規(guī)則和需求設(shè)計,在流程編輯器中,用【選用板】上的“人工活動”表示需要人工參與的活動,用“WebService活動”表示調(diào)用外部服務(wù)的活動,并用“連接線”按照流程的業(yè)務(wù)規(guī)則依次連接各活動,設(shè)置為業(yè)務(wù)化的名稱,拖拽“注釋”增加注釋信息。完成后的流程如圖2-18所示。圖2-3定義報銷流程3.設(shè)置流程屬性雙擊流程編輯器的空白處,彈出“BPS流程屬性設(shè)置”對話框,用來設(shè)置一些和整個流程有關(guān)的屬性。點擊“相關(guān)數(shù)據(jù)”選項卡,這里是通過設(shè)置與業(yè)務(wù)流程相關(guān)的數(shù)據(jù)來確定流程實例狀態(tài)轉(zhuǎn)移條件。在本案例中,部門主管審批后,要根據(jù)他的審批結(jié)果決定流程的分支,那么就需要將部門主管的審批結(jié)果存放在相關(guān)數(shù)據(jù)區(qū)中,這里用變量isagree來表示;另一方面,在需求分析中梳理出來的另外兩個關(guān)鍵因素:報銷費用expmoney和是否是預(yù)算項目isbudgetitem也設(shè)置在相關(guān)數(shù)據(jù)區(qū)中。對入賬是調(diào)用外部的WebService服務(wù),該服務(wù)暴露的接口saveAccount的輸入?yún)?shù)是ExpInfo類型的對象,返回值是字符串?dāng)?shù)組,分別定義變量wsdl_exp和returnUser與輸入?yún)?shù)和返回值一一對應(yīng)。詳細(xì)設(shè)置如圖2-19所示。圖2-4設(shè)置報銷流程的相關(guān)數(shù)據(jù)4.設(shè)置活動屬性(1)人工活動:填寫報銷單雙擊“填寫報銷單”,彈出“人工活動屬性設(shè)置”對話框。點擊“參與者”選項卡,默認(rèn)是流程啟動者,意味著誰填寫報銷單,誰就啟動報銷流程,符合業(yè)務(wù)規(guī)則,不用修改。(2)人工活動:審批雙擊“審批”,在彈出的“人工活動屬性設(shè)置”對話框中點擊“參與者”選項卡,設(shè)置該活動的參與者“從參與者列表獲得”,點擊“”選擇參與者,如圖2-20所示。圖2-5選擇參與者點擊【確定】后,設(shè)置如圖2-21所示。圖2-6設(shè)置部門主管審批的參與者(3)人工活動:財務(wù)審閱雙擊“財務(wù)審閱”,在彈出的“人工活動屬性設(shè)置”對話框中,點擊“參與者”選項卡,同樣設(shè)置該活動的參與者“從參與者列表獲得”,并從組織機構(gòu)樹中選擇Rolec下面的Snoppy。如圖2-22所示。圖2-7設(shè)置財務(wù)審閱的參與者2.1.7業(yè)務(wù)資源定義業(yè)務(wù)資源是BPS為了支持流程的業(yè)務(wù)化定制而將業(yè)務(wù)流程中所使用到的要素的業(yè)務(wù)化包裝,使得業(yè)務(wù)人員無需理解該要素的技術(shù)細(xì)節(jié),而只需要關(guān)注其業(yè)務(wù)屬性并使用。在本案例中,填寫報銷單,主管審批,財務(wù)審閱,報銷單信息入賬,以及流程運轉(zhuǎn)的判斷因素都是報銷流程中的要素,對業(yè)務(wù)人員而言,不需要關(guān)注程序如何實現(xiàn),只需要根據(jù)流程要素的業(yè)務(wù)員化名稱或描述,進行選擇和使用。人工任務(wù)打開報銷流程exp.workflowx,按住Ctrl鍵,鼠標(biāo)同時選中“填寫報銷單”、“審批”和“財務(wù)審閱”,點擊鼠標(biāo)右鍵,在彈出菜單中選擇“生成業(yè)務(wù)資源定義”,如圖2-23所示。圖2-1生成人工任務(wù)的業(yè)務(wù)資源定義點擊后,彈出“批量生產(chǎn)業(yè)務(wù)資源”對話框,如圖2-24所示。圖2-2批量生成業(yè)務(wù)資源點擊【確定】按鈕,彈出提示創(chuàng)建成功對話框,將選中的人工活動都對應(yīng)生成了業(yè)務(wù)資源中的人工任務(wù)。雙擊打開“填寫報銷單”的屬性設(shè)置對話框,可以看到剛才創(chuàng)建的業(yè)務(wù)資源已經(jīng)自動與當(dāng)前活動關(guān)聯(lián),如圖2-25所示。其它幾個人工活動類似。圖2-3“填寫報銷單”人工任務(wù)設(shè)置業(yè)務(wù)手段:為了支持業(yè)務(wù)部門的流程配置員(或稱為業(yè)務(wù)人員)進行業(yè)務(wù)化定制與調(diào)整,以他們可以理解的方式進行配置的方式就稱為“業(yè)務(wù)手段”。技術(shù)手段:在設(shè)置流程屬性時,有些需要技術(shù)開發(fā)人員通過靈活的擴展性實現(xiàn)一些通過業(yè)務(wù)手段無法實現(xiàn)的功能,這種方式就稱為“技術(shù)手段”。業(yè)務(wù)變量業(yè)務(wù)變量是一些規(guī)則參數(shù)或業(yè)務(wù)化的變量,在報銷流程中審批結(jié)果、報銷金額和是否是預(yù)算內(nèi)項目是報銷的關(guān)鍵,在圖2-19中,已設(shè)置成整個流程的相關(guān)數(shù)據(jù),但這里的定義是針對技術(shù)開發(fā)人員的,我們?nèi)匀恍枰獙⑺鼈儤I(yè)務(wù)化,讓業(yè)務(wù)人員更容易理解。在圖2-19中,有“業(yè)務(wù)變量”Tab頁,這里定義的業(yè)務(wù)變量僅能用于當(dāng)前流程。同一類業(yè)務(wù)有可能有相同業(yè)務(wù)含義的規(guī)則參數(shù),比如在財務(wù)管理中,除了有報銷流程,還存在申請備用金流程、借款流程等,都會涉及到審批結(jié)果、金額這些參數(shù),為了方便同一類業(yè)務(wù)中可以復(fù)用相同或類似的變量,需要將它們定義在業(yè)務(wù)資源中。而入賬服務(wù)需要的報銷單信息及返回值是只針對外部服務(wù),而且業(yè)務(wù)人員也不需要關(guān)注這部分的調(diào)用實現(xiàn),所以這兩個變量就不需要定義成業(yè)務(wù)資源。在exp.workflowx中,雙擊“通過”連接線,在“連接線屬性設(shè)置”對話框中設(shè)置主管審批通過的條件:取消選中“默認(rèn)連線”前的復(fù)選框,在“簡單表達式”中,“左值類型”選擇“業(yè)務(wù)變量”,鼠標(biāo)點擊“左值”下的按鈕,彈出選擇業(yè)務(wù)變量的對話框,點擊【新增】按鈕,可以創(chuàng)建一個業(yè)務(wù)變量。通過【瀏覽】選擇“財務(wù)”業(yè)務(wù)目錄,增加“審批結(jié)果”業(yè)務(wù)變量,如圖2-26所示。圖2-1增加“審批結(jié)果”業(yè)務(wù)變量點擊【確定】,在“右值”下面輸入“Y”,最終設(shè)置如圖2-27所示。圖2-2“通過”連接線屬性設(shè)置對報銷金額、是否是項目內(nèi)預(yù)算這兩個規(guī)則參數(shù),需要直接在業(yè)務(wù)資源中定義。雙擊BPSDemo項目下面的“業(yè)務(wù)資源”,打開業(yè)務(wù)資源編輯器,可以看到在流程定義中直接定義的人工任務(wù)和業(yè)務(wù)變量。選中“財務(wù)”,點擊“添加業(yè)務(wù)資源”的按鈕,依次增加兩個業(yè)務(wù)變量:名稱分別為報銷金額、預(yù)算內(nèi)項目,XPATH需要與流程中定義的相關(guān)數(shù)據(jù)的xpath一致,分別為expmoney、isbudgetitem,如圖2-28所示。圖2-3報銷流程的業(yè)務(wù)資源流程實現(xiàn)流程設(shè)計建模中完成了報銷流程的建模,包括環(huán)節(jié)(填寫報銷單、審批、審閱、入賬等)、執(zhí)行的序列、流程中包含的規(guī)則和環(huán)節(jié)的參與者等的梳理。接下來進行技術(shù)細(xì)節(jié)的實現(xiàn),從“業(yè)務(wù)建模”到“技術(shù)實現(xiàn)”。報銷是由多種角色的人協(xié)作完成,不同的人有不同的工作職責(zé),員工登錄報銷系統(tǒng)后,填寫并提交報銷單,部門主管和財務(wù)人員登錄后,要審核或?qū)忛唸箐N單,等等。要想進行各自的工作,首先就要列出他們需要完成的所有工作,或者提供給他們查看任務(wù)列表的功能。接著,從待辦任務(wù)列表中選擇一個任務(wù)執(zhí)行,這時對部門主管來說,就是執(zhí)行報銷單的審批;對財務(wù)人員來說,就是進行報銷單的審閱,這也就對應(yīng)上了業(yè)務(wù)資源中人工任務(wù)具體的實現(xiàn)部分。所以,整個報銷流程的實現(xiàn)分為任務(wù)列表的實現(xiàn)和流程環(huán)節(jié)的實現(xiàn)。2.1.8任務(wù)列表實現(xiàn)本案例中用戶的登錄、查看任務(wù)列表的功能直接借助默認(rèn)的BPS客戶端來實現(xiàn),不再另外實現(xiàn)。BPS客戶端以Web界面的方式,提供了啟動流程、查看工作項、領(lǐng)取/執(zhí)行工作項、代理設(shè)置等功能。登錄BPS客戶端默認(rèn)支持的登錄用戶是“組織模型”視圖中刷新的子參與者,如圖2-11所示。其中登錄用戶的用戶名是圖中每個用戶的id值,密碼統(tǒng)一為000000。待辦已辦任務(wù)用戶成功登錄BPS客戶端后,默認(rèn)分頁顯示當(dāng)前登錄用戶需要執(zhí)行的待處理(包括自己、代理、代辦及協(xié)辦的任務(wù))的工作任務(wù),并提供了查詢功能。如圖2-29所示。圖2-1待辦任務(wù)列表在任務(wù)列表中,點擊任務(wù)對應(yīng)的【執(zhí)行】,會顯示出該任務(wù)對應(yīng)的執(zhí)行頁面;點擊【查看】可以顯示出當(dāng)前流程的運行圖。點擊第二個Tab頁【已處理任務(wù)】,同樣以分頁的形式顯示出當(dāng)前登錄用戶已處理的任務(wù)。2.1.9流程環(huán)節(jié)實現(xiàn)在待辦任務(wù)列表中點擊【執(zhí)行】時,BPS客戶端會先鏈接到客戶端內(nèi)部的操作,將當(dāng)前活動對應(yīng)的相關(guān)信息,比如所在的流程實例ID、當(dāng)前活動ID、當(dāng)前活動產(chǎn)生的工作項ID、參與者等信息封裝在類型為com.eos.workflow.data.WFWorkItem的workitem變量中,再傳入到當(dāng)前活動所配置的實現(xiàn)入口URL的請求上下文中。在設(shè)置相關(guān)數(shù)據(jù)和結(jié)束工作項等功能中都需要用到workitem對象中包含的信息。填寫報銷單“填寫報銷單”需要完成以下操作:填寫報銷單信息,將信息保存到數(shù)據(jù)庫中,將報銷金額、是否預(yù)算內(nèi)項目、入賬服務(wù)需要的報銷單信息對象設(shè)置到流程的相關(guān)數(shù)據(jù)區(qū)中,結(jié)束當(dāng)前工作。1.設(shè)計填寫報銷單頁面流用頁面流將“填寫報銷單”活動的整個過程描述下來。展開com.primeton.bps.sample構(gòu)件包中的【展現(xiàn)頁面流】,右鍵選中下面的com.primeton.bps.sample包,在彈出的菜單中選擇【創(chuàng)建頁面流】,創(chuàng)建名稱為“expMsg”的頁面流。在編輯器中設(shè)計如圖2-30所示。圖2-1“填寫報銷單”頁面流2.設(shè)計填寫報銷單頁面在構(gòu)件包的【展現(xiàn)頁面資源】下面創(chuàng)建“create.jsp”,用來完成用戶填寫報銷單的功能。在該頁面中主要利用組合控件中“DataForm”來生成Expenseinfo實體中報銷人expname、報銷金額expmoney、是否預(yù)算內(nèi)項目isbudegtitem及報銷原因reason的錄入代碼。在報銷單提交后,需要將流程實例ID設(shè)置到報銷單信息中才能完整保存信息,根據(jù)流程實例ID才能將所需數(shù)據(jù)設(shè)置到相關(guān)數(shù)據(jù)區(qū),而且要獲取到當(dāng)前活動產(chǎn)生的工作項ID才能結(jié)束當(dāng)前工作,這樣BPS引擎才能觸發(fā)下一個活動。這里需要的流程實例ID和工作項ID已存放在執(zhí)行“expMsg.flowx”的第一個請求上下文中workitem對象中,由于沒有將其設(shè)置在頁面流級別變量中,所以為了在后面的邏輯流中獲取其中的數(shù)據(jù),就需要借助頁面的隱藏域來保存這兩個ID的值。對報銷人來說,就是登錄BPS客戶端的用戶,可以從會話上下文中獲取登錄用戶的名稱及ID。頁面的關(guān)鍵代碼如下:<!--獲取工作項ID及流程實例ID,并設(shè)置在expenseinfo對象的屬性中--><h:hiddenname="expenseinfo/workItemID"property="workitem/workItemID"/><h:hiddenname="expenseinfo/processinstid"property="workitem/processInstID"/><!--頁面上顯示報銷人名稱--><b:writeproperty="userObject/userName"scope="session"/><!--隱藏報銷人的ID--><h:hiddenname="expenseinfo/expname"property="userObject/userId"scope="session"/>workitem:workitem是com.eos.workflow.data.WFWorkItem類型,可以從構(gòu)件庫視圖中【com.eos.workflow數(shù)據(jù)實體WFWorkItem】中查看到該實體的各個屬性及類型。如果要查看各屬性的中文描述,請參考“BPS幫助文檔開發(fā)參考附錄BPS實體與狀態(tài)數(shù)據(jù)實體對象參考工作項(WFWorkItem)”章節(jié)。將“creat.jsp”關(guān)聯(lián)到頁面流中“填寫報銷單”的視圖圖元中。并在“save”連線上設(shè)置類型為“com.primeton.bps.sample.expdataset.Expenseinfo”的expenseinfo變量來綁定頁面上的報銷單信息。3.設(shè)計保存報銷單邏輯流右鍵構(gòu)件包的【構(gòu)件】下面com.primeton.bps.sample包,創(chuàng)建名稱為“exp”的邏輯構(gòu)件,再在該邏輯構(gòu)件下面創(chuàng)建名稱為“saveExp”的邏輯流,接收從頁面上提交到頁面流中的報銷單信息,完成:保存報銷單,將報銷金額、是否是預(yù)算內(nèi)項目、入賬服務(wù)需要的報銷單信息設(shè)置到相關(guān)數(shù)據(jù)區(qū)中,結(jié)束當(dāng)前工作。在空白處設(shè)置邏輯流的輸入?yún)?shù)及入賬服務(wù)需要的報銷信息對象,如圖2-31所示。圖2-2“填寫報銷單”邏輯流屬性整個邏輯流設(shè)計如圖2-32所示。圖2-3“填寫報銷單”邏輯流圖中設(shè)置數(shù)據(jù)到相關(guān)數(shù)據(jù)調(diào)用的是構(gòu)件庫中【com.eos.workflow構(gòu)件服務(wù)RelativeDataManagerServicesetRelativeData】方法,該方法是根據(jù)流程實例ID,將對象值放到相關(guān)數(shù)據(jù)區(qū)中指定的xpath下。以“設(shè)置金額到相關(guān)數(shù)據(jù)”為例,流程實例ID和報銷金額可以從輸入?yún)?shù)中獲取,在圖2-19中已設(shè)置了在流程中報銷金額的xpath是“expmoney”,所以其參數(shù)設(shè)置如圖2-33所示。圖2-4“設(shè)置金額到相關(guān)數(shù)據(jù)”屬性設(shè)置圖中“結(jié)束工作項”調(diào)用的是構(gòu)件庫中【com.eos.workflow構(gòu)件服務(wù)WorkItemManagerServicefinishWorkItem】方法,該方法是根據(jù)工作項ID完成工作項?!敖Y(jié)束工作項”的參數(shù)設(shè)置如圖2-34所示。圖2-5“結(jié)束工作項”屬性設(shè)置4.完善填寫報銷單頁面流將“saveEx”關(guān)聯(lián)到頁面流中“保存報銷單”的邏輯流圖元中,并將“save”連線上設(shè)置的變量作為參數(shù)傳入邏輯流內(nèi)部?!敖Y(jié)束”圖元可以關(guān)聯(lián)一個成功頁面,在本案例中,直接調(diào)用BPS基礎(chǔ)構(gòu)件庫中存在的頁面,如圖2-35所示。圖2-6頁面流中“結(jié)束”屬性設(shè)置5.設(shè)置人工任務(wù)“填寫報銷單”的實現(xiàn)入口雙擊BPSDemo項目下面的“業(yè)務(wù)資源”,打開業(yè)務(wù)資源編輯器,依次展開業(yè)務(wù)領(lǐng)域目錄,點擊“填寫報銷單”人工任務(wù),在右邊設(shè)置其類型為“頁面流”,點擊【瀏覽】,在彈出的對話框中選擇“expMsg.flowx”作為其實現(xiàn),設(shè)置如圖2-36所示。圖2-7“填寫報銷單”人工任務(wù)屬性設(shè)置部門主管審批“部門主管審批”需要完成以下操作:根據(jù)流程實例ID查詢報銷單,審批報銷單,將審批信息保存到數(shù)據(jù)庫中,將審批結(jié)果設(shè)置到流程的相關(guān)數(shù)據(jù)區(qū)中,結(jié)束當(dāng)前工作。1.設(shè)計部門主管審批頁面流用頁面流將“部門主管審批”活動的整個過程描述下來。在【展現(xiàn)頁面流com.primeton.bps.sample】下面創(chuàng)建名稱為“auditMsg”的頁面流。在編輯器中設(shè)計如圖2-37所示。圖2-1“部門主管審批”頁面流2.設(shè)計查詢報銷單的邏輯流利用賦值圖元從請求上下文中workitem變量中獲取流程實例ID:workitem/processInstID,則查詢報銷單就是根據(jù)獲取到的流程實例ID查詢報銷單。在“exp”邏輯構(gòu)件下面創(chuàng)建“getExp”邏輯流,用來接收從頁面流中傳入的流程實例ID,將查詢出來的報銷單信息返回給頁面流。設(shè)計好后與頁面流中“查詢報銷單”的邏輯流圖元進行關(guān)聯(lián),將賦值圖元中得到的流程實例ID作為輸入?yún)?shù)傳入,將返回值設(shè)置在一個變量中,以便后面的頁面從中獲取信息。3.設(shè)計部門主管審批頁面在構(gòu)件包的【展現(xiàn)頁面資源】下面創(chuàng)建“audit.jsp”,用來完成部門主管審批報銷單的功能。該頁面分為兩部分,上部可以利用“RecordView”來顯示查詢出來的報銷單信息,下部利用“DataForm”生成審批人信息Expensecheck實體中報銷意見advice的錄入代碼,而審批結(jié)果isagree在本案例中利用【同意】、【不同意】按鈕來動態(tài)設(shè)置。在報銷流程中,“審批”后有兩個后繼活動,要根據(jù)連接線上設(shè)置的審批結(jié)果(isagree)來判斷執(zhí)行哪個活動,所以,在頁面中需要用隱藏域保存流程實例ID和工作項ID,在后面的邏輯流中根據(jù)流程實例ID將主管審批結(jié)果設(shè)置在相關(guān)數(shù)據(jù)區(qū)中,控制流程后面活動的流轉(zhuǎn)方法;需要根據(jù)工作項ID結(jié)束當(dāng)前的工作。而審批人同樣可以從會話上下文中獲取登錄用戶的信息。關(guān)鍵代碼如下:<h:hiddenname="expensecheck/expid"property="exp/expid"/><h:hiddenname="expensecheck/workItemID"property="workitem/workItemID"/><h:hiddenname="expensecheck/processInstID"property="workitem/processInstID"/><h:hiddenname="expensecheck/checker"property="userObject/userId"scope="session"/>頁面完成后,將“audit.jsp”關(guān)聯(lián)到頁面流中“部門主管審批”的視圖圖元中。并在“audit”連線上設(shè)置類型為“com.primeton.bps.sample.expdataset.Expensecheck”的變量來綁定審批信息。4.設(shè)計保存審批信息邏輯流在“exp”邏輯構(gòu)件下面創(chuàng)建“saveAudit”邏輯流,需要接收從頁面流中傳入的審批信息,完成:將審批結(jié)果設(shè)置到相關(guān)數(shù)據(jù)區(qū)中,結(jié)束當(dāng)前工作,保存審批信息。邏輯流設(shè)計如圖2-38所示。圖2-2“保存審批信息”邏輯流5.完善部門主管審批頁面流將“saveAx”關(guān)聯(lián)到頁面流中“保存審批信息”的邏輯流圖元中,并將“audit”連線上設(shè)置的變量作為參數(shù)傳入邏輯流內(nèi)部?!敖Y(jié)束”圖元同“填寫報銷單”頁面流的“結(jié)束”圖元一樣,配置BPS基礎(chǔ)構(gòu)件庫中存在的頁面successBack_Client.jsp。6.設(shè)置人工任務(wù)“審批”的實現(xiàn)入口雙擊打開項目下面的“業(yè)務(wù)資源”,依次展開業(yè)務(wù)領(lǐng)域目錄,點擊“審批”人工任務(wù),在右邊設(shè)置其類型為“頁面流”,點擊【瀏覽】,在彈出的對話框中選擇“auditMsg.flowx”作為其實現(xiàn)。如圖2-39所示。圖2-3“審批”人工任務(wù)屬性設(shè)置財務(wù)審閱“財務(wù)審閱”需要完成以下操作:根據(jù)流程實例ID查詢報銷單,審閱報銷單,將財務(wù)審閱人更新到報銷單信息中,結(jié)束當(dāng)前工作。1.設(shè)計財務(wù)審閱頁面流財務(wù)審閱時也需要查看報銷單信息,同“部門主管審批”的思路一樣,需要獲取流程實例ID,并將報銷單信息查詢出來,再進行審閱和更新。在【展現(xiàn)頁面流com.primeton.bps.sample】下面創(chuàng)建名稱為“checkMsg”的頁面流,描述整個活動過程如圖2-40所示。圖2-1“財務(wù)審閱”頁面流2.調(diào)用查詢報銷單的邏輯流利用賦值圖元從請求上下文中workitem變量中獲取流程實例ID,“查詢報銷單”的邏輯流圖元直接關(guān)聯(lián)已經(jīng)實現(xiàn)的“getExp”邏輯流,將獲取到得流程實例ID作為輸入?yún)?shù)傳入,將返回值設(shè)置在一個變量中,以便后面的頁面從中獲取信息。3.設(shè)計財務(wù)審閱頁面在構(gòu)件包的【展現(xiàn)頁面資源】下面創(chuàng)建“check.jsp”,用來完成財務(wù)審閱功能。該頁面可以利用“RecordView”顯示報銷單信息中的報銷人、報銷金額、是否預(yù)算內(nèi)項目及報銷原因,為了能觸發(fā)后面的邏輯處理,再手動加上form信息及提交按鈕。財務(wù)審閱后,主要是將財務(wù)審閱人更新到報銷單信息中,并結(jié)束當(dāng)前工作,所以在頁面上需要用隱藏域保存報銷單的主鍵ID、工作項ID、財務(wù)審閱人(即當(dāng)前登錄用戶ID)。關(guān)鍵代碼如下:<h:hiddenname="exp/expid"property="exp/expid"/><h:hiddenname="exp/workItemID"property="workitem/workItemID"/><h:hiddenname="exp/auditor"property="userObject/userId"scope="session"/>頁面完成后,將“check.jsp”關(guān)聯(lián)到頁面流中“財務(wù)審閱”的視圖圖元中。并在“check”連線上設(shè)置類型為“com.primeton.bps.sample.expdataset.Expenseinfo”的變量來綁定報銷單信息。4.審計更新報銷單邏輯流在“exp”邏輯構(gòu)件下面創(chuàng)建“updateExp”邏輯流,需要接收從頁面流中傳入的報銷單信息,完成:將財務(wù)審閱人更新到報銷單信息中,結(jié)束當(dāng)前工作。邏輯流設(shè)計如圖2-41所示。圖2-2“更新報銷單”邏輯流5.完善財務(wù)審閱頁面流將“updateEx”關(guān)聯(lián)到頁面流中“更新報銷單”的邏輯流圖元中,并將“check”連線上設(shè)置的變量作為參數(shù)傳入邏輯流內(nèi)部?!敖Y(jié)束”圖元仍然選擇BPS基礎(chǔ)構(gòu)件庫中存在的頁面successBack_Client.jsp。6.設(shè)置人工任務(wù)“財務(wù)審閱”的實現(xiàn)入口雙擊打開項目下面的“業(yè)務(wù)資源”,依次展開業(yè)務(wù)領(lǐng)域目錄,點擊“財務(wù)審閱”人工任務(wù),在右邊設(shè)置其類型為“頁面流”,點擊【瀏覽】,在彈出的對話框中選擇“checkMsg.flowx”作為其實現(xiàn)。如圖2-42所示。圖2-3“財務(wù)審閱”人工任務(wù)屬性設(shè)置入賬服務(wù)“財務(wù)審閱”活動一旦結(jié)束后,“入賬”活動就被觸發(fā)。該活動是調(diào)用外部的一個WebService服務(wù),在“2.4.2基礎(chǔ)框架搭建”中已完成了“導(dǎo)入外部WebService的WSDL”工作,這時只需要在流程中配置“入賬”這個WebService活動即可。1.配置活動的WSDL信息打開“exp.workflowx”流程,雙擊“入賬”活動,打開屬性設(shè)置框,選擇第二個Tab頁【W(wǎng)SDL配置】。點擊【瀏覽】選擇“AccountService.wsdl”后,顯示出WSDL中的Service、當(dāng)前Service下面的Port、對應(yīng)的Operation及URL。設(shè)置如圖2-43所示。圖2-1“入賬”的WSDL配置其中參數(shù)值及返回值可以利用“Alt+/”從流程的相關(guān)數(shù)據(jù)(圖2-19)中獲取已經(jīng)定義的變量。返回值如果要加入到相關(guān)數(shù)據(jù)區(qū)中,要選中“回填相關(guān)數(shù)據(jù)”。如果調(diào)用的服務(wù)是多service多port多binding,可以在下拉菜單中進行選擇。在本案例中調(diào)用的入賬服務(wù)是多port多binding,在Port欄中可以選擇“AccountServiceSOAP12port_http”,但是在EOS6.1中Binding的傳輸協(xié)議不支持jms,HTTP綁定,MIME綁定方式,所以不能選擇“AccountServiceHttpport1”。2.配置活動的SOAPHeader信息WebService調(diào)用支持發(fā)送和接收Header,Header中可以傳輸身份認(rèn)證信息、簽名等信息。在本案例的入賬服務(wù)中,服務(wù)端約定Header是字符串類型的userName和password兩個信息。所以在“入賬”活動的屬性對話框中,打開第三個Tab頁【SOAPHeader】,增加兩個參數(shù),它們的值用常量字符串模擬,設(shè)置如圖2-44所示。圖2-2“入賬”的SOAPHeader配置部署發(fā)布案例開發(fā)完成后,保證編譯通過(各個文件的圖標(biāo)上不帶有“”),就可以部署案例。為了方便程序的調(diào)試,需要在EOSStudio內(nèi)部啟動EOSServer,啟動方法如圖2-12所示。如果已經(jīng)通過點擊“開始程序PrimetonPlatform6.5啟動Server”來啟動的EOSServer要先關(guān)閉。2.1.10發(fā)布流程與資源1.提交流程在“項目資源管理器”視圖中選中“exp.workflowx”文件,在右鍵菜單中選擇“流程定義庫交互提交流程”,如圖2-45所示。圖2-1提交報銷流程彈出“提交流程”對話框。可以在左邊一欄依次展開各級目錄,選中流程文件后,再在右邊一欄選擇提交方式。如圖2-46所示。圖2-2選擇提交方式按默認(rèn)方式提交:用戶選擇按照默認(rèn)方式提交流程時會有兩種情況:1.如果流程定義庫已經(jīng)存在了業(yè)務(wù)流程時則覆蓋最新版本的流程。2.如果流程定義庫中不存在流程定義時,會創(chuàng)建新版本流程。覆蓋已有版本:如果流程不是第一次提交,用戶可以從已經(jīng)存在的版本列表中選擇,指定一個已有的版本進行覆蓋操作。創(chuàng)建新版本:用戶提交業(yè)務(wù)流程時,用戶可以選擇創(chuàng)建新版本。版本生成規(guī)則是有工作流引擎控制的。如:當(dāng)前流程版本為“1.1.1”,則會創(chuàng)建新版本“1.1.2”;如果第一次提交版本則會創(chuàng)建版本“1.1.1”。立即發(fā)布:選中立即發(fā)布,則為部署后馬上執(zhí)行發(fā)布動作,如果有已經(jīng)發(fā)布的舊版本則取消發(fā)布舊版本,馬上發(fā)布當(dāng)前版本。不選立即發(fā)布,則為部署后不執(zhí)行發(fā)布動作。如果是覆蓋舊版本則不會改變原來版本的發(fā)布狀態(tài);如果是新版本則部署后為未發(fā)布狀態(tài)。點擊【下一步】,選中“領(lǐng)域業(yè)務(wù)目錄”,依次展開,全部選中在業(yè)務(wù)資源中設(shè)置的人工任務(wù)、業(yè)務(wù)操作和業(yè)務(wù)變量,如圖2-47所示。圖2-3提交流程相關(guān)資源點擊【完成】后,流程和業(yè)務(wù)資源提交成功,顯示如圖2-48所示。圖2-4提交成功2.查看流程定義點擊“開始程序PrimetonPlatform6.5BPSWorkspace”,顯示登錄界面。其中,用戶名輸入tiger,密碼輸入000000,成功登錄后,默認(rèn)顯示流程管理監(jiān)控中的“流程實例管理”模塊。點擊“業(yè)務(wù)流程管理”,依次展開左邊“領(lǐng)域級業(yè)務(wù)目錄”,可以看到剛才提交的報銷流程及其版本號,點擊版本號1.1.1*,在右邊顯示業(yè)務(wù)流程圖,如圖2-49所示。圖2-5提交的報銷流程版本號右上角的*,表示當(dāng)前版本是已發(fā)布的版本。對于一個流程來說,發(fā)布版本最多有一個。2.1.11發(fā)布EOS程序在EOSStudio中所有項目默認(rèn)是“自動構(gòu)建”,如圖2-50所示。圖2-1自動構(gòu)建項目“自動構(gòu)建”是指在EOSStudio中文件或其引用的文件發(fā)生變化時會自動編譯成運行時所需要的目標(biāo)文件,在EOSServer啟動的情況下,開發(fā)環(huán)境會立刻將正確的編譯結(jié)果文件自動同步到服務(wù)器上。所以在開發(fā)期不需要額外的操作,EOS中的資源文件已經(jīng)自動部署在了EOSServer中。如果在開發(fā)環(huán)境下需要手動部署,可以選中項目,在右鍵菜單中選擇【部署】,或者選中構(gòu)件包,在右鍵菜單中選擇【部署】或【清除后再部署】。流程運行與監(jiān)控確保EOSServer已處于正常啟動狀態(tài)。1.登錄并啟動報銷流程點擊“開始程序PrimetonPlatform6.5BPSWorkClient”,顯示登錄界面。輸入BPS自帶的組織機構(gòu)樹中的任一用戶的用戶名,即圖2-11中每個人員后面括號里id的值,密碼統(tǒng)一為000000。以tiger登錄為例,如圖2-51所示。圖2-2登錄頁面登錄成功后默認(rèn)顯示tiger的待處理任務(wù)。點擊導(dǎo)航條菜單上的【啟動流程】進入流程定義列表界面,如圖2-52所示。圖2-3流程定義列表在【流程定義列表】中找到業(yè)務(wù)流程名稱為com.primeton.bps.sample.exp的流程,點擊【啟動】按鈕,在【啟動表單】中流程實例名稱輸入“報銷流程”,流程實例描述輸入“張三的報銷流程”,如圖2-53所示。圖2-4啟動流程點擊【啟動】后,提示流程啟動成功。2.填寫報銷單流程啟動完成后,在導(dǎo)航條菜單中選擇【我的任務(wù)】菜單,在【待處理的任務(wù)】Tab頁中顯示出流程實例名稱為“報銷流程”并且工作項名稱為“填寫報銷單”的工作項,如圖2-54所示。圖2-5待處理任務(wù)點擊【執(zhí)行】按鈕執(zhí)行報銷流程中的【填寫報銷單】環(huán)節(jié)。填入報銷信息,如圖2-55所示。圖2-6填寫報銷單點擊【保存】后,提示“操作成功”,并會回到待處理的任務(wù)列表。此時對tiger來說,已無待處理任務(wù),所以列表為空。點擊第二個Tab頁【已處理的任務(wù)】可以查看到剛才完成的“填寫報銷單”,如圖2-56所示。圖2-7查看報銷人的已辦任務(wù)點擊【查看】,顯示出流程監(jiān)控圖及工作項詳細(xì)信息。而這些也都可以在BPS管理監(jiān)控工具中查看到。登錄BPSWorkspace,在“流程管理監(jiān)控”的“流程實例管理”模塊,依次展開左邊“領(lǐng)域級業(yè)務(wù)目錄”,可以看到報銷流程及其版本號,點擊版本號1.1.1*,在右邊顯示該流程下面所有的流程實例列表,如圖2-57所示。圖2-8流程實例列表在列表中點擊流程實例名稱“報銷流程”,除了可以看到流程實例圖,還可以執(zhí)行許多操作:查看相關(guān)數(shù)據(jù),掛起、終止、刪除流程實例,查看活動實例信息和工作項信息等等,如圖2-58所示。圖2-9流程實例運行圖在流程實例圖上點擊“審批”,在彈出的對話框中可以查看到該活動的工作項列表及參與者。從圖2-21中也可以知道,要由“Goose”來完成審批。3.部門主管審批注銷BPS客戶端,返回登錄頁面,以用戶名“goose”和密碼“000000”登錄。默認(rèn)顯示的待處理的任務(wù)列表中就有一條“審批”任務(wù)。點擊【執(zhí)行】后,顯示報銷單信息及部門主管審批操作頁面,如圖2-59所示。圖2-10部門主管審批填寫審批意見,點擊【同意】,完成部門主管審批任務(wù),系統(tǒng)回到待處理的任務(wù)列表。點擊圖2-58中的【刷新】按鈕,可以看到流程運行到“財務(wù)審閱”,點擊【相關(guān)數(shù)據(jù)】,彈出窗口顯示出流程在運行填寫報銷單和部門主管審批活動中所設(shè)置的相關(guān)數(shù)據(jù),如圖2-60所示。圖2-11相關(guān)數(shù)據(jù)4.財務(wù)審閱在“財務(wù)審閱”活動屬性中參與者設(shè)置的是“Snoppy”,如圖2-22所示。再以用戶名“snoppy”和密碼“000000”登錄BPS客戶端。同樣,在待處理的任務(wù)列表中有一條“財務(wù)審閱”任務(wù)。點擊【執(zhí)行】,顯示報銷單的信息,如圖2-61所示。圖2-12財務(wù)審閱點擊【提交】,完成財務(wù)審閱,BPS引擎直接調(diào)用外部的入賬服務(wù),完成入賬活動操作。點擊圖2-58中的【刷新】按鈕,可以看到流程已經(jīng)結(jié)束。如圖2-62所示。圖2-13流程實例結(jié)束圖需求變更報銷流程運行一段時間后,隨著公司規(guī)模地擴大、業(yè)務(wù)量地增多,員工的各種報銷金額大幅度增長,公司為了開源節(jié)流、降低成本,提升競爭力,完善了報銷等管理制度。調(diào)整后的報銷制度是:員工填寫的報銷單,如果部門主管審批不通過,不允許報銷;如果部門主管審批通過,金額小于等于1萬且是預(yù)算內(nèi)項目,則進行財務(wù)審閱,然后入賬;如果不滿足金額小于等于1萬且是預(yù)算內(nèi)項目的條件,則需要總監(jiān)或VP進行審批。這時如果報銷金額大于1萬小于等于5萬,是總監(jiān)審

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論