工業(yè)研究院辦公自動化系統(tǒng)設計方案(附_MIS系統(tǒng)設計和網(wǎng)站設計)_第1頁
工業(yè)研究院辦公自動化系統(tǒng)設計方案(附_MIS系統(tǒng)設計和網(wǎng)站設計)_第2頁
工業(yè)研究院辦公自動化系統(tǒng)設計方案(附_MIS系統(tǒng)設計和網(wǎng)站設計)_第3頁
工業(yè)研究院辦公自動化系統(tǒng)設計方案(附_MIS系統(tǒng)設計和網(wǎng)站設計)_第4頁
工業(yè)研究院辦公自動化系統(tǒng)設計方案(附_MIS系統(tǒng)設計和網(wǎng)站設計)_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、XX工業(yè)研究院辦公自動化系統(tǒng)設計方案XXXX 6 月目錄第一章系統(tǒng)總體結(jié)構(gòu) 5第二章系統(tǒng)設計 6§ 2.1 電子郵件 61 . 表單設計 61. 郵件表單(Memo) 62. 回信表單(Reply) 63. 轉(zhuǎn)發(fā)表單(wForward) 74. 信件郵遞報告表單(NonDelivery Report) 82 .視圖設計 81. 收件箱($Inbox) 82. 發(fā)件箱($Sent) 83. 草稿箱($Drafts) 84. 垃圾箱(Carbage) 8§ 2.2 公文流轉(zhuǎn) 91 .結(jié)構(gòu)設計 92 .功能設計 93 .表單設計 91. 公文表單 (Data) 92. 公文附件表

2、單(AddAttachment) 113. 公文正文表單(AddDocumentBody) 114. 工作流信息表單(WorkFlowInfo) 125. 流程節(jié)點表單(event) 126. 已辦公文記錄表單(DoneRecord) 147. 用戶角色設置表單(UserRuls) 148. 搜索表單 (SearchForm) 144 .視圖設計 151. 工作流名稱列表 152. 模版事件列表 153. 激活事件列表 154. 數(shù)據(jù)表單列表 155. 公文草稿列表 156. 公文附件列表 157. 公文正文列表 158. 已辦公文列表 155 .工作流流轉(zhuǎn)控制算法設計 161. 功能分析 1

3、62. 創(chuàng)建過程定義實例和同應用數(shù)據(jù)實例綁定 173. 維護流程節(jié)點狀態(tài)信息 186 .工作流流程定義工具設計 241. 類關(guān)系 242. 類結(jié)構(gòu)設計 253. 過程定義工具文本輸出格式 錯誤!未定義書簽。7 . 格式轉(zhuǎn)化工具設計 錯誤!未定義書簽。§ 2.3 公共事務 錯誤!未定義書簽。1. 總體結(jié)構(gòu)設計 錯誤!未定義書簽。2. 表單設計 錯誤!未定義書簽。1. 日程安排表單 錯誤!未定義書簽。2. 會議安排表單3. 會議記錄表單4. 會議紀要表單5. 空閑時間查詢表單6. 空閑日期查詢表單7. 會議室管理表單8. 空閑會議室查詢表單9. 會議室空時段查詢表單10. 來賓接待表單三

4、 . 視圖設計 1. 會議安排視圖 2. 會議草稿視圖 3. 在審會議視圖 4. 議記錄視圖 5. 議紀要視圖 6. 日程安排視圖 7. 日程草稿視圖 8. 在審日程視圖 9. 會議室視圖 10. 來賓接待視圖 2.4 電子討論區(qū) 一. 討論區(qū)功能模塊設計二 . 討論板塊 三 . 用戶筆名注冊2.5 信息服務 一 . 信息服務功能模塊設計二 . 電子布告欄三 . 公共信息查詢 1. 員工地址簿2. 個人名片夾3. 列車時刻表4. 航班時刻表5. 郵編及電話區(qū)號 6. 公司大事記2.6 系統(tǒng)維護 一 . 表單設計 1. 組織機構(gòu)設置表單(Department) 2. 用戶信息注冊表單(UserI

5、nfo) 3. 用戶職務注冊表單(Caste_Name) 4. 用戶信息列表顯示表單(PagePersons) 5. 用戶密碼設置表單(Password) 二 . 視圖設計 1. 組織機構(gòu)列表(DepartmentList) 2. 用戶列表 (Persons) 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。

6、 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。 錯誤!未定義書簽。3. 職務列表 (Caste_Name)

7、 4. 用戶權(quán)限列表(Limit)附錄1 XX工業(yè)研究院MIS系統(tǒng)設計 4 1概述5 2需求分析一、 科技項目管理項目申報(科委項目、工研院項目)合同管理項目跟蹤二、教育培訓管理職工教育培訓招生管理三、科技情報管理科技情報發(fā)布下屬單位需求 四、申請書編號管理五、用戶權(quán)限管理6 3功能表格科技項目管理X教育管理培訓J科技情報管理Q7 4功能模塊設計1 .功能模塊科技項目管理教育培訓管理科技情報管理2 .功能說明科技項目管理教育培訓管理科技情報信息管理§ 5數(shù)據(jù)表格設計一.科技項目及合同管理 科技項目申請表申請一覽表工研院項目執(zhí)行情況報告書 二.教育管理培訓三.科技情報管理科技情報發(fā)布下

8、屬單位需求 附錄2網(wǎng)站設計§ 1概述§ 2功能設計一.情況介紹錯誤!未定義書簽錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽

9、 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽 錯誤!未定義書簽二.需求分析三. 功能模塊及實現(xiàn)四 . 數(shù)據(jù)接口 五. 網(wǎng)站目錄結(jié)構(gòu)錯誤!未定義書簽。錯誤!未定義書簽。錯誤!未定義書簽。錯誤!未定義書簽。3 數(shù)據(jù)庫設計第一章系統(tǒng)總體結(jié)構(gòu)XX工業(yè)研究院辦公自動化系統(tǒng)基于Lotus Domino / Notes平臺開發(fā),系統(tǒng)的總體結(jié)構(gòu)如下圖所示:圖1-1 XX工業(yè)研究院辦公自動化系統(tǒng)總體結(jié)構(gòu)第二章系統(tǒng)設計§

10、; 2.1 子郵件電子郵件模塊的結(jié)構(gòu)如下圖所示0圖2-1-1電子郵件模塊一.表單設計1 .郵件表單(Memo)表2-1-1郵件表單設計數(shù)據(jù)域說明SendTo文本域收件人地址CopyTo文本域郵件抄送地址BlindCopyTo文本域郵件密送地址WebSubject文本域郵件主題Text文本域(允許多行)郵件正文haveread文本域郵件文件已讀標志操作說明發(fā)送發(fā)送郵件保存為草稿將郵件保存為草稿回復回復郵件轉(zhuǎn)發(fā)轉(zhuǎn)發(fā)郵件地址簿打開地址簿表單編輯編輯郵件刪除刪除郵件2 .回信表單(Reply)表2-1-2回信表單設計數(shù)據(jù)域說明SendTo沙域收件人地址CopyTo沙域郵件抄送地址BlindCopyTo

11、沙域郵件密送地址WebSubject沙域郵件主題Text文本域(允許多行)郵件正文haveread沙域郵件文件已讀標志操作說明發(fā)送發(fā)送郵件保存為草稿將郵件保存為草稿回復回復郵件轉(zhuǎn)發(fā)轉(zhuǎn)發(fā)郵件地址簿打開地址簿表單編輯編輯郵件刪除刪除郵件3 .轉(zhuǎn)發(fā)表單(wForward)表2-1-3轉(zhuǎn)發(fā)表單設計數(shù)據(jù)域說明SendTo沙域收件人地址CopyTo沙域郵件抄送地址BlindCopyTo沙域郵件密送地址WebSubject文本域郵件主題Text文本域(允許多行)郵件正文haveread沙域郵件文件已讀標志操作說明發(fā)送發(fā)送郵件保存為草稿將郵件保存為草稿回復回復郵件轉(zhuǎn)發(fā)轉(zhuǎn)發(fā)郵件地址簿打開地址簿表單編輯編輯郵件刪

12、除刪除郵件4 .信件郵遞報告表單(NonDelivery Report)表2-1-4信件郵遞報告表單設計數(shù)據(jù)域說明OriginalSubject沙域被郵遞的信件名稱IntendedRecipient沙域被郵遞信件的收件人地址FailureReason沙域郵件為郵遞到目的地原因SendTo沙域被郵遞郵件文件中指定的收件地址CopyTo沙域被郵遞郵件文件中指定的抄送地址BlindCopyTo沙域被郵遞郵件文件中指定的密送地址Subject沙域被郵遞郵件文件的主題Body文本域(允許多行)被郵遞郵件文件的內(nèi)容haveread沙域一郵件文件已讀標志操作說明刪除刪除郵件二.視圖設計1 .收件箱($Inb

13、ox)收件箱通過文件夾實現(xiàn),所有接收到郵件文件均由系統(tǒng)自動放入收件箱中。2 .發(fā)件箱($Sent)用于所發(fā)送的郵件均自動保存在發(fā)件箱中。文檔選擇條件為:SELECT DeliveredDate=""& PostedDate!=”"& !(IsMember("S"ExcludeFromView) & Viewtag!="Delete"3 .草稿箱($Drafts)所有保存為草稿的郵件均顯示在草稿箱中。文檔選擇條件為:SELECT PostedDate = "" & $Mess

14、ageType =""& IsNotMember("D" ExcludeFromView) & ISMAILSTATIONERY != 1& Viewtag="Istrash"4.垃圾箱(Carbage)所有被刪除的郵件均保存在此視圖中。在此視圖中再次刪除的話,則郵件文件被真正刪除 文檔選擇條件為:SELECT (FORM="Memo" | form="Reply" | Form="wForward") & Deleted="true

15、"§ 2.2公文流轉(zhuǎn)結(jié)構(gòu)設計XX工業(yè)研究院OA系統(tǒng)公文流轉(zhuǎn)模塊總體結(jié)構(gòu)如下圖所示。公文流轉(zhuǎn)模塊結(jié)構(gòu)設計圖 2-2-1二.功能設計公文流轉(zhuǎn)模塊提供的具體功能如下圖所示:圖2-2-2公文流轉(zhuǎn)模塊功能設計三.表單設計1 .公文表單(Data)公文表單用于記錄公文的相關(guān)信息。具體設計如下:表2-2-1公文表單設計數(shù)據(jù)域說明GWLX列表框公文類型DJBM列表框公文的登記部門DJSJ文本域公文的登記時間Subject文本域公文標題NGR文本域公文起草人姓名GWHJ列表框公文緩急信息列表ZTCB文本域公文的主題詞ZBDW文本域主辦單位名稱ZCDW文本域主送單位名稱CSDW文本域抄送單位名

16、稱CBDW文本域抄報單位名稱Info文本域(允許多行)公文正文內(nèi)容Data_Number文本域公文的編號SelectWorkFlow列表框顯示過程定義模版列表PersonAnswer文本域顯示處理人的批復意見Data_Personlist文本域允許處理本公文的用戶列表Start文本域公文是否為首次提交Data Current Editor文本域記錄當前編輯公文的用戶姓名CuiBan文本域是含存在公文催辦通知操作說明提交流轉(zhuǎn)提交公文進入流轉(zhuǎn)過程暫存將公文保存為草稿簽收處理人打開公文進行編輯編輯公文作者編輯公文刪除刪除公文催辦發(fā)出公文催辦通知說明:(1) Subject、Info等用于記錄公文的內(nèi)

17、容信息,公文的內(nèi)容信息包括公文主題、公文編號、 公文內(nèi)容、公文密級、公文緩急等。(2) NGR、DJSJ分別記錄公文文檔的創(chuàng)建人和創(chuàng)建時間,工作流的管理與監(jiān)控功能會用到這 些信息。(3) SelectWorkFlow是列表框,用于顯示所有可供使用的過程定義模版。在公文的創(chuàng)建階段,用戶從列表中選擇要使用的流程;在公文進入流轉(zhuǎn)過程以后,由工作流引擎根據(jù)所選擇的流程,自動生成過程定義實例,之后實現(xiàn)公文文檔同過程定義實例的綁定操作。(4) Data_Personlist域用于記錄所有對本文檔具有處理權(quán)限的用戶的用戶名列表,只有在此列表中列出的用戶才能夠?qū)倪M行處理。其取值由工作流引擎自動填寫。2 .

18、公文附件表單(AddAttachment)公文附件表單用于存儲某一公文所包含的附件文件,一個公文可以包含多個附件,每個附件 對應一個公文附件表單。表2-2-2公文附件表單設計數(shù)據(jù)域說明Attachment_Info沙域?qū)Ω郊暮喴f明控件上載文件控件ParentId沙域此附件表單所從屬的公義表單IDAttachment_Name沙域附件文件名Attachment_Size沙域附件文件大小操作說明保存附件保存公文附件表單刪除附件刪除公文附件表單關(guān)閉窗口關(guān)閉公文附件上載窗口3 .公文正文表單(AddDocumentBody)公文正文表單用于存儲某一公文所包含的正文文件,一個公文可以包含多個正文文件

19、,每個 正文文件對應一個公文正文表單。表2-2-3公文正文表單設計數(shù)據(jù)域說明Attachment_Info沙域?qū)φx文件的簡要說明控件上載文件控件ParentId文本域此公文正義表單所從屬的公義表單IDAttachment_Name沙域附件文件名Attachment_Size沙域附件文件大小操作說明保存正文保存公文正義表單刪除正文刪除公文正義表單關(guān)閉窗口關(guān)閉公文正文上載窗口4 .工作流信息表單(WorkFlowInfo)工作流信息表單用于存儲工作流程模版的基本屬性信息。在流程信息表單中定義的重要數(shù)據(jù)域如下:表2-2-4工作流信息表單數(shù)據(jù)域說明Workflow_Name文本域流程名稱Workfl

20、ow_Type列表框流程類型,可選值為“預定義流程” 和“自定義流程”Workflow_Author文本域此流程創(chuàng)建人姓名Workflow_Created文本域此流程創(chuàng)建時間Workflow_Body文本域此流程功能簡要說明操作說明修改編輯工作流信息表單保存保存工作流信息表單刪除刪除工作流信息表單5 .流程節(jié)點表單(event)流程節(jié)點表單用于記錄過程定義中流程節(jié)點所包含的信息。過程定義中的每個流程節(jié)點都與Domino數(shù)據(jù)庫中的一個流程節(jié)點文檔對應。表2-2-5流程節(jié)點表單設計數(shù)據(jù)域說明Workflow_Id沙域節(jié)點所從屬的工作流信息文檔IdData_Id文本域與此過程定義所綁定的應用數(shù)據(jù)文檔

21、IdEvent_Id文本域流程節(jié)點文檔Id,在節(jié)點文檔生 成后自動填寫Event_Name文本域流程節(jié)點功能描述名稱,如初審、 批閱等。Event_Pre_Names列表框此流程節(jié)點的全部前趨節(jié)點列表Event_Personlist沙域此節(jié)點允許處理人名稱Event_Personlist_Type列表域指定處理人類型:“個人”、“交 色”SXQM復選框是否使用手寫簽名功能Event Body文本框(允許多俏)此節(jié)點功能簡要說明Event_Pre_Name文本域(允許多值)以節(jié)點名稱表小的前驅(qū)節(jié)點列表Event_Pre_Id文本域(允許多值)以節(jié)點Id表小的前驅(qū)節(jié)點列表Evemt_Next_Na

22、m e文本域(允許多值)以節(jié)點名稱表小的后繼節(jié)點列表Event_Next_Id文本域(允許多值)以節(jié)點Id表示的后繼節(jié)點列表Event_Status文本域流程節(jié)點狀態(tài)Event_Period沙域流程節(jié)點文檔狀態(tài)Event_Period文本域用于區(qū)分模版和實例,可取值為 “模版”、“實例”SelectPre復選框此節(jié)點是否為選擇性收點SelectNext復選框此節(jié)點是否為選擇性發(fā)點SelectNode文本域如果此節(jié)點是選擇性發(fā)點,則此域 用于記錄所選定的后繼節(jié)點名稱操作說明修改編輯流程節(jié)點表單保存保存流程節(jié)點表單刪除刪除流程節(jié)點表單說明:(1)流程節(jié)點定義中的 Att (事件屬性集合)通過數(shù)據(jù)域

23、Workflow_Id、Data_Id、Event_Id、Event_Name> Evnent_Personlist 、SXQM表達出來。Event_Pre_Name、Event_Pre_Id 為允許多 值的文本域,以節(jié)點名稱和節(jié)點文檔Id兩種方式表達此節(jié)點的前驅(qū)節(jié)點集合Pre; Event_Next_Name Event_Next_Id則以節(jié)點名稱和節(jié)點文檔Id兩種方式表達此節(jié)點的后繼節(jié)點集合Next。Event_Status表達節(jié)點狀態(tài)信息。(2) Workflow_Id數(shù)據(jù)域用于標識此流程節(jié)點文檔所從屬的工作流程。屬于同一工作流程的流程節(jié)點文檔具有相同的 Workflow_Id 。

24、(3) Data_Id數(shù)據(jù)域用于實現(xiàn)應用數(shù)據(jù)實例同過程定義實例的對應。 Data_Id的值為公文表單的文檔實例的文檔Id ,由工作流管理系統(tǒng)自動填寫。組成一個過程定義實例的所有流程節(jié)點文檔具有相同的 Data_Id值。(4) Event_Status標識流程節(jié)點的狀態(tài)信息,由工作流引擎自動設置。(5)構(gòu)成過程定義的流程節(jié)點文檔在工作流進入運行期之前,存儲在過程定義模版庫中;在 運行期,則存儲到過程定義實例庫。因此,在流程節(jié)點表單中使用Event_Period數(shù)據(jù)域來標識過程定義的狀態(tài)。屬于同一過程定義的節(jié)點文檔的Event_Period 域的值是相同的。其可能取值為“模版”和“實例”。(6)

25、SelectPre數(shù)據(jù)域用于標識此節(jié)點是否為選擇性收點。在工作流實例運行期間,工作流引擎需要根據(jù)此數(shù)據(jù)域的取值選擇不同的啟動條件構(gòu)造算法。(7) SelectNext數(shù)據(jù)域用于表示此節(jié)點是否為選擇性發(fā)點。在工作流實例運行期間,工作流 引擎需要根據(jù)此數(shù)據(jù)域的取值選擇不同的完成條件構(gòu)造算法。節(jié)點所選定的后繼節(jié)點的名稱保存 在SelectNode數(shù)據(jù)域中。6 .已辦公文記錄表單(DoneRecord)已辦公文記錄表單用于記錄用戶已經(jīng)處理完成的公文的相關(guān)信息,以備日后查閱。表2-2-6已辦公文記錄表單設計數(shù)據(jù)域說明Subject文本域公文標題NGR文本域記錄公文的擬稿人姓名SDSJ文本域收到此公文的時

26、間BJSJ文本域完成處理的時間PYYJ文本域用戶的批閱意見操作說明刪除刪除已辦公文記錄表單7 .用戶角色設置表單(UserRuls)用戶角色設置表單用于記錄用戶同其職務的對應關(guān)系。表2-2-7用戶角色設置表單設計數(shù)據(jù)域說明RulName文本域角色名稱SendTo文本域人員名稱ZhiNeng文本域角色職能說明操作說明修改編輯用戶角色設置表單保存保存用戶角色設置表單刪除刪除用戶角色設置表單8 .搜索表單(SearchForm)搜索表單用于輸入文檔檢索條件表2-2-8搜索表單設計數(shù)據(jù)域說明Search ViewName列表框選擇要檢索的視圖Search_Info文本域人員名稱Search_Type文

27、本域角色職能說明HTML文本域文檔檢索結(jié)果操作說明檢索文檔進行檢索操作四.視圖設計1 .工作流名稱列表用于顯示數(shù)據(jù)庫中所有工作流信息文檔。文檔選擇條件:SELECT form="WorkFlowInfo"2 .模版事件列表用于顯示所有具有“模版”屬性的流程節(jié)點文檔。文檔選擇條件如下:SELECT (Form ="流程節(jié)點")& (Event_Period="模版”)3 .激活事件列表用于顯示所有具有“激活”屬性的流程節(jié)點文檔。文檔選擇條件如下:SELECT (Form ="流程節(jié)點")& (Event_Per

28、iod="激活")4 .數(shù)據(jù)表單列表用于顯示所有公文文檔。文檔選擇條件如下:SELECT form="數(shù)據(jù)表單"& Start=05 .公文草稿列表用于顯示所有保存為草稿的公文文檔。文檔選擇條件如下:SELECT form:"數(shù)據(jù)表單"& Start=16 .公文附件列表用于顯示所有公文附件文檔。文檔選擇條件如下:SELECT form="AddAttachment"7 .公文正文列表用于顯示所有公文正文文檔。文檔選擇條件如下:SELECT form="AddDocumentBody&qu

29、ot;8 .已辦公文列表用于顯示所有已辦公文記錄文檔。文檔選擇條件如下:SELECT form="DoneRecord五.工作流流轉(zhuǎn)控制算法設計1. 功能分析將工作流引擎的功能細化為以下幾個子功能:(1) 創(chuàng)建過程定義實例在工作流進入運行期以前,過程定義以模版的形式保存在過程定義模版庫 中。工作流進入運行期,工作流引擎必須根據(jù)用戶所選定的過程定義模版自動 生成過程定義實例,并存入負載最低的過程定義實例子庫。(2) 完成應用數(shù)據(jù)實例和過程定義實例的綁定操作在過程定義實例生成以后,工作流引擎必須將其同對應的應用數(shù)據(jù)實例綁 定,實現(xiàn)一一對應,從而完成數(shù)據(jù)單元實例的組建。(3) 在工作流實例

30、運行期間,對流程節(jié)點的狀態(tài)信息進行維護在基于流程節(jié)點單一設計元素的過程定義模型中,定義了流程節(jié)點狀態(tài)信 息來描述節(jié)點對應用數(shù)據(jù)的處理狀態(tài)。而整個工作流實例的運行狀態(tài)會通過流 程節(jié)點的狀態(tài)表達出來。工作流引擎需要根據(jù)流程節(jié)點的啟動條件和完成條件 來對節(jié)點的狀態(tài)進行設置,從而模擬出數(shù)據(jù)流動的效果。這是工作流引擎的核 心功能。(4) 對應用數(shù)據(jù)文檔的訪問控制列表進行維護流程節(jié)點狀態(tài)信息的變化必須轉(zhuǎn)化為用戶對應用數(shù)據(jù)處理權(quán)限的變化。某 一流程節(jié)點狀態(tài)信息變?yōu)?active ,實際意味著在此節(jié)點定義中指定的處理人獲得 了對應用數(shù)據(jù)文檔的處理權(quán);狀態(tài)信息為inactive 或done則表示指定的處理人沒有

31、處理文檔的權(quán)限。因此,工作流引擎需要根據(jù)流程節(jié)點狀態(tài)信息的變化,對 應用數(shù)據(jù)表單中的用戶訪問控制列表進行修改,從而實現(xiàn)節(jié)點狀態(tài)信息和用戶 對文檔處理權(quán)限的一致變化。(5) 工作流實例運行期間,給予用戶對過程定義實例的動態(tài)修改的能力由于實際業(yè)務處理過程往往表現(xiàn)出一定的隨意性,因此,工作流引擎應該向 用戶提供在工作流實例運行期間,對過程定義實例的修改能力,使用戶可以根據(jù) 文檔處理的需要,對預定義的流程進行臨時性的修改。這種動態(tài)修改流程的能力, 可以大大加強工作流系統(tǒng)的靈活性,使工作流系統(tǒng)更加滿足用戶的實際需求。下圖表示了當用戶完成應用數(shù)據(jù)文檔的處理,將文檔保存提交以后,工作流引擎處理數(shù)據(jù)的 過程:

32、用戶完成對應用 數(shù)據(jù)文檔的處理Yes薪應用數(shù)相No圖 2-2-3 工作流引擎處理數(shù)據(jù)流程2. 創(chuàng)建過程定義實例和同應用數(shù)據(jù)實例綁定在流程節(jié)點表單(Event )中定義了數(shù)據(jù)域Event_Period 來區(qū)分屬于過程定義模版庫的節(jié)點文檔和過程定義實例庫的節(jié)點文檔;而Data_Id 域用于記錄對應應用數(shù)據(jù)文檔的文檔 Id 信息。工作流引擎通過四個步驟完成過程定義實例的創(chuàng)建和同應用數(shù)據(jù)文檔的綁定操作。(1) 流程節(jié)點文檔復制將過程定義模版庫中屬于相應過程定義的流程節(jié)點文檔復制,生成一個新的流程節(jié)點文檔。此新節(jié)點文檔的數(shù)據(jù)域的值同其原型完全相同。關(guān)鍵代碼如下: 在數(shù)據(jù)庫中創(chuàng)建新文擋Set newnod

33、e = New NotesDocument( db ) 將模版庫中的節(jié)點文檔 node 的全部數(shù)據(jù)域復制到新文檔Call node.CopyAllItems( newnode, True )(2) 置 Event_Period 域?qū)⑿陆鞒坦?jié)點文檔中 Event_Period 數(shù)據(jù)域的值由“模版”改為“實例” 。關(guān)鍵代碼如下:newnode.Event_Period = “實例”(3) 同應用數(shù)據(jù)實例綁定將應用數(shù)據(jù)文檔如公文文檔的文檔 Id 值置入新建流程節(jié)點文檔的 Data_Id 域,從而完成綁 定操作。關(guān)鍵代碼如下: data 為應用數(shù)據(jù)文檔newnode.Data_Id = data.U

34、niversalid3. 維護流程節(jié)點狀態(tài)信息a) 原理流程假設某節(jié)點 node 完成了應用數(shù)據(jù)文檔處理,接下來工作流引擎會通過設置流程節(jié)點的狀態(tài)信息來更新工作流實例的運行狀態(tài)。工作流實例運行狀態(tài)的更新過程可以用下圖所示的原理流程表達:圖2-2-4狀態(tài)更新原理流程從狀態(tài)更新的原理流程中可以看出,狀態(tài)更新過程由節(jié)點node完成對應用數(shù)據(jù)文檔的處理觸發(fā),之后工作流引擎分三步來修改節(jié)點狀態(tài):a. 設置節(jié)點 node狀態(tài)為 done當流程節(jié)點處理完成后,狀態(tài)有 active變?yōu)閐one。b. 激活新流程節(jié)點流程節(jié)點的啟動條件決定了節(jié)點何時被激活,何時獲得處理權(quán)限。在此步驟中,工作流引擎通過構(gòu)造各個流程

35、節(jié)點的啟動條件,判斷其值來完成節(jié)點處理權(quán)限的傳遞。因為 流程節(jié)點的啟動條件可以通過其所有前驅(qū)節(jié)點的狀態(tài)信息和流轉(zhuǎn)順序信息的邏輯組合表達出來, 所以在節(jié)點node完成處理后,工作流引擎沒有必要計算構(gòu)成過程定義實例的所有節(jié)點的啟動條 件,而只需要計算節(jié)點 node的所有后繼節(jié)點的啟動條件即可。c.決定哪些節(jié)點的狀態(tài)有done變?yōu)閕nactive流程節(jié)點狀態(tài)由done轉(zhuǎn)化為inactive 的必要性在過程定義模型部分已經(jīng)作了說明,節(jié)點的完成條件規(guī)定了這一狀態(tài)轉(zhuǎn)化的條件。在某節(jié)點完成處理后,工作流引擎通過計算其它節(jié)點的完成條件,來確定哪些狀態(tài)為done的節(jié)點可以將狀態(tài)設置為inactive 。b)步驟

36、1的具體實現(xiàn)步驟1的目的是在節(jié)點node完成對應用數(shù)據(jù)文檔的處理以后,將節(jié)點狀態(tài)設置為done。關(guān)鍵代碼如下:node.Event_Status ="done"c)后繼節(jié)點狀態(tài)設置算法步驟2的目的是設置節(jié)點node的后繼節(jié)點的狀態(tài),節(jié)點 node的類型以及其后繼節(jié)點的類型從圖中可以看出,將設置算法依據(jù)節(jié)點node的分類分為兩種情況:a.節(jié)點node為唯一后繼節(jié)點或者發(fā)點此種情況下,節(jié)點 node需要遍歷其所有的后繼節(jié)點,計算每個后繼續(xù)節(jié)點的啟動條件的取 值。b.節(jié)點node為選擇性發(fā)點當節(jié)點node為選擇性發(fā)點時,根據(jù)選擇性發(fā)點的定義,只有一個后繼節(jié)點可以獲得處理權(quán), 因此

37、不需要遍歷其所有的后繼節(jié)點,只需計算其所選定的后繼節(jié)點的啟動條件即可。根據(jù)后繼節(jié)點的類型,計算啟動條件分為兩種情況(狀態(tài)設置算法1和狀態(tài)設置算法2):a.后繼節(jié)點為收點或唯一前驅(qū)節(jié)點當節(jié)點node的某個后繼節(jié)點next為收點或唯一前驅(qū)收點時,在遍歷 next的所有前驅(qū)節(jié)點 時,對每個前驅(qū)節(jié)點計算判斷式(select(pre i) CTN next) AND (status(prei) ="done”)的值,只要有一個為false ,則next的啟動條件必然不成立,即可以終止遍歷循環(huán) 判斷next的啟動條件值的關(guān)鍵代碼如下:Dim flag as Booleanflag = false

38、 遍歷 next 的全部前驅(qū)節(jié)點Forall n In next.Event_Pre_IdSet prenode = db.GetDocumentByUNID(n)If Not(Select(prenode,next) = true AND prenode.Event_Status(0) =“done” )Then Select() 函數(shù)用于判斷prenode 所選定的后繼節(jié)點列表中是否包括nextflag = trueExit ForAllEnd IfEnd Forall 設置后繼節(jié)點 next 的狀態(tài) If flag = true then節(jié)點next 的啟動條件不滿足,狀態(tài)不變Else節(jié)

39、點next 的啟動條件滿足,將狀態(tài)變?yōu)閍ctivenext.Event_Status =“active ”next.save True,True,TrueEnd Ifb. 后繼節(jié)點為選擇性收點當節(jié)點 node 的某個后繼節(jié)點 next 為選擇性收點時,不需要遍歷next 的所有前驅(qū)節(jié)點,而只需要判斷下式對節(jié)點 node 的取值即可。(select(node) CTN next) AND (status(node i ) =“done” )關(guān)鍵代碼如下:If (Select(node,next) = true AND note.Event_Status(0) =“done” ) then Sel

40、ect() 函數(shù)用于判斷node 所選定的后繼節(jié)點列表中是否包括nextnext.E vent_Status =“ active ”next.save True,True,TrueElse next 狀態(tài)保持不變End Ifd) 設置完成條件得到滿足的流程節(jié)點狀態(tài)當完成對流程節(jié)點 node 的后繼節(jié)點狀態(tài)設置以后,其后繼節(jié)點狀態(tài)的變化可能使某些節(jié)點的完成條件得到滿足,從而完成流程節(jié)點狀態(tài)信息由 done 向 inactive 的轉(zhuǎn)化。在判斷流程節(jié)點 的完成條件時,沒有必要計算組成過程定義實例的所有流程節(jié)點的完成條件,只需要檢查節(jié)點node 的獲得了處理權(quán)的后繼節(jié)點的所有前驅(qū)節(jié)點的完成條件即可。

41、 判斷完成條件的處理流程如圖 2-2-6 所示。從流程中可以看到,根據(jù)next 的前驅(qū)節(jié)點類型,構(gòu)造next 的前驅(qū)節(jié)點的完成條件有兩種方式(完成條件判斷算法1 和完成條件判斷算法2) :(2) next 的前驅(qū)節(jié)點為唯一后繼節(jié)點或者發(fā)點 關(guān)鍵代碼如下:Dim flag as Booleanflag = false 假設 prenode 為 next 某個前驅(qū)節(jié)點, nextnode 為 prenode 的某個后繼節(jié)點Forall x In prenode.Event_Next_NameSet nextnode=db.getdocumentbyunid(GetIdByName(y)If nex

42、tnode.Event_Status(0)<> “active ” Then flag=TrueEnd IfEnd ForallIf flag=True Then prenode 的完成條件不滿足,保持狀態(tài)不變Else prenode.Event_Status= “ inactive ” prenode.save True,True,TrueEnd If(3) next 的前驅(qū)節(jié)點為選擇性發(fā)點關(guān)鍵代碼如下:假設 prenode 為 next 的某個具有選擇性發(fā)點類型的前驅(qū)節(jié)點, nextnode 為 prenode 所選 定的獲得處理權(quán)的唯一后繼節(jié)點Set nextnode=db.

43、getdocumentbyunid(GetIdByName(prenode. SelectEvent(0)If nextnode.Event_Status(0)= “active ” then prenode 的完成條件得到滿足 prenode.eve nt_system= “ inactive ” prenode.save True,True,TrueElse prenode 的完成條件不成立,狀態(tài)保持不變End IfYes圖 2-2-6 流程節(jié)點完成條件判斷算法e) 設置應用數(shù)據(jù)文檔的訪問控制列表公文表單中的Data_Personlist數(shù)據(jù)域用于存儲允許訪問列表,只有列在此列表中的用戶才

44、具有對文檔的處理權(quán)限。通過查找過程定義實例中所有狀態(tài)為 active 的流程節(jié)點,將它們在Event_Personlist數(shù)據(jù)域中所指定的處理人姓名添加到應用數(shù)據(jù)文檔的 Data_Personlist 數(shù)據(jù)域,來完成節(jié)點狀態(tài)和應用數(shù)據(jù)文檔處理權(quán)限的同步變化。關(guān)鍵代碼如下:假設過程定義實例存儲在過程定義實例視圖 view 中, data 為應用數(shù)據(jù)文檔Set item=data.getfirstitem( “ Data_Personlist ”)Set node=view.getfirstdocumentWhile Not(node Is Nothing)判斷與此應用數(shù)據(jù)文檔相綁定的流程節(jié)點的狀態(tài)If (node.Data_Id(0)=data.Universalid) And (node.Event_Status(0)=“active ” )Then找 到了具有 處理權(quán)的流程節(jié)點, 將其指定的 處理人加 入到應用數(shù)據(jù)文檔 的Data_Personlist 數(shù)據(jù)域中Call item.appendtotextlist(node.Event_Personlist(0)data.save

溫馨提示

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

評論

0/150

提交評論