關於訊光 產品介紹 專刊分享 下載專區 討論專區 成功案例 線上範例 人才中心
關於訊光
產品介紹
專刊分享
下載專區
討論專區
成功案例
線上範例
人才中心
首頁 > 專刊分享 > EEP2006 WF 初體驗


EEP2006 WF 初體驗 訊光科技
發表日期:2007/10/2     瀏覽次數:7081
EEP2006 AJAX的靈活應用

              

 

李燕華


前言
 

  隨著企業電子化的普及與發展,為了能夠有效的結合資訊系統,企業對ERP結合的Workflow工具需求也越來越急迫,EEP2006 WF(Workflow Foundation)就此應運而生。EEP2006 WF以Microsoft .NET 3.0的Windows Workflow Foundation為核心引擎,是一個易學易用且又兼具彈性的工作流程工具。

本文將以一個簡單的訂單申請流程,來簡單介紹EEP2006 WF的使用方法與開發步驟,透過這個範例可以一睹EEP2006 WF的風貌。這個範例是選自SQL Server中預設好的NorthWind資料庫的Orders以及Order Details兩個資料表,為了讓這個例子貼切,我們需要在訂單Orders主檔中增加一個TotalAmount欄位,代表訂單的總金額,以此欄位來做為流程的簽核授權條件。整個簽核流程需求,簡單說明如下:
 

1. 由業務填寫訂單,並提交給主管審核。

2. 主管審核中,定義訂單總金額不超過10萬由業務經理審核即可,如果超過10萬,則需總經理審核。

3. 業務部審核完成後,如果訂單金額超過5萬,還需財務經理對客戶進行信用審核。(這只是個範例,也可以將總經理的審核放在信用審核之後,或許較為合理)。

4. 審核通過後,通知申請人。

 

 

      組織說明
 

在開始設計使用流程之前,需要先定義一下公司的組織與成員,依範例的需求,我們利用EEPManager的公用程式將流程的基本定義與組織定義設定如下:
 

1. 使用者的定義:

 

如上,與原EEP2006的使用者定義是一樣的,多了電子郵件欄位,用來呈送單據貨表單時,可以同步發送Email通知與可以直接用Email連結打開此單據。在此我們定義了001到006等6個Users,在WF的架構下,職務都是在角色中定義的,因為企業USER變動很大,但角色卻是固定。

 

2. 角色的定義:
 



     
同上,我們定義了R00到R03,R00為總經理,用戶設為001(ANDY);R01為業務,用戶設為004(LILY)與006(SUNWAY)兩個,一個角色是可以設定多人的,但是如果是部門主管須避免多人,否則會有權責的問題;R02為業務經理,用戶設為003(SARA);R03為行政經理,用戶設為002(JIN)。
        在此,Group除了是原EEP2006中的群組部門外,角色也是定義在此,因此有一個角色欄位為Y來區別。

 

3. 組織設定:
 



       
在公司組織中,我們設定三個部門,分別為業務部/客服部/總管理部等,總公司設定主管角色為R00總經理,業務部則設定主管角色為R02業務經理,職級則定為經理,在業務部下方角色成員中,我們定義了R01業務(內有兩個004/006兩個USER)。

 

 

Web表單設計
 

我們利用EEP2006的Wizard功能,我們先產生一個SOrder.dll的Server Module,這個Module我們選用了Orders + Order Details為訂單的主檔與明細檔,完成後直接在EEP的A/P Server上啟動服務即可;接著我們同樣使用Wizard來快速產生一個Web表單,在此我們命名為WOrder.aspx,過程中不須撰寫任何一行程式,僅需1~2分鐘中即可產生完畢,在此我們省略Wizard的開發步驟,產生後的頁面如下圖:


 

        上圖中,Navigator在Template中我們已經事先定義好了FLNavigator,因此Wizard產生後就自動為流程的操作功能,上面會有上呈/審核/退回/通知等等按鈕。
 

 

工作流設計

 

打開EEP2006 WF的FLDisigner,利用此流程設計器拖入流程元件,如圖,我們先新增一個Orders.xoml ,並一一貼入圖中的流程元件(Activity)。
 


 

在這個流程設計中,一共使用了4種活動元件,分別是FLStandard/ FLApprove / IfElseActivity / FLNotify。其中,FLStandard元件是最基礎的標準活動元件,用於設定最基本的上呈與審核的流程活動;FLApprove元件則是專門用於審核的活動元件,它可以通過不同的職級來設定不同的核決權限條件,該活動可能就會有多層主管共同參與簽核;IfElesActivity顧名思義,是依據設定條件來決定流程的方向,可以同時設定多個條件與方向;FLNotify則代表會發出通知給該活動的角色,但在流程則會持續往下運作,不會等待該活動的回應。每個流程活動設計的明細如下:

1. 工作流程屬性:在貼入流程元件之前,先對此流程的基本屬性進行設定,如下:


EEPAlias:設定流程資料表的資料庫名稱,可以下拉選則ERPS這個預設資料庫別名。

TableName:設定流程資料表名稱,在EEP2006 WF架構上,必須要有一個實體的Table名稱與此流程有對應關係,在此我們選擇Orders這個Table。

Description:指流程名稱說明,這個設定會在待辦與經辦事項中顯示出來,所以一定要設定,否則流程名稱會空白。

 

2. 訂單申請:貼入第一個FLStandard的Activity,屬性設定如下圖:
 


(Name):代表活動名稱,設定為訂單申請。

FLNavigatorMode:流程按鈕狀態,設為Summit代表只顯示上呈的按鈕。

NavigatorMode:資料操作按鈕狀態,設為Insert代表為只能新增資料的狀態。

SendToKind:第一個活動都是設為Applicate 申請者。

WebFormName:Web表單名稱,在此我們選擇TEST目錄下的WOrder這個Web表單,做為申請訂單的輸入頁面。

 

3. 主管審核:屬性設定與FLStandard相似,但屬性不太一樣,說明如下:
 

(Name):代表活動名稱,設定為主管審核。

FLNavigatorMode:流程按鈕狀態,此固定為Approve,代表可以進行審核/退回等動作。

NavigatorMode:資料按鈕狀態,設為Normal代表不能執行新增/更改/刪除等功能。

SendToKind:固定為Manager狀態,代表活動對象為申請者的主管(主管可能會有多層)。
WebFormName:Web表單名稱,同樣是WOrder.aspx這個Web表單,也可以不同活動用不同的Web表單,但主檔Table要一致。

ApproveRights:審核授權的條件設定,依不同的職級可以設定不同的簽核授權條件,如下,我們簡單設定2個職級的條件即可,其中第一層Expression為True代表沒有條件,一定須給經理去審核,TotalAmount>=100000代表超過10萬要給總經理審核。
 

 

4. 信用審核條件:為一個IfElseActivity的活動,此活動元件只需要設定(Name)的名稱,將其設為”信用審核否”,往下有兩個路線,一個設定(Name)名稱為”未超過”,條件則不用訂,另一個設定(Name)為”超過5萬元”,條件則設在Description屬性上,在此設定為TotalAmount>=50000,如下圖:
 



5. 信用審核:
一樣採用FLStandard的活動元件,屬性設定如下:

(Name):代表活動名稱,設定為信用審核。

FLNavigatorMode:流程按鈕狀態,設為Approve,代表可以進行審核/退回等動作。
NavigatorMode:資料按鈕狀態,設為Normal代表不能新增/更改/刪除資料。

SendToKind:設定為Role代表特定的角色,角色依SendToRole來決定之。

SendToRole:設定簽核對象的角色,在此設定為R03(行政經理)負責信用審核。

WebFormName:Web表單名稱,在此我們一樣選擇WOrder.aspx這個表單。

 

6. 通過通知:採用FLNotify的活動元件,屬性設定與FLStandard相似,如下:

(Name):代表活動名稱,設定為通過通知。

FLNavigatorMode:流程按鈕狀態,固定為Notify,只能執行刪除通知或往下通知的動作。

NavigatorMode:資料按鈕狀態,固定為Normal,代表不能新增/更改/刪除資料。

SendToKind:設定為Applicate代表將送回原來最初的申請者的對象。

WebFormName:Web表單名稱,在此我們一樣選擇WOrder.aspx這個表單。

 

7. 加入主頁面功能表:利用EEPManager,在Menu Utility中去設定一個”訂單申請”項目,並對應到

Orders.xoml,將Module Type設為”O”才能選擇這個Orders.xoml流程。

 
 

簽核實例操作
 

現在就開始實際操作,我們以WebClientMainFlow.aspx進入我們EEP2006 WF的主頁面中,所以,沒有Flow功能的主頁面就是WebClientMain.aspx,可以依User的情況來選擇進入的頁面。
 

1. 以004(Lily),角色為業務來登入到WebClientMainFlow中,點選功能表”訂單申請”會打開這個工作

    流程,如下圖,右方有此User的待辦與經辦事項,一開始當然是沒有資料,Mouse點選”訂單申

    請”這個Activity,會打開這個訂單申請的Web表單。
 


 

2. 在此Web表單中,新增一筆8萬元的訂單,並且存檔,會有一筆10650的訂單出現(自增值號碼),

    用”上呈”的Button來往下呈送,如下圖,可以填入呈送的訊息與是否為重要或緊急的訂單,按下

    確認後,流程引擎會自動啟動,並依流程往下送給了004的主管R02業務經理(003)。
 


 

3. 以003(SARA)業務經理login進來,在主頁面中,可以看到待辦事項中,會有10650這筆訂單,透過

    Open可以直接打開此單據,或是可以直接在這個待辦事項上按下審核也可以,如果003按下審核,

    因為訂單金額為80000,所以不會呈送到總經理那,直接到IfElseActivity中去判斷是否要進行信用審

    核,因為信用審核的判斷式為超過5萬,因此會送往R03行政經理,USER帳號為002(JIN)進行信用

    審核。
 

4. 同上,以002(JIN)登入後,同樣在待辦事項中直接去審核,審核頁面中可以透過”歷史簽核”來了

    解其他人的簽核意見與呈送者的說明。往下審核後,因為後面是通知的Activity,所以會告知本流

    程已完成,並透過通知的Activity,會讓004(Lily)收到一筆”審核通過”的通知待辦,如下圖:

 

 
 

退回與取回
 

在流程管理中,送出的單據遇到下一個流程Activity時,有兩種情況可以回到自己的手上,一就是被退回,另一個是自行取回,說明如下:

1. 退回的操作:退回是指進行到下一個Activity活動時,該簽核者認為該單據有疑問或不符合審核條
     件時,以退回的指令給上一個發送者或者申請者,可以在表單的FLNavigator中按
下”Return”
     Button或是直接在待辦事項中退回。如下圖,登入者是003(SARA)業務經理將10651訂單退回給申請
     的業務004(LILY),退回成功後,004(LILY)會收到一筆退回的待辦事項。


2. 經辦事項的操作:只要是該USER申請的單據,或是經手的單據,都會在經辦事項中可以追蹤與
     顯示,直到結案為止,當然經辦事項中是可以勾選”已結案”的CheckBox來顯示已經結案的經辦
     事項,方便你查詢歷史資料,在經辦中更可以用Open(左邊)的按鈕隨時顯示出原始表單的內容與簽
     辦意見等等,如下圖,當004(LILY)將單據送出後,在經辦事項中就會顯示出這筆經辦,並可以追
     蹤。

 

3. 經辦事項的取回:當送出者將表單送出後,有時會突然發現資料有誤,在後面的Activity活動對象
     尚未簽核前,是可以在經辦事項中以”Return”功能取回單據的,如上圖,004(LILY)已
成功送往
     003(SARA)業務經理,004可以從經辦事項中以”Return”(右邊)Button來取回,取回成功時系統會主
     動告知已取回,並且可以重新回到待辦事項中重新打開修正之。

 

 

結束語
 

通過這個簡單的訂單申請流程,想必你對EEP2006 WF有個初步的認識與體驗,主要是在表單的設計上採用最多人熟習的Table資料表設計概念,讓開發Web表單可以更容易與更迅速,而且整個流程的設計都已經幫你元件化了,可以在完全沒有設計程式之下,完成你要的電子化流程與簽核系統。更可以預見的是,在EEP2006 WF的幫助下,可讓工作流程與ERP/CRM/SCM/EIP等系統相互高度整合,也讓企業的BMP管理制度可以有效落實,進而提高企業管理效益,大幅提升企業競爭力。