NCV5-流程平臺技術紅皮書_第1頁
NCV5-流程平臺技術紅皮書_第2頁
NCV5-流程平臺技術紅皮書_第3頁
NCV5-流程平臺技術紅皮書_第4頁
NCV5-流程平臺技術紅皮書_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、流程平臺技術紅皮書NC-UAP 5.0用友NC-UAP2022-03-021第 頁目 錄第一章工作流與BPM11.信息系統(tǒng)的演變12.企業(yè)業(yè)務流程13.工作流24.BPM2第二章流程平臺31.單據元模型31.1單據類型41.2單據動作及腳本71.3單據函數91.4單據UI111.5單據項目111.6單據VO對照122.業(yè)務流平臺132.1業(yè)務類型142.2流程配置152.3單據VO交換193.審批流平臺213.1流程定義213.2工作項253.3流程結果與單據狀態(tài)263.4反向流轉283.5流程監(jiān)控293.6短信審批30第三章開發(fā)規(guī)范311.平臺緩存數據312.動作處理322.1UI端調用-P

2、fUtilClient342.2BS端調用382.3返回值393.動作腳本393.1執(zhí)行腳本編寫403.2返回值424.審批流平臺434.1審批狀態(tài)回寫與查詢434.2送審434.3審批454.4棄審484.5刪除504.6審批流相關接口505.業(yè)務流平臺565.1動作驅動565.2單據VO交換575.3單據UI菜單填充與響應585.4業(yè)務流相關接口61第四章開發(fā)流程67附錄681.NC5.0短信服務681.1應用模式681.2短信發(fā)送691.3短信接收70第 74 頁第一章 工作流與BPM1. 信息系統(tǒng)的演變從簡單的辦公信息系統(tǒng),到事務處理系統(tǒng),再到復雜的知識管理和決策支持系統(tǒng),我們可以看到

3、,越來越多的通用任務已被從應用程序中分離出來并放入分解的管理系統(tǒng)中。圖1說明了這種演進。圖 1通用功能分解1975-1985 分離的應用信息系統(tǒng)由被分解的應用組成,每個應用都有自己的數據庫和定義。1985-1995 數據庫管理將數據管理從應用程序中抽取出來。關系數據庫的出現。1995-2002 用戶界面管理將用戶界面從應用程序中抽取出來。人機工程。1998-2005 工作流管理將業(yè)務過程從應用程序中抽取出來??缙髽I(yè),跨系統(tǒng)。2. 企業(yè)業(yè)務流程企業(yè)的經營過程是指企業(yè)為了實現一定的經營目標,在組織機構和人員的參與下,利用企業(yè)資源(設備、計算機軟硬件等),按照預先確定的業(yè)務規(guī)則,在參與者之間進行文檔

4、、信息、任務的傳遞與處理。企業(yè)的經營管理也是遵循一定規(guī)律的,其業(yè)務也需要按照一定的業(yè)務規(guī)則運行。業(yè)務按照一定的業(yè)務規(guī)則運行或處理就形成了企業(yè)的業(yè)務流程。圖 2企業(yè)經營過程3. 工作流The automation of a business process, in whole or part, during which documents, information or tasks are passed from one participant to another for action, according to a set of procedural rules(WFMC).工作流是一個能夠

5、完全或部分自動執(zhí)行的業(yè)務過程,根據一系列過程規(guī)則,文檔、信息或任務能夠在不同參與者之間傳遞和處理(WFMC)。比如保險索賠、抵押申請、稅收申報、產品設計生產過程等。工作流管理系統(tǒng)(Workflow Management System,WFMS)的主要功能是通過計算機技術的支持去定義、執(zhí)行和管理工作流,協(xié)調工作流執(zhí)行過程中的任務(活動)以及群體成員之間的信息交互。強調的是業(yè)務過程的自動化。4. BPM業(yè)務過程管理(Business process management),非企業(yè)績效管理(Business Performance Management)。包括了過程建模、過程自動化、企業(yè)應用集成、業(yè)

6、務活動監(jiān)控與優(yōu)化的全生命周期。強調的是業(yè)務過程的分析與優(yōu)化。比較常用的分析項為:1 業(yè)務流程的瓶頸在哪?2 給定時間內有多少案例(Case,也可稱作實例)可被處理?3 改變案例數量后,需要增加多少資源?4 案例的平均完成時間?第二章 流程平臺NC流程平臺是對企業(yè)的流程進行建模的平臺。其工作流模型由四部分組成,分別是過程模型、組織模型、功能模型以及信息模型(工作流相關數據)。過程模型用來定義工作流的過程邏輯,包括組成工作流的所有活動以及活動之間的依賴關系。組織模型用來定義企業(yè)人員的組織結構,包括幾種不同形式的組織元素以及每種組織元素內部的遞階層次關系。功能模型說明企業(yè)中需要完成的工作或者任務是什

7、么,或者說功能模型說明了企業(yè)的目標是通過哪些具體的功能活動來實現的。它確定了企業(yè)業(yè)務功能的邏輯結構和相互關系。信息模型說明了企業(yè)處理的業(yè)務對象中所包含的信息以及業(yè)務對象間的關系。過程模型采取基于活動網絡圖的過程模型,與其他的過程模型(如事件驅動過程鏈EPC、Petri網、語義-行為模型等)比較,活動網絡圖具有直觀自然、可讀性好的特性。NC流程平臺包括業(yè)務流程和審批流程兩個部分。圖 3業(yè)務流程框架整個業(yè)務流程框架的核心是工作流引擎。它負責解釋執(zhí)行由業(yè)務流設計器和審批流設計器設計的流程定義。流程定義可以引用NC系統(tǒng)建立的功能模型、組織模型以及各種元數據。NC用戶可從工作列表中查看到工作流引擎分配給

8、他的工作項。通過單據動作(比如提交、審批、棄審、駁回等)來處理工作項,從而驅動流程流轉。工作流引擎在流轉過程中還可以調用各種自動應用,包括電子郵件、腳本以及Web服務等。業(yè)務流程框架還提供了管理監(jiān)控工具對運行中的流程實例進行狀態(tài)查詢和管理。對于流轉過程中涉及到的數據交換,工作流引擎將調用交換引擎根據規(guī)則進行數據映射。1. 單據元模型業(yè)務單據是描述企業(yè)業(yè)務信息的載體,是對業(yè)務數據的抽象。通過業(yè)務單據,可以清楚地反映企業(yè)的業(yè)務發(fā)生情況。企業(yè)中如請購單、采購訂單、報銷單、付款單等均為業(yè)務單據。在NC系統(tǒng)中,一張業(yè)務單據的實現包括許多內容,比如單據類型、單據VO、單據UI、單據動作等。我們把這些用于描

9、述某單據的信息統(tǒng)稱為單據元模型。其組成如圖4所示。圖 4單據元模型1.1 單據類型單據類型是對單據的分類。單據的元信息都是基于單據類型來定義。在定義單據類型時,單據類型必須屬于某個系統(tǒng)類型。單據類型的注冊信息比較多,由功能點客戶化-二次開發(fā)工具-單據管理-單據類型管理維護,如圖5所示,一般由各個產品組預置。圖 5單據類型管理項目說明: 類型代碼:手工輸入,最大長度為4個字符,可以輸入字母和數字,不允許重復。 類型名稱:業(yè)務單據名稱,手工輸入,不允許重復。 單據大類:表示單據類別(應收應付101-),用于區(qū)分單據類型的主子關系(參見1.1.2節(jié))。 單據對應類:標識單據類型的關聯(lián)UI,一般為關聯(lián)

10、的審批維護類功能節(jié)點編碼。 主表參照的固定條件語句:被其它單據參照時自己填寫的固定的SQL條件語句。 參照查詢對應的DMO類:用于查詢單據VO數據的業(yè)務邏輯類。必須實現接口nc.bs.pub.pf.IQueryData以及nc.bs.pub.pf.IQueryData2(參見第三章5.4.6節(jié))。 審批流檢查類:通過編寫審批流檢查類,并在該類中實現審批流相關接口,來達到使用審批流管理業(yè)務單據以及控制審批流行為的目的(參見第三章)。實現IcheckState,IbackCheckState(可不實現)的接口的DMO類文件 會計平臺類:財務會計平臺所需的類。實現IaccountProcMsg IA

11、ccountRetVoucher的接口的DMO類文件 是否項目核算:NC210以后不再使用。 是否為根節(jié)點:針對單據大類,用于實現單據主子關系。 是否發(fā)送會計平臺:用于財務會計平臺。如果該單據不直接傳送財務會計平臺,則不選擇 節(jié)點編號:標識單據類型的關聯(lián)UI,一般為關聯(lián)的制單功能節(jié)點編碼。 自定義1(def1):流程配置的單據業(yè)務關聯(lián)(業(yè)務流程)更新后的處理類。 自定義2(def2):存取會計平臺的產品組自定義查詢。 自定義3(def3):動作執(zhí)行前的UI端處理類。如果單據類型關聯(lián)了多個功能節(jié)點,該類還需要實現節(jié)點查找接口(參見第三章4.6節(jié))。對于流程平臺產生的工作項,5.0統(tǒng)一使用打開功能

12、節(jié)點的方式來處理。這需要單據類型的節(jié)點注冊信息有所改變: 字段說明示例bd_billtype.nodecode制單節(jié)點編碼110180bd_billtype.classname審批或維護節(jié)點編碼110190 需要走審批流110190 不需要走審批流110190110190 不控制該單據類型關聯(lián)的節(jié)點打開權限所有功能節(jié)點UI類必須實現UI關聯(lián)接口(參見4.6.4節(jié))。1.1.1系統(tǒng)類型對業(yè)務系統(tǒng)的分類。5.0版本中,每個系統(tǒng)必須屬于某個模塊。由功能點客戶化-二次開發(fā)工具-會計平臺-系統(tǒng)類型定義維護,如圖6所示。圖 6系統(tǒng)類型定義項目說明: 系統(tǒng)類型編碼:自定義輸入,禁止重復。 系統(tǒng)類型名稱:自定

13、義輸入,禁止重復。 是否專項管理:勾選此項,表示此業(yè)務系統(tǒng)將向管理會計平臺傳送數據。 是否發(fā)送到會計平臺:勾選此項,表示此業(yè)務系統(tǒng)將向財務會計平臺傳送數據,在財務會計平臺的憑證模板節(jié)點,可以對此業(yè)務系統(tǒng)的單據進行操作。 系統(tǒng)使用的業(yè)務類型:在進行憑證模板或成本單據模板定義時,該系統(tǒng)的業(yè)務單據使用的業(yè)務類型檔案。 模塊名:標識該系統(tǒng)所屬的產品模塊。對應于NC_HOME/modules/下的目錄名。 相關節(jié)點編碼:標識哪些功能節(jié)點號與產品模塊的關聯(lián)關系。一般用于參數設置中。1.1.2主子關系單據類型之間可存在主子關系,這通過isroot和billstyle兩個屬性來判定。圖 7單據類型主子關系如圖

14、7所示,D1的父單據類型為F1;D2的父單據類型為F2。1.2 單據動作及腳本是對單據業(yè)務處理行為的抽象,具有可定制的動作腳本。業(yè)務單據正是通過單據動作與流程平臺進行交互的,從而驅動流程的流轉??蓪趩螕I上的某個菜單。由功能點客戶化-二次開發(fā)工具-單據管理-單據動作管理維護,如圖8所示。圖 8單據動作管理項目說明: 動作選擇:提供四種動作各供選擇:保存、審核、推式動作、其它。保存、審核是單據的基本動作,動作代碼有嚴格規(guī)定;推式動作表示該動作可被其他單據推式驅動。 動作編碼:當前單據動作的編碼。注意,當動作選擇為“保存”時,動作編碼必須為以“SAVE”結尾;而當動作選擇為“審核”時,動作編

15、碼必須為以“APPROVE”開頭。長度限制為20個英文字符。 動作名稱:當前單據動作的顯示名稱 動作執(zhí)行前提示:如此處輸入文字,則在該動作被觸發(fā)時,會彈出一個帶有提示性文字的對話框,如:是否保存? 動作控制:提供三個選項:動作可配置、進行驅動配置、進行約束檢查。勾選“動作可配置”,表示該動作可在流程配置中進行配置;勾選“進行驅動配置”,則該動作在流程配置中可以對其他單據動作進行推式操作,驅動其他單據;勾選“進行約束檢查”,則此動作要根據業(yè)務流程的配置在執(zhí)行前進行條件檢驗,滿足條件動作才執(zhí)行,否則就不執(zhí)行。圖 9單據動作執(zhí)行腳本單據動作的處理統(tǒng)一由平臺API來調用。詳見第三章第3節(jié)。1.2.1單

16、據動作組對單據動作的分組。由功能點客戶化-二次開發(fā)工具-單據管理-單據動作組管理維護,如圖10所示。圖 10單據動作組管理1.3 單據函數服務于單據的業(yè)務功能的抽取,是進行業(yè)務邏輯處理的組件??捎糜趧幼髂_本和條件判定。由功能點客戶化-二次開發(fā)工具-流程配置-數據交換管理維護,如圖11所示。圖 11單據函數(組件)管理項目說明: 函數說明:函數所實現的功能的說明性文字,建議盡量說明清晰,以便于系統(tǒng)實施。如果以“”括起來,表示自定義函數。 返回類型:該功能函數返回數據的類型。 函數類名稱:功能函數所屬的全路徑類名。 函數方法名稱:該函數在類中所對應的方法名稱。 函數參數:該函數正確調用所需的參數。

17、參數的格式見下。 是否組件:標識該方法是否為組件。單據組件一般是沒有返回值的一段業(yè)務處理邏輯,它不可應用于審批條件、動作約束、工作項配置中。1.3.1參數格式函數參數以逗號“,”隔開,每個參數具有特定的格式。參數分為運行參數、屬性參數和VO參數三種。格式示例:nc.vo.pub.AggregatedValueObject:01nc.vo.pub.AggregatedValueObject:01,OBJuser:OBJECTnc.vo.po.OrderVO:21&sAction:STRING,nc.vo.pub.AggregatedValueObject:01注意:VO參數和屬性參數的實際值由工

18、作流上下文在運行時賦予。運行參數可在動作腳本中賦值。1.3.2返回值函數方法返回值支持的類型有:UFBooleanStringIntegerUFDouble1.4 單據UI單據的界面展現模型,包括四大模板以及UI工廠等。每個單據還與一個維護它的功能節(jié)點對應,這個信息需要注冊到單據類型中(參見1.1節(jié))。1.5 單據項目是對單據業(yè)務數據的描述。一般與單據的VO模型對應。由功能點客戶化-二次開發(fā)工具-單據管理-單據項目管理維護,如圖12所示。圖 12單據項目管理項目說明: 屬性名:單據VO模型中的屬性名稱。 多語資源ID:屬性的多語ID號。 專項類型:屬性的數據類型。 默認名稱:屬性的中文名稱。1

19、.6 單據VO對照描述了流程平臺所需的信息(比如制單人、審批人、單據ID等)在單據VO模型上的對應關系。由功能點客戶化-二次開發(fā)工具-單據管理-單據VO對照管理維護,如圖6所示。圖 13單據VO對照項目說明: 主子VO類名稱:單據VO模型中的主子VO類名稱。 單據VO類名稱:單據聚合VO類名稱。 主表的關鍵字段:單據物理模型中主表的主鍵字段。 子表編碼:? 審批人:單據VO模型中表示審批人的屬性名稱。 制單人:單據VO模型中表示制單人的屬性名稱。 單據ID:單據VO模型中表示單據ID的屬性名稱。 業(yè)務類型:單據VO模型中表示業(yè)務類型的屬性名稱。 對于數據庫表:注冊單據主子物理表名稱。 單據編號

20、:單據VO模型中表示單據號的屬性名稱。2. 業(yè)務流平臺NC業(yè)務流平臺進行了簡化,其設計思想是基于以下認識:業(yè)務流程是由單據組成的,而單據是由動作驅動的,動作又是由組件組成的;單據、動作以及組件可以由業(yè)務系統(tǒng)開發(fā)實現。NC業(yè)務流提供一種平臺機制,在此可以根據用戶的實際業(yè)務重新組織這些單據、動作及組件,包括每種單據的來源單據是什么、又驅動生成哪些單據、完成什么動作、動作生效的約束條件以及動作生效后將配置哪些組件等,以此更好滿足企業(yè)個性化的需求。圖 14普通采購流程2.1 業(yè)務類型對業(yè)務流程的分類。各個公司可定義自己的業(yè)務流程,5.0支持集團業(yè)務類型,即在集團定義業(yè)務類型,然后各個子公司使用。比如集

21、中采購流程:請購單-采購訂單-到貨單-入庫單-采購發(fā)票-應付單。由功能點客戶化-流程配置-業(yè)務類型管理維護,如圖15所示。圖 15業(yè)務類型管理2.2 流程配置一個業(yè)務流程由相互關聯(lián)的多個單據組成,通過定義單據間來源與動作驅動關系來定義業(yè)務流程。圖 16流程配置項目說明: 單據代碼:該字段為參照選擇,參照內容為NC安裝過的功能模塊的所有單據類型。每個業(yè)務類型每張單據只能選擇一次。 單據名稱:顯示選擇的單據代碼的名稱,不能編輯,選擇單據代碼后自動帶入 參照單據:勾選此項,表示該單據的業(yè)務數據可以參照其他單據(來源單據)的數據生成(將進行單據VO交換)。勾選此項,在流程配置中才可配置該單據的來源單據

22、,否則不可配置。 自制單據:勾選此項,表示該單據的業(yè)務數據可以手工輸入。 權限控制:設置每個單據有權限的參與者。在單據UI界面,業(yè)務類型下拉菜單中,只有有權限的用戶才可看到該業(yè)務類型(參見第三章5.3.1節(jié))。同時還控制了下游消息的接收者范圍。 下游消息:上游單據審批通過后,會給下游單據的參與者發(fā)送拉式消息。上游單據的推式動作執(zhí)行完后會驅動下游單據的動作,并給下游單據的參與者發(fā)送推式消息。流程配置由5個向導工具組成,分別闡述如下:2.2.1單據權限配置5.0新增的配置,配置業(yè)務流程中每個單據有權限的參與者。用于業(yè)務類型的權限控制,以及下游消息的接收者范圍。圖 17單據權限配置2.2.2單據來源

23、配置是對當前單據類型的數據來源單據進行定義的界面。被定義為當前單據來源單據的業(yè)務單據,可以在業(yè)務流程中為當前單據提供業(yè)務數據(使用單據VO交換),以保持業(yè)務數據的一致性。圖 18單據來源配置2.2.3動作約束配置配置業(yè)務單據的單據動作(可能為單據界面上的某些功能按鈕)在發(fā)生前需要進行的條件檢查。若發(fā)生的業(yè)務滿足定義的條件,則該單據動作將被執(zhí)行,否則不允許執(zhí)行。流程配置通過本步驟,即可實現對當前業(yè)務環(huán)節(jié)的事前控制。圖 19動作約束配置2.2.4動作事件控制配置為業(yè)務流程配置個性化動作腳本。在這里,用戶可以針對不同業(yè)務類型對公共的單據動作執(zhí)行腳本(參見第三章第3節(jié))進行定制。使單據動作按照自己定義

24、的規(guī)則來執(zhí)行,以此來完善企業(yè)的業(yè)務流程,并對當前業(yè)務環(huán)節(jié)實現事中控制。圖 20動作腳本定制2.2.5動作驅動配置配置單據之間的動作驅動關系。具體參見第三章5.1節(jié)。左樹列示了當前單據在單據動作管理中被定義為“進行驅動配置”的單據動作(參見1.2節(jié))。圖 21動作驅動配置項目說明: 目的單據:在當前單據動作完成時,將要進行動作處理的單據。 操作員相關:選擇與操作員或角色有關,則該動作僅在所選擇的操作員或角色執(zhí)行時,才會驅動目的單據的動作。 動作:參照選擇,選擇目的單據被驅動的動作,該類動作在單據動作管理中被定義為“推式動作”(參見1.2節(jié))。2.3 單據VO交換單據類型之間存在相互轉換的需求,平

25、臺提供了定義單據VO模型間的相互轉換規(guī)則的機制。單據之間的上下游關系保存在表pub_billtobillrefer中,轉換規(guī)則作為class文件保存,比如“nc.ui.pf.changedir. CHG21TO30”、“nc.bs.pf.changedir.CHG21TO30”等。單據VO交換可發(fā)生在前后或后臺,并在交換后可進行特殊的業(yè)務處理。詳細見第三章5.2節(jié)。圖 22 單據交換信息項目說明: 被參照單據類型:來源單據類型。 用于顯示來源單據的UI類:參照來源單據時,使用的來源單據顯示UI。默認為“nc.ui.pub.pf.BillSourceDLG”。 用于查詢來源單據的模板ID或UI類

26、:查詢來源單據需要使用的查詢模板ID或UI。格式有“”、“SO30TO31000000000000”和NULL(默認查詢模板)。 用于查詢來源單據的節(jié)點標識:被參照的來源單據的Nodekey,用于選擇查詢模板。單據間的交換規(guī)則支持簡單屬性和公式定義,以及額外的交換后業(yè)務處理。圖 23單據交換規(guī)則3. 審批流平臺審批流平臺為單據的審批處理提供平臺支持?;谌蝿镇寗拥膱?zhí)行引擎使得流程流轉與用戶交互分離開來,具有更強的健壯性。支持分支/匯總(Split/ Join)、優(yōu)先級(Priority)、子流程(Subflow)、可指派、搶占/會簽、消息配置、代理人、棄審等流程特性。3.1 流程定義NC5.0

27、的審批流定義模型遵循WfMC的XPDL1.0過程定義規(guī)范,具有嚴格的語義和豐富的描述能力。圖 24審批流定義-瀏覽圖 25審批流定義-設計審批流定義按照單據類型(+業(yè)務類型)進行了分類。用戶可以基于單據類型定義審批流,也可以基于單據類型+業(yè)務類型(如果配置了業(yè)務流程)來定義審批流。一個單據類型(+業(yè)務類型)下可以定義多個審批流,這里可以把單據類型(+業(yè)務類型)理解為過程包的概念。3.1.1流程模型過程(Process)由許多被執(zhí)行的活動和一系列決定活動執(zhí)行次序的轉移構成?;顒樱ˋctivity)審批流程中的一個個步驟統(tǒng)稱為活動(或任務),包括制單活動、審批活動、虛活動、子流程。第一個拖放到審批

28、流設計器中的參與者所屬的活動為制單活動。虛活動主要用于對分支/匯總進行建模。子流程可實施流程重用。參與者(Participant)活動的一個屬性,即活動的執(zhí)行者,是對系統(tǒng)中組織模型的引用。目前支持操作員、角色和動態(tài)組織三種類型的參與者(HR崗位就是一種動態(tài)組織實現,具體擴展機制可參考附錄)。第一個拖放到審批流設計器中的組織元素為制單活動的參與者。在設計器中,活動和參與者由同一個圖元來展現。轉移(Transition)活動間的流轉,是兩個活動間的有向連接。每個轉移都具有轉移條件(Condition),只有滿足條件的轉移才可流轉。轉移條件表達式除了審批結果表達式、單據函數表達式,5.0新增加了單據

29、項目表達式。每個轉移還具有優(yōu)先級(Priority),優(yōu)先級高的轉移分支將被優(yōu)先選擇。分支/匯總(Split/Join)活動具有前驅條件(Join)和后繼條件(Split)兩個屬性,可通過Split/Join-AND/XOR屬性組合為過程的選擇、并行結構進行建模。加上順序和循環(huán),這四個基本結構就可描述大多數過程結構。同時,工作流引擎還支持兩種反向流轉模式:駁回和棄審(參見3.4節(jié))。搶占和會簽審批活動的一個屬性。會簽:只有審批活動的參與者中所有用戶完成審批后,該審批活動才能結束。搶占:只要審批活動的參與者中任何一人完成審批后,該審批活動即結束??芍概蓪徟顒拥囊粋€屬性。如果審批活動定義了可指派

30、屬性,則該審批活動的實際執(zhí)行者需要從其參與者中手工選擇。指派的分支優(yōu)先被選擇。流程限定審批活動的一個屬性。用于設定前后兩個活動的參與者之間的關系。支持“同公司”和“同部門”兩種類型。只可為參與者為角色和動態(tài)組織的審批活動設置流程限定屬性。代理人(Agent)審批活動的一個屬性。制單活動不可設置代理人;只可為參與者為操作員類型的審批活動設置多級代理人;代理人只可為操作員。消息配置(Message Config)審批活動的一個屬性。可為每個審批活動配置額外的消息通知機制。即在滿足觸發(fā)條件時,以消息、短信、郵件方式通知相關人員。可以為每個審批活動配置額外的消息發(fā)送機制。對于制單活動,發(fā)送條件必須為“

31、無條件”。對于審批活動,發(fā)送條件可為“無條件”、“審核通過”和“審核不通過”三種(注:對于審批活動,“無條件”即該審批活動完成之后就發(fā)送)。在消息內容中我們可以使用宏表達式來獲取一些業(yè)務相關數據。目前可從系統(tǒng)獲取的宏對象變量僅有:operater=當前登錄操作員PKvo=當前操作的單據VOvos=當前操作的單據VO數組paravo=當前單據的審批流參數VO 參數VO可直接訪問的變量列表。這樣,在我們的宏表達式中可以直接引用這些對象變量,并調用這些對象的方法(注:完全支持Java語法)。比如:宏表達式含義%paravo.m_billNo%當前單據號%vo.getParentVO().getAtt

32、ributeValue(“dwbm”)%當前單據VO中的某數據%paravo.m_workFlow.getCheckNote()%當前審批步驟的批語3.1.2增刪改審批流程是基于單據類型(+業(yè)務類型)來定義的,由各個公司各自定義。選中某個單據類型(+業(yè)務類型),就可為其新增一個審批流程。一個單據類型(+業(yè)務類型)下不能存在兩個同制單人的審批流程。如果某流程定義已經擁有了流程實例,則不允許刪除。如果某流程定義已經擁有了流程實例,修改該定義后保存時會重新產生一個流程定義。原有的流程定義處于無效狀態(tài),不可再次編輯。3.1.3導入/導出在審批流定義-瀏覽界面,選中某個流程,可導出為本地XPDL文本文件

33、。1 不導出包定義。2 一次只能導出一個流程。從本地XPDL文本文件導入流程定義到當前單據類型包下:1 如果包定義不存在,則先新建包定義保存,再保存導入的流程定義。2 在導入含子流程的XPDL時,提示“導入的XPDL文件中含有對N個子流程的引用,導入后需要修改流程以重新建立引用關系,是否繼續(xù)?”。3 不能導入同制單人的流程定義。3.1.4流程定義的選擇對于某個單據類型(+業(yè)務類型),根據制單人的不同,可定義多個審批流程定義。由于制單人類型支持操作員、角色和動態(tài)組織三類,一個操作員制單后,究竟走哪條流程定義,系統(tǒng)按照如下順序優(yōu)先選擇流程定義:1 制單人為操作員類型的流程;2 制單人為角色類型的流

34、程若制單人委派了多個角色,則只找第一個角色定義的流程;3 制單人為動態(tài)組織類型的流程。3.2 工作項工作項是是工作流引擎在流程流轉過程中,對活動的參與者根據基本組織單元(操作員)進行任務分配的產物。3.2.1分配策略工作流引擎將產生的工作項直接推給用戶,同時用戶登錄后可選擇優(yōu)先執(zhí)行哪些任務。參與者出差后,審批工作項將會分配到代理人。動態(tài)代理人設置。圖 26用戶出差和動態(tài)代理人管理3.2.2標題定制工作項的標題可由從單據元模型中獲取到的信息組成,以便更人性化的顯示在待辦事務中。圖 27工作項內容定制3.2.3關聯(lián)UI5.0版本中,工作項與UI的關聯(lián)全部采取功能節(jié)點方式。風格一致,業(yè)務處理更加方便

35、。工作項與哪個UI關聯(lián)是由單據類型決定的(參見1.1節(jié))。同時關聯(lián)的UI必須實現5.0新增的UI關聯(lián)接口(參見第三章4.6.4節(jié))。3.3 流程結果與單據狀態(tài)對于審批流程來說,流程實例正常結束后,必然會有一個審批結果。而單據的審批狀態(tài)與流程結果密切相關。工作項的審批結果即登錄到NC系統(tǒng)的操作員對流程平臺分配給他的工作項的審批處理意見。包括“批準”、“不批準”、“駁回到制單人”三種。活動的審批結果對于角色/崗位類的參與者執(zhí)行的審批活動,如果是會簽屬性,則只有所有會簽操作員都審批通過,該活動結果才為審批通過,任何一個會簽人審批不通過,該活動結果就為審批不通過;如果是搶占屬性,則活動結果為搶占人的審

36、批結果。流程的審批結果恒等于最后一個活動(即流轉到結束節(jié)點的活動)的審批結果。恒等于最后一個審批人的審批結果。一旦單據送審到審批流中,單據便處于某個審批狀態(tài)。在審批流內部,單據的內部審批狀態(tài)有5種:表 1單據審批狀態(tài)常量取值含義IPfRetBackCheckInfo.NOSTATE-1自由態(tài)IPfRetCheckInfo.COMMIT3提交態(tài)IPfRetCheckInfo.GOINGON2審批進行中IPfRetCheckInfo.PASSING1審批通過IPfRetCheckInfo.NOPASS0審批不通過業(yè)務單據根據自己的業(yè)務需求也可定義自己的單據業(yè)務狀態(tài),但不可與上述5種狀態(tài)相沖突。比如

37、UI模式化開發(fā)包中就定義了更多的單據狀態(tài)。表 2單據業(yè)務狀態(tài)常量取值含義IBillStatus.FREE8自由態(tài)IBillStatus.COMMIT3提交態(tài)IBillStatus.CHECKGOING2審批進行中IBillStatus.CHECKPASS1審批通過IBillStatus.NOPASS0審批不通過IBillStatus.DELETE4作廢狀態(tài)IBillStatus.CX5沖銷狀態(tài)IBillStatus.ENDED6終止(結算)態(tài)IBillStatus.FREEZE7凍結狀態(tài)自由態(tài)即單據尚在編寫中(已保存或尚未保存)并未提交到審批流的狀態(tài)。提交態(tài)通過執(zhí)行單據動作SAVE或EDIT,

38、將單據送審后的狀態(tài)。提交態(tài)是審批流內部的一個狀態(tài),它的回寫并不通過審批流檢查類進行。只能由業(yè)務組通過SAVE動作腳本自己對單據狀態(tài)進行設置。所以有的業(yè)務組的單據并沒有提交態(tài)的概念。審批進行中流程實例正處于運行中的狀態(tài)。審批完成如果流程實例正常運行完成,該單據的審批過程即完成。審批流程結束后具有最終審批結果:通過或不通過,這也是單據的最終審批結果。審批狀態(tài)轉換圖如下所示:狀態(tài)轉換觸發(fā)條件自由態(tài)-提交態(tài)制單后通過執(zhí)行單據動作SAVE/EDIT將單據送審。提交態(tài)-進行中送審后只要有人已審核,即為進行中進行中-完成態(tài)流程實例按照定義一步步審批,直至正常流轉結束。完成態(tài)-自由態(tài)一棄到底自由態(tài)-完成態(tài)提交

39、即審批通過完成態(tài)-進行中逐級棄審提交態(tài)-自由態(tài)駁回到制單人進行中-自由態(tài)1 駁回到制單人;2 流程流轉到制單活動;3 第一個審批人棄審在各個狀態(tài)下對單據的業(yè)務處理(比如是否可刪除、是否可編輯等)由業(yè)務組自己控制。流程正常結束時,單據如果審批通過,會給制單人發(fā)送“審批通過”的通知消息;單據如果審批不通過,則給參與流程的所有人員發(fā)送“審批不通過”的通知消息。3.4 反向流轉工作流引擎支持兩種反向流轉模式:駁回和棄審。駁回是審批人直接將單據退回到制單人,導致單據處于自由態(tài),但流程實例仍運行中。制單人收到駁回工作項,雙擊可打開單據UI。制單人修單后提交,不會新啟實例,但會重新產生工作項;若是其他人修單

40、(更改了制單人),如果找到審批流定義,則新啟實例,刪除舊實例。如果找不到審批流定義,則刪除舊實例,走直批模式。棄審是審批人審批完成后,再撤銷自己的操作。有兩種棄審模式:逐級棄審和一棄到底,這由單據VO是否實現了逐級棄審接口(參見第三章4.6.3節(jié))來決定。棄審是通過調用“UNAPPROVE”動作來實現的,具有特殊的動作腳本(參見第三章4.4節(jié))。第一個審批人棄審會將單據置為自由態(tài)。修單后再提交,會新啟實例,舊實例被刪除。必須在單據審批完成后才可一棄到底,一棄到底將單據置為自由態(tài),但不會向制單人發(fā)送通知消息,修單后再提交不會新啟實例。3.5 流程監(jiān)控對于系統(tǒng)中運行的審批流程實例,可監(jiān)控它們現在所

41、處的狀態(tài),并強制終止。同時還可查詢到某單據的審批狀態(tài)。當前操作員可查詢的審批記錄受審批查詢權限(由審批流用戶管理功能節(jié)點維護)的限制。圖 28單據審批情況查詢圖 29流程圖與審批情況3.6 短信審批NC系統(tǒng)產生的各種消息可通過短消息方式發(fā)送到手機用戶,并且用戶可通過回復的方式直接對單據進行審批,以及其他的業(yè)務處理。審批流運轉過程中會為流程中的不同用戶產生工作項。這些任務項可以通過短信方式發(fā)送給對應用戶(可配置是否需要這樣發(fā)送)。用戶可回復類似“-p ? N 不同意,金額過大?!被颉癗 不同意,金額過大。”的審批指令,NC系統(tǒng)會調用審批插件進行后臺的審批處理。注意,由于后臺審批沒有前臺交互,所以

42、不支持“指派”特性。具體的實現細節(jié)可參考附錄。4. 消息中心消息中心是用戶與流程平臺、預警平臺進行交互的主界面,也是用戶開展工作的基礎。V5消息中心的需求來源于易用性小組以及NC產品自身的發(fā)展。4.1 展現整個消息中心分為上中下三欄,每欄都可最大化。分別是公告欄、待辦事務欄、預警消息欄。圖 30消息中心所有欄目均使用表格UITable展現。除了UITable內置的定位功能和雙擊表頭排序功能,還提供表格樣式設置功能。包括:1. 設置列寬度、列順序;2. 設置顯示隱藏列;3. 設置表格行列分割線的隱藏;4. 設置表頭的隱藏;5. 設置三欄的區(qū)域分配比例。圖 31設置表格樣式圖 32設置消息刷新間隔

43、和欄目大小分配比例消息中心的三個欄目還提供類似查詢模板的查詢過濾功能(過濾器,或叫篩選器)。比如:1. 按照優(yōu)先級過濾;2. 按照消息狀態(tài)過濾;3. 按照主題模糊匹配;4. 按照發(fā)送人過濾;5. 按照發(fā)送日期或處理日期過濾。注意:這里的過濾屬于前臺過濾功能,即只對當前客戶端中已有的消息過濾。圖 33消息篩選過濾界面這些表格樣式和過濾器保存在每個客戶端的用戶緩存中,以維持多次登錄的一致性。4.2 消息類型1. 公告消息可由任何人看到的消息,分為集團所有用戶可見和公司所有用戶可見兩種。顯示在公告欄。2. P2P對發(fā)消息某人向另外一人直接發(fā)送的消息。顯示在公告欄。3. 審批流工作項審批流平臺產生的需

44、要業(yè)務處理的工作項。同時包括審批通過、不通過、駁回后給制單人發(fā)送的消息。顯示在待辦事務欄。4. 業(yè)務流工作項業(yè)務流平臺產生的需要業(yè)務處理的推拉式消息。顯示在待辦事務欄。5. 通知消息不需要業(yè)務處理的普通消息。審批流消息配置產生的消息以及業(yè)務代碼產生的一些消息。顯示在待辦事務欄。6. 預警消息預警平臺產生的預警消息。顯示在預警消息欄。第三章 開發(fā)規(guī)范1. 平臺緩存數據流程平臺在前后臺對一些頻繁訪問且不經常更新的數據都有緩存。詳細可參考PfDataCache和PfUIDataCache類的Javadoc文檔。前臺緩存:基本檔案表bd_bdinfo的緩存,獲取方法:/*返回基本檔案VO*/Based

45、ocVO nc.ui.pf.pub.PfUIDataCache.getBdinfo( String strPk) /主鍵PK單據類型對照信息表pub_billtobillrefer的緩存,獲取方法:/*返回單據類型相互參照VO*/BilltobillreferVO nc.ui.pf.pub.PfUIDataCache.getBillInfo( String currentBillType, /目的單據類型PK String billType) /源單據類型PK單據VO對照表pub_votable的緩存,獲取方法:/*返回該單據類型主表的PK字段名*/String nc.ui.pf.pub.Pf

46、UIDataCache.getBillPK( String billType) /單據類型PK單據類型表bd_billtype的緩存,獲取方法:/*返回單據類型VO*/BilltypeVO nc.ui.pf.pub.PfUIDataCache.getBillType( String billType) /單據類型PK幣種信息表bd_currtype的緩存,獲取方法:/*返回幣種VO*/CurrtypeVO nc.ui.pf.pub.PfUIDataCache.getCurrType( String strPk) /幣種的PK后臺緩存:單據類型參照信息表pub_billtobillrefer的緩

47、存,獲取方法:/*返回單據類型相互參照VO*/BilltobillreferVO nc.bs.pf.pub.PfDataCache.getBilltoBillRefer( String billType, /目的單據類型PK String sourceBillType) /源單據類型PK單據VO對照表pub_votable的緩存,獲取方法:/*返回單據類型對照VO*/VotableVO nc.bs.pf.pub.PfDataCache.getBillTypeToVO( String pk_billType, /單據類型PK boolean isMain, /是否為主表VO String ite

48、mCode) /廢棄參數單據類型表bd_billtype的緩存,獲取方法:/*返回單據類型VO*/BilltypeVO nc.bs.pf.pub.PfDataCache.getBillTypeInfo(String dataSource, /數據源名稱String billType) /單據類型PK2. 動作處理動作處理時序圖1:圖 34非審批類動作處理動作處理時序圖2:圖 35審批類動作處理2.1 UI端調用-PfUtilClient1 單據動作處理(非APPROVE)Object nc.ui.pub.pf.PfUtilCcessAction(Container paren

49、t, String actionName, String billType, String currentDate, AggregatedValueObject vo, Object userObj, String strBeforeUIClass, AggregatedValueObject checkVo ) throws Exception功能:1 判斷是否進行動作前提示2 動作執(zhí)行前的事前處理 3 如果是新增單據后保存(動作為SAVE),或修改單據后保存(動作為SAVE或EDIT),則可能需要指派信息 4 后臺執(zhí)行動作處理- PfUtilBO.processAction()5 如果動作

50、執(zhí)行的返回值為IProcActionRetObject,則進行事后前臺處理 6 如果上述過程發(fā)生異常,且異常為IPfRetException,則判斷異常是否需要進行業(yè)務處理后繼續(xù)執(zhí)行事后處理 7 判斷返回對象是否為PfUtilActionVO,然后前臺顯示參數說明:參數名含義及取值parent父UI容器actionName動作編碼,比如“SAVE”、“EDIT”billType單據類型PK,比如“D2”currentDate處理時間vo單據聚合VOuserObj用戶自定義對象strBeforeUIClassUI端數據校驗類checkVo待校驗聚合VO,如果為null,則checkVo=vo2

51、單據動作處理,但不啟動審批流Object nc.ui.pub.pf.PfUtilClient. processActionNoSendMessage (Container parent, String actionName, String billType, String currentDate, AggregatedValueObject vo, Object userObj, String strBeforeUIClass, AggregatedValueObject checkVo ) throws Exception功能:1 判斷是否進行動作前提示2 動作執(zhí)行前的事前處理 3 后臺執(zhí)行

52、動作處理-PfUtilBO.processAction()4 如果動作執(zhí)行的返回值為IProcActionRetObject,則進行事后前臺處理 5 如果上述過程發(fā)生異常,且異常為IPfRetException,則判斷異常是否需要進行業(yè)務處理后繼續(xù)執(zhí)行事后處理 6 判斷返回對象是否為PfUtilActionVO,然后前臺顯示參數說明:參數名含義及取值parent父UI容器actionName動作編碼,比如“SAVE”、“EDIT”。但不可為“APPROVE”billType單據類型PK,比如“D2”currentDate處理時間vo單據聚合VOuserObj用戶自定義對象strBeforeUIClassUI端數據校驗類checkVo待校驗聚合VO,如果為null,則checkVo=vo3 單據動作處理(APPROVE)Object nc.ui.pub.pf.PfUtilCcessActionFlow(Container parent, String actionName, String billType, String currentDate, AggregatedValueObject vo, Object userObj, String strBeforeUIClass) throws Exception功能:1 判斷是否進行動作前提示 2 動作執(zhí)行前的事前

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論