版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、流程平臺(tái)技術(shù)紅皮書(shū)NC-UAP 5.0用友NC-UAP2022-03-021第 頁(yè)目 錄第一章工作流與BPM11.信息系統(tǒng)的演變12.企業(yè)業(yè)務(wù)流程13.工作流24.BPM2第二章流程平臺(tái)31.單據(jù)元模型31.1單據(jù)類型41.2單據(jù)動(dòng)作及腳本71.3單據(jù)函數(shù)91.4單據(jù)UI111.5單據(jù)項(xiàng)目111.6單據(jù)VO對(duì)照122.業(yè)務(wù)流平臺(tái)132.1業(yè)務(wù)類型142.2流程配置152.3單據(jù)VO交換193.審批流平臺(tái)213.1流程定義213.2工作項(xiàng)253.3流程結(jié)果與單據(jù)狀態(tài)263.4反向流轉(zhuǎn)283.5流程監(jiān)控293.6短信審批30第三章開(kāi)發(fā)規(guī)范311.平臺(tái)緩存數(shù)據(jù)312.動(dòng)作處理322.1UI端調(diào)用-P
2、fUtilClient342.2BS端調(diào)用382.3返回值393.動(dòng)作腳本393.1執(zhí)行腳本編寫(xiě)403.2返回值424.審批流平臺(tái)434.1審批狀態(tài)回寫(xiě)與查詢434.2送審434.3審批454.4棄審484.5刪除504.6審批流相關(guān)接口505.業(yè)務(wù)流平臺(tái)565.1動(dòng)作驅(qū)動(dòng)565.2單據(jù)VO交換575.3單據(jù)UI菜單填充與響應(yīng)585.4業(yè)務(wù)流相關(guān)接口61第四章開(kāi)發(fā)流程67附錄681.NC5.0短信服務(wù)681.1應(yīng)用模式681.2短信發(fā)送691.3短信接收70第 74 頁(yè)第一章 工作流與BPM1. 信息系統(tǒng)的演變從簡(jiǎn)單的辦公信息系統(tǒng),到事務(wù)處理系統(tǒng),再到復(fù)雜的知識(shí)管理和決策支持系統(tǒng),我們可以看到
3、,越來(lái)越多的通用任務(wù)已被從應(yīng)用程序中分離出來(lái)并放入分解的管理系統(tǒng)中。圖1說(shuō)明了這種演進(jìn)。圖 1通用功能分解1975-1985 分離的應(yīng)用信息系統(tǒng)由被分解的應(yīng)用組成,每個(gè)應(yīng)用都有自己的數(shù)據(jù)庫(kù)和定義。1985-1995 數(shù)據(jù)庫(kù)管理將數(shù)據(jù)管理從應(yīng)用程序中抽取出來(lái)。關(guān)系數(shù)據(jù)庫(kù)的出現(xiàn)。1995-2002 用戶界面管理將用戶界面從應(yīng)用程序中抽取出來(lái)。人機(jī)工程。1998-2005 工作流管理將業(yè)務(wù)過(guò)程從應(yīng)用程序中抽取出來(lái)??缙髽I(yè),跨系統(tǒng)。2. 企業(yè)業(yè)務(wù)流程企業(yè)的經(jīng)營(yíng)過(guò)程是指企業(yè)為了實(shí)現(xiàn)一定的經(jīng)營(yíng)目標(biāo),在組織機(jī)構(gòu)和人員的參與下,利用企業(yè)資源(設(shè)備、計(jì)算機(jī)軟硬件等),按照預(yù)先確定的業(yè)務(wù)規(guī)則,在參與者之間進(jìn)行文檔
4、、信息、任務(wù)的傳遞與處理。企業(yè)的經(jīng)營(yíng)管理也是遵循一定規(guī)律的,其業(yè)務(wù)也需要按照一定的業(yè)務(wù)規(guī)則運(yùn)行。業(yè)務(wù)按照一定的業(yè)務(wù)規(guī)則運(yùn)行或處理就形成了企業(yè)的業(yè)務(wù)流程。圖 2企業(yè)經(jīng)營(yíng)過(guò)程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).工作流是一個(gè)能夠
5、完全或部分自動(dòng)執(zhí)行的業(yè)務(wù)過(guò)程,根據(jù)一系列過(guò)程規(guī)則,文檔、信息或任務(wù)能夠在不同參與者之間傳遞和處理(WFMC)。比如保險(xiǎn)索賠、抵押申請(qǐng)、稅收申報(bào)、產(chǎn)品設(shè)計(jì)生產(chǎn)過(guò)程等。工作流管理系統(tǒng)(Workflow Management System,WFMS)的主要功能是通過(guò)計(jì)算機(jī)技術(shù)的支持去定義、執(zhí)行和管理工作流,協(xié)調(diào)工作流執(zhí)行過(guò)程中的任務(wù)(活動(dòng))以及群體成員之間的信息交互。強(qiáng)調(diào)的是業(yè)務(wù)過(guò)程的自動(dòng)化。4. BPM業(yè)務(wù)過(guò)程管理(Business process management),非企業(yè)績(jī)效管理(Business Performance Management)。包括了過(guò)程建模、過(guò)程自動(dòng)化、企業(yè)應(yīng)用集成、業(yè)
6、務(wù)活動(dòng)監(jiān)控與優(yōu)化的全生命周期。強(qiáng)調(diào)的是業(yè)務(wù)過(guò)程的分析與優(yōu)化。比較常用的分析項(xiàng)為:1 業(yè)務(wù)流程的瓶頸在哪?2 給定時(shí)間內(nèi)有多少案例(Case,也可稱作實(shí)例)可被處理?3 改變案例數(shù)量后,需要增加多少資源?4 案例的平均完成時(shí)間?第二章 流程平臺(tái)NC流程平臺(tái)是對(duì)企業(yè)的流程進(jìn)行建模的平臺(tái)。其工作流模型由四部分組成,分別是過(guò)程模型、組織模型、功能模型以及信息模型(工作流相關(guān)數(shù)據(jù))。過(guò)程模型用來(lái)定義工作流的過(guò)程邏輯,包括組成工作流的所有活動(dòng)以及活動(dòng)之間的依賴關(guān)系。組織模型用來(lái)定義企業(yè)人員的組織結(jié)構(gòu),包括幾種不同形式的組織元素以及每種組織元素內(nèi)部的遞階層次關(guān)系。功能模型說(shuō)明企業(yè)中需要完成的工作或者任務(wù)是什
7、么,或者說(shuō)功能模型說(shuō)明了企業(yè)的目標(biāo)是通過(guò)哪些具體的功能活動(dòng)來(lái)實(shí)現(xiàn)的。它確定了企業(yè)業(yè)務(wù)功能的邏輯結(jié)構(gòu)和相互關(guān)系。信息模型說(shuō)明了企業(yè)處理的業(yè)務(wù)對(duì)象中所包含的信息以及業(yè)務(wù)對(duì)象間的關(guān)系。過(guò)程模型采取基于活動(dòng)網(wǎng)絡(luò)圖的過(guò)程模型,與其他的過(guò)程模型(如事件驅(qū)動(dòng)過(guò)程鏈EPC、Petri網(wǎng)、語(yǔ)義-行為模型等)比較,活動(dòng)網(wǎng)絡(luò)圖具有直觀自然、可讀性好的特性。NC流程平臺(tái)包括業(yè)務(wù)流程和審批流程兩個(gè)部分。圖 3業(yè)務(wù)流程框架整個(gè)業(yè)務(wù)流程框架的核心是工作流引擎。它負(fù)責(zé)解釋執(zhí)行由業(yè)務(wù)流設(shè)計(jì)器和審批流設(shè)計(jì)器設(shè)計(jì)的流程定義。流程定義可以引用NC系統(tǒng)建立的功能模型、組織模型以及各種元數(shù)據(jù)。NC用戶可從工作列表中查看到工作流引擎分配給
8、他的工作項(xiàng)。通過(guò)單據(jù)動(dòng)作(比如提交、審批、棄審、駁回等)來(lái)處理工作項(xiàng),從而驅(qū)動(dòng)流程流轉(zhuǎn)。工作流引擎在流轉(zhuǎn)過(guò)程中還可以調(diào)用各種自動(dòng)應(yīng)用,包括電子郵件、腳本以及Web服務(wù)等。業(yè)務(wù)流程框架還提供了管理監(jiān)控工具對(duì)運(yùn)行中的流程實(shí)例進(jìn)行狀態(tài)查詢和管理。對(duì)于流轉(zhuǎn)過(guò)程中涉及到的數(shù)據(jù)交換,工作流引擎將調(diào)用交換引擎根據(jù)規(guī)則進(jìn)行數(shù)據(jù)映射。1. 單據(jù)元模型業(yè)務(wù)單據(jù)是描述企業(yè)業(yè)務(wù)信息的載體,是對(duì)業(yè)務(wù)數(shù)據(jù)的抽象。通過(guò)業(yè)務(wù)單據(jù),可以清楚地反映企業(yè)的業(yè)務(wù)發(fā)生情況。企業(yè)中如請(qǐng)購(gòu)單、采購(gòu)訂單、報(bào)銷單、付款單等均為業(yè)務(wù)單據(jù)。在NC系統(tǒng)中,一張業(yè)務(wù)單據(jù)的實(shí)現(xiàn)包括許多內(nèi)容,比如單據(jù)類型、單據(jù)VO、單據(jù)UI、單據(jù)動(dòng)作等。我們把這些用于描
9、述某單據(jù)的信息統(tǒng)稱為單據(jù)元模型。其組成如圖4所示。圖 4單據(jù)元模型1.1 單據(jù)類型單據(jù)類型是對(duì)單據(jù)的分類。單據(jù)的元信息都是基于單據(jù)類型來(lái)定義。在定義單據(jù)類型時(shí),單據(jù)類型必須屬于某個(gè)系統(tǒng)類型。單據(jù)類型的注冊(cè)信息比較多,由功能點(diǎn)客戶化-二次開(kāi)發(fā)工具-單據(jù)管理-單據(jù)類型管理維護(hù),如圖5所示,一般由各個(gè)產(chǎn)品組預(yù)置。圖 5單據(jù)類型管理項(xiàng)目說(shuō)明: 類型代碼:手工輸入,最大長(zhǎng)度為4個(gè)字符,可以輸入字母和數(shù)字,不允許重復(fù)。 類型名稱:業(yè)務(wù)單據(jù)名稱,手工輸入,不允許重復(fù)。 單據(jù)大類:表示單據(jù)類別(應(yīng)收應(yīng)付101-),用于區(qū)分單據(jù)類型的主子關(guān)系(參見(jiàn)1.1.2節(jié))。 單據(jù)對(duì)應(yīng)類:標(biāo)識(shí)單據(jù)類型的關(guān)聯(lián)UI,一般為關(guān)聯(lián)
10、的審批維護(hù)類功能節(jié)點(diǎn)編碼。 主表參照的固定條件語(yǔ)句:被其它單據(jù)參照時(shí)自己填寫(xiě)的固定的SQL條件語(yǔ)句。 參照查詢對(duì)應(yīng)的DMO類:用于查詢單據(jù)VO數(shù)據(jù)的業(yè)務(wù)邏輯類。必須實(shí)現(xiàn)接口nc.bs.pub.pf.IQueryData以及nc.bs.pub.pf.IQueryData2(參見(jiàn)第三章5.4.6節(jié))。 審批流檢查類:通過(guò)編寫(xiě)審批流檢查類,并在該類中實(shí)現(xiàn)審批流相關(guān)接口,來(lái)達(dá)到使用審批流管理業(yè)務(wù)單據(jù)以及控制審批流行為的目的(參見(jiàn)第三章)。實(shí)現(xiàn)IcheckState,IbackCheckState(可不實(shí)現(xiàn))的接口的DMO類文件 會(huì)計(jì)平臺(tái)類:財(cái)務(wù)會(huì)計(jì)平臺(tái)所需的類。實(shí)現(xiàn)IaccountProcMsg IA
11、ccountRetVoucher的接口的DMO類文件 是否項(xiàng)目核算:NC210以后不再使用。 是否為根節(jié)點(diǎn):針對(duì)單據(jù)大類,用于實(shí)現(xiàn)單據(jù)主子關(guān)系。 是否發(fā)送會(huì)計(jì)平臺(tái):用于財(cái)務(wù)會(huì)計(jì)平臺(tái)。如果該單據(jù)不直接傳送財(cái)務(wù)會(huì)計(jì)平臺(tái),則不選擇 節(jié)點(diǎn)編號(hào):標(biāo)識(shí)單據(jù)類型的關(guān)聯(lián)UI,一般為關(guān)聯(lián)的制單功能節(jié)點(diǎn)編碼。 自定義1(def1):流程配置的單據(jù)業(yè)務(wù)關(guān)聯(lián)(業(yè)務(wù)流程)更新后的處理類。 自定義2(def2):存取會(huì)計(jì)平臺(tái)的產(chǎn)品組自定義查詢。 自定義3(def3):動(dòng)作執(zhí)行前的UI端處理類。如果單據(jù)類型關(guān)聯(lián)了多個(gè)功能節(jié)點(diǎn),該類還需要實(shí)現(xiàn)節(jié)點(diǎn)查找接口(參見(jiàn)第三章4.6節(jié))。對(duì)于流程平臺(tái)產(chǎn)生的工作項(xiàng),5.0統(tǒng)一使用打開(kāi)功能
12、節(jié)點(diǎn)的方式來(lái)處理。這需要單據(jù)類型的節(jié)點(diǎn)注冊(cè)信息有所改變: 字段說(shuō)明示例bd_billtype.nodecode制單節(jié)點(diǎn)編碼110180bd_billtype.classname審批或維護(hù)節(jié)點(diǎn)編碼110190 需要走審批流110190 不需要走審批流110190110190 不控制該單據(jù)類型關(guān)聯(lián)的節(jié)點(diǎn)打開(kāi)權(quán)限所有功能節(jié)點(diǎn)UI類必須實(shí)現(xiàn)UI關(guān)聯(lián)接口(參見(jiàn)4.6.4節(jié))。1.1.1系統(tǒng)類型對(duì)業(yè)務(wù)系統(tǒng)的分類。5.0版本中,每個(gè)系統(tǒng)必須屬于某個(gè)模塊。由功能點(diǎn)客戶化-二次開(kāi)發(fā)工具-會(huì)計(jì)平臺(tái)-系統(tǒng)類型定義維護(hù),如圖6所示。圖 6系統(tǒng)類型定義項(xiàng)目說(shuō)明: 系統(tǒng)類型編碼:自定義輸入,禁止重復(fù)。 系統(tǒng)類型名稱:自定
13、義輸入,禁止重復(fù)。 是否專項(xiàng)管理:勾選此項(xiàng),表示此業(yè)務(wù)系統(tǒng)將向管理會(huì)計(jì)平臺(tái)傳送數(shù)據(jù)。 是否發(fā)送到會(huì)計(jì)平臺(tái):勾選此項(xiàng),表示此業(yè)務(wù)系統(tǒng)將向財(cái)務(wù)會(huì)計(jì)平臺(tái)傳送數(shù)據(jù),在財(cái)務(wù)會(huì)計(jì)平臺(tái)的憑證模板節(jié)點(diǎn),可以對(duì)此業(yè)務(wù)系統(tǒng)的單據(jù)進(jìn)行操作。 系統(tǒng)使用的業(yè)務(wù)類型:在進(jìn)行憑證模板或成本單據(jù)模板定義時(shí),該系統(tǒng)的業(yè)務(wù)單據(jù)使用的業(yè)務(wù)類型檔案。 模塊名:標(biāo)識(shí)該系統(tǒng)所屬的產(chǎn)品模塊。對(duì)應(yīng)于NC_HOME/modules/下的目錄名。 相關(guān)節(jié)點(diǎn)編碼:標(biāo)識(shí)哪些功能節(jié)點(diǎn)號(hào)與產(chǎn)品模塊的關(guān)聯(lián)關(guān)系。一般用于參數(shù)設(shè)置中。1.1.2主子關(guān)系單據(jù)類型之間可存在主子關(guān)系,這通過(guò)isroot和billstyle兩個(gè)屬性來(lái)判定。圖 7單據(jù)類型主子關(guān)系如圖
14、7所示,D1的父單據(jù)類型為F1;D2的父單據(jù)類型為F2。1.2 單據(jù)動(dòng)作及腳本是對(duì)單據(jù)業(yè)務(wù)處理行為的抽象,具有可定制的動(dòng)作腳本。業(yè)務(wù)單據(jù)正是通過(guò)單據(jù)動(dòng)作與流程平臺(tái)進(jìn)行交互的,從而驅(qū)動(dòng)流程的流轉(zhuǎn)。可對(duì)應(yīng)于單據(jù)UI上的某個(gè)菜單。由功能點(diǎn)客戶化-二次開(kāi)發(fā)工具-單據(jù)管理-單據(jù)動(dòng)作管理維護(hù),如圖8所示。圖 8單據(jù)動(dòng)作管理項(xiàng)目說(shuō)明: 動(dòng)作選擇:提供四種動(dòng)作各供選擇:保存、審核、推式動(dòng)作、其它。保存、審核是單據(jù)的基本動(dòng)作,動(dòng)作代碼有嚴(yán)格規(guī)定;推式動(dòng)作表示該動(dòng)作可被其他單據(jù)推式驅(qū)動(dòng)。 動(dòng)作編碼:當(dāng)前單據(jù)動(dòng)作的編碼。注意,當(dāng)動(dòng)作選擇為“保存”時(shí),動(dòng)作編碼必須為以“SAVE”結(jié)尾;而當(dāng)動(dòng)作選擇為“審核”時(shí),動(dòng)作編
15、碼必須為以“APPROVE”開(kāi)頭。長(zhǎng)度限制為20個(gè)英文字符。 動(dòng)作名稱:當(dāng)前單據(jù)動(dòng)作的顯示名稱 動(dòng)作執(zhí)行前提示:如此處輸入文字,則在該動(dòng)作被觸發(fā)時(shí),會(huì)彈出一個(gè)帶有提示性文字的對(duì)話框,如:是否保存? 動(dòng)作控制:提供三個(gè)選項(xiàng):動(dòng)作可配置、進(jìn)行驅(qū)動(dòng)配置、進(jìn)行約束檢查。勾選“動(dòng)作可配置”,表示該動(dòng)作可在流程配置中進(jìn)行配置;勾選“進(jìn)行驅(qū)動(dòng)配置”,則該動(dòng)作在流程配置中可以對(duì)其他單據(jù)動(dòng)作進(jìn)行推式操作,驅(qū)動(dòng)其他單據(jù);勾選“進(jìn)行約束檢查”,則此動(dòng)作要根據(jù)業(yè)務(wù)流程的配置在執(zhí)行前進(jìn)行條件檢驗(yàn),滿足條件動(dòng)作才執(zhí)行,否則就不執(zhí)行。圖 9單據(jù)動(dòng)作執(zhí)行腳本單據(jù)動(dòng)作的處理統(tǒng)一由平臺(tái)API來(lái)調(diào)用。詳見(jiàn)第三章第3節(jié)。1.2.1單
16、據(jù)動(dòng)作組對(duì)單據(jù)動(dòng)作的分組。由功能點(diǎn)客戶化-二次開(kāi)發(fā)工具-單據(jù)管理-單據(jù)動(dòng)作組管理維護(hù),如圖10所示。圖 10單據(jù)動(dòng)作組管理1.3 單據(jù)函數(shù)服務(wù)于單據(jù)的業(yè)務(wù)功能的抽取,是進(jìn)行業(yè)務(wù)邏輯處理的組件??捎糜趧?dòng)作腳本和條件判定。由功能點(diǎn)客戶化-二次開(kāi)發(fā)工具-流程配置-數(shù)據(jù)交換管理維護(hù),如圖11所示。圖 11單據(jù)函數(shù)(組件)管理項(xiàng)目說(shuō)明: 函數(shù)說(shuō)明:函數(shù)所實(shí)現(xiàn)的功能的說(shuō)明性文字,建議盡量說(shuō)明清晰,以便于系統(tǒng)實(shí)施。如果以“”括起來(lái),表示自定義函數(shù)。 返回類型:該功能函數(shù)返回?cái)?shù)據(jù)的類型。 函數(shù)類名稱:功能函數(shù)所屬的全路徑類名。 函數(shù)方法名稱:該函數(shù)在類中所對(duì)應(yīng)的方法名稱。 函數(shù)參數(shù):該函數(shù)正確調(diào)用所需的參數(shù)。
17、參數(shù)的格式見(jiàn)下。 是否組件:標(biāo)識(shí)該方法是否為組件。單據(jù)組件一般是沒(méi)有返回值的一段業(yè)務(wù)處理邏輯,它不可應(yīng)用于審批條件、動(dòng)作約束、工作項(xiàng)配置中。1.3.1參數(shù)格式函數(shù)參數(shù)以逗號(hào)“,”隔開(kāi),每個(gè)參數(shù)具有特定的格式。參數(shù)分為運(yùn)行參數(shù)、屬性參數(shù)和VO參數(shù)三種。格式示例:nc.vo.pub.AggregatedValueObject:01nc.vo.pub.AggregatedValueObject:01,OBJuser:OBJECTnc.vo.po.OrderVO:21&sAction:STRING,nc.vo.pub.AggregatedValueObject:01注意:VO參數(shù)和屬性參數(shù)的實(shí)際值由工
18、作流上下文在運(yùn)行時(shí)賦予。運(yùn)行參數(shù)可在動(dòng)作腳本中賦值。1.3.2返回值函數(shù)方法返回值支持的類型有:UFBooleanStringIntegerUFDouble1.4 單據(jù)UI單據(jù)的界面展現(xiàn)模型,包括四大模板以及UI工廠等。每個(gè)單據(jù)還與一個(gè)維護(hù)它的功能節(jié)點(diǎn)對(duì)應(yīng),這個(gè)信息需要注冊(cè)到單據(jù)類型中(參見(jiàn)1.1節(jié))。1.5 單據(jù)項(xiàng)目是對(duì)單據(jù)業(yè)務(wù)數(shù)據(jù)的描述。一般與單據(jù)的VO模型對(duì)應(yīng)。由功能點(diǎn)客戶化-二次開(kāi)發(fā)工具-單據(jù)管理-單據(jù)項(xiàng)目管理維護(hù),如圖12所示。圖 12單據(jù)項(xiàng)目管理項(xiàng)目說(shuō)明: 屬性名:?jiǎn)螕?jù)VO模型中的屬性名稱。 多語(yǔ)資源ID:屬性的多語(yǔ)ID號(hào)。 專項(xiàng)類型:屬性的數(shù)據(jù)類型。 默認(rèn)名稱:屬性的中文名稱。1
19、.6 單據(jù)VO對(duì)照描述了流程平臺(tái)所需的信息(比如制單人、審批人、單據(jù)ID等)在單據(jù)VO模型上的對(duì)應(yīng)關(guān)系。由功能點(diǎn)客戶化-二次開(kāi)發(fā)工具-單據(jù)管理-單據(jù)VO對(duì)照管理維護(hù),如圖6所示。圖 13單據(jù)VO對(duì)照項(xiàng)目說(shuō)明: 主子VO類名稱:?jiǎn)螕?jù)VO模型中的主子VO類名稱。 單據(jù)VO類名稱:?jiǎn)螕?jù)聚合VO類名稱。 主表的關(guān)鍵字段:?jiǎn)螕?jù)物理模型中主表的主鍵字段。 子表編碼:? 審批人:?jiǎn)螕?jù)VO模型中表示審批人的屬性名稱。 制單人:?jiǎn)螕?jù)VO模型中表示制單人的屬性名稱。 單據(jù)ID:?jiǎn)螕?jù)VO模型中表示單據(jù)ID的屬性名稱。 業(yè)務(wù)類型:?jiǎn)螕?jù)VO模型中表示業(yè)務(wù)類型的屬性名稱。 對(duì)于數(shù)據(jù)庫(kù)表:注冊(cè)單據(jù)主子物理表名稱。 單據(jù)編號(hào)
20、:?jiǎn)螕?jù)VO模型中表示單據(jù)號(hào)的屬性名稱。2. 業(yè)務(wù)流平臺(tái)NC業(yè)務(wù)流平臺(tái)進(jìn)行了簡(jiǎn)化,其設(shè)計(jì)思想是基于以下認(rèn)識(shí):業(yè)務(wù)流程是由單據(jù)組成的,而單據(jù)是由動(dòng)作驅(qū)動(dòng)的,動(dòng)作又是由組件組成的;單據(jù)、動(dòng)作以及組件可以由業(yè)務(wù)系統(tǒng)開(kāi)發(fā)實(shí)現(xiàn)。NC業(yè)務(wù)流提供一種平臺(tái)機(jī)制,在此可以根據(jù)用戶的實(shí)際業(yè)務(wù)重新組織這些單據(jù)、動(dòng)作及組件,包括每種單據(jù)的來(lái)源單據(jù)是什么、又驅(qū)動(dòng)生成哪些單據(jù)、完成什么動(dòng)作、動(dòng)作生效的約束條件以及動(dòng)作生效后將配置哪些組件等,以此更好滿足企業(yè)個(gè)性化的需求。圖 14普通采購(gòu)流程2.1 業(yè)務(wù)類型對(duì)業(yè)務(wù)流程的分類。各個(gè)公司可定義自己的業(yè)務(wù)流程,5.0支持集團(tuán)業(yè)務(wù)類型,即在集團(tuán)定義業(yè)務(wù)類型,然后各個(gè)子公司使用。比如集
21、中采購(gòu)流程:請(qǐng)購(gòu)單-采購(gòu)訂單-到貨單-入庫(kù)單-采購(gòu)發(fā)票-應(yīng)付單。由功能點(diǎn)客戶化-流程配置-業(yè)務(wù)類型管理維護(hù),如圖15所示。圖 15業(yè)務(wù)類型管理2.2 流程配置一個(gè)業(yè)務(wù)流程由相互關(guān)聯(lián)的多個(gè)單據(jù)組成,通過(guò)定義單據(jù)間來(lái)源與動(dòng)作驅(qū)動(dòng)關(guān)系來(lái)定義業(yè)務(wù)流程。圖 16流程配置項(xiàng)目說(shuō)明: 單據(jù)代碼:該字段為參照選擇,參照內(nèi)容為NC安裝過(guò)的功能模塊的所有單據(jù)類型。每個(gè)業(yè)務(wù)類型每張單據(jù)只能選擇一次。 單據(jù)名稱:顯示選擇的單據(jù)代碼的名稱,不能編輯,選擇單據(jù)代碼后自動(dòng)帶入 參照單據(jù):勾選此項(xiàng),表示該單據(jù)的業(yè)務(wù)數(shù)據(jù)可以參照其他單據(jù)(來(lái)源單據(jù))的數(shù)據(jù)生成(將進(jìn)行單據(jù)VO交換)。勾選此項(xiàng),在流程配置中才可配置該單據(jù)的來(lái)源單據(jù)
22、,否則不可配置。 自制單據(jù):勾選此項(xiàng),表示該單據(jù)的業(yè)務(wù)數(shù)據(jù)可以手工輸入。 權(quán)限控制:設(shè)置每個(gè)單據(jù)有權(quán)限的參與者。在單據(jù)UI界面,業(yè)務(wù)類型下拉菜單中,只有有權(quán)限的用戶才可看到該業(yè)務(wù)類型(參見(jiàn)第三章5.3.1節(jié))。同時(shí)還控制了下游消息的接收者范圍。 下游消息:上游單據(jù)審批通過(guò)后,會(huì)給下游單據(jù)的參與者發(fā)送拉式消息。上游單據(jù)的推式動(dòng)作執(zhí)行完后會(huì)驅(qū)動(dòng)下游單據(jù)的動(dòng)作,并給下游單據(jù)的參與者發(fā)送推式消息。流程配置由5個(gè)向?qū)Чぞ呓M成,分別闡述如下:2.2.1單據(jù)權(quán)限配置5.0新增的配置,配置業(yè)務(wù)流程中每個(gè)單據(jù)有權(quán)限的參與者。用于業(yè)務(wù)類型的權(quán)限控制,以及下游消息的接收者范圍。圖 17單據(jù)權(quán)限配置2.2.2單據(jù)來(lái)源
23、配置是對(duì)當(dāng)前單據(jù)類型的數(shù)據(jù)來(lái)源單據(jù)進(jìn)行定義的界面。被定義為當(dāng)前單據(jù)來(lái)源單據(jù)的業(yè)務(wù)單據(jù),可以在業(yè)務(wù)流程中為當(dāng)前單據(jù)提供業(yè)務(wù)數(shù)據(jù)(使用單據(jù)VO交換),以保持業(yè)務(wù)數(shù)據(jù)的一致性。圖 18單據(jù)來(lái)源配置2.2.3動(dòng)作約束配置配置業(yè)務(wù)單據(jù)的單據(jù)動(dòng)作(可能為單據(jù)界面上的某些功能按鈕)在發(fā)生前需要進(jìn)行的條件檢查。若發(fā)生的業(yè)務(wù)滿足定義的條件,則該單據(jù)動(dòng)作將被執(zhí)行,否則不允許執(zhí)行。流程配置通過(guò)本步驟,即可實(shí)現(xiàn)對(duì)當(dāng)前業(yè)務(wù)環(huán)節(jié)的事前控制。圖 19動(dòng)作約束配置2.2.4動(dòng)作事件控制配置為業(yè)務(wù)流程配置個(gè)性化動(dòng)作腳本。在這里,用戶可以針對(duì)不同業(yè)務(wù)類型對(duì)公共的單據(jù)動(dòng)作執(zhí)行腳本(參見(jiàn)第三章第3節(jié))進(jìn)行定制。使單據(jù)動(dòng)作按照自己定義
24、的規(guī)則來(lái)執(zhí)行,以此來(lái)完善企業(yè)的業(yè)務(wù)流程,并對(duì)當(dāng)前業(yè)務(wù)環(huán)節(jié)實(shí)現(xiàn)事中控制。圖 20動(dòng)作腳本定制2.2.5動(dòng)作驅(qū)動(dòng)配置配置單據(jù)之間的動(dòng)作驅(qū)動(dòng)關(guān)系。具體參見(jiàn)第三章5.1節(jié)。左樹(shù)列示了當(dāng)前單據(jù)在單據(jù)動(dòng)作管理中被定義為“進(jìn)行驅(qū)動(dòng)配置”的單據(jù)動(dòng)作(參見(jiàn)1.2節(jié))。圖 21動(dòng)作驅(qū)動(dòng)配置項(xiàng)目說(shuō)明: 目的單據(jù):在當(dāng)前單據(jù)動(dòng)作完成時(shí),將要進(jìn)行動(dòng)作處理的單據(jù)。 操作員相關(guān):選擇與操作員或角色有關(guān),則該動(dòng)作僅在所選擇的操作員或角色執(zhí)行時(shí),才會(huì)驅(qū)動(dòng)目的單據(jù)的動(dòng)作。 動(dòng)作:參照選擇,選擇目的單據(jù)被驅(qū)動(dòng)的動(dòng)作,該類動(dòng)作在單據(jù)動(dòng)作管理中被定義為“推式動(dòng)作”(參見(jiàn)1.2節(jié))。2.3 單據(jù)VO交換單據(jù)類型之間存在相互轉(zhuǎn)換的需求,平
25、臺(tái)提供了定義單據(jù)VO模型間的相互轉(zhuǎn)換規(guī)則的機(jī)制。單據(jù)之間的上下游關(guān)系保存在表pub_billtobillrefer中,轉(zhuǎn)換規(guī)則作為class文件保存,比如“nc.ui.pf.changedir. CHG21TO30”、“nc.bs.pf.changedir.CHG21TO30”等。單據(jù)VO交換可發(fā)生在前后或后臺(tái),并在交換后可進(jìn)行特殊的業(yè)務(wù)處理。詳細(xì)見(jiàn)第三章5.2節(jié)。圖 22 單據(jù)交換信息項(xiàng)目說(shuō)明: 被參照單據(jù)類型:來(lái)源單據(jù)類型。 用于顯示來(lái)源單據(jù)的UI類:參照來(lái)源單據(jù)時(shí),使用的來(lái)源單據(jù)顯示UI。默認(rèn)為“nc.ui.pub.pf.BillSourceDLG”。 用于查詢來(lái)源單據(jù)的模板ID或UI類
26、:查詢來(lái)源單據(jù)需要使用的查詢模板ID或UI。格式有“”、“SO30TO31000000000000”和NULL(默認(rèn)查詢模板)。 用于查詢來(lái)源單據(jù)的節(jié)點(diǎn)標(biāo)識(shí):被參照的來(lái)源單據(jù)的Nodekey,用于選擇查詢模板。單據(jù)間的交換規(guī)則支持簡(jiǎn)單屬性和公式定義,以及額外的交換后業(yè)務(wù)處理。圖 23單據(jù)交換規(guī)則3. 審批流平臺(tái)審批流平臺(tái)為單據(jù)的審批處理提供平臺(tái)支持?;谌蝿?wù)驅(qū)動(dòng)的執(zhí)行引擎使得流程流轉(zhuǎn)與用戶交互分離開(kāi)來(lái),具有更強(qiáng)的健壯性。支持分支/匯總(Split/ Join)、優(yōu)先級(jí)(Priority)、子流程(Subflow)、可指派、搶占/會(huì)簽、消息配置、代理人、棄審等流程特性。3.1 流程定義NC5.0
27、的審批流定義模型遵循WfMC的XPDL1.0過(guò)程定義規(guī)范,具有嚴(yán)格的語(yǔ)義和豐富的描述能力。圖 24審批流定義-瀏覽圖 25審批流定義-設(shè)計(jì)審批流定義按照單據(jù)類型(+業(yè)務(wù)類型)進(jìn)行了分類。用戶可以基于單據(jù)類型定義審批流,也可以基于單據(jù)類型+業(yè)務(wù)類型(如果配置了業(yè)務(wù)流程)來(lái)定義審批流。一個(gè)單據(jù)類型(+業(yè)務(wù)類型)下可以定義多個(gè)審批流,這里可以把單據(jù)類型(+業(yè)務(wù)類型)理解為過(guò)程包的概念。3.1.1流程模型過(guò)程(Process)由許多被執(zhí)行的活動(dòng)和一系列決定活動(dòng)執(zhí)行次序的轉(zhuǎn)移構(gòu)成。活動(dòng)(Activity)審批流程中的一個(gè)個(gè)步驟統(tǒng)稱為活動(dòng)(或任務(wù)),包括制單活動(dòng)、審批活動(dòng)、虛活動(dòng)、子流程。第一個(gè)拖放到審批
28、流設(shè)計(jì)器中的參與者所屬的活動(dòng)為制單活動(dòng)。虛活動(dòng)主要用于對(duì)分支/匯總進(jìn)行建模。子流程可實(shí)施流程重用。參與者(Participant)活動(dòng)的一個(gè)屬性,即活動(dòng)的執(zhí)行者,是對(duì)系統(tǒng)中組織模型的引用。目前支持操作員、角色和動(dòng)態(tài)組織三種類型的參與者(HR崗位就是一種動(dòng)態(tài)組織實(shí)現(xiàn),具體擴(kuò)展機(jī)制可參考附錄)。第一個(gè)拖放到審批流設(shè)計(jì)器中的組織元素為制單活動(dòng)的參與者。在設(shè)計(jì)器中,活動(dòng)和參與者由同一個(gè)圖元來(lái)展現(xiàn)。轉(zhuǎn)移(Transition)活動(dòng)間的流轉(zhuǎn),是兩個(gè)活動(dòng)間的有向連接。每個(gè)轉(zhuǎn)移都具有轉(zhuǎn)移條件(Condition),只有滿足條件的轉(zhuǎn)移才可流轉(zhuǎn)。轉(zhuǎn)移條件表達(dá)式除了審批結(jié)果表達(dá)式、單據(jù)函數(shù)表達(dá)式,5.0新增加了單據(jù)
29、項(xiàng)目表達(dá)式。每個(gè)轉(zhuǎn)移還具有優(yōu)先級(jí)(Priority),優(yōu)先級(jí)高的轉(zhuǎn)移分支將被優(yōu)先選擇。分支/匯總(Split/Join)活動(dòng)具有前驅(qū)條件(Join)和后繼條件(Split)兩個(gè)屬性,可通過(guò)Split/Join-AND/XOR屬性組合為過(guò)程的選擇、并行結(jié)構(gòu)進(jìn)行建模。加上順序和循環(huán),這四個(gè)基本結(jié)構(gòu)就可描述大多數(shù)過(guò)程結(jié)構(gòu)。同時(shí),工作流引擎還支持兩種反向流轉(zhuǎn)模式:駁回和棄審(參見(jiàn)3.4節(jié))。搶占和會(huì)簽審批活動(dòng)的一個(gè)屬性。會(huì)簽:只有審批活動(dòng)的參與者中所有用戶完成審批后,該審批活動(dòng)才能結(jié)束。搶占:只要審批活動(dòng)的參與者中任何一人完成審批后,該審批活動(dòng)即結(jié)束。可指派審批活動(dòng)的一個(gè)屬性。如果審批活動(dòng)定義了可指派
30、屬性,則該審批活動(dòng)的實(shí)際執(zhí)行者需要從其參與者中手工選擇。指派的分支優(yōu)先被選擇。流程限定審批活動(dòng)的一個(gè)屬性。用于設(shè)定前后兩個(gè)活動(dòng)的參與者之間的關(guān)系。支持“同公司”和“同部門”兩種類型。只可為參與者為角色和動(dòng)態(tài)組織的審批活動(dòng)設(shè)置流程限定屬性。代理人(Agent)審批活動(dòng)的一個(gè)屬性。制單活動(dòng)不可設(shè)置代理人;只可為參與者為操作員類型的審批活動(dòng)設(shè)置多級(jí)代理人;代理人只可為操作員。消息配置(Message Config)審批活動(dòng)的一個(gè)屬性??蔀槊總€(gè)審批活動(dòng)配置額外的消息通知機(jī)制。即在滿足觸發(fā)條件時(shí),以消息、短信、郵件方式通知相關(guān)人員??梢詾槊總€(gè)審批活動(dòng)配置額外的消息發(fā)送機(jī)制。對(duì)于制單活動(dòng),發(fā)送條件必須為“
31、無(wú)條件”。對(duì)于審批活動(dòng),發(fā)送條件可為“無(wú)條件”、“審核通過(guò)”和“審核不通過(guò)”三種(注:對(duì)于審批活動(dòng),“無(wú)條件”即該審批活動(dòng)完成之后就發(fā)送)。在消息內(nèi)容中我們可以使用宏表達(dá)式來(lái)獲取一些業(yè)務(wù)相關(guān)數(shù)據(jù)。目前可從系統(tǒng)獲取的宏對(duì)象變量?jī)H有:operater=當(dāng)前登錄操作員PKvo=當(dāng)前操作的單據(jù)VOvos=當(dāng)前操作的單據(jù)VO數(shù)組paravo=當(dāng)前單據(jù)的審批流參數(shù)VO 參數(shù)VO可直接訪問(wèn)的變量列表。這樣,在我們的宏表達(dá)式中可以直接引用這些對(duì)象變量,并調(diào)用這些對(duì)象的方法(注:完全支持Java語(yǔ)法)。比如:宏表達(dá)式含義%paravo.m_billNo%當(dāng)前單據(jù)號(hào)%vo.getParentVO().getAtt
32、ributeValue(“dwbm”)%當(dāng)前單據(jù)VO中的某數(shù)據(jù)%paravo.m_workFlow.getCheckNote()%當(dāng)前審批步驟的批語(yǔ)3.1.2增刪改審批流程是基于單據(jù)類型(+業(yè)務(wù)類型)來(lái)定義的,由各個(gè)公司各自定義。選中某個(gè)單據(jù)類型(+業(yè)務(wù)類型),就可為其新增一個(gè)審批流程。一個(gè)單據(jù)類型(+業(yè)務(wù)類型)下不能存在兩個(gè)同制單人的審批流程。如果某流程定義已經(jīng)擁有了流程實(shí)例,則不允許刪除。如果某流程定義已經(jīng)擁有了流程實(shí)例,修改該定義后保存時(shí)會(huì)重新產(chǎn)生一個(gè)流程定義。原有的流程定義處于無(wú)效狀態(tài),不可再次編輯。3.1.3導(dǎo)入/導(dǎo)出在審批流定義-瀏覽界面,選中某個(gè)流程,可導(dǎo)出為本地XPDL文本文件
33、。1 不導(dǎo)出包定義。2 一次只能導(dǎo)出一個(gè)流程。從本地XPDL文本文件導(dǎo)入流程定義到當(dāng)前單據(jù)類型包下:1 如果包定義不存在,則先新建包定義保存,再保存導(dǎo)入的流程定義。2 在導(dǎo)入含子流程的XPDL時(shí),提示“導(dǎo)入的XPDL文件中含有對(duì)N個(gè)子流程的引用,導(dǎo)入后需要修改流程以重新建立引用關(guān)系,是否繼續(xù)?”。3 不能導(dǎo)入同制單人的流程定義。3.1.4流程定義的選擇對(duì)于某個(gè)單據(jù)類型(+業(yè)務(wù)類型),根據(jù)制單人的不同,可定義多個(gè)審批流程定義。由于制單人類型支持操作員、角色和動(dòng)態(tài)組織三類,一個(gè)操作員制單后,究竟走哪條流程定義,系統(tǒng)按照如下順序優(yōu)先選擇流程定義:1 制單人為操作員類型的流程;2 制單人為角色類型的流
34、程若制單人委派了多個(gè)角色,則只找第一個(gè)角色定義的流程;3 制單人為動(dòng)態(tài)組織類型的流程。3.2 工作項(xiàng)工作項(xiàng)是是工作流引擎在流程流轉(zhuǎn)過(guò)程中,對(duì)活動(dòng)的參與者根據(jù)基本組織單元(操作員)進(jìn)行任務(wù)分配的產(chǎn)物。3.2.1分配策略工作流引擎將產(chǎn)生的工作項(xiàng)直接推給用戶,同時(shí)用戶登錄后可選擇優(yōu)先執(zhí)行哪些任務(wù)。參與者出差后,審批工作項(xiàng)將會(huì)分配到代理人。動(dòng)態(tài)代理人設(shè)置。圖 26用戶出差和動(dòng)態(tài)代理人管理3.2.2標(biāo)題定制工作項(xiàng)的標(biāo)題可由從單據(jù)元模型中獲取到的信息組成,以便更人性化的顯示在待辦事務(wù)中。圖 27工作項(xiàng)內(nèi)容定制3.2.3關(guān)聯(lián)UI5.0版本中,工作項(xiàng)與UI的關(guān)聯(lián)全部采取功能節(jié)點(diǎn)方式。風(fēng)格一致,業(yè)務(wù)處理更加方便
35、。工作項(xiàng)與哪個(gè)UI關(guān)聯(lián)是由單據(jù)類型決定的(參見(jiàn)1.1節(jié))。同時(shí)關(guān)聯(lián)的UI必須實(shí)現(xiàn)5.0新增的UI關(guān)聯(lián)接口(參見(jiàn)第三章4.6.4節(jié))。3.3 流程結(jié)果與單據(jù)狀態(tài)對(duì)于審批流程來(lái)說(shuō),流程實(shí)例正常結(jié)束后,必然會(huì)有一個(gè)審批結(jié)果。而單據(jù)的審批狀態(tài)與流程結(jié)果密切相關(guān)。工作項(xiàng)的審批結(jié)果即登錄到NC系統(tǒng)的操作員對(duì)流程平臺(tái)分配給他的工作項(xiàng)的審批處理意見(jiàn)。包括“批準(zhǔn)”、“不批準(zhǔn)”、“駁回到制單人”三種?;顒?dòng)的審批結(jié)果對(duì)于角色/崗位類的參與者執(zhí)行的審批活動(dòng),如果是會(huì)簽屬性,則只有所有會(huì)簽操作員都審批通過(guò),該活動(dòng)結(jié)果才為審批通過(guò),任何一個(gè)會(huì)簽人審批不通過(guò),該活動(dòng)結(jié)果就為審批不通過(guò);如果是搶占屬性,則活動(dòng)結(jié)果為搶占人的審
36、批結(jié)果。流程的審批結(jié)果恒等于最后一個(gè)活動(dòng)(即流轉(zhuǎn)到結(jié)束節(jié)點(diǎn)的活動(dòng))的審批結(jié)果。恒等于最后一個(gè)審批人的審批結(jié)果。一旦單據(jù)送審到審批流中,單據(jù)便處于某個(gè)審批狀態(tài)。在審批流內(nèi)部,單據(jù)的內(nèi)部審批狀態(tài)有5種:表 1單據(jù)審批狀態(tài)常量取值含義IPfRetBackCheckInfo.NOSTATE-1自由態(tài)IPfRetCheckInfo.COMMIT3提交態(tài)IPfRetCheckInfo.GOINGON2審批進(jìn)行中IPfRetCheckInfo.PASSING1審批通過(guò)IPfRetCheckInfo.NOPASS0審批不通過(guò)業(yè)務(wù)單據(jù)根據(jù)自己的業(yè)務(wù)需求也可定義自己的單據(jù)業(yè)務(wù)狀態(tài),但不可與上述5種狀態(tài)相沖突。比如
37、UI模式化開(kāi)發(fā)包中就定義了更多的單據(jù)狀態(tài)。表 2單據(jù)業(yè)務(wù)狀態(tài)常量取值含義IBillStatus.FREE8自由態(tài)IBillStatus.COMMIT3提交態(tài)IBillStatus.CHECKGOING2審批進(jìn)行中IBillStatus.CHECKPASS1審批通過(guò)IBillStatus.NOPASS0審批不通過(guò)IBillStatus.DELETE4作廢狀態(tài)IBillStatus.CX5沖銷狀態(tài)IBillStatus.ENDED6終止(結(jié)算)態(tài)IBillStatus.FREEZE7凍結(jié)狀態(tài)自由態(tài)即單據(jù)尚在編寫(xiě)中(已保存或尚未保存)并未提交到審批流的狀態(tài)。提交態(tài)通過(guò)執(zhí)行單據(jù)動(dòng)作SAVE或EDIT,
38、將單據(jù)送審后的狀態(tài)。提交態(tài)是審批流內(nèi)部的一個(gè)狀態(tài),它的回寫(xiě)并不通過(guò)審批流檢查類進(jìn)行。只能由業(yè)務(wù)組通過(guò)SAVE動(dòng)作腳本自己對(duì)單據(jù)狀態(tài)進(jìn)行設(shè)置。所以有的業(yè)務(wù)組的單據(jù)并沒(méi)有提交態(tài)的概念。審批進(jìn)行中流程實(shí)例正處于運(yùn)行中的狀態(tài)。審批完成如果流程實(shí)例正常運(yùn)行完成,該單據(jù)的審批過(guò)程即完成。審批流程結(jié)束后具有最終審批結(jié)果:通過(guò)或不通過(guò),這也是單據(jù)的最終審批結(jié)果。審批狀態(tài)轉(zhuǎn)換圖如下所示:狀態(tài)轉(zhuǎn)換觸發(fā)條件自由態(tài)-提交態(tài)制單后通過(guò)執(zhí)行單據(jù)動(dòng)作SAVE/EDIT將單據(jù)送審。提交態(tài)-進(jìn)行中送審后只要有人已審核,即為進(jìn)行中進(jìn)行中-完成態(tài)流程實(shí)例按照定義一步步審批,直至正常流轉(zhuǎn)結(jié)束。完成態(tài)-自由態(tài)一棄到底自由態(tài)-完成態(tài)提交
39、即審批通過(guò)完成態(tài)-進(jìn)行中逐級(jí)棄審提交態(tài)-自由態(tài)駁回到制單人進(jìn)行中-自由態(tài)1 駁回到制單人;2 流程流轉(zhuǎn)到制單活動(dòng);3 第一個(gè)審批人棄審在各個(gè)狀態(tài)下對(duì)單據(jù)的業(yè)務(wù)處理(比如是否可刪除、是否可編輯等)由業(yè)務(wù)組自己控制。流程正常結(jié)束時(shí),單據(jù)如果審批通過(guò),會(huì)給制單人發(fā)送“審批通過(guò)”的通知消息;單據(jù)如果審批不通過(guò),則給參與流程的所有人員發(fā)送“審批不通過(guò)”的通知消息。3.4 反向流轉(zhuǎn)工作流引擎支持兩種反向流轉(zhuǎn)模式:駁回和棄審。駁回是審批人直接將單據(jù)退回到制單人,導(dǎo)致單據(jù)處于自由態(tài),但流程實(shí)例仍運(yùn)行中。制單人收到駁回工作項(xiàng),雙擊可打開(kāi)單據(jù)UI。制單人修單后提交,不會(huì)新啟實(shí)例,但會(huì)重新產(chǎn)生工作項(xiàng);若是其他人修單
40、(更改了制單人),如果找到審批流定義,則新啟實(shí)例,刪除舊實(shí)例。如果找不到審批流定義,則刪除舊實(shí)例,走直批模式。棄審是審批人審批完成后,再撤銷自己的操作。有兩種棄審模式:逐級(jí)棄審和一棄到底,這由單據(jù)VO是否實(shí)現(xiàn)了逐級(jí)棄審接口(參見(jiàn)第三章4.6.3節(jié))來(lái)決定。棄審是通過(guò)調(diào)用“UNAPPROVE”動(dòng)作來(lái)實(shí)現(xiàn)的,具有特殊的動(dòng)作腳本(參見(jiàn)第三章4.4節(jié))。第一個(gè)審批人棄審會(huì)將單據(jù)置為自由態(tài)。修單后再提交,會(huì)新啟實(shí)例,舊實(shí)例被刪除。必須在單據(jù)審批完成后才可一棄到底,一棄到底將單據(jù)置為自由態(tài),但不會(huì)向制單人發(fā)送通知消息,修單后再提交不會(huì)新啟實(shí)例。3.5 流程監(jiān)控對(duì)于系統(tǒng)中運(yùn)行的審批流程實(shí)例,可監(jiān)控它們現(xiàn)在所
41、處的狀態(tài),并強(qiáng)制終止。同時(shí)還可查詢到某單據(jù)的審批狀態(tài)。當(dāng)前操作員可查詢的審批記錄受審批查詢權(quán)限(由審批流用戶管理功能節(jié)點(diǎn)維護(hù))的限制。圖 28單據(jù)審批情況查詢圖 29流程圖與審批情況3.6 短信審批NC系統(tǒng)產(chǎn)生的各種消息可通過(guò)短消息方式發(fā)送到手機(jī)用戶,并且用戶可通過(guò)回復(fù)的方式直接對(duì)單據(jù)進(jìn)行審批,以及其他的業(yè)務(wù)處理。審批流運(yùn)轉(zhuǎn)過(guò)程中會(huì)為流程中的不同用戶產(chǎn)生工作項(xiàng)。這些任務(wù)項(xiàng)可以通過(guò)短信方式發(fā)送給對(duì)應(yīng)用戶(可配置是否需要這樣發(fā)送)。用戶可回復(fù)類似“-p ? N 不同意,金額過(guò)大?!被颉癗 不同意,金額過(guò)大。”的審批指令,NC系統(tǒng)會(huì)調(diào)用審批插件進(jìn)行后臺(tái)的審批處理。注意,由于后臺(tái)審批沒(méi)有前臺(tái)交互,所以
42、不支持“指派”特性。具體的實(shí)現(xiàn)細(xì)節(jié)可參考附錄。4. 消息中心消息中心是用戶與流程平臺(tái)、預(yù)警平臺(tái)進(jìn)行交互的主界面,也是用戶開(kāi)展工作的基礎(chǔ)。V5消息中心的需求來(lái)源于易用性小組以及NC產(chǎn)品自身的發(fā)展。4.1 展現(xiàn)整個(gè)消息中心分為上中下三欄,每欄都可最大化。分別是公告欄、待辦事務(wù)欄、預(yù)警消息欄。圖 30消息中心所有欄目均使用表格UITable展現(xiàn)。除了UITable內(nèi)置的定位功能和雙擊表頭排序功能,還提供表格樣式設(shè)置功能。包括:1. 設(shè)置列寬度、列順序;2. 設(shè)置顯示隱藏列;3. 設(shè)置表格行列分割線的隱藏;4. 設(shè)置表頭的隱藏;5. 設(shè)置三欄的區(qū)域分配比例。圖 31設(shè)置表格樣式圖 32設(shè)置消息刷新間隔
43、和欄目大小分配比例消息中心的三個(gè)欄目還提供類似查詢模板的查詢過(guò)濾功能(過(guò)濾器,或叫篩選器)。比如:1. 按照優(yōu)先級(jí)過(guò)濾;2. 按照消息狀態(tài)過(guò)濾;3. 按照主題模糊匹配;4. 按照發(fā)送人過(guò)濾;5. 按照發(fā)送日期或處理日期過(guò)濾。注意:這里的過(guò)濾屬于前臺(tái)過(guò)濾功能,即只對(duì)當(dāng)前客戶端中已有的消息過(guò)濾。圖 33消息篩選過(guò)濾界面這些表格樣式和過(guò)濾器保存在每個(gè)客戶端的用戶緩存中,以維持多次登錄的一致性。4.2 消息類型1. 公告消息可由任何人看到的消息,分為集團(tuán)所有用戶可見(jiàn)和公司所有用戶可見(jiàn)兩種。顯示在公告欄。2. P2P對(duì)發(fā)消息某人向另外一人直接發(fā)送的消息。顯示在公告欄。3. 審批流工作項(xiàng)審批流平臺(tái)產(chǎn)生的需
44、要業(yè)務(wù)處理的工作項(xiàng)。同時(shí)包括審批通過(guò)、不通過(guò)、駁回后給制單人發(fā)送的消息。顯示在待辦事務(wù)欄。4. 業(yè)務(wù)流工作項(xiàng)業(yè)務(wù)流平臺(tái)產(chǎn)生的需要業(yè)務(wù)處理的推拉式消息。顯示在待辦事務(wù)欄。5. 通知消息不需要業(yè)務(wù)處理的普通消息。審批流消息配置產(chǎn)生的消息以及業(yè)務(wù)代碼產(chǎn)生的一些消息。顯示在待辦事務(wù)欄。6. 預(yù)警消息預(yù)警平臺(tái)產(chǎn)生的預(yù)警消息。顯示在預(yù)警消息欄。第三章 開(kāi)發(fā)規(guī)范1. 平臺(tái)緩存數(shù)據(jù)流程平臺(tái)在前后臺(tái)對(duì)一些頻繁訪問(wèn)且不經(jīng)常更新的數(shù)據(jù)都有緩存。詳細(xì)可參考PfDataCache和PfUIDataCache類的Javadoc文檔。前臺(tái)緩存:基本檔案表bd_bdinfo的緩存,獲取方法:/*返回基本檔案VO*/Based
45、ocVO nc.ui.pf.pub.PfUIDataCache.getBdinfo( String strPk) /主鍵PK單據(jù)類型對(duì)照信息表pub_billtobillrefer的緩存,獲取方法:/*返回單據(jù)類型相互參照VO*/BilltobillreferVO nc.ui.pf.pub.PfUIDataCache.getBillInfo( String currentBillType, /目的單據(jù)類型PK String billType) /源單據(jù)類型PK單據(jù)VO對(duì)照表pub_votable的緩存,獲取方法:/*返回該單據(jù)類型主表的PK字段名*/String nc.ui.pf.pub.Pf
46、UIDataCache.getBillPK( String billType) /單據(jù)類型PK單據(jù)類型表bd_billtype的緩存,獲取方法:/*返回單據(jù)類型VO*/BilltypeVO nc.ui.pf.pub.PfUIDataCache.getBillType( String billType) /單據(jù)類型PK幣種信息表bd_currtype的緩存,獲取方法:/*返回幣種VO*/CurrtypeVO nc.ui.pf.pub.PfUIDataCache.getCurrType( String strPk) /幣種的PK后臺(tái)緩存:?jiǎn)螕?jù)類型參照信息表pub_billtobillrefer的緩
47、存,獲取方法:/*返回單據(jù)類型相互參照VO*/BilltobillreferVO nc.bs.pf.pub.PfDataCache.getBilltoBillRefer( String billType, /目的單據(jù)類型PK String sourceBillType) /源單據(jù)類型PK單據(jù)VO對(duì)照表pub_votable的緩存,獲取方法:/*返回單據(jù)類型對(duì)照VO*/VotableVO nc.bs.pf.pub.PfDataCache.getBillTypeToVO( String pk_billType, /單據(jù)類型PK boolean isMain, /是否為主表VO String ite
48、mCode) /廢棄參數(shù)單據(jù)類型表bd_billtype的緩存,獲取方法:/*返回單據(jù)類型VO*/BilltypeVO nc.bs.pf.pub.PfDataCache.getBillTypeInfo(String dataSource, /數(shù)據(jù)源名稱String billType) /單據(jù)類型PK2. 動(dòng)作處理動(dòng)作處理時(shí)序圖1:圖 34非審批類動(dòng)作處理動(dòng)作處理時(shí)序圖2:圖 35審批類動(dòng)作處理2.1 UI端調(diào)用-PfUtilClient1 單據(jù)動(dòng)作處理(非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 判斷是否進(jìn)行動(dòng)作前提示2 動(dòng)作執(zhí)行前的事前處理 3 如果是新增單據(jù)后保存(動(dòng)作為SAVE),或修改單據(jù)后保存(動(dòng)作為SAVE或EDIT),則可能需要指派信息 4 后臺(tái)執(zhí)行動(dòng)作處理- PfUtilBO.processAction()5 如果動(dòng)作
50、執(zhí)行的返回值為IProcActionRetObject,則進(jìn)行事后前臺(tái)處理 6 如果上述過(guò)程發(fā)生異常,且異常為IPfRetException,則判斷異常是否需要進(jìn)行業(yè)務(wù)處理后繼續(xù)執(zhí)行事后處理 7 判斷返回對(duì)象是否為PfUtilActionVO,然后前臺(tái)顯示參數(shù)說(shuō)明:參數(shù)名含義及取值parent父UI容器actionName動(dòng)作編碼,比如“SAVE”、“EDIT”billType單據(jù)類型PK,比如“D2”currentDate處理時(shí)間vo單據(jù)聚合VOuserObj用戶自定義對(duì)象strBeforeUIClassUI端數(shù)據(jù)校驗(yàn)類checkVo待校驗(yàn)聚合VO,如果為null,則checkVo=vo2
51、單據(jù)動(dòng)作處理,但不啟動(dòng)審批流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 判斷是否進(jìn)行動(dòng)作前提示2 動(dòng)作執(zhí)行前的事前處理 3 后臺(tái)執(zhí)行
52、動(dòng)作處理-PfUtilBO.processAction()4 如果動(dòng)作執(zhí)行的返回值為IProcActionRetObject,則進(jìn)行事后前臺(tái)處理 5 如果上述過(guò)程發(fā)生異常,且異常為IPfRetException,則判斷異常是否需要進(jìn)行業(yè)務(wù)處理后繼續(xù)執(zhí)行事后處理 6 判斷返回對(duì)象是否為PfUtilActionVO,然后前臺(tái)顯示參數(shù)說(shuō)明:參數(shù)名含義及取值parent父UI容器actionName動(dòng)作編碼,比如“SAVE”、“EDIT”。但不可為“APPROVE”billType單據(jù)類型PK,比如“D2”currentDate處理時(shí)間vo單據(jù)聚合VOuserObj用戶自定義對(duì)象strBeforeUIClassUI端數(shù)據(jù)校驗(yàn)類checkVo待校驗(yàn)聚合VO,如果為null,則checkVo=vo3 單據(jù)動(dòng)作處理(APPROVE)Object nc.ui.pub.pf.PfUtilCcessActionFlow(Container parent, String actionName, String billType, String currentDate, AggregatedValueObject vo, Object userObj, String strBeforeUIClass) throws Exception功能:1 判斷是否進(jìn)行動(dòng)作前提示 2 動(dòng)作執(zhí)行前的事前
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房產(chǎn)銷售合作協(xié)議
- 工藝品訂購(gòu)合同范本
- 建筑工程內(nèi)部承包經(jīng)營(yíng)合同案例
- 大學(xué)生就業(yè)協(xié)議范本
- 建筑施工合同模板 工程合同范本
- 職工待崗協(xié)議2024年
- 建筑施工隊(duì)臨時(shí)工合同
- 蘇教版小學(xué)數(shù)學(xué)四年級(jí)下冊(cè)《用數(shù)對(duì)確定位置》公開(kāi)課說(shuō)課課件
- 2024職業(yè)培訓(xùn)合作協(xié)議
- 園林工程結(jié)算合同樣本
- 2024內(nèi)蒙古阿拉善盟“智匯駝鄉(xiāng)鴻雁歸巢”引進(jìn)高學(xué)歷人才49人筆試模擬試題及答案解析
- 《創(chuàng)想候車亭》課件2024-2025學(xué)年嶺美版(2024)初中美術(shù)七年級(jí)上冊(cè)
- 安全環(huán)保職業(yè)健康法律法規(guī)清單2024年
- 2024-2025學(xué)年滬科版數(shù)學(xué)八年級(jí)上冊(cè)期中質(zhì)量檢測(cè)試題
- 地 理《世界的地形》第一課時(shí)課件-2024-2025學(xué)年人教版七年級(jí)地理上冊(cè)
- 第四單元《簡(jiǎn)單加、減法》(教學(xué)設(shè)計(jì))-2024-2025學(xué)年一年級(jí)上冊(cè)數(shù)學(xué)人教版
- 北師大版數(shù)學(xué)一年級(jí)上冊(cè)期中考試試題
- 第4單元表內(nèi)除法(一)應(yīng)用題(專項(xiàng)訓(xùn)練)-2024-2025學(xué)年二年級(jí)上冊(cè)數(shù)學(xué)蘇教版
- 醫(yī)院信息管理系統(tǒng)數(shù)據(jù)備份與恢復(fù)手冊(cè)
- 2023年云南省紅河州同舟社會(huì)工作服務(wù)中心招聘筆試真題
- 部編(統(tǒng)編)人教版七年級(jí)語(yǔ)文上冊(cè)教學(xué)計(jì)劃(含教學(xué)進(jìn)度表)
評(píng)論
0/150
提交評(píng)論