在說這個案例之前先向大家轉寄一個簡單的招聘資訊,我們團隊目前需要招聘兩名技術助理人員,跟隨我們做一些產品開發和技術諮詢工作,歡迎有志同道合的朋友與我們合作:http://job.cnblogs.com/offer/19632/。
一、案例商務程序說明
在前一篇文章AgileEAS.NET SOA 中介軟體平台工作流程系統介紹之中我簡單的向大家介紹了AgileEAS.NET SOA平台工作流程系統的基本介紹,本文我將向大家以一個真實的案例向大家介紹AgileEAS.NET SOA平台工作流程系統的應用。
今天我們的例子來自於醫學資訊化之中的一個簡單案例,關於醫院藥庫/藥房藥品報損業務的處理過程,現實商務程序如以定義:
目前的商務程序是這麼要求的,由藥房管理員發起一個報損申請,然後由藥房負責人審批,早批不通過則由藥房管理員修改後再次提交,通過則由藥劑科長審核,審核通過之後由藥房管理員確認報損,否則終止本次報損業務處理。
對於不同地區、不同規模、不同經營性質的醫院來說,對於藥品的報損處理流程都可能不一樣,那麼擺在醫學開發商面前的一個很麻煩問題就是商務程序的定製處理,對於此類問題使用傳統方法一直是一個非常棘手的問題,可能不同醫院的商務程序的變動必須會導致程式碼的變動,進行造成醫學軟體開發商產品版本管理混亂、產品實施周期過長進而導致開發商的間接管理成本和項目總體成本急劇提高。
二、應用AgileEAS.NET SOA平台工作流程重組流程
對於上述問題,我們可以使用AgileEAS.NET SOA平台所提供的工作流程系統進行商務程序自訂,使用工作流程平台驅動業務資料達到商務程序再造的目的。
我們來仔細看上述商務程序就會發現,這是一個及其經典的“申請-早批-確認”業務處理流程,對於“申請”和“確認”都是一個比較固定的操作,但是對於“申請-早批-確認”的處理過程,則是一個極不確定的過程,比如一個小型醫學機構可以就需要一個簡單的審批即可,但是對於一個大型的醫學機構,其審批可以不止二級審批,可能會有三級或多級審批處理。
如果我們開發兩個功能模組“藥房報損申請/申批”、“藥房報損確認”以及定義一個工作流程“藥房報損申批次程序”,並讓“藥房報損申批次程序”與“藥房報損申請/申批”相結合,由工作流程驅動“藥房報損申請/申批”按照“藥房報損申批次程序”進行處理,並在處理完成之由“藥房報損確認”完成藥品報損,那麼我們是否就可以實現這種高度靈活的流程自訂呢,回答當然是OK,那麼接下來我們來看看怎麼辦到這樣的效果吧。
三、如果做?一步一步來
我們來先開始模組“藥房報損申請/申批”,其最終效果如下:
接下來模組“藥房報損確”,其最終效果如下:
接下來我們來定義工作流程“藥房報損申批次程序”:
流程許可權設定:
流程許可權設定中包含流程發起許可權及各狀態的處理許可權,其設定方式都一樣,同AgileEAS.NET SOA平台中的模組使用權限設定保持一致,我們在些為帳號xyf設定流程發起許可權和“審請狀態”的處理許可權,給帳號zhx設定“審請狀態”的處理許可權,給帳號Administrator設定“審請狀態”的處理許可權。
接下來需要綁定工作流程與其驅動的業務模組之間的關聯關係:
同時也需要在模組代碼之中完成與工作流程的綁定:
在功能模組中需要做兩個地方的綁定,第一個在模組的頭部需要標記明確WorkflowAddIn屬性,用於聲明這是一個受工作流程驅動的功能模組,另一個是需要在功能模組中的聲音一個類型為Guid的屬性,並且標記WorkflowInstanceId屬性,用於工作流程向功能模組寫入當前工作流程執行個體,至此為止,工作流程定義及流程自訂工作完成,接下來我們看看運行效果吧。
四、如果做?一步一步來
首先,我們使用帳號xyf登入,我們會看到如下功能:
我們開啟“發起流程”:
或者直接開啟“藥房報損申請”模組發起工作流程:
提交完成之後開啟“我的申請”會看到剛才我們所發起的執行個體:
接下來,我們切換到帳號“zhx”登入,並且開啟我的待辦:
完成一級審批“藥房報損申請”:
開啟已辦事宜:
接下來,我們切換到帳號“888888”登入,並且開啟我的待辦:
完成二級審核“藥房報損申請”:
開啟已辦事宜:
最後我們切換到帳號“xyf”,並開啟 “藥房報損確認”模組:
至此,藥房藥品報損業務處理示範完成,若審批次程序發生變更,則只需要項目實施人員根據客戶的商務程序修改工作流程定義,而不需要修改程式碼,實現流程的自訂。
五、AgileEAS.NET 4.0 下載
有關於平台最新版本的最新發行版本的程式集、類庫手冊、相關資料,請大家從AgileEAS.NET平台的官網http://www.smarteas.net/進行下載,官網設有獨立的下載頁面,從這裡下載:官網下載頁面。
六、如何聯絡我們
如果您在使用AgileEAS.NET開發平台中有什麼問題,請使用如下幾種連絡方式或者溝通方式。
1、官方網站:
AgileEAS.NET平台:http://www.smarteas.net/
敏捷軟體工程實驗室:http://www.agilelab.cn/