【正文】
2.權(quán)限控制類別 非流轉(zhuǎn)權(quán)限控制:表單和視圖的控制屬于完全控制,用戶如果沒有權(quán)限,則完全不能看到,功能鏈接表、按鈕、正文、附件的控制屬于部分控制,根據(jù)用戶的權(quán)限顯示部分 頁面內(nèi)容,通過公式或代理讀取當(dāng)前用戶信息,根據(jù)用戶的角色或者崗位判斷當(dāng)前用戶是否擁有權(quán)限,如圖 417 所示: 33 公 式 或 代 理獲 取 用 戶 信 息判 斷 用 戶 權(quán)限訪 問N a m s 庫 組 織 結(jié) 構(gòu) 庫隱 藏 內(nèi) 容 或 者 提 示 未授 權(quán)顯 示 全 部 或 部 分 內(nèi) 容有 權(quán) 限無權(quán)限 圖 417 非流轉(zhuǎn)權(quán)限控制 流轉(zhuǎn)權(quán)限控制:公文流轉(zhuǎn)控制需要流程管理庫、組織結(jié)構(gòu)庫, names 庫共同支持才能完成,不僅判斷當(dāng)前用戶是否具有有權(quán)打開文檔,還要判斷當(dāng)前用戶所在環(huán)節(jié)的權(quán)限,使審批人或?yàn)g覽人可以進(jìn)行相應(yīng)操作,如圖 418 所示: 公 式 或 代 理獲 取 用 戶 及 流 程 信 息判 斷 用 戶 權(quán) 限審 批N a m s 庫 組 織 結(jié) 構(gòu) 庫隱 藏 內(nèi) 容 或 者 提 示 未授 權(quán)。 公式隱藏:通過公式計(jì)算設(shè)置隱藏條件,凡是不符合公式條件的字段或頁面都將隱藏,如將公式條件 !IsMember([admin]。 讀者域和作者域:在表單中設(shè)計(jì)兩個(gè)字段,字段類型分別設(shè)置為 Reader 和 Author,如果將用戶的登錄 ID 添加 到讀者域中,那么在讀者域中的用戶有權(quán)閱覽表單。 32 + i n i t i a l i z e ( ) g e t E l e M e n t s B y T a g N a m e ( ) g e t A t t r i b u t e s ( ) g e t C h i l d N o d e ( ) g e t T a g N a m e ( ) g e t T a g T e x t ( )+ a n a l y z e X M L ( )+ c r e a t e F i e l d s ( )+ c r e a t e H t m l ( ) D b F L o w : O b j e c t D o c F l o w : O b j e c t D o c C o n t e n t : O b j e c t H t m l : S t r i n gL o a d F l o w 圖 416 加載流程代理 權(quán)限控制的實(shí)現(xiàn) 公文的權(quán)限控制需要多層次的控制,包括視圖、表單、功能鏈接表、按鈕、正文、附件的控制等,以及公文流轉(zhuǎn)時(shí)動(dòng)態(tài)權(quán)限控制。2)查詢公文類型視圖,公式返回值為“公文類型名稱 | 公文類型配置文檔 UID”列表,該列表可以初始化下拉列表內(nèi)容從而提供用戶選擇,點(diǎn)擊加載流程按鈕調(diào)用 LoadFlow 代理,解析流程IsAppraise_* Boolean 是否評(píng)價(jià) StIsSetReadOnly Boolean 是否可以編輯正文 StIsMarkModify Boolean 修改正文是否留痕 StIsDocLocal Boolean 從本地上傳正文 StIsDocPrint Boolean 正文打印 StIsDocScreenHandSign Boolean 全文批注 StIsDocBackUpToLocal Boolean 下載文件 StIsDocSaveTRack Boolean 留痕備份 StIsDocSetTemplet Boolean 生成正文 StIsTitle Boolean 顯示控件 Title StIsMenu Boolean 顯示控件菜單 StIsShowRevisions Boolean 是否顯示痕跡 StIsDocDesign Boolean 正文頁面調(diào)整 StIsDocAddPic Boolean 添加圖片 StIsDocSignByHand Boolean 手寫批注 StIsDocAcceptRevisions Boolean 清稿 StIsDocShowRevisions Boolean 顯示、隱藏痕跡 StIsDocSetEnd Boolean 定稿 StIsStatus Boolean 顯示控件狀態(tài)欄 StIsTool Boolean 顯示工具欄 StAttamentsTrackRevisions Boolean 是否留痕 StIsPermitAddDelFiles Boolean 是否添加附件 31 文件并生 成各配置字段和 html 代碼,提交后檢查必填項(xiàng)是否為空,如果為空則繼續(xù)填寫,不空則保存,流程輔助配置創(chuàng)建流程如圖 415 所示。 表 46 流程輔助配置單的數(shù)據(jù)結(jié)構(gòu) 字段名稱 字段類型 字段說明 DF_DbPath Char 數(shù)據(jù)庫路徑 DF_DbDir Char 數(shù)據(jù)庫目錄 DF_DbName Char 數(shù)據(jù)庫名 Form Char 表單名 openMode Char 新舊文檔標(biāo)示 $V2AttachmentOptions Char 隱藏默認(rèn)的附件顯示方式 SaveOptions Char 保存標(biāo)志位 StTempletLink Char 附件中指定紅頭 模版文件的鏈接 RtfHtml Char 存放 html 代碼 StTmpletMark Char 紅頭模版中的字段 IsEdit Boolean 是否處于編輯狀態(tài) StUID Char 文檔 UID StStoreXml Char 臨時(shí)存儲(chǔ)流程配置相關(guān)數(shù)據(jù) ThisFlowXML Char 流程 XML IsLoad Boolean 是否已加載流程 StFlowNodeCount Integer 流程環(huán)節(jié)數(shù) StFlowNodeList Char 環(huán)節(jié)號(hào)連接字符串 StFlowNodeTitle Char 環(huán)節(jié)名稱 StDocType Char 公文類型 StCreatedDate Date 配置日期 StFlowTitle Char 流程標(biāo)題 StFlowUnid Char 流程 UID StBHNode List 編號(hào)環(huán)節(jié) StGZNode List 蓋章環(huán)節(jié) StDateField_* Date 日期域 30 表 46 流程輔助配置單的數(shù)據(jù)結(jié)構(gòu) 續(xù) 2. 創(chuàng)建流程輔助配置 首先在下拉列表中使用公式 DbColumn(。 流程輔助配置單,如圖 415 所示。 公文流程文檔是通過 DigiFlow 的流程管理創(chuàng)建的,創(chuàng)建成功后會(huì)將流程信息保存為 XML 格式,并存于流程管理庫中。 + i n i t T y p e L i s t ( )+ i n i t S u b F o r m L i s t ( ) d o c C o n t e x t : O b j e c t d b C u r r e n t : O b j e c tI n i t L i s t 圖 413 初始化代理 如圖 414所示,加載流程列表代理通過 getFlowList函數(shù)獲取流程列表, checkFlow函數(shù)則判斷流程是否是當(dāng)前公文類流程, initFlowList 函數(shù)加載當(dāng)前公文 類型對(duì)應(yīng)的流程列表。 開 始結(jié) 束初 始 化 子 表 單 列表初 始 化 類 別 列 表 填 寫 表 單必 填 域 是 否 為空保 存提 交Y e sN o 圖 411 創(chuàng)建公文類型配置的流程圖 加載流程采用 ajax 方式調(diào)用加載流程代理,獲取所有綁定到公文辦理單的流程,返回流程列表給前臺(tái)頁面,通過流程列表初始化對(duì)話列表框,提供流程列表給用戶進(jìn)行選擇,如圖 412 所示。填寫完配置信息后提交并通過 fCheckInput 函數(shù)判斷必填項(xiàng),提交成功則將表單內(nèi)容保存為 Domino 文檔。 1. 公文類型配置單的數(shù)據(jù)結(jié)構(gòu) 如表 45 所示, StFlowUnid 與 StDocType 構(gòu)成了審批流程與公文類型對(duì)應(yīng)關(guān)系,每個(gè)公文類型對(duì)應(yīng)一個(gè)審批流程,但一個(gè)審批流程可以對(duì)應(yīng)多個(gè)公文類型,所以是一對(duì)多的關(guān)系 。 Step3:填寫正確并保存后,表單調(diào)用 SaveDocDBConfig 代理,將表單內(nèi)容保存成 25 Domino 文檔。4)獲取數(shù)據(jù)庫類型列表,三項(xiàng)初始化的內(nèi)容都以下拉列表的形勢(shì)展現(xiàn),提供給用戶選擇。 開 始獲 取 服 務(wù) 器 信息獲 取 數(shù) 據(jù) 庫 模板 對(duì) 象填 寫 配 置 單對(duì) 象 是 否 為 空是 否 在D F T e m p l a t e 目錄模 板 添 加 到 臨時(shí) 列 表Y e sY e sN oN o完 成 模 板 列 表初 始 化必 填 項(xiàng) 是 否 為空保 存保 存 數(shù) 據(jù)Y e s模 板 庫 是 否 存在獲 取 選 定 的 模板 庫N o創(chuàng) 建 數(shù) 據(jù) 庫 失敗創(chuàng) 建 數(shù) 據(jù) 庫N oY e s設(shè) 置 A C L結(jié) 束設(shè) 置 附 件 庫 關(guān)聯(lián) 圖 410 公文數(shù)據(jù)庫配置流程圖 Step1:首先 調(diào)用 InitDocDbConfig 代理初始化表單,通過查詢服務(wù)器配置庫中服務(wù)器視圖,返回所有的服務(wù)器的服務(wù)器名稱和文檔 UID 列表,并以服務(wù)器名稱為 text,UID 為 value 來初始化下拉列表,通過查詢 DigiFlow 提供的附件配置庫初始化附件庫保存位置,數(shù)據(jù)庫類型是采用公式 DbColumn(。 + g e t S e r v e r s ( ) : S t r i n g+ g e t T e m p l a t e ( ) : S t r i n g+ g e t D o c T y p e ( ) : S t r i n g S e r v e r s : S t r i n g T e m p l a t e : S t r i n g D o c T y p e : S t r i n gI n i t D o c D b C o n f i g 圖 48 初始化代理 保 存配置代理如圖 49所示,保存代理將會(huì)以選的模板庫為模板創(chuàng)建一個(gè)公文庫,保存到指定服務(wù)器的指定目錄中,并且給新的公文庫設(shè)置基本的 ACL,否則公文庫將會(huì)無法訪問,最后保存配置表單內(nèi)容,生成配置文檔。 22 圖 47 公文數(shù)據(jù)庫配置單 1. 公文數(shù)據(jù)庫配置單的數(shù)據(jù)結(jié)構(gòu) 如表 44 所示,該配置單最主要的功能是保存每個(gè)公文庫的存儲(chǔ)位置,即公文庫在哪臺(tái)服務(wù),哪個(gè)目錄中,數(shù)據(jù)庫名稱,當(dāng)其他表單需要查詢數(shù)據(jù)庫時(shí),就讀取公文數(shù)據(jù)庫配置文檔。 開 始創(chuàng) 建 發(fā) 文 登 記單記 錄 公 文 基 本信 息獲 取 部 門 群 組配 置 文 檔文 檔 存 在獲 取 部 門 綜 合崗發(fā) 送 人 員發(fā) 送 單 位設(shè) 置 初 始 狀 態(tài)設(shè) 置 初 始 狀 態(tài)結(jié) 束Y e sN oY e sN oY e sN o發(fā) 送 消 息 圖 46 創(chuàng)建發(fā)文登記流程圖 公文配置管理模塊 公文數(shù)據(jù)庫配置的實(shí)現(xiàn) 公文流轉(zhuǎn)包括公司內(nèi)部流轉(zhuǎn)和公司間流轉(zhuǎn),每個(gè)公司的都有一套公文數(shù)據(jù)庫,公司內(nèi)部流轉(zhuǎn)僅涉及到公司自己的數(shù)據(jù)庫,但是公司間流轉(zhuǎn)需要與各個(gè)公司的公文數(shù)據(jù)庫進(jìn)行關(guān)聯(lián),為了能夠正確查詢到各個(gè)公司的公文數(shù)據(jù)庫,采用公文數(shù)據(jù)庫配置的方式,將每個(gè)公司的公文數(shù)據(jù)庫所在位置進(jìn)行記錄在公文配置庫中,當(dāng)公文 流轉(zhuǎn)時(shí),如果需要公司間流轉(zhuǎn),則查詢公文配置庫中的配置文檔,根據(jù)配置文檔可以找到要流轉(zhuǎn)到公司的公文數(shù)據(jù)庫,然后再做相應(yīng)處理。 Step5:發(fā)送消息給接收人員或綜合崗人員,通知該 人員接收公文。 Step3:根據(jù)發(fā)文辦理單發(fā)送位置記錄發(fā)送單位或者發(fā)送人員,如果 是發(fā)送給某些人員,則記錄接收人員姓名和 ITCode 到發(fā)文登記單的 MtRecever 和 MtReceverID 字段,如果是發(fā)送到部門,則記錄接收部門名稱和部門 ID 到 MtDeptName 和 MtDeptID,字段名稱 字段類型 字段說明 DF_DbPath Char 數(shù)據(jù)庫路徑 DF_DbDir Char 數(shù)據(jù)庫目錄 DF_DbName Char 數(shù)據(jù)庫名 Form Char 表單名 StDocUID Char 公文文檔 UID StDocTitle Char 公文標(biāo)題 StDocNo Char 公文編號(hào) StCreateDate Char 登記時(shí)間 MtDeptName Char 發(fā)往單位 MtDeptID Char 發(fā)往單位編號(hào) MtSendState Char 發(fā)送狀態(tài) MtGeneral Char 部門綜合崗人員 MtGeneralID Char 部門綜合崗人員 ITCode MtState Char 狀態(tài) MtRecever Char 發(fā)往人員 (接收人 ) MtReceverID Char 發(fā)往人員 (接收人 ) ITCode StAuthors Char 作者域 StReaders Char 讀者域 21 因?yàn)槊總€(gè)部門接收公文