第一篇:工作流與AO系統(tǒng)
OA系統(tǒng)與工作流
隨著網(wǎng)絡的日益普及和全球信息化進程的發(fā)展,InternetPIntranet技術(shù)及其應用給我們工作和日常生活各個方面帶來了深刻的影響,傳統(tǒng)的辦公方式正面臨嚴峻的挑戰(zhàn)。各單位都希望能夠擁有一個能真正滿足本單位實際工作需要的辦公自動化系統(tǒng),以提高工作效率,降低辦公成本。以工作流為核心的OA 系統(tǒng),已成為當前OA 系統(tǒng)的主流,逐漸受到政企辦公部門和軟件開發(fā)商的重視。1 概念闡述 1.1 辦公自動化
簡稱OA(Office Automation),意為辦公信息處理的自動化。它是指應用各種信息技術(shù)和集成技術(shù),充分有效地利用信息,完成各種辦公業(yè)務,提高辦公效率和辦公質(zhì)量,實現(xiàn)多種資源的共享。辦公自動化系統(tǒng)經(jīng)歷了兩個發(fā)展階段。第一個階段是單機型辦公自動化系統(tǒng),它以OFFICE 等應用軟件及傳統(tǒng)的MIS 系統(tǒng)為代表。第二階段是以網(wǎng)絡為基礎,工作流為中心的網(wǎng)絡協(xié)同工作型辦公自動化系統(tǒng)。目前正在進行知識管理型辦公自動化系統(tǒng)的研究和探索。1.2 工作流及工作流管理系統(tǒng) 1.2.1 工作流
工作流(Work Flow)的概念起源于生產(chǎn)組織和辦公自動化領域。它是針對日常工作中具有固定程序的活動而提出的一個概念,其目的是通過將一個具體的工作分解成多個任務、角色,按照一定的規(guī)則和過程,約束與監(jiān)控這些任務的執(zhí)行,從而提高企業(yè)生產(chǎn)經(jīng)營管理水平。根據(jù)WfMC(工作流管理聯(lián)盟)的定義:工作流是一類能夠完全或者部分自動執(zhí)行的經(jīng)營過程,它根據(jù)一系列過程規(guī)則、文檔、信息或任務能夠在不同的執(zhí)行者之間進行傳遞與執(zhí)行。簡單地說,工作流就是一系列相互銜接、自動進行的業(yè)務活動或任務。一個工作流包括一組活動及它們的相互順序關系,還包括過程及活動的啟動和終止條件,以及對每個活動的描述。工作流系統(tǒng)是以規(guī)格化的流程描述作為輸入的軟件組件,它維護流程的運行狀態(tài),并在人和應用之間分派活動。
1.2.2 工作流管理系統(tǒng)
工作流管理系統(tǒng)是支撐工作流的相應軟件系統(tǒng),根據(jù)WfMC的定義,工作流管理系統(tǒng)是“一種在工作流形式化表示的驅(qū)動下,通過軟件的執(zhí)行而完成工作流定義、管理及執(zhí)行的系統(tǒng)?!卑凑諅鹘y(tǒng)的時空分類法,工作流管理系統(tǒng)屬于支持多人進行異地、異步協(xié)作的系統(tǒng)。工作流管理系統(tǒng)可以運行在一個或多個工作流引擎上,主要用于定義、實現(xiàn)和管理工作流運行。它與工作流執(zhí)行者(人、應用)交互,推進工作流實例的執(zhí)行,并監(jiān)控工作流的運行狀態(tài)。2 基于工作流技術(shù)的OA 系統(tǒng)模型
辦公自動化系統(tǒng)不僅要實現(xiàn)信息的采集和自動整理,而且應該能開發(fā)和利用信息輔助管理層進行科學決策。因此,辦公自動化系統(tǒng)必須是一個綜合的,且具備多種辦公信息處理功能的系統(tǒng)。辦公自動化系統(tǒng)需要單位內(nèi)部的領導人員、行政管理人員、文秘人員、專業(yè)人員的共同參與。辦公室的工作種類繁多,有信息錄入、收發(fā)文件、文件編輯、人事管理、文件及信函歸檔和查詢、郵件發(fā)送、會議安排、個人、部門及領導日程安排和接待管理等。它的特點是一項工作一般由多個辦公人員協(xié)作完成,并且他們之間具有一定的辦公流程。按工作流管理的概念來分析,每項工作都由一個任務集和任務之間的流程關系組成。任務集是獨立的工作項集合,分別由特定的人員或機構(gòu)來處理;任務之間的流程關系是文檔對象的傳遞和處理關系。2.1 OA 系統(tǒng)模型
根據(jù)學校日常辦公的特點和實際需求,我們提出了一個基于工作流技術(shù)的OA 系統(tǒng)模型,如圖所示:
整個系統(tǒng)由公文管理、信息發(fā)布管理、工作日程管理、資源使用管理模塊、文件檔案管理、郵件管理、系統(tǒng)管理及自定義工作流管理等模塊構(gòu)成。各模塊既各自獨立,又相互依存,組合成一個有機的整體。2.2 公文管理模塊
公文流轉(zhuǎn)是辦公系統(tǒng)的核心,公文管理可分為收文管理和發(fā)文管理兩大功能,其中包括公文查詢和歸檔處理。采用數(shù)據(jù)庫模式實現(xiàn)內(nèi)部公文的收發(fā),保證了對公文流轉(zhuǎn)的有效控制。2.2.1 收文管理
實現(xiàn)收文、登記、處理、查詢、歸檔。實現(xiàn)對公文分類、標識信息(包括標題、種類、緩急、密級、收文字號、主題詞、收文機關、發(fā)往單位、印發(fā)時間、生效時間、承辦人等)的登記;批示和處理情況登記;查閱收文辦理情況,包括經(jīng)手的領導、部門名單、收文時間,相應的處理意見等;按歸檔要求對收文進行立卷登記或銷毀登記。2.2.2 發(fā)文管理
實現(xiàn)發(fā)文、處理、查詢、歸檔。包括設定發(fā)文題目及發(fā)文負責人,填寫發(fā)文擬稿紙,草擬文件內(nèi)容,領導對草擬文件內(nèi)容審核、批示意見, 有關領導對發(fā)文稿進行會簽并簽發(fā), 對正式發(fā)文稿進行校對,按要求查閱需要使用的公文內(nèi)容,按歸檔要求對發(fā)文進行立卷登記或銷毀登記等工作。92 2.3 信息發(fā)布和交流建立一個內(nèi)部信息管理系統(tǒng),實現(xiàn)內(nèi)部信息采集、編輯與發(fā)布,以達到信息集中、高效的管理。該模塊為用戶提供了大量實用的信息發(fā)布與共享功能,包括:新聞通告、交流園地(BBS)、留言本、征求意見等。其中,新聞通告的發(fā)布需要通過相關部門的審核,通過審核則自動發(fā)布在學校網(wǎng)站(主頁)上,沒有通過則限于OA 中瀏覽。2.4 自定義流程管理模塊 可以進行自定義工作流程的規(guī)劃和設立,工作流自定義包括定義整個流程的名稱、所屬類別、流程適用范圍、流程權(quán)限等;定義流程中各個環(huán)節(jié)的名稱、辦理方式、辦理人員、辦理權(quán)限等。對于常用、固定工作流程,系統(tǒng)預先加以定義形成工作流模板,供用戶使用;并允許用戶自定義工作流程模板。自定義流程管理模塊還承擔對工作流項目的協(xié)調(diào)管理工作。從一個工作流的啟動,到各個工作步驟流轉(zhuǎn),直到工作流結(jié)束的整個過程中,自定義流程管理模塊可以按照規(guī)則自動選擇下一步工作的接管人,管理工作附件及流程進展信息。相關工作流之間可以互相協(xié)調(diào),例如一個工作流的完成是另一個工作流的開始觸發(fā)條件。2.5 文件檔案管理
本模塊主要是對單位的文件、案卷及重要信息(新聞)等電子文檔資料進行歸檔及管理,并提供多種查詢方式,供用戶根據(jù)權(quán)限查詢和閱讀。常用文檔可以收入自己的文件夾。2.6 系統(tǒng)管理模塊
此模塊定義了系統(tǒng)管理員、部門管理員及各類用戶的各種不同權(quán)限, 實現(xiàn)了用戶層次化的管理。用戶權(quán)限的設置可以使各級、各類用戶有不同的權(quán)限,在用戶登陸系統(tǒng)后,可以使用相應的系統(tǒng)功能。添加部門或用戶、用戶的權(quán)限設置、系統(tǒng)各類工作流模板等系統(tǒng)設置均在此模塊中完成。
2.7 系統(tǒng)其他模塊簡述
系統(tǒng)還提供了郵件管理、工作日程安排、資源使用管理模塊等。其中郵件管理可以提供校內(nèi)用戶相互傳送信息,并可以傳輸文檔附件。工作日程安排設學校工作安排、部門工作安排及個人工作安排三個層次的模塊,并根據(jù)工作日程安排的需要(側(cè)重點)設置重要提醒;資源使用管理可以對公用資源(如汽車、會議室等)進行統(tǒng)一分配和管理,提高資源的利用率。3 OA 系統(tǒng)結(jié)構(gòu)級運行架構(gòu)
采用BPS 網(wǎng)絡體系結(jié)構(gòu),軟件的安裝只在服務器端進行,客戶端實現(xiàn)零安裝。所有系統(tǒng)管理及升級只在服務器端進行,各個客戶端無需任何設定。網(wǎng)絡的數(shù)據(jù)庫,使用基于MICROSOFT WIN2000Server 的SQL Server 2000。整個系統(tǒng)用Visua l Stu2dio.NET 開發(fā),ASP.NET 技術(shù)框架,實現(xiàn)語言采用C# 或VB.NET語言。要求客戶端使用WIN98 或以上版本,瀏覽器要求IE6.0 以上。開發(fā)過程中有關問題的探討
4.1 重視分析現(xiàn)有工作流程,抽象出適用的工作流辦公處理過程有它的隨意性和不可預測性。開發(fā)一個成功的OA 系統(tǒng)不但受到技術(shù)因素的制約,還會受到傳統(tǒng)模式和相關人員整體素質(zhì)的挑戰(zhàn)。系統(tǒng)開發(fā)前期必須做好系統(tǒng)的需求分析工作,首先,明確組織結(jié)構(gòu)、業(yè)務劃分和具體業(yè)務處理過程,及其處理過程的數(shù)據(jù)來源及流向。實際的工作流錯綜復雜,要實現(xiàn)軟件模塊的原子化和系統(tǒng)的自組織性必須使軟件系統(tǒng)模塊與具體的處室、人員無關。這就要求我們在對現(xiàn)有的組織機構(gòu)、每個工作的工作過程、活動內(nèi)容、數(shù)據(jù)來源、數(shù)據(jù)去向及約束性等進行細致分析的基礎上對提取的工作流進行優(yōu)化,提取出與具體的組織機構(gòu)無關的工作流邏輯模 型。這樣,才能保證OA 系統(tǒng)的靈活性,才能適應單位組織機構(gòu)的不斷調(diào)整變化。這一優(yōu)化過程,不能受限于現(xiàn)有組織機構(gòu)及現(xiàn)在工作流程,不能局限于對現(xiàn)狀的簡單模擬。否則,輕則降低了系統(tǒng)的效率,重則會造成系統(tǒng)的開發(fā)失敗。辦公自動化是一場變革,是一個漸進的、潛移默化的過程,因而是長期的、持久的,不可能一勞永逸,更不可能花錢一買就得。必須加強對使用者的培訓,并獲得單位領導的理解與支持。4.2 系統(tǒng)安全性設計是貫徹開發(fā)過程的主線
由于OA 系統(tǒng)使用人員構(gòu)成復雜,涉及數(shù)據(jù)一般比較敏感,所以系統(tǒng)的安全至關重要。本系統(tǒng)主
要通過下列兩種方式進行安全管理:(1)每個用戶都要經(jīng)過嚴格的身份認證。系統(tǒng)在進入每個頁面時都要檢查當前用戶的狀態(tài)。(2)通過用戶權(quán)限設置,保證系統(tǒng)信息安全。只有經(jīng)過授權(quán)才能使用相應的功能。本系統(tǒng)在權(quán)限進行分配時,引入了系統(tǒng)權(quán)限和工作流權(quán)限兩類權(quán)限,可實現(xiàn)多級組織結(jié)構(gòu)和用戶多角色的權(quán)限分配機制。系統(tǒng)管理員同時擁有上述兩類權(quán)限的所有管理權(quán)限。基于單位的層級結(jié)構(gòu),在系統(tǒng)權(quán)限中分設管理員、部門級和員工級三個級別。其中管理員具有系統(tǒng)管理最高權(quán)限,如系統(tǒng)初始化、用戶管理等;部門級用戶有發(fā)布信息、管理自己發(fā)布的信息、管理本部門用戶等權(quán)限;員工級用戶則只擁有最基本的瀏覽信息權(quán)限。同時管理員可以修改任何用戶任何模塊的讀寫權(quán)限,部門級用戶可以把自己擁有的權(quán)限分配給下屬用戶。這意味著權(quán)限具有可繼承性和靈活性。在工作流執(zhí)行過程中,權(quán)限大小則是由用戶在工作流中所處的位置所決定,不受系統(tǒng)權(quán)限等級的限制。工作流發(fā)起者具有此項工作流的管理權(quán)限,可以察看工作流執(zhí)行狀態(tài)和修改工作流,工作流的其他參與者只具有與自己工作相關的權(quán)限。另外,數(shù)據(jù)加密、數(shù)據(jù)的及時備份、系統(tǒng)日志等安全技術(shù)也被采用,以加強安全性。BPS 結(jié)構(gòu)由于不需要安裝客戶端,很難做到高等級的安全防護。為此,針對一些特殊應用,系統(tǒng)采取了IP 地址與用戶名綁定的措施,限制一些高等級操作。部分采用CPS 結(jié)構(gòu)可能是更好的選擇。4.3 友好的用戶界面、操作快捷方便是系統(tǒng)開發(fā)取得成功的重要因素直接用戶滿意度是衡量一個系統(tǒng)是否成功的重要指標,功能完備、使用方便是直接用戶最為關心的主要問題。為此,可在以下幾個方面加以注意:(1)應盡量采用圖形化、表格化的用戶界面;(2)設計過程中注意操作的簡便性,在統(tǒng)一的界面上,充分考慮信息流程和用戶的原有操作習慣,減輕用戶的重新學習負擔;(3)設置方便快捷的查詢體系,增強用戶對系統(tǒng)的依賴性;(4)通過多種提醒方式,實現(xiàn)實時通知,可以保證辦公工作流的正常流轉(zhuǎn)。實時通信是目前辦公系統(tǒng)發(fā)展的一個方向。本系統(tǒng)設置了系統(tǒng)啟動時提醒、定時提醒、郵件提醒等多種提醒方式。如果能實現(xiàn)手機短信、外部郵件提醒,對于外出人員及時了解工作進展,將有極大的幫助。與類似騰訊TM 之類的實時通信軟件相結(jié)合,可進一步提高系統(tǒng)的實時信息處理能力,簡化系統(tǒng)開發(fā)。
4.4 在信息集成環(huán)境下的OA 系統(tǒng),不是孤立的系統(tǒng),在其設計與實施過程中,要注意從整體和集成的角度加以考慮,做好和各類已有系統(tǒng)的集成工作一般學校都有教務管理、人事管理、財務管理、圖書管理等多種管理信息系統(tǒng),這些系統(tǒng)相當一部分可能是專用系統(tǒng)。如何實現(xiàn)與這些系統(tǒng)的信息共享,是OA 系統(tǒng)設計必須解決的問題。對于已有系統(tǒng),可通過各系統(tǒng)的數(shù)據(jù)導入、導出功能實現(xiàn)與本系統(tǒng)的數(shù)據(jù)交換,對于今后可能建立的系統(tǒng),應預留數(shù)據(jù)轉(zhuǎn)換接口。在數(shù)據(jù)庫設計時,應給予更多的考慮。4.5 需要進一步研究的問題
4.5.1 修改痕跡的保留辦公數(shù)據(jù)在流轉(zhuǎn)過程中,可能會涉及多人對文件的修改。工作流處理過程中如何保留文件修改痕跡,是一個難題。保留修改痕跡,可以通過使用系統(tǒng)專用文本編輯器、集成OFFICE 類軟件等方式解決。使用系統(tǒng)專用文本編輯器,雖然可以有效地解決痕跡保留的問題,但是設計開發(fā)難度較大、可能和用戶的原有操作習慣不一致,且存在與日常通用文檔的數(shù)據(jù)兼容問題,所以使用范圍受到一定的限制。集成OFFICE 類軟件,直接處理WPS、DOC、XLS、PDF 類文本,可以較好的克服使用專用文本編輯器所帶來的缺陷,但是修改痕跡可能被非授權(quán)地破壞。如何有效保留修改痕跡,需要進一步加以研究、解決。4.5.2 信息有效性的確認
信息的有效性體現(xiàn)在保證重要數(shù)據(jù)是真實有效的,可以認為是數(shù)據(jù)的源是真實有效的,比如校長辦公室發(fā)布一條消息,OA 系統(tǒng)關心的是這條消息是不是校長辦公室所擁有的賬號發(fā)布的,發(fā)布后有沒有被修改。當然可以通過加強賬號和口令的管理,但更可靠的方法是通過數(shù)字簽名等加以確認。已發(fā)布的數(shù)字簽名法并沒有具體限定未來網(wǎng)上簽名使用何種模式。目前使用的數(shù)字簽名主要有三種模式:智慧卡式、密碼式、生物測定式,無論哪種方法都涉及硬件的投入問題。自主開發(fā)數(shù)字簽名的難度很大。5 結(jié)語
本文給出的基于工作流管理技術(shù)和采用BPS 結(jié)構(gòu)的OA 系統(tǒng)設計方案,能夠通過InternetPIntranet進行辦公業(yè)務處理,提供規(guī)范、靈活的辦公流程管理,具有功能齊全、使用方便、安全性好、可靠性高等特點,并已得到實際應用。智能化決策、網(wǎng)絡協(xié)同辦公已經(jīng)成為現(xiàn)代化管理的趨勢,基于工作流的網(wǎng)絡OA辦公系統(tǒng)將發(fā)揮越來越大的作用。
第二篇:UCML工作流系統(tǒng)與現(xiàn)有應用系統(tǒng)集成
The best solution for how to develop WEB application on.Net quickly and efficiently
UCML工作流系統(tǒng)與現(xiàn)有應用系統(tǒng)
集成實現(xiàn)方案說明
金富瑞(北京)科技有限公司
Goldframe Technologies Co., Ltd.一 總體說明
UCML.Net工作流系統(tǒng)是國內(nèi)領先的工作流平臺,涵蓋了從流程開發(fā)、發(fā)布、管理配置到運行、監(jiān)控的整個過程。UCML工作流系統(tǒng)主要包括可視化的流程設計環(huán)境、獨立的工作流引擎服務、WEB客戶端管理、可視化的流程監(jiān)控、流程套路生產(chǎn)線幾個部分,是.Net領域用戶最多,覆蓋面最廣的工作流平臺。
一方面,UCML工作流系統(tǒng)與UCML平臺其它部分(業(yè)務單元開發(fā),Web報表)無縫集成,可以完成復雜的業(yè)務處理及流程流轉(zhuǎn);另一方面,UCML工作流系統(tǒng)與業(yè)務之間采用松耦合設計,不僅可以與UCML業(yè)務系統(tǒng)集成,還可以與其它現(xiàn)成的應用系統(tǒng)實現(xiàn)無縫集成。
UCML工作流在與其它應用系統(tǒng)集成時,一般有兩種方式: 第一種:保留UCML現(xiàn)有的組織機構(gòu)、用戶及權(quán)限體系
第二種:完全屏蔽UCML提供的組織機構(gòu)、用戶及權(quán)限體系,完全采用客戶原有的組織機構(gòu)權(quán)限體系。
對于第一種方式,需要另外實現(xiàn)UCML系統(tǒng)與客戶現(xiàn)有應用系統(tǒng)之間的數(shù)據(jù)同步,具體方法可采用程序同步方式,在這里就不詳細介紹了。
下面主要介紹一下采用第二種方式時的處理方法。二 UCML Workflow會話編程接口
UCML Workflow 提供了WorkFlow.WorkFlowSession會話類來訪問工作流引擎, WorkFlow.WorkFlowSession以.Net Remoting服務形式形式存在于工作流引擎的獨立進程中,客戶端可以創(chuàng)建WorkFlow.WorkFlowSession的Client端來來調(diào)用服務端的接口。
?
創(chuàng)建工作流會話對象
WorkFlow.WorkFlowSession
FlowSession
=(WorkFlow.WorkFlowSession)Activator.GetObject(typeof(WorkFlow.WorkFlowSession), “tcp://”+WorkFlow.UCMLInitEnv.WorkflowEngineAddr+“:”+WorkFlow.UCMLInitEnv.WorkflowEnginePort+“/WorkFlowSession”);
?
程序啟動工作流程
public Guid CreateInstance(string FlowID,Object UserOID,Object PostnOID, Object DivisionOID,Object ORGOID, bool startNow)
通過調(diào)用CreateInstance函數(shù),可以啟動指定的工流程。
返回值:流程實例句柄。
參數(shù)名稱 FlowID UserOID PostnOID DivisionOID ORGOID startNow
類型 string Object Object Object Object Bool
參數(shù)說明
要啟動的流程編號
起動流程的用戶OID,實際類型為GUID 起動流程的員工OID,實際類型為GUID
起動流程的員工所在部門的OID,實際類型為GUID 起動流程的員工所在組織的OID,實際類型為GUID ==true 流程是馬上啟動; ==false 流程暫不啟動,要啟動流程需調(diào)用StartInstance函數(shù),這種情況一般用于在業(yè)務(如客戶訂單)提交成功后,先寫入訂單號到流程實例中,然后在啟動流程。
? 向流程全局數(shù)據(jù)寫入數(shù)據(jù)
public void WriteFlowData(string FlowID, Object InstanceID, string FieldName,Object Value)
參數(shù)名稱 FlowID InstanceID FieldName Value
類型 string Object string Object
參數(shù)說明
數(shù)據(jù)項所屬的流程編號
流程的實例句柄,實際類型為GUID 數(shù)據(jù)的屬性名稱 數(shù)據(jù)的屬性的值
?
從流程全局數(shù)據(jù)讀出數(shù)據(jù)
public Object ReadFlowData(string FlowID, Guid InstanceID, string FieldName)
返回值:讀取數(shù)據(jù)屬性的值
參數(shù)名稱 FlowID InstanceID FieldName
類型 string Object string
參數(shù)說明
數(shù)據(jù)項所屬的流程編號
流程的實例句柄,實際類型為GUID 數(shù)據(jù)的屬性名稱
?
向流程局部數(shù)據(jù)寫入數(shù)據(jù)
public void WriteActivityData(string FlowID, Guid InstanceID,string ActivityID, string FieldName,Object Value)
參數(shù)名稱 FlowID InstanceID ActivityID FieldName Value
類型 string Object string string Object
參數(shù)說明
數(shù)據(jù)項所屬的流程編號 流程的實例句柄,實際類型為GUID 活動節(jié)點的編號 數(shù)據(jù)的屬性名稱 數(shù)據(jù)的屬性的值
?
從流程局部數(shù)據(jù)讀出數(shù)據(jù)
public Object ReadActivityData(string FlowID, Guid InstanceID,string ActivityID, string FieldName)
返回值:讀取數(shù)據(jù)屬性的值
參數(shù)名稱 FlowID InstanceID ActivityID FieldName
類型 string Object string string
參數(shù)說明
數(shù)據(jù)項所屬的流程編號 流程的實例句柄,實際類型為GUID 活動節(jié)點的編號 數(shù)據(jù)的屬性名稱
?
完成已分配的任務
public string FinishTask(string strAssignTaskID)FinishTask代表設置已分配出去的任務已完成 返回值:提示信息
參數(shù)名稱 strAssignTaskID
類型 string
參數(shù)說明
分配任務的唯一標志號
?
設置任務結(jié)果及狀態(tài)
public void SetTaskResolution(Guid TaskID,TTaskResolution Resolution)
設置任務執(zhí)行結(jié)果,代表任務執(zhí)行完畢
參數(shù)名稱 類型 參數(shù)說明
TaskID Resolution
Guid
任務的Key值
TtaskResolution 任務的狀態(tài){UNRESOLVED,SUCCESS,FAIL,EXCEPTION} 含
義分別為{未處理,成功,失敗,異常}
? 編寫節(jié)點分支條件
UCML Workflow用abstract public class Transition類來描述一個分支條件
類屬性名稱 類型 可見度 屬性說明
TransResult
Boolean
protected
TransResult==true 則代表流程分支條成立
TransResult==false 則代表流程分支條不成成立
FromActivity
WorkFlowActivity
public
分支來源節(jié)點對象實例 ToActivity FlowModel
WorkFlowActivity WorkFlowModel的子類
public public
分支目標節(jié)點對象實例
其實是流程模型的實例對象,通過它可以訪問流程所有屬性(或狀態(tài))數(shù)據(jù)
方法名稱
類型
可見度 public
方法說明
virtual public bool OutgoingCondition()
在UCML Workflow里,節(jié)點的一條流出分支是否成立完全取決于這個函數(shù),編程人員員可以它的子類里編寫它的具體實現(xiàn)代碼,在編寫代碼時可以結(jié)合流程的狀態(tài)數(shù)據(jù)。在這函數(shù)中一定要設置TransResult的值,也就是說如果TransResult==true 分支成,否則分支不成立,也就不走這條分支。
IncomingCondition
bool
public
virtual public bool IncomingCondition()OutgoingCondition()bool
OutgoingCondition()這函數(shù)是在Transition的子類中已覆蓋函數(shù)形式實現(xiàn),在UCML環(huán)境里的流出條件編輯,就是實現(xiàn)此函數(shù)。如下圖示:
? 9.編程實現(xiàn)智能任務分配
wm_assign()-UCML Workflow提供回調(diào)函數(shù),為開發(fā)者提供完成復雜分配的可能,詳見回調(diào)函數(shù)接口
? 10.終止流程
方法名稱 Abort()
類型 void
可見度 public
方法說明
public void Abort(string FlowID, Guid InstanceID)終止某個流程實例
? 9.掛起流程
方法名稱 Pause()
類型 void
可見度 public
方法說明
public virtual void Pause()暫時掛起一個流程
? 10.喚醒流程
方法名稱 Resume()
類型 void
可見度 public
方法說明
public void Resume(string FlowID, Guid InstanceID)重新運轉(zhuǎn)流程
? 11.節(jié)點手動跳轉(zhuǎn)
方法名稱 GotoActivity()
類型 void
可見度 public
方法說明
public void GotoActivity(string FlowID, Guid InstanceID,string FromActivityID,string
ToActivityID,string Performers)作用 : 流程跳轉(zhuǎn) FlowID:流程ID
InstanceID:流程實例句柄 FromActivityID:來源活動名稱 ToActivityID:目標活動名稱 Performers:執(zhí)行人的群組串.? 回退任務
///
任務ID public void Rollback(Guid TaskID)? 回收任務
///
///
任務ID
? 獲取某個活動節(jié)點執(zhí)行人
///
/// 獲取某個活動節(jié)點執(zhí)行人
///
///
活動節(jié)點ID
///
? 獲取當前節(jié)點即將流向的目標節(jié)點,如果是并發(fā)輸出將會多個流向。用于在當前節(jié)點完成時,馬上選擇下一節(jié)點執(zhí)行人
///
/// 獲取當前節(jié)點即將流向的目標節(jié)點,如果是并發(fā)輸出將會多個流向
/// 用于在當前節(jié)點完成時,馬上選擇下一節(jié)點執(zhí)行人
///
///
流程ID
///
實例ID
///
活動ID
///
public string[] GetOutgoingActivitys(string FlowID, Guid InstanceID, string ActivityID)
? 獲取節(jié)點狀態(tài)
///
/// 獲取節(jié)點狀態(tài)
///
///
///
///
///
public int GetActivityStatus(string FlowID, Object InstanceID, string ActivityID)? 修改節(jié)點狀態(tài)
///
/// 修改節(jié)點狀態(tài)
///
///
///
///
///
public void ChangeActivityStatus(string FlowID, Object InstanceID, string ActivityID, int ActivityStatus)? 不結(jié)束當前節(jié)點,而激活下一節(jié)點
///
/// 不結(jié)束當前節(jié)點,而激活下一節(jié)點
///
///
流程ID
///
流程實例ID
///
流轉(zhuǎn)到活動ID
///
來自活動ID
///
流轉(zhuǎn)到活動節(jié)點執(zhí)行人
public void GotoActivityNotFinishTask(string FlowID, Guid InstanceID, string FromActivityID, string ToActivityID, string Performers)
? 完成已分配的任務,但不流轉(zhuǎn)
///
/// 完成已分配的任務,但不流轉(zhuǎn)
///
///
工作流活動節(jié)點對象
///
public string FinishTaskNotRun(WorkFlowActivity Activity)
? 加簽或者轉(zhuǎn)簽
///
流程ID ///
實例ID ///
任務ID ///
當前用戶OID ///
執(zhí)行人 ///
按照順序執(zhí)行 ///
true:加簽;false:轉(zhuǎn)簽 ///
///
消息類型 ///
消息內(nèi)容
public void AddSignPerformer(string FlowID, Guid InstanceID, Guid AssignTaskOID, Guid CurrentUserOID, string SignPerformers, bool fSignOneByeOne, bool InsertBefore, bool IsDeleteSigner,int MessageType,string MessageContent)
? 協(xié)辦或會簽
///
/// 協(xié)辦或會簽
///
///
流程ID
///
實例ID
///
任務ID
///
當前用戶OID
///
執(zhí)行人
///
消息類型
///
消息內(nèi)容
///
3:協(xié)辦;1:會簽
public void AssignSignPerformer(string FlowID, Guid InstanceID, Guid AssignTaskOID, Guid CurrentUserOID, string SignPerformers,int MessageType, string MessageContent,int TaskKind)
? 手工正常分配任務
///
///
public void MansualAssignTask(string TaskTicketOID,string Performer)? 分配參閱任務
///
///
public void MansualAssignReadTask(string TaskTicketOID,string Performer)? 悔簽任務,對在任務分配表AssignTask中acceptFlag置為1的標記設為4悔簽
悔簽
///
public void RepentSignforTask(string assignTaskID)? 任務跳回到執(zhí)行人
///
/// 任務跳回到執(zhí)行人
///
///
流程ID
///
流程實例句柄
///
節(jié)點ID
public void TaskReturn(string FlowID, Guid InstanceID, string ActivityID)
? 獲取某個已完成節(jié)點的執(zhí)行人
///
/// 獲取某個已完成節(jié)點的執(zhí)行人
///
///
流程ID
///
流程實例句柄
///
節(jié)點ID
///
public Guid[] GetExecuteUser(string FlowID, Guid InstanceID, string ActivityID)
? 喚醒已完成的任務
///
/// 喚醒已完成的任務
///
///
public void WakeFinishedAssignTask(string AssignTaskOID)? 12.任務超時處理及編程
UCML Workflow 的是否超時由下圖的完成期限和延長時間兩個屬性決定:
?
當完成期限不填內(nèi)容時,代表這個活動節(jié)點產(chǎn)生的任務沒有時間限制 延長時間代表完成期限倒了之后,還可以再延長多少時間
? 即將超時處理
當完成期限到了之后,會回調(diào)wm_willtimeout函數(shù),如果想在此時放個郵件通知或短信,就可在wm_willtimeout函數(shù)內(nèi)調(diào)用。
? 超時處理
同樣的當完成期限到了之后,如果有延長時間,而且延長時間也到了,會回調(diào)wm_deadline函數(shù),如果想在此時放個郵件通知或者短信,就可在wm_deadline函數(shù)內(nèi)調(diào)用。如下圖示:
?
如果任務在截止期限和延長時間內(nèi)都沒有完成,此時任務做超時處理,流程是繼續(xù)流轉(zhuǎn)還是停止由截止期限到達時系統(tǒng)行為這個屬性決定,如為SYNCHR(同步),則流程停在這里,如果為ASYNCHR(異步)則流程繼續(xù)流轉(zhuǎn)。
三 UCML工作流開放性介紹
UCML 引擎底層框架的基類源碼不開放,包括引擎調(diào)度代碼和流程類、活動類和分支類基類代碼。而根據(jù)定義可以直接生成引擎源碼都是開放的,可以在這些源碼的框架擴展時刻(回調(diào)函數(shù))之內(nèi)注入C#代碼來進行,如下面活動節(jié)點代碼的時刻函數(shù)
任務分配時刻函數(shù)
override public void wm_assign(Object taskTicketID,Object[] UserList,ref Object[] AssignUserList,ref int[] TaskKindList,Boolean reassignFlag){ } 任務分配后時刻函數(shù)
override public void wm_afterAssignTask(Object assignTaskID,Object UserOID){
base.wm_afterAssignTask(assignTaskID,UserOID);}
任務分配前時刻函數(shù)
override public void wm_beforeAssignTask(SysDBModel.AssignTaskInfo AssignTaskInfo){ }
任務完成時刻函數(shù)
override public void wm_afterTaskFinish(Object taskTicketID,TTaskResolution TaskResolution){ }
任務超時時刻函數(shù)
override public void wm_deadline(Object taskTicketID){ }
任務完成規(guī)則函數(shù)
override public bool wm_finishTaskRule(SysDBModel.TaskTicketInfo taskTicketInfo){
return false;} 任務創(chuàng)建函數(shù)
override public void wm_createTask(SysDBModel.TaskTicketInfo taskTicketInfo){ }
任務回滾前函數(shù)
override public void wm_beforerollback(Object taskTicketID){ } 任務回滾后函數(shù)
override public void wm_afterrollback(Object taskTicketID){ }
override public void wm_onactivate(){ }
override public void wm_willtimeout(SysDBModel.TaskTicketInfo taskTicketInfo){ }
override public bool wm_activityInComeCondi(){
return false;}
} }
四 集成方案
在采用客戶已有的人員權(quán)限體系時,主要用到UCML工作流系統(tǒng)的可視化流程設計環(huán)境、工作流引擎服務、工作流標準表結(jié)構(gòu)、流程API、可視化的流程監(jiān)控(可選)等。在集成時可能需要修改客戶已有的Web系統(tǒng)或表的結(jié)構(gòu),主要是修改以下地方: ? 修改人員信息表
? 引入流程接口(UCML工作流API)? 客戶登陸會話的改變
? 加入工作流引擎需要的初始化程序 ? 增加一個待辦事宜模塊
? 引入平臺中的可視化的流程監(jiān)控模塊(如果需要可視化流程監(jiān)控那么就需要引入)在平臺中主要有以下注意點: ? 在平臺中設計工作流模型 ? 添加流程狀態(tài)數(shù)據(jù)
? 在任務分配函數(shù)-wm_assign()中設置任務的執(zhí)行人 ? 修改人工節(jié)點上的業(yè)務標識符為為自己的頁面
1、?修改人員信息表
需要在客戶現(xiàn)有的用戶表(存儲登錄帳號、密碼表)中增加一個Guid類型的字段,這個字段的值唯一標記一個用戶,不影響客戶現(xiàn)有的應用體系,起到與UCML工作流銜接作用。
這個字段的字段名命名規(guī)范為:客戶表名+OID,即“客戶表名OID”,字段類型為GUID類型,在MSSQL Server中是Uniqueidentifier,Oracle中為VARCHAR類型。在客戶業(yè)務系統(tǒng)中客戶的登錄ID代表客戶的身份,如果整合中客戶表中有現(xiàn)存的數(shù)據(jù)需要手工給“客戶表名OID”賦值;另外,在增加用戶的程序中要同時給“客戶表名OID”賦值。
2、?引入流程接口(UCML工作流API)
? 在客戶現(xiàn)有系統(tǒng)的工程文件中引入UCML工作流API,并引用一個專門為第三方業(yè)務開發(fā)包裝的接口源程序WorkflowClient.cs。
? 相關工作流API:DBLayer.dll,SysDBModel.dll,UCMLBase.dll,WorkFlow.dll ? 把Workflowbin 目錄下的UCMLConf.xml,DBLayer.xml文件拷貝到客戶工程的bin目錄下,注意:如果不是在客戶工程的本機運行工作流引擎,則需要把UCMLConf.xml文件中引用工作流引擎地址的IP改為運行工作流引擎主機的IP地址。
3、?客戶登陸會話的改變
在用戶登陸的程序中,在取得用戶表中各項數(shù)據(jù)時,把用戶表中新增的字段也讀出來,并把該項也放入用戶登陸會話中。
4、?加入工作流引擎需要的初始化程序
在使用客戶的應用程序中與工作流引擎打交道之前的任意時刻加入如下程序: UCMLCommon.UCMLInitEnv.fInServer=true;UCMLCommon.UCMLInitEnv.LoadEnvVariable();new DBLayer.LogicDBModel();UCMLCommon.UCMLLogicDBModelApp x = new UCMLCommon.UCMLLogicDBModelApp();x.PrepareModel();
5、?增加一個待辦事宜模塊
待辦事宜也叫待辦任務。
需要客戶自己新增一個待辦事宜模塊,其數(shù)據(jù)來源是UCML提供的任務分配表AssignTask,開發(fā)者可根據(jù)記錄(任務)的完成與否狀態(tài)過濾數(shù)據(jù)到待辦任務模塊內(nèi)。
6、?引入平臺中的可視化的流程監(jiān)控模塊(如果需要可視化流程監(jiān)控那么就需要引入)
可視化流程監(jiān)控的頁面在平臺中的業(yè)務模塊是:BPO_FlowTrace 可以將BPO_FlowTrace相關文件拷貝到項目下: BPO_FlowTrace.aspx BPO_FlowTrace.aspx.cs BPO_FlowTrace.asmx BPO_FlowTrace.asmx.cs BPO_FlowTrace.htc
7、?在平臺中設計工作流模型
在平臺中設計工作流模型,可以參考“工作流設計手冊”。
8、?添加流程狀態(tài)數(shù)據(jù)
UCML工作流引擎和業(yè)務之間是松耦合處理模式,工作流和業(yè)務之間是通過流程狀態(tài)數(shù)據(jù)進行交互。
流程狀態(tài)數(shù)據(jù)是指工作流在運轉(zhuǎn)過程中流程流轉(zhuǎn)所需要的保存在流程實例中的數(shù)據(jù),一般有三類業(yè)務數(shù)據(jù)要保存在流程中,一是業(yè)務單據(jù)的關鍵字段,用它可以決定一個任務對應的業(yè)務單據(jù)號,在UCML里一般把表單主鍵存到流程里;二是決定流程分支走向的數(shù)據(jù),有可能是領導意見,也有可能是單據(jù)金額,這些數(shù)據(jù)是為了工作流引擎內(nèi)部調(diào)用的;三是流程執(zhí)行人信息。
流程和業(yè)務之間的狀態(tài)數(shù)據(jù)交互方法很簡單,如下所示:
寫入流程狀態(tài)數(shù)據(jù):即把業(yè)務的數(shù)據(jù)寫入到流程中去,調(diào)用的方法是WriteFlowData;
讀出流程狀態(tài)數(shù)據(jù):即把流程狀態(tài)讀出來賦給業(yè)務,調(diào)用的方法是ReadFlowData。寫入流程狀態(tài)數(shù)據(jù)一般在數(shù)據(jù)提交時進行,讀出流程狀態(tài)數(shù)據(jù)一般在初始化時進行,讀時可以把流程狀態(tài)數(shù)據(jù)賦給業(yè)務中的某個屬性,以方便業(yè)務中調(diào)用。
9、在任務分配函數(shù)-wm_assign()中設置任務的執(zhí)行人
在工作流中任務分配的方式有幾種:
通過群組配置分配任務
回調(diào)函數(shù)分配任務
手工執(zhí)行執(zhí)行人
由于組織機構(gòu)等均不采用平臺自帶的組織框架,所以無法采用“通過群組配置分配任務”的方式,只能采用“回調(diào)函數(shù)分配任務”或
10、自己實現(xiàn)執(zhí)行人群組解析接口,可以繼續(xù)使用基于配置的任務分配
基于流程模型的執(zhí)行人配置可以避免在wm_assign里寫程序做任務分配,但必須必需特定某個組織機構(gòu),在這個組織機構(gòu)基礎之上可以定義群組,來描述人員、部門和崗位集合,也可以定義相對執(zhí)行人如申請人的部門主管、申請人公司總經(jīng)理等,只要實現(xiàn)自己的群組解析接口,就可以自己的群組串配置UCML的工作流執(zhí)行人的字段里,就可以實現(xiàn)基于配置的任務分配實現(xiàn)步驟如下:
? 自定義類實現(xiàn)如下接口
public interface IGroupParser { Object[] UserOIDList(string GroupStr, Object Starter, Object StartPostn, Object StartDivision, Object StartORG, Object Performer, Object PerformerPostn, Object PerformerDivision, Object PerformerORG);Object[] UserOIDList(string GroupStr);}
///
群組字符串 ///
流程啟動者GUID /// 根據(jù)組定義獲取用戶列表
///
流程啟動崗位GUID ///
流程啟動部門GUID ///
流程啟動企業(yè)GUID ///
當前執(zhí)行人GUID ///
當前執(zhí)行人崗位GUID ///
當前執(zhí)行人部門GUID ///
當前執(zhí)行人企業(yè)GUID ///
1.自定義類實現(xiàn)如下接口
public interface IWorkDay { ///
/// ///
任務開始時間 ///
任務計劃用時,單位為秒 ///
任務執(zhí)行人OID ///
2.在UCMLCONF.XML文件里添加如下節(jié)點:
< fCustomWorkDay>true fCustomWorkDay> < WorkDayAssembly>dll名稱 WorkDayAssembly> < WorkDayClass>類名稱 WorkDayClass>
13、///
/// public interface IWorkFlowRuntime { ///
/// ///
工作流時刻切面接口
1.自定義類實現(xiàn)如下接口 ///
void OnCreateInstance(WorkFlowModel FlowInstance, DateTime CreateTime);///
/// ///
///
void OnFinishInstance(WorkFlowModel FlowInstance, DateTime EndTime);///
/// ///
///
void OnAbortInstance(WorkFlowModel FlowInstance, DateTime AbortTime);} ///
/// public interface IActivityRunTime { ///
/// ///
///
///
void OnCreateTask(WorkFlowModel FlowInstance, WorkFlowActivity Activity, DateTime CreateTime);///
/// ///
///
///
void OnFinishAssignTask(WorkFlowModel FlowInstance, WorkFlowActivity Activity, DateTime FinishTime);///
/// ///
///
///
void OnFinishTask(WorkFlowModel FlowInstance, WorkFlowActivity Activity, DateTime FinishTime);}
第三篇:工作流與信息流
工作流與信息流
工作流(Workflow)就是“業(yè)務過程的部分或整體在計算機應用環(huán)境下的自動化”,它主要解決的是“使在多個參與者之間按照某種預定義的規(guī)則傳遞文檔、信息或任務的過程自動進行,從而實現(xiàn)某個預期的業(yè)務目標,或者促使此目標的實現(xiàn)”。
簡單地說,工作流就是一系列相互銜接、自動進行的業(yè)務活動或任務。一個工作流包括一組任務(或活動)及它們的相互順序關系,還包括流程及任務(或活動)的啟動和終止條件,以及對每個任務(或活動)的描述。
工作流在大多數(shù)的實際應用中的情況可以這樣來簡單地描述:在網(wǎng)絡、服務器和多臺計算機客戶端的硬件平臺上,業(yè)務過程按照預先設定的規(guī)則并借助應用程序和人對相關數(shù)據(jù)的處理而完成。例如,在日常辦公中,當撰寫好某份報告之后,可能需要將其提交給領導進行審閱或批示;審批意見可能需要匯集并提交給另外一個人,以便對報告進行進一步的修改。這樣,可能會形成同一篇文檔在多個人之間的順序或同時傳遞。對于這樣的情況,我們可以使用工作流技術(shù)來控制和管理文檔在各個計算機之間自動傳遞,而非手工傳遞。這就可以稱之為工作流。
類似的關于文檔的自動化處理只是工作流技術(shù)的一種簡單應用。事實上,工作流技術(shù)在現(xiàn)實生活中能夠完成更多更復雜的任務。如企業(yè)(或機構(gòu))內(nèi)部的各種數(shù)據(jù)或信息的自動處理,多種業(yè)務流程的整合,企業(yè)(或機構(gòu))之間的數(shù)據(jù)交換,借助Internet技術(shù)實現(xiàn)跨地域的數(shù)據(jù)傳輸和處理等等。
一、工作流發(fā)展
工作流技術(shù)起源于二十世紀七十年代中期辦公自動化領域的研究,由于當時計算機尚未普及,網(wǎng)絡技術(shù)水平還很低以及理論基礎匱乏,這項新技術(shù)并未取得成功。1983年至1985年間,在圖像處理領域和電子郵件領域出現(xiàn)了早期的含有工作流特征的商用系統(tǒng)。
進入九十年代以后,隨著個人計算機、網(wǎng)絡技術(shù)的普及和推廣,以及信息化建設的日益完善,使得工作流技術(shù)的研究與開發(fā)進入了一個新的熱潮。1993年8月,第一個工作流技術(shù)標準化的工業(yè)組織——工作流管理聯(lián)盟(Workflow Management Coalition,簡稱WFMC,下同)成立。1994年,工作流管理聯(lián)盟發(fā)布了用于工作流管理系統(tǒng)之間互操作的工作流參考模型,并相繼制定了一系列工業(yè)標準。與此同時,關于工作流技術(shù)的學術(shù)研究也十分活躍,許多原型系統(tǒng)在實驗室里開發(fā)出來。進入二十一世紀以來,工作流技術(shù)已被越來越多的人認可,與之相關的標準規(guī)范、工作流引擎及商業(yè)產(chǎn)品不勝枚舉。人們在開發(fā)推廣工作流產(chǎn)品的同時,更加注重工作流的理論研究,以推動該項技術(shù)走向成熟。
二、工作流的特點
1,圖形化、可視化設計流程圖
2,支持各種復雜流程
3,組織結(jié)構(gòu)級處理者指定功能
4,B/S結(jié)構(gòu),純?yōu)g覽器應用
5,強大的安全性特色
6,表單功能強大,擴展便捷
7,靈活的外出、超時管理策略
8,處理過程可跟蹤、管理
9,豐富的統(tǒng)計、查詢、報表功能
10,與MAIL系統(tǒng)集成三、工作流的優(yōu)點
企業(yè)實施工作流管理所帶來的好處是非常明顯的,這包括提高企業(yè)運營效率、改善企業(yè)資源利用、提高企業(yè)運作的靈活性和適應性、提高工作效率、集中精力處理核心業(yè)務、跟蹤業(yè)務處理過程、量化考核業(yè)務處理的效率、減少浪費、增加利潤、充分發(fā)揮現(xiàn)有計算機網(wǎng)絡資源的作用。實施工作流將達到縮短企業(yè)運營周期、改善企業(yè)內(nèi)(外)部流程、優(yōu)化并合理利用資源、減少人為差錯和延誤,提高勞動生產(chǎn)率等目的。
總結(jié)實施工作流帶來的好處,可以歸納為以下幾點:
1,要處理的事項已自動傳遞到個人電腦上
2,不再需要對員工進行流程的培訓,平滑實現(xiàn)流程變更
3,員工只需將精力集中在處理自己關心的數(shù)據(jù)上
4,隨時得到歷史數(shù)據(jù)
5,隨時生成處理效率報表
6,達到無紙化辦公的目標
7,完全支持移動辦公,使作業(yè)同步化
8,科學管理更進一層,辦公效率明顯提高
9,企業(yè)的核心競爭力將有提升
10,通過流程自動化與數(shù)據(jù)庫集成,以及各類表單統(tǒng)計查詢功能,提高決策能力
信息流 information flow
信息流是在空間和時間上向同一方向運動中的一組信息,它有共同的信息源和信息接收者,即是由一個分支機構(gòu)(信息源)向另一個分支機構(gòu)(地址)傳遞的全部信息的集合。各個信息流組成了企業(yè)的信息網(wǎng),稱之為企業(yè)的神經(jīng)系統(tǒng)。信息流暢與否,決定著企業(yè)生產(chǎn)經(jīng)營活動是否能正常運行。
信息流是企業(yè)發(fā)展的脈絡
評價企業(yè)成功與否,一個簡易的辦法是看其物流、工作流和信息流“三流”的情況,其中,信息流的質(zhì)量、速度和覆蓋范圍,尤其可以“映照”企業(yè)的生產(chǎn)、管理和決策等各方面的“成色”。企業(yè)的“生命活動”最終都將以信息流的“高級形式”展現(xiàn)……
評價企業(yè)成功與否,一個簡易的辦法是看其物流、工作流和信息流“三流”的情況,其中,信息流的質(zhì)量、速度和覆蓋范圍,尤其可以“映照”企業(yè)的生產(chǎn)、管理和決策等各方面的“成色”。因為物流、工作流在企業(yè)的“生命活動”中無不最終以信息流的“高級形式”展現(xiàn),就象生物體的所有活動都是基于神經(jīng)系統(tǒng)傳遞的生物電信號一樣。因此,深入認識“信息流”,將掀開企業(yè)發(fā)展的新視角。
如同流動的資金帶來價值一樣,當信息不受限制的從一個地點流動到另一地點,幫助企業(yè)實時獲取信息,并促使企業(yè)創(chuàng)造出真正的經(jīng)濟效益時,才具有最高的價值和意義。其關鍵,是打造閉環(huán)的信息流。不僅要打破企業(yè)內(nèi)部各種信息孤島,實現(xiàn)數(shù)據(jù)的收集整合、加工分析、信息的傳遞應用,以及信息數(shù)據(jù)的再加工、應用的反復“循環(huán)”,還要將企業(yè)內(nèi)部的信息流與企業(yè)外部上下游用戶的需求信息結(jié)合起來,形成“內(nèi)外融合”的閉環(huán)的“大信息流”。這樣認識信息流,可以幫助用戶“打開眼界”,審視IT建設中局部與整體統(tǒng)一規(guī)劃和發(fā)展的問題,即通過集成實現(xiàn)不同層面的信息流同時,也要為建立企業(yè)間高效的信息流打好基礎。
此外,建立全面的信息流也是實現(xiàn)業(yè)界提出的“按需應用IT資源”理想的基礎。信息流具有速度、質(zhì)量等特征,反映著企業(yè)的IT基礎水平。信息流速度慢,企業(yè)無法及時獲取所需信息。而系統(tǒng)數(shù)據(jù)不完整或得到不一致數(shù)據(jù),又將嚴重影響信息流的質(zhì)量,進而影響業(yè)務系統(tǒng)的成敗。只有高質(zhì)量的信息數(shù)據(jù)不受任何限制平穩(wěn)地流向所需位置,才能最終實現(xiàn)按需應用的理想。這對企業(yè)各層系統(tǒng)的無縫集成提出了更高的要求。為此,建立豐富的實施信息流的技術(shù)方案體系,包括數(shù)據(jù)層集成、應用層集成、垂直業(yè)務處理層集成、發(fā)布層集成以及通用建模和開發(fā)工具的應用。“信息流”是企業(yè)發(fā)展的基本脈絡。
第四篇:工作流管理系統(tǒng)體系結(jié)構(gòu)設計
工作流管理系統(tǒng)體系結(jié)構(gòu)設計
2010-04-30
清華領導力培訓
機電之家
本文主要從三個層次深入介紹了工作流管理系統(tǒng)結(jié)構(gòu),工作流管理系統(tǒng)將最終成為覆蓋于各類臺式機與網(wǎng)絡操作系統(tǒng)之上的業(yè)務操作系統(tǒng),但工作流技術(shù)目前還不夠完善。深入研究工作流管理系統(tǒng)模型和各大主流工作流管理系統(tǒng)基礎上設計一套全面系統(tǒng)結(jié)構(gòu)。
工作流管理系統(tǒng)是一個軟件系統(tǒng),它完成工作量的定義和管理,并按照在系統(tǒng)中預先定義好的工作流邏輯進行工作流實例的執(zhí)行。工作流管理系統(tǒng)不是企業(yè)的業(yè)務系統(tǒng),而是為企業(yè)的業(yè)務系統(tǒng)的運行提供了一個軟件的支撐環(huán)境。
目前已有上百種聲稱具有工作流管理功能的商品化軟件或原型系統(tǒng)。為了對這些系統(tǒng)的功能、特點等有一具清晰的認識,可以根據(jù)工作流過程本身的特點、系統(tǒng)建模的方式、所使用的底層支撐技術(shù)、以及工作流過程的執(zhí)行方式等的不同而對它們進行相應的分類如下:
1、結(jié)構(gòu)化的與即席的
結(jié)構(gòu)化工作流指的是在實際工作過程中會反復重復、嚴格按照某個固定的步驟進行的業(yè)務過程。定義此種工作流所需要的各種類型的信息可以通過對業(yè)務過程進行詳細的分析而得到,從而得到完整的過程定義并在以后的應用過程中反復使用。大量的辦公程序,如公文處理、審批等都屬此類。即席工作流則是針對那些重復性不是很強或沒有重復性的工作流程的,關于這類流程執(zhí)行所需的有關參數(shù)(如參加者等)事先無法確定,而必須推遲到過程實例運行時才能確定,同時在執(zhí)行過程中間還可能會發(fā)生一些意外的情況。這種動態(tài)多變的特點在提供更高靈活性的同時,也為過程的建模與執(zhí)行帶來更多的復雜性。
2、面向文檔的與面向過程的
前者的側(cè)著點在于將電子形式的文檔、圖像等在有關的人員之間進行分發(fā),以便能夠得到不同人的處理與審閱?,F(xiàn)有的文檔管理與映像管理系統(tǒng)均屬此類。在面向過程的WfMS中,工作流被描述成一序列執(zhí)行環(huán)節(jié)。與各環(huán)節(jié)相應都有待處理的數(shù)據(jù)對象。各環(huán)節(jié)的數(shù)據(jù)對象可以按不同的方式分發(fā)到其他環(huán)節(jié)中去,如可以將數(shù)據(jù)對象的值作為控制條件、或者依此數(shù)據(jù)對象組裝成其他的數(shù)據(jù)對象等。高端的WfMS一般都屬此類系統(tǒng)。
3、基于郵件和基于數(shù)據(jù)庫
前者使用電子郵件來完成過程實例執(zhí)行過程中消息的傳遞、數(shù)據(jù)的分發(fā)與事件的通知。低端的系統(tǒng)所使用的經(jīng)常就是此種方法,它可以充分發(fā)揮電子郵件系統(tǒng)在廣域環(huán)境下的數(shù)據(jù)分發(fā)功能,但整個系統(tǒng)將運行于一種松散耦合的模式下。在基于數(shù)據(jù)庫的WfMS中,所有的數(shù)據(jù)都保存在某種類型的DBMS中,過程的執(zhí)行實際上就是對這些數(shù)據(jù)的查詢與處理。高端的大規(guī)模系統(tǒng)所使用的一般都是此種方法。
4、任務推動的與目標拉動的
前者指的是從過程的開始逐步地一個環(huán)節(jié)一個環(huán)節(jié)的執(zhí)行,當某個活動實例被處理完之后,后續(xù)的有關活動將被創(chuàng)建并被激活,由此直至整個工作流程的完成。這是目前大多數(shù)面向過程的WfMS所使用的執(zhí)行方式。而在目標拉動的WfMS中,一個業(yè)務流程被看成是一個目標。過程實例執(zhí)行時,該目標將被分解得到多個相互之間按一定約束條件的關聯(lián)起來的可執(zhí)行的多個環(huán)節(jié),其中各環(huán)節(jié)還可以當成是子目標而進一步進行分解。在各環(huán)節(jié)均執(zhí)行完畢之后,整個過程也就完成了。目標拉動是一種全新的執(zhí)行方式,下一代的WfMS將具有此種特征。應該說明的是:上述分類只是從不同的角度入手的。一般來說,后面那些特點將給WfMS帶來更好的靈活性,同時也將成為那些能夠支持跨機構(gòu)的大規(guī)模復雜工作流管理、面向關鍵任務的WfMS不可缺少的特征。
工作流管理系統(tǒng)將最終成為覆蓋于各類臺式機與網(wǎng)絡操作系統(tǒng)之上的業(yè)務操作系統(tǒng),但工作流技術(shù)目前還不夠完善。本文深入研究工作流管理系統(tǒng)模型和各大主流工作流管理系統(tǒng)的基礎上設計了一套功能全面的工作流管理系統(tǒng)體系結(jié)構(gòu)。本文主要從該體系結(jié)構(gòu)的三個層次深入介紹了該系統(tǒng)結(jié)構(gòu)。
1、引言
在一個組織內(nèi)部存在著兩種信息:一種是數(shù)據(jù)信息,另一種是業(yè)務信息。在組織之間也同樣存在著兩種信息:一種是數(shù)據(jù)信息,另一種是業(yè)務往來信息。如果這兩種信息用計算機系統(tǒng)來管理,前一種屬于組織內(nèi)部的信息系統(tǒng),后一種屬于B2B電子商務系統(tǒng)。目前對數(shù)據(jù)信息的計算機管理系統(tǒng)(即:數(shù)據(jù)庫管理系統(tǒng))經(jīng)過多年的發(fā)展已經(jīng)成熟。對業(yè)務過程的計算機管理系統(tǒng)由于比較復雜,可變因素較多,難度大,因此發(fā)展還不成熟。工作流技術(shù)作為現(xiàn)代組織實現(xiàn)過程管理與過程控制的一項關鍵技術(shù),為組織的業(yè)務處理過程提供了一個從模型建立、管理到運行、分析的完整框架。同時,工作流管理系統(tǒng)(Workflow Management System,WFMS)通過一套集成化、可互操作的軟件工具為這個框架提供了全過程的支持。Thomas Koulopoulos曾預言:工作流管理系統(tǒng)將最終成為覆蓋于各類臺式機與網(wǎng)絡操作系統(tǒng)(如:Windows,Unix,Windows NT)之上的業(yè)務操作系統(tǒng)BOS(Business Operating System),它將帶來操作系統(tǒng)的一次革命。但是目前工作流技術(shù)無論從理論上還是從實踐都還不夠完善,要實現(xiàn)Thomas Koulopoulos的預言可能還需有一段路要走。本文主要介紹了由作者獨立設計一套工作流管理系統(tǒng)體系結(jié)構(gòu),以供工作流技術(shù)愛好者參考。
2、工作流管理系統(tǒng)的基本概念
顧名思義,工作流就是工作任務在多個人或單位之間的流轉(zhuǎn)。在計算機網(wǎng)絡環(huán)境下,這種流轉(zhuǎn)實際上表現(xiàn)為信息或數(shù)據(jù)在多個人之間的傳送。工作流管理聯(lián)盟(Workflow Management Coalition,WfMC)對工作流的定義是:“業(yè)務過程的部分或全部在計算機應用環(huán)境下的自動化”。她所要解決的主要問題是,“使在多個參與者之間按照某種預定義規(guī)則傳遞的文檔、信息或任務的過程自動進行,從而實現(xiàn)某個預期的業(yè)務目標,或者是促使此目標的實現(xiàn)”。
工作流管理系統(tǒng)就是通過管理一序列的工作活動以及相關人員、資源、信息技術(shù)資料來提供業(yè)務處理程序上的自動控制。工作流管理系統(tǒng)通過計算機軟件來定義、管理和執(zhí)行工作流程。在工作流管理系統(tǒng)中計算機運用程序的執(zhí)行順序是由工作流邏輯的計算機描述來驅(qū)動的。她的主要目標是對業(yè)務過程中各步驟(或稱活動、環(huán)節(jié))發(fā)生的先后次序,以及同各個步驟相關的人力、資源、信息資料的調(diào)用等進行管理,從而實現(xiàn)業(yè)務過程的自動化。當然這種管理可能會在不同的信息及通信環(huán)境下實現(xiàn),所涉及的范圍可以小至一個只有幾人的工作組,也可以大到政府、企業(yè)組織各個機構(gòu)之間。工作流管理系統(tǒng)將人員、組織結(jié)構(gòu)、設備資源、信息源(如數(shù)據(jù)庫、文件系統(tǒng)、電子郵件、計算機輔助設計工具等)整和成一個整體。這樣,工作流管理系統(tǒng)就成為了一個理想的用來收容業(yè)務邏輯的業(yè)務知識倉庫,并給予業(yè)務邏輯一個易操作易控制的界面。
工作流管理系統(tǒng)的最大優(yōu)點就是實現(xiàn)具體應用邏輯和過程邏輯的分離,實現(xiàn)在不修改具體功能的情況下,通過修改業(yè)務流程模板來改變系統(tǒng)的功能,完成對組織生產(chǎn)經(jīng)營過程的部分業(yè)務或全部業(yè)務的集成管理,有效的把人力資源、物質(zhì)資源和信息組織在一起,發(fā)揮最大的效能。
3、工作流管理系統(tǒng)體系結(jié)構(gòu)
工作流管理系統(tǒng)在實際運用中一般分為三個階段:工作流建模階段,工作流模型實例化階段和工作流執(zhí)行階段,如圖1。在工作流建模階段主要通過工作流建模工具完成業(yè)務流程的模型建立,將實際的業(yè)務操作流程轉(zhuǎn)為為計算機可模擬處理的工作流模型;在模型實例化階段主要通過工作流引擎完成具體業(yè)務流程的實例化,為具體業(yè)務流程辦理流轉(zhuǎn)提供工作流相關數(shù)據(jù)和工作流控制數(shù)據(jù),并為業(yè)務流程的辦理提供所需要資源(如人力資源和物料、設備資源等); 工作流執(zhí)行階段主要完成業(yè)務流程的執(zhí)行,重點是完成人機交互和系統(tǒng)內(nèi)部應用或外部應用程序的調(diào)用。
圖
1、實施的三個步驟
根據(jù)工作流的三個階段的分工,工作流管理系統(tǒng)結(jié)構(gòu)可以分為過程設計定義功能、運行控制功能和運行交互接口三個層次的功能,如圖2。
4、過程設計定義功能
過程設計定義功能主要作業(yè)務處理流程的計算機定義,她提供了一種分析、建模、系統(tǒng)定義技術(shù),將一個現(xiàn)實世界的業(yè)務處理過程轉(zhuǎn)換成計算機可處理的定義;最終的定義叫作工作流模型、過程模版或過程定義,她可以用圖形符號進行表示。工作流管理系統(tǒng)結(jié)構(gòu)這一層次主要包括以下功能:業(yè)務建模與信息建模、組織管理、資源管理、內(nèi)部應用開發(fā)工具、數(shù)據(jù)窗口開發(fā)工具、工作流定義等功能。
4.1業(yè)務建模與信息建模
業(yè)務流程是由各業(yè)務環(huán)節(jié)連接而成,而每一個業(yè)務環(huán)節(jié)都由多個相互關聯(lián)、不同層次的要素構(gòu)成。在業(yè)務建模時可自頂向下的將業(yè)務流程中各個業(yè)務環(huán)節(jié)最終分解成一系列的原子任務。所謂原子任務,即將有可能發(fā)生的每筆業(yè)務進行原子化分解,細分到不能再分割的操作單元,每個操作單元即是一個原子任務。任務之間的相互聯(lián)結(jié)也將最終轉(zhuǎn)化為數(shù)據(jù)流、信息流、協(xié)作流、資源流。這樣各個原子任務的控制連接,就成為了工作流模型。因此,工作流是企業(yè)中過程流、數(shù)據(jù)流、信息流、協(xié)作流、資源流等各種流的綜合集成。業(yè)務建模工具主要提供流程定義開發(fā)人員便捷的與數(shù)據(jù)流圖工具或活動圖等流程描述工具類似的業(yè)務流程分析工具。
業(yè)務模型是信息模型的出發(fā)點。信息模型說明了業(yè)務處理對象中所包含的信息,或者說執(zhí)行具體功能的活動的輸入、輸出數(shù)據(jù)、以及這些數(shù)據(jù)之間的邏輯關系。信息建模工具可提供使用E-R圖方法構(gòu)建信息系統(tǒng)的邏輯數(shù)據(jù)模型;根據(jù)實際選用的數(shù)據(jù)庫管理系統(tǒng),建立適用于該數(shù)據(jù)庫管理系統(tǒng)的物理數(shù)據(jù)模型,同時可生成目標數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)庫創(chuàng)建腳本。信息模型是個兩層次的建立過程,先建立邏輯模型,再建立物理模型。邏輯模型支持數(shù)據(jù)的概念模式,它從抽象的層次上反映內(nèi)部數(shù)據(jù)間的關聯(lián),不管具體的數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)存儲方式等等。物理模型支持數(shù)據(jù)庫的物理設計,它與具體選定的數(shù)據(jù)庫類型密切相關。
4.2組織管理
在組織單位中組織結(jié)構(gòu)是信息決策、任務執(zhí)行和監(jiān)督管理等重要活動的載體,組織結(jié)構(gòu)揭示了組織單位人員管理的層次,反映了人與工作、決策、責權(quán)之間的聯(lián)系。因此,組織結(jié)構(gòu)對于一個組織單位中如何完成業(yè)務流程的建模和提高管理、生產(chǎn)效率是至關重要的。組織結(jié)構(gòu)、工作流、過程建模等概念的提出,為描述組織單位業(yè)務流程提供了有力的工具,也使過程到組織的映射模型的建立成為可能。
工作流管理系統(tǒng)結(jié)構(gòu)提供了組織管理功能,用于定義業(yè)務單位的組織架構(gòu)和人員管理職責分配等工作。為工作流模型的定義和工作流的實例化、執(zhí)行提供人力資源約束和支持。
4.3資源管理
資源是進行生產(chǎn)經(jīng)營不可缺少的物資因素,在工作流的執(zhí)行過程,必須得到企業(yè)資源的支持,相應的組織實體才能夠按照要求完成活動。同時,工作流要保證將正確的信息和資源在正確的時刻以正確的方式送給正確的小組或成員。
工作流管理系統(tǒng)結(jié)構(gòu)提供了資源管理功能,用于建立組織單位的資源模型,表示組織單位的資源結(jié)構(gòu)和配置情況,描述組織單位各種資源對象之間的聯(lián)系和關系,為工作流模型提供資源約束和支持。
4.4內(nèi)部應用開發(fā)工具
工作流管理系統(tǒng)結(jié)構(gòu)提供了圖形化應用開發(fā)工具,用戶可以使用圖形化設計方法,開發(fā)出動態(tài)頁面應用,其結(jié)果可保存為html或jsp或其他可直接調(diào)度執(zhí)行的運用程序。這些內(nèi)部應用程序具有數(shù)據(jù)庫訪問能力,能夠訪問或存儲工作流相關數(shù)據(jù)和控制數(shù)據(jù)。在流程定義時流程開發(fā)人員可以直接設計并提供流程節(jié)點預調(diào)用。運行時用戶可以在任務列表中直接調(diào)用,執(zhí)行所需完成的工作。它的最大的優(yōu)點是讓開發(fā)人員避免了復雜業(yè)務處理應用程序的開發(fā)。
4.5數(shù)據(jù)窗口開發(fā)工具
工作流管理系統(tǒng)結(jié)構(gòu)提供了圖形化設計復雜報表頁面的能力,可設計任意復雜的報表,并可畫出各種統(tǒng)計分析圖并能夠使用多種形式輸出。在流程定義時數(shù)據(jù)窗口開發(fā)工具就像內(nèi)部應用開發(fā)工具一樣可以由用戶自行定義并提供流程節(jié)點預調(diào)用。當流程實例運用到指定節(jié)點時,用戶可以直接調(diào)用該數(shù)據(jù)窗口以用戶所需要的形式展現(xiàn)相關信息內(nèi)容。
4.6工作流建模工具
工作流建模工具以工作流元模型為基礎,通過分析不同類型的業(yè)務過程,采用有向圖的方法對現(xiàn)實的業(yè)務活動進行形式化描述,建立業(yè)務過程到工作流模型的映射機制。對于建模工具而言一方面為用戶提供了一個建立規(guī)范的業(yè)務過程的接口,另一方面,所建立的工作流過程可以存儲于工作流庫中作為工作流引擎的輸入,投入運轉(zhuǎn)、執(zhí)行并接受監(jiān)控。建模工具的主要包含以下功能:
提供建立工作流模型所需的各類基本元素,比如活動、子過程、連接弧等;
支持圖形用戶界面的基本操作,比如鼠標的點擊與拖動;
提供用戶定義各模型單元屬性的對話框;
模型的保存與讀??;
支持多層次建模;
與外部自動應用的接口;
4.7工作流模型庫
工作流模型庫主要用于保存和管理已定義完成的工作流模型。在工作流程啟動時工作流引擎將直接加載并將其實例化,同時為工作流的流轉(zhuǎn)提供基礎模板。
5、運行控制功能
運行控制功能主要對工作流模型的定義進行解釋,創(chuàng)建并控制過程的運行實例,調(diào)度過程的各種行為步驟,調(diào)用適當?shù)娜肆Α①Y源和應用程序以完成任務的執(zhí)行。工作流管理系統(tǒng)的核心部件就是工作流管理控制軟件——工作流引擎。工作流管理系統(tǒng)結(jié)構(gòu)在這一層次的主要包括:工作流引擎和工作流監(jiān)控管理2部分。
5.1工作流引擎
工作流引擎可以說是工作流管理系統(tǒng)的心臟。一個工作流管理系統(tǒng)通??梢园ㄒ粋€或多個工作流引擎,不同工作流引擎通過協(xié)作共同執(zhí)行工作流程。工作流引擎實際上是經(jīng)營過程的任務調(diào)度器,在某種程度上還是資源的分配器。在采用工作流管理系統(tǒng)支持經(jīng)營過程中,工作流引擎可以看成是一個業(yè)務操作系統(tǒng)BOS(Business Operating System)。業(yè)務過程在她的管理、監(jiān)控之下運行,因此工作流引擎的性能和可靠性就直接決定了業(yè)務過程的運行效率和安全性。
5.2工作流監(jiān)控管理
系統(tǒng)管理與監(jiān)控是工作流系統(tǒng)一個非常重要的功能。工作流系統(tǒng)管理與監(jiān)控工具能夠?qū)ぷ髁髟谡麄€組織內(nèi)部的流動狀況進行監(jiān)視,并提供一系列的管理功能,實現(xiàn)安全性、過程控制和授權(quán)操作等方面的管理。它包括以下幾個方面的功能:
1)建立、設置和優(yōu)化組成工作流管理系統(tǒng)的各個軟件。
2)對過程模型進行實例化。
3)將過程模型中的角色實例化。
4)將運行中的過程實例、活動實例和數(shù)據(jù)分發(fā)到各個工作流機中。
5)啟動、掛起、恢復和終止過程實例。
6)管理正在執(zhí)行的過程實例,并對正常結(jié)束或異常退出的過程實例的歷史數(shù)據(jù)進行統(tǒng)計和分析。
6、運行交互接口
運行交互接口主要提供工作流管理系統(tǒng)與人員或應用程序工具的交互接口來處理各種活動步驟。交互接口對于活動間的控制傳遞是必須的,如確定過程的狀態(tài),調(diào)用應用程序工具,傳遞應用程序數(shù)據(jù)等。
7、結(jié)論
該工作流管理系統(tǒng)體系結(jié)構(gòu)是作者深入研究了工作流管理聯(lián)盟提供的工作流管理系統(tǒng)模型和各大主流工作流管理系統(tǒng)的基礎上設計出來的。以該體系結(jié)構(gòu)為基礎作者領導開發(fā)了基于J2EE架構(gòu)的新一代工作流管理系統(tǒng)UniFlow。UniFlow工作流管理系統(tǒng)目前已在電子政務中取得了廣泛的運用。
第五篇:基于工作流的公文流轉(zhuǎn)系統(tǒng)的分析與設計
基于工作流的公文流轉(zhuǎn)系統(tǒng)的分析與設計
[摘要]分析電子公文流轉(zhuǎn)要素,針對電子公文復雜的公文表單和流程,提出動態(tài)設計公文流轉(zhuǎn)頁面和流程的方法,最后說明實現(xiàn)過程。
[關鍵詞]工作流 公文流轉(zhuǎn) 流程定制
中圖分類號:F27 文獻標識碼:A 文章編號:1671-7597(2009)0610017-02
一、引言
日常公文處理是機關工作中的一項繁雜而重要的工作。辦公自動化系統(tǒng)中的公文流轉(zhuǎn)模塊,就是為了讓機關工作人員提升辦文質(zhì)量、提高工作效率、節(jié)約行政成本,使他們從長期繁雜的事務性工作中解放出來。
傳統(tǒng)的基于工作流設計的公文流轉(zhuǎn)系統(tǒng)中,公文頁面和流程是靜態(tài)生成和管理的。開發(fā)者根據(jù)不同的公文類型設計不同的公文頁面和流程,編寫相應的程序代碼。維護過程中,一旦公文頁面或者流程發(fā)生改變,就需要重新設計,重新編寫程序代碼。實踐證明:此種靜態(tài)設計,導致系統(tǒng)的開發(fā)量和維護量都非常大,不能很好的滿足用戶對公文流轉(zhuǎn)的多樣性和迅速變化的需求。因此,本文結(jié)合某機關公文流轉(zhuǎn)系統(tǒng)的設計和開發(fā),介紹了一個基于工作流技術(shù)的電子公文流轉(zhuǎn)系統(tǒng)的設計過程。
二、電子公文流轉(zhuǎn)要素的分析
公文流轉(zhuǎn)過程中,有如下要素:公文、流程、流轉(zhuǎn)方式、公文樣式、權(quán)限。
(一)公文
電子公文是指以電子形式表現(xiàn)的并通過網(wǎng)絡傳遞的,用于單位相互之間聯(lián)系事務的具有規(guī)范格式的公文。它包含表單、正文和附件三方面內(nèi)容。按照公文傳遞類型分為發(fā)文類公文和收文類公文的兩類公文,兩者的表單內(nèi)容都共同包含公文類型、公文名稱、公文編號、主題詞、緊急程度、各注、主送、抄送、抄報等信息。發(fā)文類公文表單基礎信息還包含:主辦人、主辦部門、作者等。收文類公文表單基礎信息還包含:收文編號,收文主辦人、全局辦理時限等。
(二)流程
電子公文流程是電子公文從起草到歸檔,并按照標準的、統(tǒng)一的公文交換與共享機制和定義好的規(guī)則,在各部門之間逐級審批、傳遞,從而完成辦理耳標的流轉(zhuǎn)過程。
電子公文流程按照公文類別分為發(fā)文類流程和收文類流程。
發(fā)文類流程主要功能是處理內(nèi)部制定的或外來轉(zhuǎn)發(fā)的電子公文,對所有正式公文進行擬稿、審稿、核稿、會簽、簽發(fā)、編號、蓋章、歸檔等過程的處理及管理。圖1為某機關發(fā)文流程圖:
收文類流程主要功能是處理和記載上級發(fā)文、平級來文等公文,并對接受的所有正式電子公文實現(xiàn)登記、擬辦、批辦、傳閱、分發(fā)等處理和管理。圖2為某機關收文流程圖:
(三)流轉(zhuǎn)方式
1、流轉(zhuǎn)模式
電子公文流轉(zhuǎn)的模式一般可歸納為以下四種:直流模式、分流模式、合流模式和回流模式。圖3為四種公文流傳模式圖:
其中A,B分別為公文流轉(zhuǎn)中的兩個關聯(lián)的節(jié)點,也是角色執(zhí)行活動的場所,箭頭線代表活動之間的關系。
(1)直流模式。最基本的流轉(zhuǎn)方式,人員之間一對一的傳達模式。通常用于申請審批類流程,如一份公文信息單經(jīng)部門經(jīng)理批示后直接交給下一個經(jīng)辦人處理。(2)分流模式。人員之間一對多的傳送模式。一種是不需要條件約束的傳送,例如通知;另一種是滿足某些條件才能實施的傳達,例如機要室所收文件、資料按黨政系統(tǒng)分別處理。(3)合流模式。人員之間多對一的傳送模式。例如公文的會簽:某上級分發(fā)給多個下級部門經(jīng)辦的信息單經(jīng)過不同的經(jīng)辦人員處理完畢后,匯總給該上級進行查看和審批。(4)回流模式。公文在流轉(zhuǎn)過程中出現(xiàn)的退回、重做等情況,從而在流程中形成回路。
2、流轉(zhuǎn)關系
參照圖3,公文流轉(zhuǎn)關系就是各個操作節(jié)點之間的流程關系,即圖中的箭頭線。一個操作節(jié)點表示一件不可再分的操作任務。多個操作節(jié)點通過不同的關系聯(lián)接構(gòu)成公文流轉(zhuǎn)過程中的基本流程。
那么對于公文流轉(zhuǎn)的某一節(jié)點而言,流轉(zhuǎn)到此節(jié)點開始工作,有三種狀態(tài):(1)與型:只有當其所有的前繼工作節(jié)點都完成時,流程方可進入下一步,執(zhí)行當前節(jié)點的操作。如某公文需要所選的多個處長全部批閱后,工作流才能進入下一個節(jié)點,只要有一個人沒有辦理完畢,流程就不能向下流轉(zhuǎn)。(2)或型:其所有前繼節(jié)點中有一個節(jié)點完成,流程就可以進入下一個節(jié)點,執(zhí)行當前操作節(jié)點。如某公文交給多個人執(zhí)行,只要有一個人完成操作,流程就可以往下流轉(zhuǎn),而不管其他人員是否完成。(3)駁回型:需要回退或者重做時,就要回退給相應的工作節(jié)點和辦理人。
(四)公文樣式
公文樣式主要指公文流轉(zhuǎn)時的用戶界面。
根據(jù)不同的流轉(zhuǎn)節(jié)點,不同的辦理人員看到的公文信息會有所不同。(1)公文表單各項信息在不同的辦理節(jié)點可能處于不同的編輯狀態(tài):不顯示不更新、不顯示用默認值更新、顯示不更新、顯示不可編輯用默認值更新、顯示更新可編輯和顯示更新必填等。(2)公文正文狀態(tài)也可能處于不同的編輯狀態(tài):帶痕跡草稿可讀可修改、帶痕跡草稿可讀不可修改、不帶痕跡草稿可修改、不帶痕跡草稿可讀不可修改、規(guī)范公文只讀可打印和規(guī)范公文只讀不可打印等。(3)公文附件狀態(tài)也可能處于不同的編輯狀態(tài):可管理全部附件、可管理本單位附件其他單位附件不可見、可管理本單位附件其他單位附件可見但不可刪除、可見所有附件、可見本單位附件等。
(五)權(quán)限
在電子公文流轉(zhuǎn)過程中,涉及很多權(quán)限的設置和管理。例如:設置對不同公文類型使用的權(quán)限:對不同流程使用的權(quán)限;在流程節(jié)點上指定固定的辦理人員組、職務或者默認的辦理人;流程流轉(zhuǎn)過程中,辦理人員可否回退或撤銷的權(quán)限;辦理人員辦理完畢后可否瀏覽已辦公文的權(quán)限。
三、電子公文流轉(zhuǎn)模型的設計
電子公文的流轉(zhuǎn)模型設計主要分為工作頁面設計和基于工作流的流程設計。由于B/S架構(gòu)的應用系統(tǒng)具有無需安裝用戶客戶端、用戶界面更加人性化等優(yōu)點,因此當前主流的電子公文處理系統(tǒng)已經(jīng)基本采用B/S架構(gòu)。故而本文中的電子公文工作頁面的討論范圍也僅限于于基于web的工作頁面設計。
(一)工作頁面設計
1.公文表單頁面設計
在電子公文流轉(zhuǎn)過程中將公文的三類信息安排在兩個頁面:公文表單和附件信息在一個頁面,公文正文信息顯示在另一個頁面。公文表單按照其不同種類以及各使用單位的具體要求提供不同的數(shù)據(jù)字段和不同的外觀。為了保持用戶的使用習慣,其最終的設計外觀基本和原來基于紙質(zhì)公文表單一致。公文表單頁面程序模塊可以動態(tài)與流程管理模塊結(jié)合,按照公文樣式和權(quán)限來決定每類公文信息的顯示以及編輯狀態(tài)。其通用框架如圖4所示:
2.正文頁面設計
電子公文正文在草擬流轉(zhuǎn)過程中最基本的要求是能夠?qū)崿F(xiàn)對電子文件的在線編輯和保存功能。在下發(fā)、簽收流程中只需要實現(xiàn)對文件的瀏覽即可。“手寫簽名”、“電子印章”、“痕跡保留”、“意見批示”等功能在當前也被逐漸引入電子公文處理的正文頁面。目前在項目中采用第三方web插件可以圓滿解決這些問題。國內(nèi)的江西金格等中間件廠商已經(jīng)提供了成熟的Office在線編輯插件,而且這些插件目前已經(jīng)被國內(nèi)主流的D^開發(fā)商所采用。圖5為Office在線編輯插件體系構(gòu)架圖。
(二)流程定制
根據(jù)本文2.2節(jié)和2.3節(jié)分析可以清晰的看出,流程定制設計時首先需要建立流程模版,記錄流程對應的公文表單類型,以及流程模版名稱。然后分別建立工作節(jié)點、工作流的流轉(zhuǎn)模式和流轉(zhuǎn)關系。
1.工作流程模版。每一個公文表單可以對應多個公文流程模版。流程模版包含如下字段信息:流程模版編號、工作流編號、流轉(zhuǎn)開始節(jié)點、流轉(zhuǎn)結(jié)束節(jié)點、工作流程描述等。
2.工作節(jié)點。工作流的工作節(jié)點要包含的字段信息如下:節(jié)點編號、節(jié)點名稱、節(jié)點操作說明、節(jié)點類型(分為流程起始節(jié)點、流轉(zhuǎn)節(jié)點、終結(jié)節(jié)點)、節(jié)點默認辦理人、節(jié)點辦理人員范圍等。工作節(jié)點信息還要體現(xiàn)公文流轉(zhuǎn)要素中的公文樣式:要說明處理此流程的該節(jié)點時,公文處于什么模式(公文模式需要單獨定義),當前辦理人對數(shù)據(jù)的操作權(quán)限。
3.工作流的流轉(zhuǎn)模式。工作流流轉(zhuǎn)模式的包含如下字段信息:流轉(zhuǎn)編號,上一節(jié)點,下一節(jié)點,優(yōu)先級,提交方式,流轉(zhuǎn)描述等。三種流轉(zhuǎn)關系可以轉(zhuǎn)化為節(jié)點辦理人提交方式:一人完成提交和全部完成提交。在此,特別討論駁回型:如果此節(jié)點是多人全部完成提交,而其中某人批閱后要求退回上一節(jié)點的辦理人,這時候要和管理員溝通,確定節(jié)點處理優(yōu)先級。
4.公文流轉(zhuǎn)事件。流程定制信息記錄完畢后,公文在流程流轉(zhuǎn)過程中,需要記錄公文流轉(zhuǎn)事件。公文流轉(zhuǎn)事件表包含字段信息如下:節(jié)點ID、經(jīng)辦人、經(jīng)辦意見、處理方式、辦理時間。通過此事件表,可以回溯公文流轉(zhuǎn)的實際過程計算出公文的辦理時間,對比公文辦理期限,可以計算剩下辦理期限,強調(diào)顯示和提醒,并實現(xiàn)追蹤和督辦功能。
四、結(jié)束語
本文中基于工作流實現(xiàn)的電子公文流轉(zhuǎn)系統(tǒng)對于其他一些信息系統(tǒng)的建設同樣具有指導和借鑒作用,在實際應用中也得到了很好的效果。當然在公文表單和正文實現(xiàn)自動流轉(zhuǎn)后還需要進一步針對整個系統(tǒng)實現(xiàn)流程的進一步優(yōu)化,完善整個的流程,真正提高效率。此種基于工作流的公文流轉(zhuǎn)系統(tǒng)滿足了用戶的需求,減少了開發(fā)人員的開發(fā)量和管理人員的維護量。