版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
工業(yè)研究院辦公自動(dòng)化系統(tǒng)設(shè)計(jì)方案附MIS系統(tǒng)設(shè)計(jì)和網(wǎng)站設(shè)計(jì)
XX工業(yè)研究院辦公自動(dòng)化系統(tǒng)設(shè)計(jì)方案XXXX年6月
目錄TOC\o"1-5"\h\z第一章系統(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)告表單(NonDeliveryReport) 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.公文正文表單(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)建過(guò)程定義實(shí)例和同應(yīng)用數(shù)據(jù)實(shí)例綁定 203.維護(hù)流程節(jié)點(diǎn)狀態(tài)信息 21六.工作流流程定義工具設(shè)計(jì) 281.類關(guān)系 282.類結(jié)構(gòu)設(shè)計(jì) 293.過(guò)程定義工具文本輸出格式 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.在審日程視圖 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.用戶信息列表顯示表單(PagePersons) 535.用戶密碼設(shè)置表單(Password) 54二.視圖設(shè)計(jì) 541.組織機(jī)構(gòu)列表(DepartmentList) 542.用戶列表(Persons) 543.職務(wù)列表(Caste_Name) 544.用戶權(quán)限列表(Limit) 54附錄1XX工業(yè)研究院MIS系統(tǒng)設(shè)計(jì) 55§1概述 55§2需求分析 55一、科技項(xiàng)目管理 55項(xiàng)目申報(bào)(科委項(xiàng)目、工研院項(xiàng)目) 55合同管理 55項(xiàng)目跟蹤 55二、教育培訓(xùn)管理 55職工教育培訓(xùn) 55招生管理 55三、科技情報(bào)管理 55科技情報(bào)發(fā)布 55下屬單位需求 55四、申請(qǐng)書編號(hào)管理 55五、用戶權(quán)限管理 55§3功能表格 56科技項(xiàng)目管理X 56教育管理培訓(xùn)J 56科技情報(bào)管理Q 56§4功能模塊設(shè)計(jì) 57一. 功能模塊 57科技項(xiàng)目管理 57教育培訓(xùn)管理 58科技情報(bào)管理 58二.功能說(shuō)明 58科技項(xiàng)目管理 58教育培訓(xùn)管理 59科技情報(bào)信息管理 59§5數(shù)據(jù)表格設(shè)計(jì) 59一.科技項(xiàng)目及合同管理 59科技項(xiàng)目申請(qǐng)表 59申請(qǐng)一覽表 61工研院項(xiàng)目執(zhí)行情況報(bào)告書 61二. 教育管理培訓(xùn) 62三. 科技情報(bào)管理 62科技情報(bào)發(fā)布 62下屬單位需求 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ì) 67第一章系統(tǒng)總體結(jié)構(gòu)《XX工業(yè)研究院辦公自動(dòng)化系統(tǒng)》基于LotusDomino/Notes平臺(tái)開(kāi)發(fā),系統(tǒng)的總體結(jié)構(gòu)如下圖所示:圖1-1XX工業(yè)研究院辦公自動(dòng)化系統(tǒng)總體結(jié)構(gòu)
第二章系統(tǒng)設(shè)計(jì)§2.1電子郵件電子郵件模塊的結(jié)構(gòu)如下圖所示。圖2-1-1電子郵件模塊一.表單設(shè)計(jì)郵件表單(Memo)表2-1-1郵件表單設(shè)計(jì)
數(shù)據(jù)域類型說(shuō)明SendTo文本域收件人地址CopyTo文本域郵件抄送地址BlindCopyTo文本域郵件密送地址WebSubject文本域郵件主題Text文本域(允許多行)郵件正文haveread文本域郵件文件已讀標(biāo)志
操作說(shuō)明發(fā)送發(fā)送郵件保存為草稿將郵件保存為草稿回復(fù)回復(fù)郵件轉(zhuǎn)發(fā)轉(zhuǎn)發(fā)郵件地址簿打開(kāi)地址簿表單編輯編輯郵件刪除刪除郵件回信表單(Reply)表2-1-2回信表單設(shè)計(jì)
數(shù)據(jù)域類型說(shuō)明SendTo文本域收件人地址CopyTo文本域郵件抄送地址BlindCopyTo文本域郵件密送地址WebSubject文本域郵件主題Text文本域(允許多行)郵件正文haveread文本域郵件文件已讀標(biāo)志
操作說(shuō)明發(fā)送發(fā)送郵件保存為草稿將郵件保存為草稿回復(fù)回復(fù)郵件轉(zhuǎn)發(fā)轉(zhuǎn)發(fā)郵件地址簿打開(kāi)地址簿表單編輯編輯郵件刪除刪除郵件轉(zhuǎn)發(fā)表單(wForward)表2-1-3轉(zhuǎn)發(fā)表單設(shè)計(jì)
數(shù)據(jù)域類型說(shuō)明SendTo文本域收件人地址CopyTo文本域郵件抄送地址BlindCopyTo文本域郵件密送地址WebSubject文本域郵件主題Text文本域(允許多行)郵件正文haveread文本域郵件文件已讀標(biāo)志
操作說(shuō)明發(fā)送發(fā)送郵件保存為草稿將郵件保存為草稿回復(fù)回復(fù)郵件轉(zhuǎn)發(fā)轉(zhuǎn)發(fā)郵件地址簿打開(kāi)地址簿表單編輯編輯郵件刪除刪除郵件信件郵遞報(bào)告表單(NonDeliveryReport)表2-1-4信件郵遞報(bào)告表單設(shè)計(jì)
數(shù)據(jù)域類型說(shuō)明OriginalSubject文本域被郵遞的信件名稱IntendedRecipient文本域被郵遞信件的收件人地址FailureReason文本域郵件為郵遞到目的地原因SendTo文本域被郵遞郵件文件中指定的收件地址CopyTo文本域被郵遞郵件文件中指定的抄送地址BlindCopyTo文本域被郵遞郵件文件中指定的密送地址Subject文本域被郵遞郵件文件的主題Body文本域(允許多行)被郵遞郵件文件的內(nèi)容haveread文本域郵件文件已讀標(biāo)志
操作說(shuō)明刪除刪除郵件二.視圖設(shè)計(jì)收件箱($Inbox)收件箱通過(guò)文件夾實(shí)現(xiàn),所有接收到郵件文件均由系統(tǒng)自動(dòng)放入收件箱中。2.發(fā)件箱($Sent)用于所發(fā)送的郵件均自動(dòng)保存在發(fā)件箱中。文檔選擇條件為:SELECTDeliveredDate=""&PostedDate!=""&!(@IsMember("S";ExcludeFromView))&Viewtag!="Delete"草稿箱($Drafts)所有保存為草稿的郵件均顯示在草稿箱中。文檔選擇條件為:SELECTPostedDate=""&$MessageType=""&@IsNotMember("D";ExcludeFromView)&ISMAILSTATIONERY!=1&Viewtag="Istrash"垃圾箱(Carbage)所有被刪除的郵件均保存在此視圖中。在此視圖中再次刪除的話,則郵件文件被真正刪除。文檔選擇條件為:SELECT(FORM="Memo"|form="Reply"|Form="wForward")&Deleted="true"
§2.2公文流轉(zhuǎn)一.結(jié)構(gòu)設(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ì)公文表單(Data)公文表單用于記錄公文的相關(guān)信息。具體設(shè)計(jì)如下:表2-2-1公文表單設(shè)計(jì)
數(shù)據(jù)域類型說(shuō)明GWLX列表框公文類型DJBM列表框公文的登記部門DJSJ文本域公文的登記時(shí)間Subject文本域公文標(biāo)題NGR文本域公文起草人姓名GWHJ列表框公文緩急信息列表ZTCB文本域公文的主題詞ZBDW文本域主辦單位名稱ZCDW文本域主送單位名稱CSDW文本域抄送單位名稱CBDW文本域抄報(bào)單位名稱Info文本域(允許多行)公文正文內(nèi)容Data_Number文本域公文的編號(hào)SelectWorkFlow列表框顯示過(guò)程定義模版列表PersonAnswer文本域顯示處理人的批復(fù)意見(jiàn)Data_Personlist文本域允許處理本公文的用戶列表Start文本域公文是否為首次提交Data_Current_Editor文本域記錄當(dāng)前編輯公文的用戶姓名CuiBan文本域是否存在公文催辦通知
操作說(shuō)明提交流轉(zhuǎn)提交公文進(jìn)入流轉(zhuǎn)過(guò)程暫存將公文保存為草稿簽收處理人打開(kāi)公文進(jìn)行編輯編輯公文作者編輯公文刪除刪除公文催辦發(fā)出公文催辦通知說(shuō)明:(1)Subject、Info等用于記錄公文的內(nèi)容信息,公文的內(nèi)容信息包括公文主題、公文編號(hào)、公文內(nèi)容、公文密級(jí)、公文緩急等。(2)NGR、DJSJ分別記錄公文文檔的創(chuàng)建人和創(chuàng)建時(shí)間,工作流的管理與監(jiān)控功能會(huì)用到這些信息。(3)SelectWorkFlow是列表框,用于顯示所有可供使用的過(guò)程定義模版。在公文的創(chuàng)建階段,用戶從列表中選擇要使用的流程;在公文進(jìn)入流轉(zhuǎn)過(guò)程以后,由工作流引擎根據(jù)所選擇的流程,自動(dòng)生成過(guò)程定義實(shí)例,之后實(shí)現(xiàn)公文文檔同過(guò)程定義實(shí)例的綁定操作。(4)Data_Personlist域用于記錄所有對(duì)本文檔具有處理權(quán)限的用戶的用戶名列表,只有在此列表中列出的用戶才能夠?qū)倪M(jìn)行處理。其取值由工作流引擎自動(dòng)填寫。公文附件表單(AddAttachment)公文附件表單用于存儲(chǔ)某一公文所包含的附件文件,一個(gè)公文可以包含多個(gè)附件,每個(gè)附件對(duì)應(yīng)一個(gè)公文附件表單。表2-2-2公文附件表單設(shè)計(jì)
數(shù)據(jù)域類型說(shuō)明Attachment_Info文本域?qū)Ω郊暮?jiǎn)要說(shuō)明FileUpload控件上載文件控件ParentId文本域此附件表單所從屬的公文表單IDAttachment_Name文本域附件文件名Attachment_Size文本域附件文件大小
操作說(shuō)明保存附件保存公文附件表單刪除附件刪除公文附件表單關(guān)閉窗口關(guān)閉公文附件上載窗口公文正文表單(AddDocumentBody)公文正文表單用于存儲(chǔ)某一公文所包含的正文文件,一個(gè)公文可以包含多個(gè)正文文件,每個(gè)正文文件對(duì)應(yīng)一個(gè)公文正文表單。表2-2-3公文正文表單設(shè)計(jì)
數(shù)據(jù)域類型說(shuō)明Attachment_Info文本域?qū)φ奈募暮?jiǎn)要說(shuō)明FileUpload控件上載文件控件ParentId文本域此公文正文表單所從屬的公文表單IDAttachment_Name文本域附件文件名Attachment_Size文本域附件文件大小
操作說(shuō)明保存正文保存公文正文表單刪除正文刪除公文正文表單關(guān)閉窗口關(guān)閉公文正文上載窗口工作流信息表單(WorkFlowInfo)工作流信息表單用于存儲(chǔ)工作流程模版的基本屬性信息。在流程信息表單中定義的重要數(shù)據(jù)域如下:表2-2-4工作流信息表單數(shù)據(jù)域類型說(shuō)明Workflow_Name文本域流程名稱Workflow_Type列表框流程類型,可選值為“預(yù)定義流程”和“自定義流程”Workflow_Author文本域此流程創(chuàng)建人姓名Workflow_Created文本域此流程創(chuàng)建時(shí)間Workflow_Body文本域此流程功能簡(jiǎn)要說(shuō)明
操作說(shuō)明修改編輯工作流信息表單保存保存工作流信息表單刪除刪除工作流信息表單流程節(jié)點(diǎn)表單(event)流程節(jié)點(diǎn)表單用于記錄過(guò)程定義中流程節(jié)點(diǎn)所包含的信息。過(guò)程定義中的每個(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ù)域類型說(shuō)明Workflow_Id文本域節(jié)點(diǎn)所從屬的工作流信息文檔IdData_Id文本域與此過(guò)程定義所綁定的應(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)要說(shuō)明Event_Pre_Name文本域(允許多值)以節(jié)點(diǎn)名稱表示的前驅(qū)節(jié)點(diǎn)列表Event_Pre_Id文本域(允許多值)以節(jié)點(diǎn)Id表示的前驅(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)名稱
操作說(shuō)明修改編輯流程節(jié)點(diǎn)表單保存保存流程節(jié)點(diǎn)表單刪除刪除流程節(jié)點(diǎn)表單說(shuō)明:(1)流程節(jié)點(diǎn)定義中的Att(事件屬性集合)通過(guò)數(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)文檔具有相同的Workflow_Id。(3)Data_Id數(shù)據(jù)域用于實(shí)現(xiàn)應(yīng)用數(shù)據(jù)實(shí)例同過(guò)程定義實(shí)例的一一對(duì)應(yīng)。Data_Id的值為公文表單的文檔實(shí)例的文檔Id,由工作流管理系統(tǒng)自動(dòng)填寫。組成一個(gè)過(guò)程定義實(shí)例的所有流程節(jié)點(diǎn)文檔具有相同的Data_Id值。(4)Event_Status標(biāo)識(shí)流程節(jié)點(diǎn)的狀態(tài)信息,由工作流引擎自動(dòng)設(shè)置。(5)構(gòu)成過(guò)程定義的流程節(jié)點(diǎn)文檔在工作流進(jìn)入運(yùn)行期之前,存儲(chǔ)在過(guò)程定義模版庫(kù)中;在運(yùn)行期,則存儲(chǔ)到過(guò)程定義實(shí)例庫(kù)。因此,在流程節(jié)點(diǎn)表單中使用Event_Period數(shù)據(jù)域來(lái)標(biāo)識(shí)過(guò)程定義的狀態(tài)。屬于同一過(guò)程定義的節(jié)點(diǎn)文檔的Event_Period域的值是相同的。其可能取值為“模版”和“實(shí)例”。(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ù)域中。已辦公文記錄表單(DoneRecord)已辦公文記錄表單用于記錄用戶已經(jīng)處理完成的公文的相關(guān)信息,以備日后查閱。表2-2-6已辦公文記錄表單設(shè)計(jì)數(shù)據(jù)域類型說(shuō)明Subject文本域公文標(biāo)題NGR文本域記錄公文的擬稿人姓名SDSJ文本域收到此公文的時(shí)間BJSJ文本域完成處理的時(shí)間PYYJ文本域用戶的批閱意見(jiàn)
操作說(shuō)明刪除刪除已辦公文記錄表單用戶角色設(shè)置表單(UserRuls)用戶角色設(shè)置表單用于記錄用戶同其職務(wù)的對(duì)應(yīng)關(guān)系。表2-2-7用戶角色設(shè)置表單設(shè)計(jì)數(shù)據(jù)域類型說(shuō)明RulName文本域角色名稱SendTo文本域人員名稱ZhiNeng文本域角色職能說(shuō)明
操作說(shuō)明修改編輯用戶角色設(shè)置表單保存保存用戶角色設(shè)置表單刪除刪除用戶角色設(shè)置表單搜索表單(SearchForm)搜索表單用于輸入文檔檢索條件。表2-2-8搜索表單設(shè)計(jì)數(shù)據(jù)域類型說(shuō)明Search_ViewName列表框選擇要檢索的視圖Search_Info文本域人員名稱Search_Type文本域角色職能說(shuō)明HTML文本域文檔檢索結(jié)果操作說(shuō)明檢索文檔進(jìn)行檢索操作四.視圖設(shè)計(jì)工作流名稱列表用于顯示數(shù)據(jù)庫(kù)中所有工作流信息文檔。文檔選擇條件:SELECTform="WorkFlowInfo"模版事件列表用于顯示所有具有“模版”屬性的流程節(jié)點(diǎn)文檔。文檔選擇條件如下:SELECT((Form="流程節(jié)點(diǎn)")&(Event_Period="模版"))激活事件列表用于顯示所有具有“激活”屬性的流程節(jié)點(diǎn)文檔。文檔選擇條件如下:SELECT((Form="流程節(jié)點(diǎn)")&(Event_Period="激活"))數(shù)據(jù)表單列表用于顯示所有公文文檔。文檔選擇條件如下:SELECTform="數(shù)據(jù)表單"&Start=0公文草稿列表用于顯示所有保存為草稿的公文文檔。文檔選擇條件如下:SELECTform="數(shù)據(jù)表單"&Start=1公文附件列表用于顯示所有公文附件文檔。文檔選擇條件如下:SELECTform="AddAttachment"公文正文列表用于顯示所有公文正文文檔。文檔選擇條件如下:SELECTform="AddDocumentBody"已辦公文列表用于顯示所有已辦公文記錄文檔。文檔選擇條件如下:SELECTform="DoneRecord"五.工作流流轉(zhuǎn)控制算法設(shè)計(jì)功能分析將工作流引擎的功能細(xì)化為以下幾個(gè)子功能:(1)創(chuàng)建過(guò)程定義實(shí)例在工作流進(jìn)入運(yùn)行期以前,過(guò)程定義以模版的形式保存在過(guò)程定義模版庫(kù)中。工作流進(jìn)入運(yùn)行期,工作流引擎必須根據(jù)用戶所選定的過(guò)程定義模版自動(dòng)生成過(guò)程定義實(shí)例,并存入負(fù)載最低的過(guò)程定義實(shí)例子庫(kù)。(2)完成應(yīng)用數(shù)據(jù)實(shí)例和過(guò)程定義實(shí)例的綁定操作在過(guò)程定義實(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ì)元素的過(guò)程定義模型中,定義了流程節(jié)點(diǎn)狀態(tài)信息來(lái)描述節(jié)點(diǎn)對(duì)應(yīng)用數(shù)據(jù)的處理狀態(tài)。而整個(gè)工作流實(shí)例的運(yùn)行狀態(tài)會(huì)通過(guò)流程節(jié)點(diǎn)的狀態(tài)表達(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ù)文檔的訪問(wèn)控制列表進(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則表示指定的處理人沒(méi)有處理文檔的權(quán)限。因此,工作流引擎需要根據(jù)流程節(jié)點(diǎn)狀態(tài)信息的變化,對(duì)應(yīng)用數(shù)據(jù)表單中的用戶訪問(wèn)控制列表進(jìn)行修改,從而實(shí)現(xiàn)節(jié)點(diǎn)狀態(tài)信息和用戶對(duì)文檔處理權(quán)限的一致變化。(5)工作流實(shí)例運(yùn)行期間,給予用戶對(duì)過(guò)程定義實(shí)例的動(dòng)態(tài)修改的能力由于實(shí)際業(yè)務(wù)處理過(guò)程往往表現(xiàn)出一定的隨意性,因此,工作流引擎應(yīng)該向用戶提供在工作流實(shí)例運(yùn)行期間,對(duì)過(guò)程定義實(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ù)的過(guò)程:圖2-2-3工作流引擎處理數(shù)據(jù)流程創(chuàng)建過(guò)程定義實(shí)例和同應(yīng)用數(shù)據(jù)實(shí)例綁定在流程節(jié)點(diǎn)表單(Event)中定義了數(shù)據(jù)域Event_Period來(lái)區(qū)分屬于過(guò)程定義模版庫(kù)的節(jié)點(diǎn)文檔和過(guò)程定義實(shí)例庫(kù)的節(jié)點(diǎn)文檔;而Data_Id域用于記錄對(duì)應(yīng)應(yīng)用數(shù)據(jù)文檔的文檔Id信息。工作流引擎通過(guò)四個(gè)步驟完成過(guò)程定義實(shí)例的創(chuàng)建和同應(yīng)用數(shù)據(jù)文檔的綁定操作。(1)流程節(jié)點(diǎn)文檔復(fù)制將過(guò)程定義模版庫(kù)中屬于相應(yīng)過(guò)程定義的流程節(jié)點(diǎn)文檔復(fù)制,生成一個(gè)新的流程節(jié)點(diǎn)文檔。此新節(jié)點(diǎn)文檔的數(shù)據(jù)域的值同其原型完全相同。關(guān)鍵代碼如下:‘在數(shù)據(jù)庫(kù)中創(chuàng)建新文擋Setnewnode=NewNotesDocument(db)‘將模版庫(kù)中的節(jié)點(diǎn)文檔node的全部數(shù)據(jù)域復(fù)制到新文檔Callnode.CopyAllItems(newnode,True)(2)置Event_Period域?qū)⑿陆鞒坦?jié)點(diǎn)文檔中Event_Period數(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.Universalid維護(hù)流程節(jié)點(diǎn)狀態(tài)信息a)原理流程假設(shè)某節(jié)點(diǎn)node完成了應(yīng)用數(shù)據(jù)文檔處理,接下來(lái)工作流引擎會(huì)通過(guò)設(shè)置流程節(jié)點(diǎn)的狀態(tài)信息來(lái)更新工作流實(shí)例的運(yùn)行狀態(tài)。工作流實(shí)例運(yùn)行狀態(tài)的更新過(guò)程可以用下圖所示的原理流程表達(dá):
圖2-2-4狀態(tài)更新原理流程從狀態(tài)更新的原理流程中可以看出,狀態(tài)更新過(guò)程由節(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)限。在此步驟中,工作流引擎通過(guò)構(gòu)造各個(gè)流程節(jié)點(diǎn)的啟動(dòng)條件,判斷其值來(lái)完成節(jié)點(diǎn)處理權(quán)限的傳遞。因?yàn)榱鞒坦?jié)點(diǎn)的啟動(dòng)條件可以通過(guò)其所有前驅(qū)節(jié)點(diǎn)的狀態(tài)信息和流轉(zhuǎn)順序信息的邏輯組合表達(dá)出來(lái),所以在節(jié)點(diǎn)node完成處理后,工作流引擎沒(méi)有必要計(jì)算構(gòu)成過(guò)程定義實(shí)例的所有節(jié)點(diǎn)的啟動(dòng)條件,而只需要計(jì)算節(jié)點(diǎn)node的所有后繼節(jié)點(diǎn)的啟動(dòng)條件即可。c.決定哪些節(jié)點(diǎn)的狀態(tài)有done變?yōu)閕nactive流程節(jié)點(diǎn)狀態(tài)由done轉(zhuǎn)化為inactive的必要性在過(guò)程定義模型部分已經(jīng)作了說(shuō)明,節(jié)點(diǎn)的完成條件規(guī)定了這一狀態(tài)轉(zhuǎn)化的條件。在某節(jié)點(diǎn)完成處理后,工作流引擎通過(guò)計(jì)算其它節(jié)點(diǎn)的完成條件,來(lái)確定哪些狀態(tài)為done的節(jié)點(diǎn)可以將狀態(tài)設(shè)置為inactive。步驟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”后繼節(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í)現(xiàn)方式。設(shè)置node后繼節(jié)點(diǎn)狀態(tài)的過(guò)程可以用下圖表達(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è)后繼節(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)CTNnext)AND(status(prei)=“done”)的值,只要有一個(gè)為false,則next的啟動(dòng)條件必然不成立,即可以終止遍歷循環(huán)。判斷next的啟動(dòng)條件值的關(guān)鍵代碼如下:DimflagasBooleanflag=false‘遍歷next的全部前驅(qū)節(jié)點(diǎn)ForallnInnext.Event_Pre_IdSetprenode=db.GetDocumentByUNID(n)IfNot(Select(prenode,next)=trueANDprenode.Event_Status(0)=“done”)Then‘Select()函數(shù)用于判斷prenode所選定的后繼節(jié)點(diǎn)列表中是否包括nextflag=trueExitForAllEndIfEndForall
‘設(shè)置后繼節(jié)點(diǎn)next的狀態(tài)Ifflag=truethen‘節(jié)點(diǎn)next的啟動(dòng)條件不滿足,狀態(tài)不變Else‘節(jié)點(diǎn)next的啟動(dòng)條件滿足,將狀態(tài)變?yōu)閍ctivenext.Event_Status=“active”next.saveTrue,True,TrueEndIfb.后繼節(jié)點(diǎn)為選擇性收點(diǎn)當(dāng)節(jié)點(diǎn)node的某個(gè)后繼節(jié)點(diǎn)next為選擇性收點(diǎn)時(shí),不需要遍歷next的所有前驅(qū)節(jié)點(diǎn),而只需要判斷下式對(duì)節(jié)點(diǎn)node的取值即可。(select(node)CTNnext)AND(status(nodei)=“done”)關(guān)鍵代碼如下:If(Select(node,next)=trueANDnote.Event_Status(0)=“done”)then‘Select()函數(shù)用于判斷node所選定的后繼節(jié)點(diǎn)列表中是否包括nextnext.Event_Status=“active”next.saveTrue,True,TrueElse‘next狀態(tài)保持不變EndIfd)設(shè)置完成條件得到滿足的流程節(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í),沒(méi)有必要計(jì)算組成過(guò)程定義實(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):next的前驅(qū)節(jié)點(diǎn)為唯一后繼節(jié)點(diǎn)或者發(fā)點(diǎn)關(guān)鍵代碼如下:DimflagasBooleanflag=false‘假設(shè)prenode為next某個(gè)前驅(qū)節(jié)點(diǎn),nextnode為prenode的某個(gè)后繼節(jié)點(diǎn)ForallxInprenode.Event_Next_Name Setnextnode=db.getdocumentbyunid(GetIdByName(y)) Ifnextnode.Event_Status(0)<>“active”Then flag=True EndIfEndForallIfflag=TrueThen ‘prenode的完成條件不滿足,保持狀態(tài)不變Else prenode.Event_Status=“inactive” prenode.saveTrue,True,TrueEndIf(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)Setnextnode=db.getdocumentbyunid(GetIdByName(prenode.SelectEvent(0)))Ifnextnode.Event_Status(0)=“active”then‘prenode的完成條件得到滿足 prenode.event_system=“inactive” prenode.saveTrue,True,TrueElse‘prenode的完成條件不成立,狀態(tài)保持不變EndIf圖2-2-6流程節(jié)點(diǎn)完成條件判斷算法設(shè)置應(yīng)用數(shù)據(jù)文檔的訪問(wèn)控制列表公文表單中的Data_Personlist數(shù)據(jù)域用于存儲(chǔ)允許訪問(wèn)列表,只有列在此列表中的用戶才具有對(duì)文檔的處理權(quán)限。通過(guò)查找過(guò)程定義實(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è)過(guò)程定義實(shí)例存儲(chǔ)在過(guò)程定義實(shí)例視圖view中,data為應(yīng)用數(shù)據(jù)文檔Setitem=data.getfirstitem(“Data_Personlist”) Setnode=view.getfirstdocumentWhileNot(nodeIsNothing)‘判斷與此應(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ù)域中 Callitem.appendtotextlist(node.Event_Personlist(0)) data.saveTrue,True,True EndIf Setnode=view.getnextdocument(node) Wend六.工作流流程定義工具設(shè)計(jì)流程定義工具的功能可以細(xì)分為:(1)向用戶提供定義工作流的操作界面(2)根據(jù)用戶的輸入自動(dòng)生成以文本形式表達(dá)的工作流抽象描述(3)將以文本形式表達(dá)的工作流抽象描述發(fā)送給格式轉(zhuǎn)化工具組件類關(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è)類。這三個(gè)類同流程節(jié)點(diǎn)類構(gòu)成復(fù)合聚合的關(guān)系,如下圖所示。圖2-2-7復(fù)合聚合型的類關(guān)系類結(jié)構(gòu)設(shè)計(jì)(1)流程節(jié)點(diǎn)類(Node)ClassNode{privateStringnode_id;privateAttibuteatt;privatePreNodesp;privateNextNodesn;privateStringtype;privateStringstatus;PublicStringgetId();PublicvoidsetId(Strings);PublicAttibutegetAtt();PublicPreNodesgetP();PublicNextNodesgetN();PublicStringgetStatus();PublicvoidsetStatus(Strings);}實(shí)際業(yè)務(wù)處理過(guò)程最終會(huì)抽象表達(dá)為一系列流程節(jié)點(diǎn)類實(shí)例的集合。對(duì)流程節(jié)點(diǎn)類的定義完全遵循流程節(jié)點(diǎn)的定義。類定義中成員變量和方法的含義在下表中加以說(shuō)明:表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)的類型方法作用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)ClassAttibute{privateStringnode_name;privateStringnode_person;privateBooleannode_reply;privateBooleannode_sign;privateStringnode_body;PublicStringgetName();PublicvoidsetName(Strings);PublicStringgetPerson();PublicvoidsetPerson(Strings);PublicStringgetReply();PublicvoidsetReply(Booleanb);PublicStringgetSign();PublicvoidsetSign(Booleanb);PublicStringgetBody();PublicvoidsetBody(Stirngs);}屬性信息類用于表達(dá)流程節(jié)點(diǎn)所代表的實(shí)際業(yè)務(wù)步驟的重要屬性信息。屬性信息類定義中成員變量和方法的含義在下表中加以說(shuō)明:表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ù)步驟的功能的說(shuō)明方法作用getXXXX()取得相應(yīng)屬性值setXXXX()設(shè)置相應(yīng)屬性值(3)前驅(qū)節(jié)點(diǎn)信息類(PreNodes)ClassPreNodes{ArrayListpreList;PublicvoidaddPre();PublicObjectgetPre(Strings)PublicintgetAcount();PublicvoidemptyList();}前驅(qū)節(jié)點(diǎn)信息類用于對(duì)流程節(jié)點(diǎn)的前驅(qū)節(jié)點(diǎn)進(jìn)行記錄和管理。類定義中成員變量和方法的含義在下表中加以說(shuō)明:表2-2-11前趨節(jié)點(diǎn)信息類設(shè)計(jì)成員變量含義preList節(jié)點(diǎn)的前驅(qū)節(jié)點(diǎn)引用列表數(shù)組方法作用addPre()向列表中添加新節(jié)點(diǎn)引用getPre()從列表中取得前驅(qū)節(jié)點(diǎn)引用getAcount()取得前驅(qū)節(jié)點(diǎn)數(shù)目emptyList()清空前驅(qū)節(jié)點(diǎn)列表(4)后繼節(jié)點(diǎn)信息類(NextNodes)ClassNextNodes{ArrayListnextList;PublicvoidaddNext();PublicObjectgetNext(Strings);PublicintgetAcount();PublicvoidemptyList();}后繼節(jié)點(diǎn)信息類用于對(duì)流程節(jié)點(diǎn)的后繼節(jié)點(diǎn)進(jìn)行記錄和管理。類定義中成員變量和方法的含義在下表中加以說(shuō)明:表2-2-12后繼節(jié)點(diǎn)信息類設(shè)計(jì)成員變量含義nextList節(jié)點(diǎn)的后繼節(jié)點(diǎn)引用列表方法作用addNext()向列表中添加新后繼節(jié)點(diǎn)引用getNext()從列表中取得指定后繼節(jié)點(diǎn)引用getAcount()取得后繼節(jié)點(diǎn)數(shù)目emptyList()清空后繼節(jié)點(diǎn)列表過(guò)程定義工具文本輸出格式選擇XML作為工作流抽象描述文本的輸出格式。定義DTD如下:<!ELEMENTworkflow(node+)><!ATTLISTworkflowworkflownameCDATA#REQUIREDworkflowtype(public|private)#REQUIREDauthorCDATA#REQUIRED><!ELEMENTnodeEMPTY><!ATTLISTnodenodenameCDATA#REQUIREDprenodesCDATA#REQUIREDnextnodesCDATA#REQUIREDtypeCDATA#REQUIREDpersonCDATA#REQUIREDsign(yes|no)#REQUIREDbodyCDATA#REQUIRED>在DTD中定義了兩種元素:workflow和node。workflow元素用于記錄用戶所定義的工作流流程的名稱、類型、創(chuàng)建人信息。一個(gè)workflow可以包括一個(gè)或者多個(gè)node元素實(shí)例。node元素用于記錄過(guò)程定義中某一流程節(jié)點(diǎn)的信息,其屬性值對(duì)應(yīng)上節(jié)所定義的流程節(jié)點(diǎn)類(Node)中所包含的信息。七.格式轉(zhuǎn)化工具設(shè)計(jì)格式轉(zhuǎn)化工具的功能可以細(xì)分為:(1)接收工作流過(guò)程定義工具的文本輸出流(2)對(duì)接收到的抽象表達(dá)工作流的文本序列進(jìn)行分析,生成相應(yīng)的數(shù)據(jù)庫(kù)操作指令。格式轉(zhuǎn)化功能的實(shí)現(xiàn)流程可以用下圖來(lái)表達(dá):圖2-2-8格式轉(zhuǎn)化功能實(shí)現(xiàn)流程通過(guò)JAVA語(yǔ)言提供的SAX(擴(kuò)展標(biāo)記語(yǔ)言簡(jiǎn)易應(yīng)用程序編程接口)[25]來(lái)讀取XML格式文本序列中的信息。支持SAX接口的XML解析器對(duì)接收到的XML格式工作流抽象描述文本序列進(jìn)行分析,當(dāng)它發(fā)現(xiàn)了一個(gè)元素實(shí)例后,隨即觸發(fā)文檔處理器中用于處理該種元素實(shí)例的代碼。不同種類元素實(shí)例的處理代碼均在文檔處理器中定義。元素實(shí)例處理代碼首先取得元素實(shí)例的所有屬性信息,之后利用數(shù)據(jù)庫(kù)提供的數(shù)據(jù)庫(kù)遠(yuǎn)程操作接口,在數(shù)據(jù)庫(kù)中創(chuàng)建相應(yīng)的數(shù)據(jù)文檔。以流程節(jié)點(diǎn)文檔的創(chuàng)建過(guò)程為例。XML格式工作流抽象描述文本中的node元素實(shí)例被XML解析器解析出來(lái),觸發(fā)文檔處理器中針對(duì)node元素實(shí)例的處理程序。處理程序首先取得node元素實(shí)例的參數(shù)值,作為在Domino數(shù)據(jù)庫(kù)中創(chuàng)建的流程節(jié)點(diǎn)文檔的數(shù)據(jù)域的值,隨后通過(guò)Domino系統(tǒng)為JAVA語(yǔ)言提供的數(shù)據(jù)庫(kù)遠(yuǎn)程操作接口完成流程節(jié)點(diǎn)文檔的創(chuàng)建。當(dāng)XML格式文本序列中所包含的workflow元素實(shí)例和多個(gè)node元素實(shí)例所對(duì)應(yīng)的數(shù)據(jù)庫(kù)文檔均創(chuàng)建完成以后,格式轉(zhuǎn)化工作即告完成?!?.3公共事務(wù)一.總體結(jié)構(gòu)設(shè)計(jì)XX工業(yè)研究院公共事務(wù)模塊整體結(jié)構(gòu)如下:公共事務(wù)公共事務(wù)日程安排會(huì)議安排辦公室設(shè)備管理其他日常事務(wù)全部會(huì)議日程全部日程列表日程草稿列表審批日程列表空閑時(shí)間查詢空閑日期查詢?nèi)繒?huì)議列表全部會(huì)議列表審批會(huì)議列表會(huì)議記錄列表會(huì)議紀(jì)要列表空閑會(huì)議室會(huì)議室空時(shí)段會(huì)議室管理固定資產(chǎn)管理來(lái)賓接待圖2-3二.表單設(shè)計(jì)1.日程安排表單日程安排表單用于記錄日程安排的相關(guān)信息。具體設(shè)計(jì)如下:表3.1日程安排表單條目域功能備注表單安排名稱Arrange_Name輸入該安排名稱文字域任務(wù)范圍Arrange_Range選擇該安排涉及范圍全公司、個(gè)人起始時(shí)間Arrange_Starttime選擇安排起始時(shí)間時(shí)間域結(jié)束時(shí)間Arrange_Stoptime選擇安排結(jié)束時(shí)間時(shí)間域涉及處室Arrange_Dept選擇涉及的處室文字域涉及人員Arrange_Person選擇涉及的人員文字域安排描述Arrange_Describe輸入該階段的任務(wù)文字域?qū)徟愋蚏eview_Type選擇審批類型并行、串行審批人名單Reviewer_List輸入所有審批人姓名域?qū)徟庖?jiàn)Choice選擇同意或不同意同意、不同意審批建議Suggestion輸入審批建議文字域狀態(tài)標(biāo)志Status表示安排所處狀態(tài)文字域發(fā)布標(biāo)志Arrange_Status表示安排發(fā)布狀態(tài)文字域工具條存儲(chǔ)安排X存儲(chǔ)編輯的日程安排保存草稿X保存日程安排的草稿提交審批X提交日程安排審批完成審批X完成日程安排審批填寫意見(jiàn)X填寫審批意見(jiàn)編輯X重新編輯日程安排草稿刪除X刪除日程安排退出X退出日程安排的編輯說(shuō)明:日程安排的發(fā)布范圍為全公司時(shí),才進(jìn)行審批流程,因此在發(fā)布范圍為個(gè)人時(shí),與審批相關(guān)域與工作條為隱藏狀態(tài)。Status域包含3種狀態(tài),分別用數(shù)字1、2、3表示,1表示安排處于新建立狀態(tài),2表示安排處于審批狀態(tài),3表示安排處于審批完成狀態(tài)。Arrange_Status域包含2種狀態(tài),分別用數(shù)字0、1表示,0表示安排未發(fā)布,1表示安排已被發(fā)布。刪除和編輯工作也是只由日程安排起草者完成。對(duì)于其他用戶呈隱藏狀態(tài)。2.會(huì)議安排表單會(huì)議安排表單用于記錄會(huì)議安排的相關(guān)信息。具體設(shè)計(jì)如下:表3.2會(huì)議安排表單條目域功能備注表單會(huì)議主題Arrange_Name輸入該安排名稱文字域任務(wù)范圍Arrange_Range選擇該安排涉及范圍全公司、本部門、指定起始時(shí)間Arrange_Starttime選擇安排起始時(shí)間時(shí)間域結(jié)束時(shí)間Arrange_Stoptime選擇安排結(jié)束時(shí)間時(shí)間域會(huì)議主持人President會(huì)議主持人姓名姓名域會(huì)議起草人Draftman會(huì)議起草人姓名姓名域涉及處室Arrange_Dept選擇涉及的處室文字域涉及人員Arrange_Person選擇涉及的人員文字域會(huì)議描述Arrange_Describe輸入該階段的任務(wù)文字域?qū)徟愋蚏eview_Type選擇審批類型并行、串行審批人名單Reviewer_List輸入所有審批人姓名域?qū)徟庖?jiàn)Choice選擇同意或不同意同意、不同意審批建議Suggestion輸入審批建議文字域狀態(tài)標(biāo)志Status表示會(huì)議所處狀態(tài)文字域發(fā)布標(biāo)志Meeting_Status表示會(huì)議發(fā)布狀態(tài)文字域工具條發(fā)布通知X存儲(chǔ)編輯的會(huì)議安排保存草稿X保存會(huì)議安排的草稿填寫記錄X填寫會(huì)議記錄提交審批X提交會(huì)議審批完成審批X完成會(huì)議審批填寫意見(jiàn)X填寫審批意見(jiàn)編輯X重新編輯會(huì)議草稿刪除X刪除會(huì)議退出X退出會(huì)議的編輯說(shuō)明:會(huì)議安排的發(fā)布范圍為全公司、本部門、指定三種,三種狀態(tài)下均能進(jìn)入審批流程。Status域包含3種狀態(tài),分別用數(shù)字1、2、3表示,1表示會(huì)議處于新建立狀態(tài),2表示會(huì)議處于審批狀態(tài),3表示會(huì)議處于審批完成狀態(tài)。Meeting_Status域包含2種狀態(tài),分別用數(shù)字0、1表示,0表示會(huì)議未發(fā)布,1表示會(huì)議已被發(fā)布。3.會(huì)議記錄表單會(huì)議記錄表單用于記錄會(huì)議記錄的相關(guān)信息。具體設(shè)計(jì)如下:表3.3會(huì)議記錄表單條目域功能備注會(huì)議時(shí)間Meeting_Time顯示會(huì)議的時(shí)間文字域,自動(dòng)生成會(huì)議地點(diǎn)Meeting_Location顯示開(kāi)會(huì)地點(diǎn)文字域,自動(dòng)生成會(huì)議起草人Meeting_Draftman顯示會(huì)議起草人文字域,自動(dòng)生成會(huì)議主題Meeting_Topic顯示會(huì)議主題文字域,自動(dòng)生成會(huì)議主席Meeting_President顯示會(huì)議的主席文字域與會(huì)者M(jìn)eeting_Member顯示與會(huì)者文字域缺席者M(jìn)eeting_unabsent顯示缺席者文字域記錄頁(yè)數(shù)Record_Page顯示記錄頁(yè)數(shù)文字域?qū)徟愋蚏eview_Type選擇審批類型并行、串行審批人名單Reviewer_List輸入所有審批人姓名域?qū)徟庖?jiàn)Choice選同意或不同意同意、不同意審批建議Suggestion輸入審批建議文字域狀態(tài)標(biāo)志Status表示記錄所處狀態(tài)文字域發(fā)布標(biāo)志Record_Status表示記錄發(fā)布狀態(tài)文字域工具條發(fā)布記錄X存儲(chǔ)會(huì)議記錄填寫紀(jì)要X填寫會(huì)議紀(jì)要提交審批X提交記錄審批完成審批X完成記錄審批填寫意見(jiàn)X填寫審批意見(jiàn)編輯X重編會(huì)議記錄刪除X刪除會(huì)議記錄退出X退出會(huì)議記錄說(shuō)明:會(huì)議記錄為詳細(xì)的會(huì)議內(nèi)容記錄,包括文字和語(yǔ)音文件,同時(shí)需要進(jìn)行詳細(xì)的審批工作。并詳細(xì)記錄與會(huì)人員情況。Status域包含3種狀態(tài),分別用數(shù)字1、2、3表示,1表示記錄處于新建立狀態(tài),2表示記錄處于審批狀態(tài),3表示記錄處于審批完成狀態(tài)。Record_Status域包含2種狀態(tài),分別用數(shù)字0、1表示,0表示記錄未發(fā)布,1表示記錄已被發(fā)布。4.會(huì)議紀(jì)要表單會(huì)議紀(jì)要表單用于記錄會(huì)議紀(jì)要的相關(guān)信息。具體設(shè)計(jì)如下:表3.4會(huì)議紀(jì)要表單條目域功能備注會(huì)議時(shí)間Meeting_Time顯示會(huì)議的時(shí)間文字域,自動(dòng)生成會(huì)議地點(diǎn)Meeting_Location顯示開(kāi)會(huì)地點(diǎn)文字域,自動(dòng)生成會(huì)議起草人Meeting_Draftman顯示會(huì)議起草人文字域,自動(dòng)生成會(huì)議主題Meeting_Topic顯示會(huì)議主題文字域,自動(dòng)生
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GH/T 1448-2024雅安藏茶原料要求
- 2024屆內(nèi)蒙古自治區(qū)錫林郭勒盟高三上學(xué)期期末考試歷史試題(解析版)
- 2024-2025學(xué)年浙江省杭州地區(qū)(含周邊)重點(diǎn)中學(xué)高二上學(xué)期期中考試歷史試題(解析版)
- 廣東省廣州市天河區(qū)2025屆高三上學(xué)期綜合測(cè)試(一)英語(yǔ)試卷含答案
- 《美術(shù)基本種類》課件
- 單位管理制度集合大合集【人員管理】十篇
- 單位管理制度匯編大合集【人力資源管理篇】十篇
- 單位管理制度合并匯編人員管理
- 單位管理制度分享匯編【職員管理】十篇
- 高中語(yǔ)文一些重要的文化常識(shí)
- 數(shù)據(jù)中心電力設(shè)備調(diào)試方案
- 2024年度國(guó)際物流運(yùn)輸合同3篇
- 新入職員工年終工作總結(jié)課件
- 中華傳統(tǒng)文化之文學(xué)瑰寶學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 靜脈導(dǎo)管維護(hù)
- 年度先進(jìn)員工選票標(biāo)準(zhǔn)格式
- 滿堂支架計(jì)算
- MA5680T開(kāi)局配置
- 螺桿式風(fēng)冷冷水(熱泵)機(jī)組電路圖
- CFG樁施工記錄表范本
- 《錄音技術(shù)與藝術(shù)》課程教學(xué)大綱(新版)(共11頁(yè))
評(píng)論
0/150
提交評(píng)論