




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、XX工業(yè)研究院辦公自動化系統(tǒng)設(shè)計方案XXXX年6月目錄第一章系統(tǒng)總體結(jié)構(gòu)6第二章系統(tǒng)設(shè)計6 2. 1電子6一. 表單設(shè)計71. 表單(Memo) 72. 回信表單(Reply) 73. 轉(zhuǎn)發(fā)表單(wForward) 84. 信件郵遞報告表單(NonDelivery Report)9二. 視圖設(shè)計91. 收件箱($Inbox)92. 發(fā)件箱($Sent)93. 草稿箱($Drafts)94. 垃圾箱(Carbage) 10 2.2公文流轉(zhuǎn)10一. 結(jié)構(gòu)設(shè)計10二. 功能設(shè)計10三. 表單設(shè)計111. 公文表單(Data) 112. 公文附件表單(AddAttachment) 123. 公文正文表
2、單(AddDocumentBody) 134. 工作流信息表單(WorkFlowInfo) 135. 流程節(jié)點表單(event) 146. 已辦公文記錄表單(DoneRecord) 167. 用戶角色設(shè)置表單(UserRuls) 168. 搜索表單(SearchForm) 16四. 視圖設(shè)計171. 工作流名稱列表172. 模版事件列表173. 激活事件列表174. 數(shù)據(jù)表單列表175. 公文草稿列表176. 公文附件列表177. 公文正文列表188. 已辦公文列表18五. 工作流流轉(zhuǎn)控制算法設(shè)計181 .功能分析182. 創(chuàng)建過程定義實例和同應(yīng)用數(shù)據(jù)實例綁定203. 維護流程節(jié)點狀態(tài)信息20
3、六. 工作流流程定義工具設(shè)計271. 類關(guān)系272 類結(jié)構(gòu)設(shè)計283 過程定義工具文本輸出格式32七. 格式轉(zhuǎn)化工具設(shè)計322.3公共事務(wù)35一. 總體結(jié)構(gòu)設(shè)計35二. 表單設(shè)計351. 日程安排表單352. 會議安排表單363. 會議記錄表單374會議紀要表單385. 空閑時間查詢表單386. 空閑日期查詢表單397. 會議室管理表單398. 空閑會議室查詢表單399. 會議室空時段查詢表單4010. 來賓接待表單40三. 視圖設(shè)計401. 會議安排視圖412. 會議草稿視圖413. 在審會議視圖414議記錄視圖415. 議紀要視圖416. 日程安排視圖417. 日程草稿視圖418. 在審日
4、程視圖419. 會議室視圖4110. 來賓接待視圖41 2.4電子討論區(qū)41一. 討論區(qū)功能模塊設(shè)計42二. 討論板塊42三. 用戶筆名注冊43 2. 5信息服務(wù)44一. 信息服務(wù)功能模塊設(shè)計44二. 電子布告欄45三. 公共信息查詢461. 員工地址簿462. 個人名片夾463. 列車時刻表474. 航班時刻表485. 郵編及區(qū)號496. 公司大事記502.6系統(tǒng)維護50一. 表單設(shè)計511. 組織機構(gòu)設(shè)置表單(Department) 512. 用戶信息注冊表單(Userinfo) 513. 用戶職務(wù)注冊表單(Caste_Name) 524. 用戶信息列表顯示表單(PagePersons)
5、525. 用戶密碼設(shè)置表單(Password) 52二. 視圖設(shè)計531. 組織機構(gòu)列表(DepartmentList) 532. 用戶列表(Persons) 533. 職務(wù)列表(Caste_Name) 534. 用戶權(quán)限列表(Limit)53附錄1 XX工業(yè)研究院MIS系統(tǒng)設(shè)計54 1概述54 2需求分析54一、科技項目管理54項目申報(科委項目、工研院項目)54 合同管理54項目跟蹤54二、教育培訓(xùn)管理54職工教育培訓(xùn)54 招生管理54三、科技情報管理54科技情報發(fā)布54下屬單位需求54四、申請書編號管理54五、用戶權(quán)限管理54 3功能表格55科技項目管理X55教育管理培訓(xùn)J55科技情報管
6、理Q55 4功能模塊設(shè)計56一 功能模塊56科技項目管理56教育培訓(xùn)管理57科技情報管理57二.功能說明57科技項目管理57教育培訓(xùn)管理58 科技情報信息管理58 5數(shù)據(jù)表格設(shè)計58一.科技項目及合同管理58 科技項目申請表58 申請一覽表60 工研院項目執(zhí)行情況報告書61二教育管理培訓(xùn)61三科技情報管理61科技情報發(fā)布61下屬單位需求62附錄2設(shè)計63 1概述63 2功能設(shè)計63一.情況介紹63二需求分析63三功能模塊及實現(xiàn)64四. 數(shù)據(jù)接口 65五. 目錄結(jié)構(gòu)66 3數(shù)據(jù)庫設(shè)計66第一章系統(tǒng)總體結(jié)構(gòu)XX工業(yè)研究院辦公自動化系統(tǒng)基于Lotus Domino / Notes平臺開發(fā),系統(tǒng)的總體
7、結(jié)構(gòu)如下圖所示:圖1-1 XX工業(yè)研究院辦公自動化系統(tǒng)總體結(jié)構(gòu)第二章系統(tǒng)設(shè)計 21電子電子模塊的結(jié)構(gòu)如下圖所示。圖2-1-1電子模塊一. 表單設(shè)計1-表單(Memo)表2-1-1表單設(shè)計數(shù)據(jù)域類型說明SendTo文本域收件人地址CopyTo文本域抄送地址BlindCopyTo文本域密送地址WebSubject文本域主題Text文本域(允許多行)正文haveread文本域文件已讀標志操作說明發(fā)送發(fā)送保存為草稿將保存為草稿回復(fù)回復(fù)轉(zhuǎn)發(fā)轉(zhuǎn)發(fā)地址簿打開地址簿表單編輯編輯刪除刪除2. 回信表單(Reply)表2-1-2回信表單設(shè)計數(shù)據(jù)域類型說明SendTo文本域收件人地址CopyTo文本域抄送地址Bl
8、indCopyTo文本域密送地址WebSubject文本域主題Text文本域(允許多行)正文haveread文本域文件已讀標志操作說明發(fā)送發(fā)送保存為草稿將保存為草稿回復(fù)回復(fù)轉(zhuǎn)發(fā)轉(zhuǎn)發(fā)地址簿打開地址簿表單編輯編輯刪除刪除3.轉(zhuǎn)發(fā)表單(wForward)表2-1-3轉(zhuǎn)發(fā)表單設(shè)計數(shù)據(jù)域類型說明SendTo文本域收件人地址CopyTo文本域抄送地址BlindCopyTo文本域密送地址WebSubject文本域主題Text文本域(允許多行)正文haveread文本域文件已讀標志操作說明發(fā)送發(fā)送保存為草犒將保存為草稿回復(fù)回復(fù)轉(zhuǎn)發(fā)轉(zhuǎn)發(fā)地址簿打開地址簿表單編輯編輯刪除刪除4.信件郵遞報告表單(NonDelive
9、ry Report)表2-1-4信件郵遞報告表單設(shè)計數(shù)據(jù)域類型說明OriginalSubject文本域被郵遞的信件名稱IntendedRecipient文本域被郵遞信件的收件人地址FailureReason文本域為郵遞到目的地原因SendTo文本域被郵遞文件中指定的收件地址CopyTo文本域被郵遞文件中指定的抄送地址BlindCopyTo文本域被郵遞文件中指定的密送地址Subject文本域被郵遞文件的主題Body文本域(允許多行)被郵遞文件的內(nèi)容haveread文本域文件已讀標志操作說明刪除刪除二. 視圖設(shè)計1. 收件箱($Inbox)收件箱通過文件夾實現(xiàn),所有接收到文件均由系統(tǒng)自動放入收件箱
10、中。2. 發(fā)件箱($Sent)用于所發(fā)送的均自動保存在發(fā)件箱中。文檔選擇條件為:SELECT DeliveredDate= & PostedDate! = M n& ! (I sMember (lr SM ; Exc 1 udeFromV i ew) &V i ewtag! =M De 1 eteK3. 草稿箱($Drafts)所有保存為草稿的均顯示在草稿箱中。文檔選擇條件為:SELECT PostedDate = nn & $MessageType =& I sNotMember (,r D; Exc 1 udeFromV i ew) & ISMAILSTATIONERY != 1& Vie
11、wtag二Istrash4. 垃圾箱(Carbage)所有被刪除的均保存在此視圖中。在此視圖中再次刪除的話,則文件被真正刪除。 文檔選擇條件為:SELECT (FORM二Memo form二Reply Form=wForward) & Deleted= true1 2.2公文流轉(zhuǎn)一. 結(jié)構(gòu)設(shè)計XX工業(yè)研究院0A系統(tǒng)公文流轉(zhuǎn)模塊總體結(jié)構(gòu)如下圖所示。圖2-2-1公文流轉(zhuǎn)模塊結(jié)構(gòu)設(shè)計二. 功能設(shè)計公文流轉(zhuǎn)模塊提供的具體功能如下圖所示:系統(tǒng)設(shè)置圖2-2-2公文流轉(zhuǎn)模塊功能設(shè)計三. 表單設(shè)計1. 公文表單(Data)公文表單用于記錄公文的相關(guān)信息。具體設(shè)計如下:表2-2-1公文表單設(shè)計數(shù)據(jù)域類型說明GW
12、LX列表框公文類型DM列表框公文的登記部門DJSJ文本域公文的登記時間Subject文本域公文標題NCR文本域公文起草人XXGWHJ列表框公文緩急信息列表ZTCB文本域公文的主題詞ZBDW文本域主辦單位名稱ZCDW文本域主送單位名稱CSDW文本域抄送單位名稱CBDW文本域抄報單位名稱Info文本域(允許多行)公文正文內(nèi)容Data Number文本域公文的編號SelectWorkFlow列表框顯示過程定義模版列表PersonAnswer文本域顯示處理人的批復(fù)意見Data Personlist文本域允許處理本公文的用戶列表Start文本域公文是否為首次提交Data Current Ed itor文
13、本域記錄當(dāng)前編輯公文的用戶XXCuiBan文本域是否存在公文催辦通知操作說明提交流轉(zhuǎn)提交公文進入流轉(zhuǎn)過程暫存將公文保存為草稿簽收處理人打開公文進行編輯編輯公文作者編輯公文刪除刪除公文催辦發(fā)出公文催辦通知說明:(1) Subject. Info等用于記錄公文的內(nèi)容信息,公文的內(nèi)容信息包括公文 主題、公文編號、公文內(nèi)容、公文密級、公文緩急等。(2) NGR、DJSJ分別記錄公文文檔的創(chuàng)建人和創(chuàng)建時間,工作流的管理與監(jiān) 控功能會用到這些信息。(3) SelectWorkFlow是列表框,用于顯示所有可供使用的過程定義模版。 在公文的創(chuàng)建階段,用戶從列表中選擇要使用的流程;在公文進入流轉(zhuǎn)過程以后, 由
14、工作流引擎根據(jù)所選擇的流程,自動生成過程定義實例,之后實現(xiàn)公文文檔同 過程定義實例的綁定操作。(4) Data_Personlist域用于記錄所有對本文檔具有處理權(quán)限的用戶的用戶 名列表,只有在此列表中列出的用戶才能夠?qū)倪M行處理。其取值由工作流引 擎自動填寫。2. 公文附件表單(AddAttachment)公文附件表單用于存儲某一公文所包含的附件文件,一個公文可以包含多個 附件,每個附件對應(yīng)一個公文附件表單。表2-2-2公文附件表單設(shè)計數(shù)據(jù)域類型說明Attachment Info文本域?qū)Ω郊暮喴f明File Upload控件上載文件控件Parentld文本域此附件表單所從屬的公文表單ID
15、Attachment Name文本域附件文件名Attachment Size文本域附件文件大小操作說明保存附件保存公文附件表單刪除附件刪除公文附件表單關(guān)閉窗口關(guān)閉公文附件上載窗口3. 公文正文表單(AddDocumentBody)公文正文表單用于存儲某一公文所包含的正文文件,一個公文可以包含多個 正文文件,每個正文文件對應(yīng)一個公文正文表單。表2-2-3公文正文表單設(shè)計數(shù)據(jù)域類型說明Attachment Info文本域?qū)φ奈募暮喴f明File Upload控件上載文件控件Parentld文本域此公文正文表單所從屬的公文表單IDAttachment Name文本域附件文件名Attachment
16、 Size文本域附件文件大小操作說明保存正文保存公文正文表單刪除正文刪除公文正文表單關(guān)閉窗口關(guān)閉公文正文上載窗口4. 工作流信息表單(WorkFlowInfo)工作流信息表單用于存儲工作流程模版的基本屬性信息。在流程信息表單中 定義的重要數(shù)據(jù)域如下:表2-2-4 X作流信息表單數(shù)據(jù)域類型說明Workflow Name文本域流程名稱Workflow Type列表框流程類型,可選值為“預(yù)定義流程” 和“自定義流程”Workflow Author文本域此流程創(chuàng)建人XXWorkflow Created文本域此流程創(chuàng)建時間Workflow Body文本域此流程功能簡要說明操作說明修改編輯工作流信息表單保
17、存保存工作流信息表單刪除刪除工作流信息表單5. 流程節(jié)點表單(event)流程節(jié)點表單用于記錄過程定義中流程節(jié)點所包含的信息。過程定義中的每 個流程節(jié)點都與Domino數(shù)據(jù)庫中的一個流程節(jié)點文檔對應(yīng)。表2-2-5流程節(jié)點表單設(shè)計數(shù)據(jù)域類型說明Workflow Id文本域節(jié)點所從屬的工作流信息文檔IdData_Id文本域與此過程定義所綁定的應(yīng)用數(shù)據(jù)文檔IdEvent_ Id文本域流程節(jié)點文檔Id,在節(jié)點文檔生 成后自動填寫Event_Name文本域流程節(jié)點功能描述名稱,如初審、 批閱等。Event Pre Names列表框此流程節(jié)點的全部前趨節(jié)點列表Event_Personlist文本域此節(jié)點允
18、許處理人名稱EventPersonlis t Type列表域指定處理人類型:個人”、“交 色”SXQM復(fù)選框是否使用手寫簽名功能Event Body文本框(允許多值)此節(jié)點功能簡要說明Event Pre Name文本域(允許多值)以節(jié)點名稱表示的前驅(qū)節(jié)點列表Event Pre Id文本域(允許多值)以節(jié)點Id表示的前驅(qū)節(jié)點列表Evemt Next Name文本域(允許多值)以節(jié)點名稱表示的后繼節(jié)點列表Event Next Id文本域(允許多值)以節(jié)點Id表示的后繼節(jié)點列表Event Status文本域流程節(jié)點狀態(tài)Event Period文本域流程節(jié)點文檔狀態(tài)Event_Period文本域用于區(qū)
19、分模版和實例,可取值為模版”、實例”SelectPre復(fù)選框此節(jié)點是否為選擇性收點SelectNext復(fù)選框此節(jié)點是否為選擇性發(fā)點SelectNode文本域如果此節(jié)點是選擇性發(fā)點,則此域 用于記錄所選定的后繼節(jié)點名稱操作說明修改編輯流程節(jié)點表單保存保存流程節(jié)點表單刪除刪除流程節(jié)點表單說明:(1) 流程節(jié)點定義中的Att (事件屬性集合)通過數(shù)據(jù)域Workflow_Id. Data_Id、Event IdEvent Name、Evnent Personlist. SXQM 等表達出來。 Event Pre Name. Event Pre_Id為允許多值的文本域,以節(jié)點名稱和節(jié)點文檔 Id兩種方式
20、表達此節(jié)點的前驅(qū)節(jié)點集合Pre; Event Next NameEvent Next ld 則以節(jié)點名稱和節(jié)點文檔Id兩種方式表達此節(jié)點的后繼節(jié)點集合Next。 Event Status表達節(jié)點狀態(tài)信息。(2) Workflow_Id數(shù)據(jù)域用于標識此流程節(jié)點文檔所從屬的工作流程。屬于 同一工作流程的流程節(jié)點文檔具有相同的Workflow_Ido(3) Data_Id數(shù)據(jù)域用于實現(xiàn)應(yīng)用數(shù)據(jù)實例同過程定義實例的一一對應(yīng)。 Data_Id的值為公文表單的文檔實例的文檔Id,由工作流管理系統(tǒng)自動填寫。組 成一個過程定義實例的所有流程節(jié)點文檔具有相同的Data.Id值。(4) Event_Status標
21、識流程節(jié)點的狀態(tài)信息,由工作流引擎自動設(shè)置。(5) 構(gòu)成過程定義的流程節(jié)點文檔在工作流進入運行期之前,存儲在過程定 義模版庫中;在運行期,則存儲到過程定義實例庫。因此,在流程節(jié)點表單中使 用Event_Period數(shù)據(jù)域來標識過程定義的狀態(tài)。屬于同一過程定義的節(jié)點文檔 的Event_Period域的值是相同的。其可能取值為“模版”和“實例”。(6) SelectPre數(shù)據(jù)域用于標識此節(jié)點是否為選擇性收點。在工作流實例運 行期間,工作流引擎需要根據(jù)此數(shù)據(jù)域的取值選擇不同的啟動條件構(gòu)造算法。(7) SelectNext數(shù)據(jù)域用于表示此節(jié)點是否為選擇性發(fā)點。在工作流實例 運行期間,工作流引擎需要根據(jù)
22、此數(shù)據(jù)域的取值選擇不同的完成條件構(gòu)造算法。節(jié)點所選定的后繼節(jié)點的名稱保存在SelectNode數(shù)據(jù)域中。6. 巳辦公文記錄表單(DoneRecord)已辦公文記錄表單用于記錄用戶已經(jīng)處理完成的公文的相關(guān)信息,以備日后 查閱。表2-2-6已辦公文記錄表單設(shè)計數(shù)據(jù)域類型說明Subject文本域公文標題NCR文本域記錄公文的擬稿人XXSDSJ文本域收到此公文的時間BJSJ文本域完成處理的時間PYYJ文本域用戶的批閱意見操作說明刪除刪除已辦公文記錄表單7.用戶角色設(shè)置表單(UserRuls)用戶角色設(shè)置表單用于記錄用戶同其職務(wù)的對應(yīng)關(guān)系。表2-2-7用戶角色設(shè)置表單設(shè)計數(shù)據(jù)域類型說明RulName文本
23、域角色名稱SendTo文本域人員名稱ZhiNeng文本域角色職能說明操作說明修改編輯用戶角色設(shè)置表單保存保存用戶角色設(shè)置表單刪除刪除用戶角色設(shè)置表單& 搜索表單(SearchForm) 搜索表單用于輸入文檔檢索條件。表2-2-8搜索表單設(shè)計數(shù)據(jù)域類型說明Search ViewName列表框選擇要檢索的視圖Search Info文本域人員名稱Search Type文本域角色職能說明HTML文本域文檔檢索結(jié)果操作說明檢索文檔進行檢索操作四. 視圖設(shè)計1. 工作流名稱列表用于顯示數(shù)據(jù)庫中所有工作流信息文檔。文檔選擇條件:SELECT form=nWorkF low Info12. 模版事件列表用于顯
24、示所有具有模版”屬性的流程節(jié)點文檔。文檔選擇條件如下:SELECT (Form =流程節(jié)點)& (Event_Period=B模版)3. 激活事件列表用于顯示所有具有激活”屬性的流程節(jié)點文檔。文檔選擇條件如下:SELECT (Form =流程節(jié)點)& (Event_Period=w激活)4. 數(shù)據(jù)表單列表用于顯示所有公文文檔。文檔選擇條件如下:SELECT form=w數(shù)據(jù)表單& Start=0&公文草稿列表用于顯示所有保存為草稿的公文文檔。文檔選擇條件如下:SELECT form=ff數(shù)據(jù)表單& Start=l6. 公文附件列表用于顯示所有公文附件文檔。文檔選擇條件如下:SELECT for
25、m二AddAttachment7. 公文正文列表用于顯示所有公文正文文檔。文檔選擇條件如下:SELECT form=,rAddDocumentBody,r&巳辦公文列表用于顯示所有已辦公文記錄文檔。文檔選擇條件如下:SELECT form=,r DoneRecord11五. 工作流流轉(zhuǎn)控制算法設(shè)計1. 功能分析將工作流引擎的功能細化為以下幾個子功能:(1) 創(chuàng)建過程定義實例在工作流進入運行期以前,過程定義以模版的形式保存在過程定義模版庫 中。工作流進入運行期,工作流引擎必須根據(jù)用戶所選定的過程定義模版自動 生成過程定義實例,并存入負載最低的過程定義實例子庫。(2) 完成應(yīng)用數(shù)據(jù)實例和過程定義實
26、例的綁定操作在過程定義實例生成以后,工作流引擎必須將其同對應(yīng)的應(yīng)用數(shù)據(jù)實例綁 定,實現(xiàn)一一對應(yīng),從而完成數(shù)據(jù)單元實例的組建。(3) 在工作流實例運行期間,對流程節(jié)點的狀態(tài)信息進行維護在基于流程節(jié)點單一設(shè)計元素的過程定義模型中,定義了流程節(jié)點狀態(tài)信 息來描述節(jié)點對應(yīng)用數(shù)據(jù)的處理狀態(tài)。而整個工作流實例的運行狀態(tài)會通過流 程節(jié)點的狀態(tài)表達出來。工作流引擎需要根據(jù)流程節(jié)點的啟動條件和完成條件 來對節(jié)點的狀態(tài)進行設(shè)置,從而模擬出數(shù)據(jù)流動的效果。這是工作流引擎的核 心功能。(4) 對應(yīng)用數(shù)據(jù)文檔的訪問控制列表進行維護流程節(jié)點狀態(tài)信息的變化必須轉(zhuǎn)化為用戶對應(yīng)用數(shù)據(jù)處理權(quán)限的變化。某 一流程節(jié)點狀態(tài)信息變?yōu)閍
27、ctive,實際意味著在此節(jié)點定義中指定的處理人獲 得了對應(yīng)用數(shù)據(jù)文檔的處理權(quán);狀態(tài)信息為inactive或done則表示指定的處理人 沒有處理文檔的權(quán)限。因此,工作流引擎需要根據(jù)流程節(jié)點狀態(tài)信息的變化,對 應(yīng)用數(shù)據(jù)表單中的用戶訪問控制列表進行修改,從而實現(xiàn)節(jié)點狀態(tài)信息和用戶 對文檔處理權(quán)限的一致變化。(5) 工作流實例運行期間,給予用戶對過程定義實例的動態(tài)修改的能力 由于實際業(yè)務(wù)處理過程往往表現(xiàn)出一定的隨意性,因此,工作流引擎應(yīng)該向 用戶提供在工作流實例運行期間,對過程定義實例的修改能力,使用戶可以根據(jù) 文檔處理的需要,對預(yù)定義的流程進行臨時性的修改。這種動態(tài)修改流程的能力, 可以大大加強工
28、作流系統(tǒng)的靈活性,使工作流系統(tǒng)更加滿足用戶的實際需求。 下圖表示了當(dāng)用戶完成應(yīng)用數(shù)據(jù)文檔的處理,將文檔保存提交以后,工作流引擎 處理數(shù)據(jù)的過程:圖2-2-3工作流引擎處理數(shù)據(jù)流程2. 創(chuàng)建過程定義實例和同應(yīng)用數(shù)據(jù)實例綁定在流程節(jié)點表單(Event)中定義了數(shù)據(jù)域Event_Period來區(qū)分屬于過程定 義模版庫的節(jié)點文檔和過程定義實例庫的節(jié)點文檔;而Data_Id域用于記錄對應(yīng) 應(yīng)用數(shù)據(jù)文檔的文檔Id信息。工作流引擎通過四個步驟完成過程定義實例的創(chuàng) 建和同應(yīng)用數(shù)據(jù)文檔的綁定操作。(1) 流程節(jié)點文檔復(fù)制將過程定義模版庫中屬于相應(yīng)過程定義的流程節(jié)點文檔復(fù)制,生成一個新的 流程節(jié)點文檔。此新節(jié)點文
29、檔的數(shù)據(jù)域的值同其原型完全相同。關(guān)鍵代碼如下:在數(shù)據(jù)庫中創(chuàng)建新文擋Set newnode = New NotesDocument( db )將模版庫中的節(jié)點文檔node的全部數(shù)據(jù)域復(fù)制到新文檔 Call node. CopyAl1Items( newnode, True )(2) 置 Event Period 域?qū)⑿陆鞒坦?jié)點文檔中Event_Period數(shù)據(jù)域的值由模版”改為實例”。關(guān)鍵代碼如下:newnode. Event Period =實例”(3) 同應(yīng)用數(shù)據(jù)實例綁定將應(yīng)用數(shù)據(jù)文檔如公文文檔的文檔Id值置入新建流程節(jié)點文檔的Data_Id 域,從而完成綁定操作。關(guān)鍵代碼如下:data為
30、應(yīng)用數(shù)據(jù)文檔newnode. Data ld = data. Universal id3. 維護流程節(jié)點狀態(tài)信息a) 原理流程假設(shè)某節(jié)點node完成了應(yīng)用數(shù)據(jù)文檔處理,接下來工作流引擎會通過設(shè)置 流程節(jié)點的狀態(tài)信息來更新工作流實例的運行狀態(tài)。工作流實例運行狀態(tài)的更新 過程可以用下圖所示的原理流程表達:節(jié)點no曰垸成處理將:no比狀態(tài)設(shè)置為 done將啟動條件得到滿 足的申點狀態(tài)設(shè)貫 為 active圖2-2-4狀態(tài)更新原理流程從狀態(tài)更新的原理流程中可以看出,狀態(tài)更新過程由節(jié)點node完成對應(yīng)用 數(shù)據(jù)文檔的處理觸發(fā),之后工作流引擎分三步來修改節(jié)點狀態(tài):a. 設(shè)置節(jié)點node狀態(tài)為done當(dāng)流程節(jié)
31、點處理完成后,狀態(tài)有active變?yōu)閐one。b. 激活新流程節(jié)點流程節(jié)點的啟動條件決定了節(jié)點何時被激活,何時獲得處理權(quán)限。在此步驟 中,工作流引擎通過構(gòu)造各個流程節(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é)點的
32、完成條件規(guī)定了這一狀態(tài)轉(zhuǎn)化的條件。在某節(jié)點完成處理后,工 作流引擎通過計算其它節(jié)點的完成條件,來確定哪些狀態(tài)為done的節(jié)點可以將 狀態(tài)設(shè)置為inactive0b)步驟1的具體實現(xiàn)步驟1的目的是在節(jié)點node完成對應(yīng)用數(shù)據(jù)文檔的處理以后,將節(jié)點狀態(tài) 設(shè)置為done。關(guān)鍵代碼如下:node. Event Status = donec)后繼節(jié)點狀態(tài)設(shè)置算法步驟2的目的是設(shè)置節(jié)點node的后繼節(jié)點的狀態(tài),節(jié)點node的類型以及其 后繼節(jié)點的類型決定了步驟2有不同的實現(xiàn)方式。設(shè)置node后繼節(jié)點狀態(tài)的過 程可以用下圖表達:圖2-2-5后繼節(jié)點狀態(tài)設(shè)置算法從圖中可以看出,將設(shè)置算法依據(jù)節(jié)點node的分類
33、分為兩種情況:a. 節(jié)點node為唯一后繼節(jié)點或者發(fā)點此種情況下,節(jié)點node需要遍歷其所有的后繼節(jié)點,計算每個后繼續(xù)節(jié)點 的啟動條件的取值。b. 節(jié)點node為選擇性發(fā)點當(dāng)節(jié)點node為選擇性發(fā)點時,根據(jù)選擇性發(fā)點的定義,只有一個后繼節(jié)點 可以獲得處理權(quán),因此不需要遍歷其所有的后繼節(jié)點,只需計算其所選定的后繼 節(jié)點的啟動條件即可。根據(jù)后繼節(jié)點的類型,計算啟動條件分為兩種情況(狀態(tài)設(shè)置算法1和狀態(tài) 設(shè)置算法2):a.后繼節(jié)點為收點或唯一前驅(qū)節(jié)點當(dāng)節(jié)點node的某個后繼節(jié)點next為收點或唯一前驅(qū)收點時,在遍歷next 的所有前驅(qū)節(jié)點時,對每個前驅(qū)節(jié)點計算判斷式(select(pre;) CTN
34、 next) AND (status(pre;) = done”)的值,只要有一個為false,則next的啟動條件必然不成立,即可以終止遍歷 循環(huán)。判斷next的啟動條件值的關(guān)鍵代碼如下:Dim flag as Booleanflag = false遍歷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” ) ThenSelect ()函數(shù)用于判斷
35、prenode所選定的后繼節(jié)點列表中是否包括n extflag = trueExit ForAllEnd IfEnd Forall設(shè)置后繼節(jié)點next的狀態(tài)If flag = true then節(jié)點next的啟動條件不滿足,狀態(tài)不變Else節(jié)點next的啟動條件滿足,將狀態(tài)變?yōu)閍ctivenext.EventStatus = activenextsave True,True,TrueEnd Ifb.后繼節(jié)點為選擇性收點當(dāng)節(jié)點node的某個后繼節(jié)點next為選擇性收點時,不需要遍歷next的所 有前驅(qū)節(jié)點,而只需要判斷下式對節(jié)點node的取值即可。(select(node) CTN next)
36、AND (status(node;) = done”)關(guān)鍵代碼如下:If (Select (node,next) = true AND note. Event Status(0) = done”)thenSelect ()函數(shù)用于判斷node所選定的后繼節(jié)點列表中是否包括next next.EventStatus = active next, save True,True,TrueElsenext狀態(tài)保持不變End Ifd) 設(shè)置完成條件得到滿足的流程節(jié)點狀態(tài)當(dāng)完成對流程節(jié)點node的后繼節(jié)點狀態(tài)設(shè)置以后,其后繼節(jié)點狀態(tài)的變化 可能使某些節(jié)點的完成條件得到滿足,從而完成流程節(jié)點狀態(tài)信息由don
37、e向 inactive的轉(zhuǎn)化。在判斷流程節(jié)點的完成條件時,沒有必要計算組成過程定義 實例的所有流程節(jié)點的完成條件,只需要檢查節(jié)點node的獲得了處理權(quán)的后繼 節(jié)點的所有前驅(qū)節(jié)點的完成條件即可。判斷完成條件的處理流程如圖2-2-6所 不O從流程中可以看到,根據(jù)next的前驅(qū)節(jié)點類型,構(gòu)造next的前驅(qū)節(jié)點的完 成條件有兩種方式(完成條件判斷算法1和完成條件判斷算法2):(2) next的前驅(qū)節(jié)點為唯一后繼節(jié)點或者發(fā)點關(guān)鍵代碼如下:Dim flag as Booleanflag = false假設(shè)prenode為next某個前驅(qū)節(jié)點,nextnode為prenode的某個后繼 節(jié)點Forall x
38、 In prenode. Event Next NameSet nextnode二db getdocumentbyunid(GetIdByName(y)If nextnodeEvent_Status(0) active” Then flag=TrueEnd IfEnd ForallIf flag=True Then4prenode的完成條件不滿足,保持狀態(tài)不變Elseprenode Event_Status= “ inactive”prenodesave True,True,TrueEnd If(2) next的前驅(qū)節(jié)點為選擇性發(fā)點關(guān)鍵代碼如下:假設(shè)prenode為next的某個具有選擇性發(fā)點
39、類型的前驅(qū)節(jié)點,nextnode 為prenode所選定的獲得處理權(quán)的唯一后繼節(jié)點Setnextnode=db get document byun i d(Ge11dByName(prenodeSelectEvent(0)If nextnodeEvent_Status(0)= active then4prenode的完成條件得到滿足prenode event_system二 “ inactivenprenode .save True,True,TrueElseprenode的完成條件不成立,狀態(tài)保持不變End If圖2-2-6流程節(jié)點完成條件判斷算法e) 設(shè)置應(yīng)用數(shù)據(jù)文檔的訪問控制列表公文表單
40、中的Data_Personlist數(shù)據(jù)域用于存儲允許訪問列表,只有列在此 列表中的用戶才具有對文檔的處理權(quán)限。通過查找過程定義實例中所有狀態(tài)為 active的流程節(jié)點,將它們在Event_Personlist數(shù)據(jù)域中所指定的處理人XX 添加到應(yīng)用數(shù)據(jù)文檔的Data Personlist數(shù)據(jù)域,來完成節(jié)點狀態(tài)和應(yīng)用數(shù)據(jù)文 檔處理權(quán)限的同步變化。關(guān)鍵代碼如下:假設(shè)過程定義實例存儲在過程定義實例視圖view中,data為應(yīng)用數(shù)據(jù)文 檔Set item=data. getfirstitem( Data Personlist” )Set node二view, getfirstdocumentWhi1e
41、Not(node Is Nothing)判斷與此應(yīng)用數(shù)據(jù)文檔相綁定的流程節(jié)點的狀態(tài)If(node. Data_Id(O)=data. Universalid)And(node. Event Status(0)= active”)Then找到了具有處理權(quán)的流程節(jié)點,將其指定的處理人加入到應(yīng)用數(shù)據(jù) 文檔的Data Personlist數(shù)據(jù)域中Call item, appendtotextlist(node. Event Personlist (0)data, save True,True,TrueEnd IfSet node二view, getnextdocument(node)Wend六. 工作
42、流流程定義工具設(shè)計流程定義工具的功能可以細分為:(1) 向用戶提供定義工作流的操作界面(2) 根據(jù)用戶的輸入自動生成以文本形式表達的工作流抽象描述(3) 將以文本形式表達的工作流抽象描述發(fā)送給格式轉(zhuǎn)化工具組件1. 類關(guān)系將流程節(jié)點抽象為流程節(jié)點類(Nod巳),同時,將流程節(jié)點定義中的事件屬 性集合、前驅(qū)節(jié)點集合、后繼節(jié)點集合均做對象化處理,由此產(chǎn)生屬性信息 (Attibute).前驅(qū)節(jié)點信息(PreNodes)、后繼節(jié)點信息(NextNodes)三個類。 這三個類同流程節(jié)點類構(gòu)成復(fù)合聚合的關(guān)系,如下圖所示。流程節(jié)點類屬性信息類前趨節(jié)點信息類后繼節(jié)點信息類圖2-2-7復(fù)合衆(zhòng)合型的裘關(guān)系2. 類結(jié)
43、構(gòu)設(shè)計(1)流程節(jié)點類(Node)Class Nodeprivate String node id ;private Attibute att ;private PreNodes p ;private NextNodes n ;private String type ; privateString status ;Public String getld():Public void setId(String s):Public Attibute getAtt();Public PreNodes getP():Public NextNodes getN():Public String getSta
44、tus():Public void setStatus(String s):實際業(yè)務(wù)處理過程最終會抽象表達為一系列流程節(jié)點類實例的集合。對流程節(jié)點 類的定義完全遵循流程節(jié)點的定義。類定義中成員變量和方法的含義在下表中加以說明:表2-2-9流程節(jié)點類設(shè)計成員變量含義node id流程節(jié)點的唯一標識符att對流程節(jié)點屬性信息類(Attribute)的引用P對流程節(jié)點前驅(qū)節(jié)點信息類(PreNodes)的引用n對流程節(jié)點后繼節(jié)點信息類(NextNodes)的引用type流程節(jié)點的類型方法作用getld()取得流程節(jié)點唯一標識setld()設(shè)置流程節(jié)點唯一標識getAtt ()取得節(jié)點狀態(tài)信息類的指針g
45、etP()取得節(jié)點前驅(qū)節(jié)點信息類的指針gerN 0取得節(jié)點后繼節(jié)點信息類的指針getTypeO取得節(jié)點類型信息serTypeO設(shè)置流程節(jié)點類型信息(2)屬性信息類(Attibute)Class Attibuteprivate String nodename ;private String node_person;private Boolean nodereply;private Boolean node_sign;private String nodebody;Public String getName():Public void setName(String s):Public String
46、 getPersonO :Public void setPerson(String s):Public String getReply():Public void setReply(Boolean b):Public String getSignO :Public void setSign(Boolean b):Public String getBody():Public void setBody (Stirng s):屬性信息類用于表達流程節(jié)點所代表的實際業(yè)務(wù)步驟的重要屬性信息。屬性信息類定義中成員變量和方法的含義在下表中加以說明:表2-2-10屬性信息類設(shè)計成員變量含義node name流
47、程節(jié)點標識名稱node_person流程步驟的處理人。當(dāng)節(jié)點獲得了處理權(quán)以后, 只有在此變量中列出的人員才能夠?qū)?yīng)用數(shù)據(jù) 進行處理nodereply節(jié)點完成處理以后,是否向工作流發(fā)起人發(fā)送 已辦通知,取值為false或truenode_sign是否在節(jié)點完成處理時,使用手寫簽名認證功 能,取值為false或truenodebody對節(jié)點所代表的實際業(yè)務(wù)步驟的功能的說明方法作用getXXXXO取得相應(yīng)屬性值setXXXXQ設(shè)置相應(yīng)屬性值(3) 前驅(qū)節(jié)點信息類(PreNodes)Class PreNodesArrayList preList ;Publ ic void addPreO :Publi
48、c Object getPre(String s)Public int getAcount():Public void emptyList():前驅(qū)節(jié)點信息類用于對流程節(jié)點的前驅(qū)節(jié)點進行記錄和管理。類定義中成員變量和方法的含義在下表中加以說明:表2-2-11前趨節(jié)點信息類設(shè)計成員變量含義preList節(jié)點的前驅(qū)節(jié)點引用列表數(shù)組方法作用addPreO向列表中添加新節(jié)點引用getPre ()從列表中取得前驅(qū)節(jié)點引用getAco unt ()取得前驅(qū)節(jié)點數(shù)目emptyList ()清空前驅(qū)節(jié)點列表(4) 后繼節(jié)點信息類(NextNodes)Class NextNodesArrayList nextL
49、ist;Public void addNext();Public Object getNext(String s);Public int getAcount():Public void emptyList():后繼節(jié)點信息類用于對流程節(jié)點的后繼節(jié)點進行記錄和管理。類定義中成員變量和方法的含義在下表中加以說明:表2-2-12后繼節(jié)點信息類設(shè)計成員變量含義nextList節(jié)點的后繼節(jié)點引用列表方法作用addNext ()向列表中添加新后繼節(jié)點引用getNext ()從列表中取得指定后繼節(jié)點引用getAco unt ()取得后繼節(jié)點數(shù)目emptyList ()清空后繼節(jié)點列表3. 過程定義工具文本輸
50、出格式選擇XML作為工作流抽象描述文本的輸出格式。定義DTD如下:在DTD中定義了兩種元素:workflow和nodec workflow元素用于記錄用戶 所定義的工作流流程的名稱、類型、創(chuàng)建人信息。一個workflow可以包括一個 或者多個node元素實例。node元素用于記錄過程定義中某一流程節(jié)點的信息, 其屬性值對應(yīng)上節(jié)所定義的流程節(jié)點類(Node)中所包含的信息。七. 格式轉(zhuǎn)化工具設(shè)計格式轉(zhuǎn)化工具的功能可以細分為:(1) 接收工作流過程定義工具的文本輸出流(2) 對接收到的抽象表達工作流的文本序列進行分析,生成相應(yīng)的數(shù)據(jù)庫操 作指令。格式轉(zhuǎn)化功能的實現(xiàn)流程可以用下圖來表達:圖2-2-8格式轉(zhuǎn)化功能實現(xiàn)流程通過JAVA語言提供的SAX(擴展標記語言簡易應(yīng)用程序編程接口)兇來讀取XML 格式文本序列中的信息。支持SAX接口的XML解析器對接收到的XML格式工作流 抽象描述文本序列進行分析,當(dāng)它發(fā)現(xiàn)了一個元素實例后,隨即觸發(fā)文檔處理器 中用于處理該種元素實例的代碼。不同種類元素實例的處理代碼均在文檔處理器 中定義。元素實例處理代碼首先取得元素實例的所
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 情景模擬金融理財師考試試題及答案
- 2024項目管理考試綜合分析試題及答案
- 2024年項目管理考試應(yīng)對策略試題及答案
- 2025年國際金融理財師考試知識架構(gòu)與內(nèi)容廣度試題及答案
- 明確路徑2024年福建事業(yè)單位考試試題及答案
- 項目管理需求變更控制技巧試題及答案
- 鐵路防護棚搭設(shè)施工方案
- 2024年微生物檢驗學(xué)前沿試題及答案
- 2025注冊會計師考試技巧與方法論試題及答案
- 2024年農(nóng)藝師考試的科目覆蓋概要 知識面試題及答案
- 紡紗織造工藝流程培訓(xùn)教材實用課件
- 中美關(guān)系新時代52張課件
- 廣東省廣州市廣外、鐵一、廣附三校2022-2023學(xué)年高一下學(xué)期期末聯(lián)考物理試題(無答案)
- 《通達信炒股軟件從入門到精通》讀書筆記模板
- 科研誠信問題課件
- 高頻電刀之負極板的正確使用方法
- 關(guān)于高中班級管理論文
- 21秋國家開放大學(xué)《公共部門人力資源管理》單元自測題參考答案
- 東北抗聯(lián)英雄人物智慧樹知到答案章節(jié)測試2023年牡丹江師范學(xué)院
- 2023年鄭州信息科技職業(yè)學(xué)院單招考試職業(yè)適應(yīng)性測試模擬試題及答案解析
- 國開電大2022年《小學(xué)數(shù)學(xué)教學(xué)研究》形考任務(wù)1-4答
評論
0/150
提交評論