版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、XX工業(yè)研究院辦公自動(dòng)化系統(tǒng)設(shè)計(jì)方案XXXX年6月目錄第一章 系統(tǒng)總體結(jié)構(gòu)6第二章 系統(tǒng)設(shè)計(jì)7 2.1 電子郵件7一. 表單設(shè)計(jì)71. 郵件表單(Memo)72. 回信表單(Reply)83. 轉(zhuǎn)發(fā)表單(wForward)84. 信件郵遞報(bào)告表單(NonDelivery Report)9二. 視圖設(shè)計(jì)91. 收件箱($Inbox)92. 發(fā)件箱($Sent)93. 草稿箱($Drafts)104. 垃圾箱(Carbage)10 2.2 公文流轉(zhuǎn)11一. 結(jié)構(gòu)設(shè)計(jì)11二. 功能設(shè)計(jì)11三. 表單設(shè)計(jì)121. 公文表單(Data)122. 公文附件表單(AddAttachment)133. 公文正
2、文表單(AddDocumentBody)134. 工作流信息表單(WorkFlowInfo)145. 流程節(jié)點(diǎn)表單(event)146. 已辦公文記錄表單(DoneRecord)167. 用戶角色設(shè)置表單(UserRuls)178. 搜索表單(SearchForm)17四. 視圖設(shè)計(jì)181. 工作流名稱列表182. 模版事件列表183. 激活事件列表184. 數(shù)據(jù)表單列表185. 公文草稿列表186. 公文附件列表187. 公文正文列表188. 已辦公文列表19五. 工作流流轉(zhuǎn)控制算法設(shè)計(jì)191. 功能分析192. 創(chuàng)建過程定義實(shí)例和同應(yīng)用數(shù)據(jù)實(shí)例綁定203. 維護(hù)流程節(jié)點(diǎn)狀態(tài)信息21六. 工
3、作流流程定義工具設(shè)計(jì)281. 類關(guān)系282. 類結(jié)構(gòu)設(shè)計(jì)293. 過程定義工具文本輸出格式33七. 格式轉(zhuǎn)化工具設(shè)計(jì)33 2.3 公共事務(wù)35一. 總體結(jié)構(gòu)設(shè)計(jì)35二. 表單設(shè)計(jì)351. 日程安排表單352. 會(huì)議安排表單363. 會(huì)議記錄表單374. 會(huì)議紀(jì)要表單385. 空閑時(shí)間查詢表單386. 空閑日期查詢表單397. 會(huì)議室管理表單398. 空閑會(huì)議室查詢表單399. 會(huì)議室空時(shí)段查詢表單4010. 來(lái)賓接待表單40三. 視圖設(shè)計(jì)401. 會(huì)議安排視圖412. 會(huì)議草稿視圖413. 在審會(huì)議視圖414. 議記錄視圖415. 議紀(jì)要視圖416. 日程安排視圖417. 日程草稿視圖418.
4、 在審日程視圖419. 會(huì)議室視圖4110. 來(lái)賓接待視圖41 2.4 電子討論區(qū)42一. 討論區(qū)功能模塊設(shè)計(jì)42二. 討論板塊42三. 用戶筆名注冊(cè)43 2.5信息服務(wù)45一. 信息服務(wù)功能模塊設(shè)計(jì)45二. 電子布告欄45三. 公共信息查詢461. 員工地址簿472. 個(gè)人名片夾473. 列車時(shí)刻表484. 航班時(shí)刻表495. 郵編及電話區(qū)號(hào)506. 公司大事記50 2.6 系統(tǒng)維護(hù)52一. 表單設(shè)計(jì)521. 組織機(jī)構(gòu)設(shè)置表單(Department)522. 用戶信息注冊(cè)表單(UserInfo)523. 用戶職務(wù)注冊(cè)表單(Caste_Name)534. 用戶信息列表顯示表單(PagePers
5、ons)535. 用戶密碼設(shè)置表單(Password)54二. 視圖設(shè)計(jì)541. 組織機(jī)構(gòu)列表(DepartmentList)542. 用戶列表(Persons)543. 職務(wù)列表(Caste_Name)544. 用戶權(quán)限列表(Limit)54附錄1 XX工業(yè)研究院MIS系統(tǒng)設(shè)計(jì)55 1 概述55 2 需求分析55一、 科技項(xiàng)目管理55l 項(xiàng)目申報(bào)(科委項(xiàng)目、工研院項(xiàng)目)55l 合同管理55l 項(xiàng)目跟蹤55二、 教育培訓(xùn)管理55l 職工教育培訓(xùn)55l 招生管理55三、 科技情報(bào)管理55l 科技情報(bào)發(fā)布55l 下屬單位需求55四、 申請(qǐng)書編號(hào)管理55五、 用戶權(quán)限管理55 3 功能表格56科技項(xiàng)
6、目管理X56教育管理培訓(xùn)J56科技情報(bào)管理Q56 4 功能模塊設(shè)計(jì)57一.功能模塊57l 科技項(xiàng)目管理57l 教育培訓(xùn)管理58l 科技情報(bào)管理58二. 功能說明58l 科技項(xiàng)目管理58l 教育培訓(xùn)管理59l 科技情報(bào)信息管理59 5 數(shù)據(jù)表格設(shè)計(jì)59一. 科技項(xiàng)目及合同管理59l 科技項(xiàng)目申請(qǐng)表59l 申請(qǐng)一覽表61l 工研院項(xiàng)目執(zhí)行情況報(bào)告書61二.教育管理培訓(xùn)62三.科技情報(bào)管理62l 科技情報(bào)發(fā)布62l 下屬單位需求63附錄2 網(wǎng)站設(shè)計(jì)64 1 概述64 2 功能設(shè)計(jì)64一. 情況介紹64二. 需求分析64三. 功能模塊及實(shí)現(xiàn)65四. 數(shù)據(jù)接口66五. 網(wǎng)站目錄結(jié)構(gòu)67 3 數(shù)據(jù)庫(kù)設(shè)計(jì)6
7、7XX工業(yè)研究院辦公自動(dòng)化系統(tǒng)設(shè)計(jì)第一章 系統(tǒng)總體結(jié)構(gòu)XX工業(yè)研究院辦公自動(dòng)化系統(tǒng)基于Lotus Domino / Notes平臺(tái)開發(fā),系統(tǒng)的總體結(jié)構(gòu)如下圖所示:圖1-1 XX工業(yè)研究院辦公自動(dòng)化系統(tǒng)總體結(jié)構(gòu)第二章 系統(tǒng)設(shè)計(jì) 2.1 電子郵件 電子郵件模塊的結(jié)構(gòu)如下圖所示。圖2-1-1 電子郵件模塊一. 表單設(shè)計(jì)1. 郵件表單(Memo)表2-1-1 郵件表單設(shè)計(jì)數(shù)據(jù)域類型說明SendTo文本域收件人地址CopyTo文本域郵件抄送地址BlindCopyTo文本域郵件密送地址WebSubject文本域郵件主題Text文本域(允許多行)郵件正文haveread文本域郵件文件已讀標(biāo)志操作說明發(fā)送發(fā)送
8、郵件保存為草稿將郵件保存為草稿回復(fù)回復(fù)郵件轉(zhuǎn)發(fā)轉(zhuǎn)發(fā)郵件地址簿打開地址簿表單編輯編輯郵件刪除刪除郵件2. 回信表單(Reply)表2-1-2 回信表單設(shè)計(jì)數(shù)據(jù)域類型說明SendTo文本域收件人地址CopyTo文本域郵件抄送地址BlindCopyTo文本域郵件密送地址WebSubject文本域郵件主題Text文本域(允許多行)郵件正文haveread文本域郵件文件已讀標(biāo)志操作說明發(fā)送發(fā)送郵件保存為草稿將郵件保存為草稿回復(fù)回復(fù)郵件轉(zhuǎn)發(fā)轉(zhuǎn)發(fā)郵件地址簿打開地址簿表單編輯編輯郵件刪除刪除郵件3. 轉(zhuǎn)發(fā)表單(wForward)表2-1-3 轉(zhuǎn)發(fā)表單設(shè)計(jì)數(shù)據(jù)域類型說明SendTo文本域收件人地址CopyTo文
9、本域郵件抄送地址BlindCopyTo文本域郵件密送地址WebSubject文本域郵件主題Text文本域(允許多行)郵件正文haveread文本域郵件文件已讀標(biāo)志操作說明發(fā)送發(fā)送郵件保存為草稿將郵件保存為草稿回復(fù)回復(fù)郵件轉(zhuǎn)發(fā)轉(zhuǎn)發(fā)郵件地址簿打開地址簿表單編輯編輯郵件刪除刪除郵件4. 信件郵遞報(bào)告表單(NonDelivery Report)表2-1-4 信件郵遞報(bào)告表單設(shè)計(jì)數(shù)據(jù)域類型說明OriginalSubject文本域被郵遞的信件名稱IntendedRecipient文本域被郵遞信件的收件人地址FailureReason文本域郵件為郵遞到目的地原因SendTo文本域被郵遞郵件文件中指定的收件地
10、址CopyTo文本域被郵遞郵件文件中指定的抄送地址BlindCopyTo文本域被郵遞郵件文件中指定的密送地址Subject文本域被郵遞郵件文件的主題Body文本域(允許多行)被郵遞郵件文件的內(nèi)容haveread文本域郵件文件已讀標(biāo)志操作說明刪除刪除郵件二. 視圖設(shè)計(jì)1. 收件箱($Inbox)收件箱通過文件夾實(shí)現(xiàn),所有接收到郵件文件均由系統(tǒng)自動(dòng)放入收件箱中。2. 發(fā)件箱($Sent)用于所發(fā)送的郵件均自動(dòng)保存在發(fā)件箱中。文檔選擇條件為:SELECT DeliveredDate= & PostedDate!= & !(IsMember(S;ExcludeFromView) & Viewtag!=
11、Delete3. 草稿箱($Drafts)所有保存為草稿的郵件均顯示在草稿箱中。文檔選擇條件為:SELECT PostedDate = & $MessageType = & IsNotMember(D; ExcludeFromView) & ISMAILSTATIONERY != 1& Viewtag=Istrash4. 垃圾箱(Carbage) 所有被刪除的郵件均保存在此視圖中。在此視圖中再次刪除的話,則郵件文件被真正刪除。 文檔選擇條件為:SELECT (FORM=Memo | form=Reply | Form=wForward) & Deleted=true 2.2 公文流轉(zhuǎn)一. 結(jié)構(gòu)
12、設(shè)計(jì)XX工業(yè)研究院OA系統(tǒng)公文流轉(zhuǎn)模塊總體結(jié)構(gòu)如下圖所示。圖2-2-1 公文流轉(zhuǎn)模塊結(jié)構(gòu)設(shè)計(jì)二. 功能設(shè)計(jì)公文流轉(zhuǎn)模塊提供的具體功能如下圖所示:圖2-2-2 公文流轉(zhuǎn)模塊功能設(shè)計(jì)三. 表單設(shè)計(jì)1. 公文表單(Data)公文表單用于記錄公文的相關(guān)信息。具體設(shè)計(jì)如下:表2-2-1 公文表單設(shè)計(jì)數(shù)據(jù)域類型說明GWLX列表框公文類型DJBM列表框公文的登記部門DJSJ文本域公文的登記時(shí)間Subject文本域公文標(biāo)題NGR文本域公文起草人姓名GWHJ列表框公文緩急信息列表ZTCB文本域公文的主題詞ZBDW文本域主辦單位名稱ZCDW文本域主送單位名稱CSDW文本域抄送單位名稱CBDW文本域抄報(bào)單位名稱In
13、fo文本域(允許多行)公文正文內(nèi)容Data_Number文本域公文的編號(hào)SelectWorkFlow列表框顯示過程定義模版列表PersonAnswer文本域顯示處理人的批復(fù)意見Data_Personlist文本域允許處理本公文的用戶列表Start文本域公文是否為首次提交Data_Current_Editor文本域記錄當(dāng)前編輯公文的用戶姓名CuiBan文本域是否存在公文催辦通知操作說明提交流轉(zhuǎn)提交公文進(jìn)入流轉(zhuǎn)過程暫存將公文保存為草稿簽收處理人打開公文進(jìn)行編輯編輯公文作者編輯公文刪除刪除公文催辦發(fā)出公文催辦通知說明:(1) Subject、Info等用于記錄公文的內(nèi)容信息,公文的內(nèi)容信息包括公文主
14、題、公文編號(hào)、公文內(nèi)容、公文密級(jí)、公文緩急等。(2) NGR、DJSJ分別記錄公文文檔的創(chuàng)建人和創(chuàng)建時(shí)間,工作流的管理與監(jiān)控功能會(huì)用到這些信息。(3) SelectWorkFlow是列表框,用于顯示所有可供使用的過程定義模版。在公文的創(chuàng)建階段,用戶從列表中選擇要使用的流程;在公文進(jìn)入流轉(zhuǎn)過程以后,由工作流引擎根據(jù)所選擇的流程,自動(dòng)生成過程定義實(shí)例,之后實(shí)現(xiàn)公文文檔同過程定義實(shí)例的綁定操作。(4) Data_Personlist域用于記錄所有對(duì)本文檔具有處理權(quán)限的用戶的用戶名列表,只有在此列表中列出的用戶才能夠?qū)倪M(jìn)行處理。其取值由工作流引擎自動(dòng)填寫。2. 公文附件表單(AddAttachme
15、nt)公文附件表單用于存儲(chǔ)某一公文所包含的附件文件,一個(gè)公文可以包含多個(gè)附件,每個(gè)附件對(duì)應(yīng)一個(gè)公文附件表單。表2-2-2 公文附件表單設(shè)計(jì)數(shù)據(jù)域類型說明Attachment_Info文本域?qū)Ω郊暮?jiǎn)要說明File Upload控件上載文件控件ParentId文本域此附件表單所從屬的公文表單IDAttachment_Name文本域附件文件名Attachment_Size文本域附件文件大小操作說明保存附件保存公文附件表單刪除附件刪除公文附件表單關(guān)閉窗口關(guān)閉公文附件上載窗口3. 公文正文表單(AddDocumentBody)公文正文表單用于存儲(chǔ)某一公文所包含的正文文件,一個(gè)公文可以包含多個(gè)正文文件,
16、每個(gè)正文文件對(duì)應(yīng)一個(gè)公文正文表單。表2-2-3 公文正文表單設(shè)計(jì)數(shù)據(jù)域類型說明Attachment_Info文本域?qū)φ奈募暮?jiǎn)要說明File Upload控件上載文件控件ParentId文本域此公文正文表單所從屬的公文表單IDAttachment_Name文本域附件文件名Attachment_Size文本域附件文件大小操作說明保存正文保存公文正文表單刪除正文刪除公文正文表單關(guān)閉窗口關(guān)閉公文正文上載窗口4. 工作流信息表單(WorkFlowInfo)工作流信息表單用于存儲(chǔ)工作流程模版的基本屬性信息。在流程信息表單中定義的重要數(shù)據(jù)域如下:表2-2-4 工作流信息表單數(shù)據(jù)域類型說明Workflow
17、_Name文本域流程名稱Workflow_Type列表框流程類型,可選值為“預(yù)定義流程”和“自定義流程”Workflow_Author文本域此流程創(chuàng)建人姓名Workflow_Created文本域此流程創(chuàng)建時(shí)間Workflow_Body文本域此流程功能簡(jiǎn)要說明操作說明修改編輯工作流信息表單保存保存工作流信息表單刪除刪除工作流信息表單5. 流程節(jié)點(diǎn)表單(event)流程節(jié)點(diǎn)表單用于記錄過程定義中流程節(jié)點(diǎn)所包含的信息。過程定義中的每個(gè)流程節(jié)點(diǎn)都與Domino數(shù)據(jù)庫(kù)中的一個(gè)流程節(jié)點(diǎn)文檔對(duì)應(yīng)。表2-2-5 流程節(jié)點(diǎn)表單設(shè)計(jì)數(shù)據(jù)域類型說明Workflow_Id文本域節(jié)點(diǎn)所從屬的工作流信息文檔IdData_
18、Id文本域與此過程定義所綁定的應(yīng)用數(shù)據(jù)文檔IdEvent_Id文本域流程節(jié)點(diǎn)文檔Id,在節(jié)點(diǎn)文檔生成后自動(dòng)填寫Event_Name文本域流程節(jié)點(diǎn)功能描述名稱,如初審、批閱等。Event_Pre_Names列表框此流程節(jié)點(diǎn)的全部前趨節(jié)點(diǎn)列表Event_Personlist文本域此節(jié)點(diǎn)允許處理人名稱Event_Personlist_Type列表域指定處理人類型:“個(gè)人”、“交色”SXQM復(fù)選框是否使用手寫簽名功能Event_Body文本框(允許多值)此節(jié)點(diǎn)功能簡(jiǎn)要說明Event_Pre_Name文本域(允許多值)以節(jié)點(diǎn)名稱表示的前驅(qū)節(jié)點(diǎn)列表Event_Pre_Id文本域(允許多值)以節(jié)點(diǎn)Id表示的
19、前驅(qū)節(jié)點(diǎn)列表Evemt_Next_Name文本域(允許多值)以節(jié)點(diǎn)名稱表示的后繼節(jié)點(diǎn)列表Event_Next_Id文本域(允許多值)以節(jié)點(diǎn)Id表示的后繼節(jié)點(diǎn)列表Event_Status文本域流程節(jié)點(diǎn)狀態(tài)Event_Period文本域流程節(jié)點(diǎn)文檔狀態(tài)Event_Period文本域用于區(qū)分模版和實(shí)例,可取值為“模版”、“實(shí)例”SelectPre復(fù)選框此節(jié)點(diǎn)是否為選擇性收點(diǎn)SelectNext復(fù)選框此節(jié)點(diǎn)是否為選擇性發(fā)點(diǎn)SelectNode文本域如果此節(jié)點(diǎn)是選擇性發(fā)點(diǎn),則此域用于記錄所選定的后繼節(jié)點(diǎn)名稱操作說明修改編輯流程節(jié)點(diǎn)表單保存保存流程節(jié)點(diǎn)表單刪除刪除流程節(jié)點(diǎn)表單說明:(1) 流程節(jié)點(diǎn)定義中的
20、Att(事件屬性集合)通過數(shù)據(jù)域Workflow_Id、Data_Id、Event_Id、Event_Name、Evnent_Personlist、SXQM等表達(dá)出來(lái)。Event_Pre_Name、Event_Pre_Id為允許多值的文本域,以節(jié)點(diǎn)名稱和節(jié)點(diǎn)文檔Id兩種方式表達(dá)此節(jié)點(diǎn)的前驅(qū)節(jié)點(diǎn)集合Pre;Event_Next_Name、Event_Next_Id則以節(jié)點(diǎn)名稱和節(jié)點(diǎn)文檔Id兩種方式表達(dá)此節(jié)點(diǎn)的后繼節(jié)點(diǎn)集合Next。Event_Status表達(dá)節(jié)點(diǎn)狀態(tài)信息。(2) Workflow_Id數(shù)據(jù)域用于標(biāo)識(shí)此流程節(jié)點(diǎn)文檔所從屬的工作流程。屬于同一工作流程的流程節(jié)點(diǎn)文檔具有相同的Workf
21、low_Id。(3) Data_Id數(shù)據(jù)域用于實(shí)現(xiàn)應(yīng)用數(shù)據(jù)實(shí)例同過程定義實(shí)例的一一對(duì)應(yīng)。Data_Id的值為公文表單的文檔實(shí)例的文檔Id,由工作流管理系統(tǒng)自動(dòng)填寫。組成一個(gè)過程定義實(shí)例的所有流程節(jié)點(diǎn)文檔具有相同的Data_Id值。(4) Event_Status標(biāo)識(shí)流程節(jié)點(diǎn)的狀態(tài)信息,由工作流引擎自動(dòng)設(shè)置。(5) 構(gòu)成過程定義的流程節(jié)點(diǎn)文檔在工作流進(jìn)入運(yùn)行期之前,存儲(chǔ)在過程定義模版庫(kù)中;在運(yùn)行期,則存儲(chǔ)到過程定義實(shí)例庫(kù)。因此,在流程節(jié)點(diǎn)表單中使用Event_Period數(shù)據(jù)域來(lái)標(biāo)識(shí)過程定義的狀態(tài)。屬于同一過程定義的節(jié)點(diǎn)文檔的Event_Period域的值是相同的。其可能取值為“模版”和“實(shí)例”
22、。(6) SelectPre數(shù)據(jù)域用于標(biāo)識(shí)此節(jié)點(diǎn)是否為選擇性收點(diǎn)。在工作流實(shí)例運(yùn)行期間,工作流引擎需要根據(jù)此數(shù)據(jù)域的取值選擇不同的啟動(dòng)條件構(gòu)造算法。(7) SelectNext數(shù)據(jù)域用于表示此節(jié)點(diǎn)是否為選擇性發(fā)點(diǎn)。在工作流實(shí)例運(yùn)行期間,工作流引擎需要根據(jù)此數(shù)據(jù)域的取值選擇不同的完成條件構(gòu)造算法。節(jié)點(diǎn)所選定的后繼節(jié)點(diǎn)的名稱保存在SelectNode數(shù)據(jù)域中。6. 已辦公文記錄表單(DoneRecord)已辦公文記錄表單用于記錄用戶已經(jīng)處理完成的公文的相關(guān)信息,以備日后查閱。表2-2-6 已辦公文記錄表單設(shè)計(jì)數(shù)據(jù)域類型說明Subject文本域公文標(biāo)題NGR文本域記錄公文的擬稿人姓名SDSJ文本域收
23、到此公文的時(shí)間BJSJ文本域完成處理的時(shí)間PYYJ文本域用戶的批閱意見操作說明刪除刪除已辦公文記錄表單7. 用戶角色設(shè)置表單(UserRuls)用戶角色設(shè)置表單用于記錄用戶同其職務(wù)的對(duì)應(yīng)關(guān)系。表2-2-7 用戶角色設(shè)置表單設(shè)計(jì)數(shù)據(jù)域類型說明RulName文本域角色名稱SendTo文本域人員名稱ZhiNeng文本域角色職能說明操作說明修改編輯用戶角色設(shè)置表單保存保存用戶角色設(shè)置表單刪除刪除用戶角色設(shè)置表單8. 搜索表單(SearchForm)搜索表單用于輸入文檔檢索條件。表2-2-8 搜索表單設(shè)計(jì)數(shù)據(jù)域類型說明Search_ViewName列表框選擇要檢索的視圖Search_Info文本域人員名
24、稱Search_Type文本域角色職能說明HTML文本域文檔檢索結(jié)果操作說明檢索文檔進(jìn)行檢索操作四. 視圖設(shè)計(jì)1. 工作流名稱列表 用于顯示數(shù)據(jù)庫(kù)中所有工作流信息文檔。 文檔選擇條件: SELECT form=WorkFlowInfo2. 模版事件列表用于顯示所有具有“模版”屬性的流程節(jié)點(diǎn)文檔。文檔選擇條件如下: SELECT (Form = 流程節(jié)點(diǎn)) & (Event_Period=模版) 3. 激活事件列表用于顯示所有具有“激活”屬性的流程節(jié)點(diǎn)文檔。文檔選擇條件如下:SELECT (Form = 流程節(jié)點(diǎn)) & (Event_Period=激活) 4. 數(shù)據(jù)表單列表用于顯示所有公文文檔。
25、文檔選擇條件如下:SELECT form=數(shù)據(jù)表單 & Start=0 5. 公文草稿列表用于顯示所有保存為草稿的公文文檔。文檔選擇條件如下: SELECT form=數(shù)據(jù)表單 & Start=1 6. 公文附件列表用于顯示所有公文附件文檔。文檔選擇條件如下:SELECT form=AddAttachment7. 公文正文列表用于顯示所有公文正文文檔。文檔選擇條件如下:SELECT form=AddDocumentBody8. 已辦公文列表用于顯示所有已辦公文記錄文檔。文檔選擇條件如下:SELECT form=DoneRecord五. 工作流流轉(zhuǎn)控制算法設(shè)計(jì)1. 功能分析 將工作流引擎的功能細(xì)
26、化為以下幾個(gè)子功能: (1) 創(chuàng)建過程定義實(shí)例 在工作流進(jìn)入運(yùn)行期以前,過程定義以模版的形式保存在過程定義模版庫(kù)中。工作流進(jìn)入運(yùn)行期,工作流引擎必須根據(jù)用戶所選定的過程定義模版自動(dòng)生成過程定義實(shí)例,并存入負(fù)載最低的過程定義實(shí)例子庫(kù)。 (2) 完成應(yīng)用數(shù)據(jù)實(shí)例和過程定義實(shí)例的綁定操作 在過程定義實(shí)例生成以后,工作流引擎必須將其同對(duì)應(yīng)的應(yīng)用數(shù)據(jù)實(shí)例綁定,實(shí)現(xiàn)一一對(duì)應(yīng),從而完成數(shù)據(jù)單元實(shí)例的組建。 (3) 在工作流實(shí)例運(yùn)行期間,對(duì)流程節(jié)點(diǎn)的狀態(tài)信息進(jìn)行維護(hù) 在基于流程節(jié)點(diǎn)單一設(shè)計(jì)元素的過程定義模型中,定義了流程節(jié)點(diǎn)狀態(tài)信息來(lái)描述節(jié)點(diǎn)對(duì)應(yīng)用數(shù)據(jù)的處理狀態(tài)。而整個(gè)工作流實(shí)例的運(yùn)行狀態(tài)會(huì)通過流程節(jié)點(diǎn)的狀態(tài)
27、表達(dá)出來(lái)。工作流引擎需要根據(jù)流程節(jié)點(diǎn)的啟動(dòng)條件和完成條件來(lái)對(duì)節(jié)點(diǎn)的狀態(tài)進(jìn)行設(shè)置,從而模擬出數(shù)據(jù)流動(dòng)的效果。這是工作流引擎的核心功能。 (4) 對(duì)應(yīng)用數(shù)據(jù)文檔的訪問控制列表進(jìn)行維護(hù) 流程節(jié)點(diǎn)狀態(tài)信息的變化必須轉(zhuǎn)化為用戶對(duì)應(yīng)用數(shù)據(jù)處理權(quán)限的變化。某一流程節(jié)點(diǎn)狀態(tài)信息變?yōu)閍ctive,實(shí)際意味著在此節(jié)點(diǎn)定義中指定的處理人獲得了對(duì)應(yīng)用數(shù)據(jù)文檔的處理權(quán);狀態(tài)信息為inactive或done則表示指定的處理人沒有處理文檔的權(quán)限。因此,工作流引擎需要根據(jù)流程節(jié)點(diǎn)狀態(tài)信息的變化,對(duì)應(yīng)用數(shù)據(jù)表單中的用戶訪問控制列表進(jìn)行修改,從而實(shí)現(xiàn)節(jié)點(diǎn)狀態(tài)信息和用戶對(duì)文檔處理權(quán)限的一致變化。 (5) 工作流實(shí)例運(yùn)行期間,給予用
28、戶對(duì)過程定義實(shí)例的動(dòng)態(tài)修改的能力 由于實(shí)際業(yè)務(wù)處理過程往往表現(xiàn)出一定的隨意性,因此,工作流引擎應(yīng)該向用戶提供在工作流實(shí)例運(yùn)行期間,對(duì)過程定義實(shí)例的修改能力,使用戶可以根據(jù)文檔處理的需要,對(duì)預(yù)定義的流程進(jìn)行臨時(shí)性的修改。這種動(dòng)態(tài)修改流程的能力,可以大大加強(qiáng)工作流系統(tǒng)的靈活性,使工作流系統(tǒng)更加滿足用戶的實(shí)際需求。 下圖表示了當(dāng)用戶完成應(yīng)用數(shù)據(jù)文檔的處理,將文檔保存提交以后,工作流引擎處理數(shù)據(jù)的過程:圖2-2-3 工作流引擎處理數(shù)據(jù)流程2. 創(chuàng)建過程定義實(shí)例和同應(yīng)用數(shù)據(jù)實(shí)例綁定在流程節(jié)點(diǎn)表單(Event)中定義了數(shù)據(jù)域Event_Period來(lái)區(qū)分屬于過程定義模版庫(kù)的節(jié)點(diǎn)文檔和過程定義實(shí)例庫(kù)的節(jié)點(diǎn)文
29、檔;而Data_Id域用于記錄對(duì)應(yīng)應(yīng)用數(shù)據(jù)文檔的文檔Id信息。工作流引擎通過四個(gè)步驟完成過程定義實(shí)例的創(chuàng)建和同應(yīng)用數(shù)據(jù)文檔的綁定操作。(1) 流程節(jié)點(diǎn)文檔復(fù)制將過程定義模版庫(kù)中屬于相應(yīng)過程定義的流程節(jié)點(diǎn)文檔復(fù)制,生成一個(gè)新的流程節(jié)點(diǎn)文檔。此新節(jié)點(diǎn)文檔的數(shù)據(jù)域的值同其原型完全相同。關(guān)鍵代碼如下: 在數(shù)據(jù)庫(kù)中創(chuàng)建新文擋 Set newnode = New NotesDocument( db ) 將模版庫(kù)中的節(jié)點(diǎn)文檔node的全部數(shù)據(jù)域復(fù)制到新文檔Call node.CopyAllItems( newnode, True ) (2) 置Event_Period域?qū)⑿陆鞒坦?jié)點(diǎn)文檔中Event_Per
30、iod數(shù)據(jù)域的值由“模版”改為“實(shí)例”。關(guān)鍵代碼如下:newnode.Event_Period = “實(shí)例”(3) 同應(yīng)用數(shù)據(jù)實(shí)例綁定將應(yīng)用數(shù)據(jù)文檔如公文文檔的文檔Id值置入新建流程節(jié)點(diǎn)文檔的Data_Id域,從而完成綁定操作。關(guān)鍵代碼如下: data為應(yīng)用數(shù)據(jù)文檔 newnode.Data_Id = data.Universalid3. 維護(hù)流程節(jié)點(diǎn)狀態(tài)信息a) 原理流程假設(shè)某節(jié)點(diǎn)node完成了應(yīng)用數(shù)據(jù)文檔處理,接下來(lái)工作流引擎會(huì)通過設(shè)置流程節(jié)點(diǎn)的狀態(tài)信息來(lái)更新工作流實(shí)例的運(yùn)行狀態(tài)。工作流實(shí)例運(yùn)行狀態(tài)的更新過程可以用下圖所示的原理流程表達(dá):圖2-2-4 狀態(tài)更新原理流程從狀態(tài)更新的原理流程中
31、可以看出,狀態(tài)更新過程由節(jié)點(diǎn)node完成對(duì)應(yīng)用數(shù)據(jù)文檔的處理觸發(fā),之后工作流引擎分三步來(lái)修改節(jié)點(diǎn)狀態(tài):a. 設(shè)置節(jié)點(diǎn)node狀態(tài)為done當(dāng)流程節(jié)點(diǎn)處理完成后,狀態(tài)有active變?yōu)閐one。 b. 激活新流程節(jié)點(diǎn)流程節(jié)點(diǎn)的啟動(dòng)條件決定了節(jié)點(diǎn)何時(shí)被激活,何時(shí)獲得處理權(quán)限。在此步驟中,工作流引擎通過構(gòu)造各個(gè)流程節(jié)點(diǎn)的啟動(dòng)條件,判斷其值來(lái)完成節(jié)點(diǎn)處理權(quán)限的傳遞。因?yàn)榱鞒坦?jié)點(diǎn)的啟動(dòng)條件可以通過其所有前驅(qū)節(jié)點(diǎn)的狀態(tài)信息和流轉(zhuǎn)順序信息的邏輯組合表達(dá)出來(lái),所以在節(jié)點(diǎn)node完成處理后,工作流引擎沒有必要計(jì)算構(gòu)成過程定義實(shí)例的所有節(jié)點(diǎn)的啟動(dòng)條件,而只需要計(jì)算節(jié)點(diǎn)node的所有后繼節(jié)點(diǎn)的啟動(dòng)條件即可。c. 決
32、定哪些節(jié)點(diǎn)的狀態(tài)有done變?yōu)閕nactive流程節(jié)點(diǎn)狀態(tài)由done轉(zhuǎn)化為inactive的必要性在過程定義模型部分已經(jīng)作了說明,節(jié)點(diǎn)的完成條件規(guī)定了這一狀態(tài)轉(zhuǎn)化的條件。在某節(jié)點(diǎn)完成處理后,工作流引擎通過計(jì)算其它節(jié)點(diǎn)的完成條件,來(lái)確定哪些狀態(tài)為done的節(jié)點(diǎn)可以將狀態(tài)設(shè)置為inactive。b) 步驟1的具體實(shí)現(xiàn)步驟1的目的是在節(jié)點(diǎn)node完成對(duì)應(yīng)用數(shù)據(jù)文檔的處理以后,將節(jié)點(diǎn)狀態(tài)設(shè)置為done。關(guān)鍵代碼如下: node.Event_Status = “done”c) 后繼節(jié)點(diǎn)狀態(tài)設(shè)置算法步驟2的目的是設(shè)置節(jié)點(diǎn)node的后繼節(jié)點(diǎn)的狀態(tài),節(jié)點(diǎn)node的類型以及其后繼節(jié)點(diǎn)的類型決定了步驟2有不同的實(shí)
33、現(xiàn)方式。設(shè)置node后繼節(jié)點(diǎn)狀態(tài)的過程可以用下圖表達(dá): 圖2-2-5 后繼節(jié)點(diǎn)狀態(tài)設(shè)置算法從圖中可以看出,將設(shè)置算法依據(jù)節(jié)點(diǎn)node的分類分為兩種情況:a. 節(jié)點(diǎn)node為唯一后繼節(jié)點(diǎn)或者發(fā)點(diǎn)此種情況下,節(jié)點(diǎn)node需要遍歷其所有的后繼節(jié)點(diǎn),計(jì)算每個(gè)后繼續(xù)節(jié)點(diǎn)的啟動(dòng)條件的取值。b. 節(jié)點(diǎn)node為選擇性發(fā)點(diǎn)當(dāng)節(jié)點(diǎn)node為選擇性發(fā)點(diǎn)時(shí),根據(jù)選擇性發(fā)點(diǎn)的定義,只有一個(gè)后繼節(jié)點(diǎn)可以獲得處理權(quán),因此不需要遍歷其所有的后繼節(jié)點(diǎn),只需計(jì)算其所選定的后繼節(jié)點(diǎn)的啟動(dòng)條件即可。根據(jù)后繼節(jié)點(diǎn)的類型,計(jì)算啟動(dòng)條件分為兩種情況(狀態(tài)設(shè)置算法1和狀態(tài)設(shè)置算法2):a. 后繼節(jié)點(diǎn)為收點(diǎn)或唯一前驅(qū)節(jié)點(diǎn)當(dāng)節(jié)點(diǎn)node的某個(gè)
34、后繼節(jié)點(diǎn)next為收點(diǎn)或唯一前驅(qū)收點(diǎn)時(shí),在遍歷next的所有前驅(qū)節(jié)點(diǎn)時(shí),對(duì)每個(gè)前驅(qū)節(jié)點(diǎn)計(jì)算判斷式(select(prei) CTN next) AND (status(prei) = “done”) 的值,只要有一個(gè)為false,則next的啟動(dòng)條件必然不成立,即可以終止遍歷循環(huán)。判斷next的啟動(dòng)條件值的關(guān)鍵代碼如下:Dim flag as Booleanflag = false 遍歷next的全部前驅(qū)節(jié)點(diǎn)Forall n In next.Event_Pre_Id Set prenode = db.GetDocumentByUNID(n)If Not(Select(prenode,next)
35、 = true AND prenode.Event_Status(0) = “done”) Then Select()函數(shù)用于判斷prenode所選定的后繼節(jié)點(diǎn)列表中是否包括next flag = true Exit ForAll End IfEnd Forall 設(shè)置后繼節(jié)點(diǎn)next的狀態(tài)If flag = true then 節(jié)點(diǎn)next的啟動(dòng)條件不滿足,狀態(tài)不變Else 節(jié)點(diǎn)next的啟動(dòng)條件滿足,將狀態(tài)變?yōu)閍ctive next.Event_Status = “active” next.save True,True,TrueEnd Ifb. 后繼節(jié)點(diǎn)為選擇性收點(diǎn)當(dāng)節(jié)點(diǎn)node的某個(gè)后繼
36、節(jié)點(diǎn)next為選擇性收點(diǎn)時(shí),不需要遍歷next的所有前驅(qū)節(jié)點(diǎn),而只需要判斷下式對(duì)節(jié)點(diǎn)node的取值即可。(select(node) CTN next) AND (status(nodei) = “done”) 關(guān)鍵代碼如下:If (Select(node,next) = true AND note.Event_Status(0) = “done”) thenSelect()函數(shù)用于判斷node所選定的后繼節(jié)點(diǎn)列表中是否包括next next.Event_Status = “active” next.save True,True,TrueElse next狀態(tài)保持不變End Ifd) 設(shè)置完成條
37、件得到滿足的流程節(jié)點(diǎn)狀態(tài)當(dāng)完成對(duì)流程節(jié)點(diǎn)node的后繼節(jié)點(diǎn)狀態(tài)設(shè)置以后,其后繼節(jié)點(diǎn)狀態(tài)的變化可能使某些節(jié)點(diǎn)的完成條件得到滿足,從而完成流程節(jié)點(diǎn)狀態(tài)信息由done向inactive的轉(zhuǎn)化。在判斷流程節(jié)點(diǎn)的完成條件時(shí),沒有必要計(jì)算組成過程定義實(shí)例的所有流程節(jié)點(diǎn)的完成條件,只需要檢查節(jié)點(diǎn)node的獲得了處理權(quán)的后繼節(jié)點(diǎn)的所有前驅(qū)節(jié)點(diǎn)的完成條件即可。判斷完成條件的處理流程如圖2-2-6所示。從流程中可以看到,根據(jù)next的前驅(qū)節(jié)點(diǎn)類型,構(gòu)造next的前驅(qū)節(jié)點(diǎn)的完成條件有兩種方式(完成條件判斷算法1和完成條件判斷算法2):(2) next的前驅(qū)節(jié)點(diǎn)為唯一后繼節(jié)點(diǎn)或者發(fā)點(diǎn)關(guān)鍵代碼如下:Dim flag a
38、s Booleanflag = false 假設(shè)prenode為next某個(gè)前驅(qū)節(jié)點(diǎn),nextnode為prenode的某個(gè)后繼節(jié)點(diǎn)Forall x In prenode.Event_Next_NameSet nextnode=db.getdocumentbyunid(GetIdByName(y)If nextnode.Event_Status(0) “active” Thenflag=TrueEnd IfEnd ForallIf flag=True Then prenode的完成條件不滿足,保持狀態(tài)不變Else prenode.Event_Status= “inactive” prenode
39、.save True,True,TrueEnd If(2) next的前驅(qū)節(jié)點(diǎn)為選擇性發(fā)點(diǎn)關(guān)鍵代碼如下: 假設(shè)prenode為next的某個(gè)具有選擇性發(fā)點(diǎn)類型的前驅(qū)節(jié)點(diǎn),nextnode為prenode所選定的獲得處理權(quán)的唯一后繼節(jié)點(diǎn)Set nextnode=db.getdocumentbyunid(GetIdByName(prenode. SelectEvent(0)If nextnode.Event_Status(0)= “active” thenprenode的完成條件得到滿足 prenode.event_system= “inactive” prenode.save True,True
40、,TrueElse prenode的完成條件不成立,狀態(tài)保持不變End If圖2-2-6 流程節(jié)點(diǎn)完成條件判斷算法e) 設(shè)置應(yīng)用數(shù)據(jù)文檔的訪問控制列表公文表單中的Data_Personlist數(shù)據(jù)域用于存儲(chǔ)允許訪問列表,只有列在此列表中的用戶才具有對(duì)文檔的處理權(quán)限。通過查找過程定義實(shí)例中所有狀態(tài)為active的流程節(jié)點(diǎn),將它們?cè)贓vent_Personlist數(shù)據(jù)域中所指定的處理人姓名添加到應(yīng)用數(shù)據(jù)文檔的Data_Personlist數(shù)據(jù)域,來(lái)完成節(jié)點(diǎn)狀態(tài)和應(yīng)用數(shù)據(jù)文檔處理權(quán)限的同步變化。 關(guān)鍵代碼如下: 假設(shè)過程定義實(shí)例存儲(chǔ)在過程定義實(shí)例視圖view中,data為應(yīng)用數(shù)據(jù)文檔 Set ite
41、m=data.getfirstitem(“Data_Personlist”)Set node=view.getfirstdocumentWhile Not(node Is Nothing) 判斷與此應(yīng)用數(shù)據(jù)文檔相綁定的流程節(jié)點(diǎn)的狀態(tài)If (node.Data_Id(0)=data.Universalid) And (node.Event_Status(0)= “active”)Then找到了具有處理權(quán)的流程節(jié)點(diǎn),將其指定的處理人加入到應(yīng)用數(shù)據(jù)文檔的Data_Personlist數(shù)據(jù)域中 Call item.appendtotextlist(node.Event_Personlist(0) da
42、ta.save True,True,True End If Set node=view.getnextdocument(node)Wend六. 工作流流程定義工具設(shè)計(jì)流程定義工具的功能可以細(xì)分為:(1) 向用戶提供定義工作流的操作界面(2) 根據(jù)用戶的輸入自動(dòng)生成以文本形式表達(dá)的工作流抽象描述(3) 將以文本形式表達(dá)的工作流抽象描述發(fā)送給格式轉(zhuǎn)化工具組件1. 類關(guān)系將流程節(jié)點(diǎn)抽象為流程節(jié)點(diǎn)類(Node),同時(shí),將流程節(jié)點(diǎn)定義中的事件屬性集合、前驅(qū)節(jié)點(diǎn)集合、后繼節(jié)點(diǎn)集合均做對(duì)象化處理,由此產(chǎn)生屬性信息(Attibute)、前驅(qū)節(jié)點(diǎn)信息(PreNodes)、后繼節(jié)點(diǎn)信息(NextNodes)三個(gè)類
43、。這三個(gè)類同流程節(jié)點(diǎn)類構(gòu)成復(fù)合聚合的關(guān)系,如下圖所示。圖2-2-7 復(fù)合聚合型的類關(guān)系2. 類結(jié)構(gòu)設(shè)計(jì)(1) 流程節(jié)點(diǎn)類(Node)Class Node private String node_id ; private Attibute att ; private PreNodes p ; private NextNodes n ; private String type ; privateString status ; Public String getId(); Public void setId(String s); Public Attibute getAtt() ; Public P
44、reNodes getP(); Public NextNodes getN(); Public String getStatus(); Public void setStatus(String s); 實(shí)際業(yè)務(wù)處理過程最終會(huì)抽象表達(dá)為一系列流程節(jié)點(diǎn)類實(shí)例的集合。對(duì)流程節(jié)點(diǎn)類的定義完全遵循流程節(jié)點(diǎn)的定義。類定義中成員變量和方法的含義在下表中加以說明:表2-2-9 流程節(jié)點(diǎn)類設(shè)計(jì)成員變量含義node_id流程節(jié)點(diǎn)的唯一標(biāo)識(shí)符att對(duì)流程節(jié)點(diǎn)屬性信息類(Attribute)的引用p對(duì)流程節(jié)點(diǎn)前驅(qū)節(jié)點(diǎn)信息類(PreNodes)的引用n對(duì)流程節(jié)點(diǎn)后繼節(jié)點(diǎn)信息類(NextNodes)的引用type流程節(jié)點(diǎn)
45、的類型方法作用getId()取得流程節(jié)點(diǎn)唯一標(biāo)識(shí)setId()設(shè)置流程節(jié)點(diǎn)唯一標(biāo)識(shí)getAtt()取得節(jié)點(diǎn)狀態(tài)信息類的指針getP()取得節(jié)點(diǎn)前驅(qū)節(jié)點(diǎn)信息類的指針gerN()取得節(jié)點(diǎn)后繼節(jié)點(diǎn)信息類的指針getType()取得節(jié)點(diǎn)類型信息serType()設(shè)置流程節(jié)點(diǎn)類型信息(2) 屬性信息類(Attibute) Class Attibute private String node_name ; private String node_person; private Boolean node_reply; private Boolean node_sign; private String nod
46、e_body; Public String getName(); Public void setName(String s); Public String getPerson(); Public void setPerson(String s); Public String getReply(); Public void setReply(Boolean b); Public String getSign(); Public void setSign(Boolean b); Public String getBody(); Public void setBody(Stirng s); 屬性信息
47、類用于表達(dá)流程節(jié)點(diǎn)所代表的實(shí)際業(yè)務(wù)步驟的重要屬性信息。屬性信息類定義中成員變量和方法的含義在下表中加以說明:表2-2-10 屬性信息類設(shè)計(jì)成員變量含義node_name流程節(jié)點(diǎn)標(biāo)識(shí)名稱node_person流程步驟的處理人。當(dāng)節(jié)點(diǎn)獲得了處理權(quán)以后,只有在此變量中列出的人員才能夠?qū)?yīng)用數(shù)據(jù)進(jìn)行處理node_reply節(jié)點(diǎn)完成處理以后,是否向工作流發(fā)起人發(fā)送已辦通知,取值為false 或 truenode_sign是否在節(jié)點(diǎn)完成處理時(shí),使用手寫簽名認(rèn)證功能,取值為false 或 truenode_body對(duì)節(jié)點(diǎn)所代表的實(shí)際業(yè)務(wù)步驟的功能的說明方法作用getXXXX()取得相應(yīng)屬性值setXXXX()設(shè)置相應(yīng)屬性值(3) 前驅(qū)節(jié)點(diǎn)信息類(PreNodes) Class PreNodes ArrayList preList ;Public void addPre();Public Object getPre(String s)Public int getAcount();Public void emptyList(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 35610-2024綠色產(chǎn)品評(píng)價(jià)陶瓷磚(板)
- 《創(chuàng)業(yè)學(xué)》重點(diǎn)題集
- 年產(chǎn)1萬(wàn)噸碳酸二甲酯合成項(xiàng)目可行性研究報(bào)告
- 2024年動(dòng)量守恒定律【八大題型】(含答案)
- 2023年傳統(tǒng)銀飾資金申請(qǐng)報(bào)告
- 高中生元旦晚會(huì)主持的開場(chǎng)白范文(35篇)
- 2024年中考?xì)v史考前速背知識(shí)梳理
- 離任發(fā)言:國(guó)企黨委書記在離任干部大會(huì)上發(fā)言材料
- 每月實(shí)習(xí)報(bào)告
- 統(tǒng)計(jì)的實(shí)習(xí)報(bào)告
- 高三第一次聯(lián)考英語(yǔ)試卷分析
- 幼兒園食品安全
- 家庭教育與孩子的生涯規(guī)劃
- 大學(xué)生如何遵守網(wǎng)絡(luò)生活中的道德要求
- 給小朋友科普醫(yī)學(xué)知識(shí)
- 最美老師評(píng)選述職報(bào)告
- 電氣工程及其自動(dòng)化生涯發(fā)展展示
- 2024學(xué)校所屬企業(yè)國(guó)有資產(chǎn)管理的若干意見全文
- 大數(shù)據(jù)與會(huì)計(jì)職業(yè)生涯規(guī)劃
- 眼科護(hù)理中的圍手術(shù)期護(hù)理與管理
- 中華民族的形成與發(fā)展(原版)
評(píng)論
0/150
提交評(píng)論