流程引擎開(kāi)發(fā)指南模板_第1頁(yè)
流程引擎開(kāi)發(fā)指南模板_第2頁(yè)
流程引擎開(kāi)發(fā)指南模板_第3頁(yè)
流程引擎開(kāi)發(fā)指南模板_第4頁(yè)
流程引擎開(kāi)發(fā)指南模板_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

年4月19日流程引擎開(kāi)發(fā)指南模板資料內(nèi)容僅供您學(xué)習(xí)參考,如有不當(dāng)或者侵權(quán),請(qǐng)聯(lián)系改正或者刪除。EMOSS2流程引擎開(kāi)發(fā)指南中博信息技術(shù)研究院有限公司版本歷史版本號(hào)更改描述更改日期修訂人是否基線版本(Y/N)評(píng)審記錄#評(píng)審經(jīng)過(guò)日期V1.0建立文檔-7-30余志淼Y

目錄1. 概述 51.1. 流程引擎說(shuō)明 51.2. 流程引擎架構(gòu) 52. 開(kāi)發(fā)前準(zhǔn)備 62.1. 建立組織架構(gòu)視圖 62.1.1. 公司(CORE_COMPANY) 62.1.2. 部門(mén)(CORE_DEPARTMENT) 62.1.3. 員工(CORE_EMPLOYEE) 62.1.4. 用戶(CORE_USER) 72.1.5. 角色(CORE_ROLE) 72.1.6. 用戶流程角色表(CORE_USER_ROLES) 82.2. 建立流程數(shù)據(jù)表 82.3. 安裝流程設(shè)計(jì)工具 82.3.1. 安裝JDK 82.3.2. 安裝流程設(shè)計(jì)工具 92.4. 將流程編程接口加入到項(xiàng)目代碼中 93. 開(kāi)發(fā)指南 93.1. 流程設(shè)計(jì)工具使用 93.1.1. 新增流程 103.1.2. 設(shè)計(jì)流程圖 10. 流程屬性設(shè)置 12A. 流程屬性說(shuō)明 12B. 流程變量定義 13C. 流程數(shù)據(jù)屬性 14D. 高級(jí)屬性 14. 流程節(jié)點(diǎn)屬性設(shè)置 15A. 屬性說(shuō)明 16B. 按鈕信息 17C. 審批用戶范圍設(shè)置 18D. 轉(zhuǎn)辦用戶范圍設(shè)置 21E. 傳閱用戶范圍設(shè)置 22. 連接屬性設(shè)置 233.1.3. 保存流程圖 253.1.4. 設(shè)置流程圖 253.1.5. 刪除流程圖 253.1.6. 導(dǎo)出流程圖 253.1.7. 導(dǎo)入流程圖 263.2. 流程編程接口使用 263.2.1. 流程引擎數(shù)據(jù)源初始化 26. 不使用連接池方式: 26. 使用C3P0連接池方式 263.2.2. 流程配置的加載 273.2.3. 用戶登錄的改造(可選) 273.2.4. 流程處理 28. 點(diǎn)擊發(fā)起流程按鈕: 28. 點(diǎn)擊審批經(jīng)過(guò)按鈕: 29. 服務(wù)端實(shí)現(xiàn)業(yè)務(wù)處理 293.2.5. 常見(jiàn)JAVA類說(shuō)明 30. com.zbiti.core.config.wf.WorkFlowComponent 30. com.zbiti.core.config.wf.WorkFlowConfigProvider 30. com.zbiti.core.config.wf.WorkFlowObject 31. com.zbiti.core.config.wf.WFImage 31. com.zbiti.core.vo.ParameterObject 31. com.zbiti.core.config.wf.WorkFlowProxy 31. ponents.UserComponent 32. com.zbiti.core.ResourcePool 32. com.zbiti.core.consts.Tables 320. com.zbiti.core.consts.Sequences 324. 附件 32概述流程引擎說(shuō)明EMOSS2流程引擎是EMOSS2開(kāi)發(fā)平臺(tái)的一部分,主要完成流程發(fā)起,審批,監(jiān)控等功能,是較輕量級(jí)的流程引擎,但完全能夠滿足企業(yè)的業(yè)務(wù)流程需求。流程引擎當(dāng)前支持的數(shù)據(jù)庫(kù)有:oracle、mysql、sybase。主要的組成部分有:組織架構(gòu)視圖:流程引擎需要基于組織架構(gòu)才能實(shí)現(xiàn)審批人的選擇、工作項(xiàng)的生成、流轉(zhuǎn)條件的判斷等。流程數(shù)據(jù)表:用于保存流程圖、流程實(shí)例、工作項(xiàng)等流程相關(guān)的數(shù)據(jù)。流程設(shè)計(jì)工具:用于設(shè)計(jì)流程圖,分配不同的版本給不同的公司。JDK要求必須是1.6及以上。流程編程接口:提供流程的發(fā)起、審批、參與者計(jì)算等接口給外部程序調(diào)用。主要是jar包形式,JDK的版本必須是1.5及以上。流程引擎架構(gòu)外部外部Jsp、java程序組織架構(gòu)視圖組織架構(gòu)視圖流程設(shè)計(jì)工具流程設(shè)計(jì)工具流程編程接口流程編程接口流程數(shù)據(jù)表:流程圖流程數(shù)據(jù)表:流程數(shù)據(jù)表:流程實(shí)例、工作項(xiàng)...開(kāi)發(fā)前準(zhǔn)備建立組織架構(gòu)視圖根據(jù)字段列表建立各個(gè)視圖。字段列表只列出必要字段,也能夠根據(jù)需要擴(kuò)展其它字段。公司(CORE_COMPANY)字段字段名稱類型說(shuō)明COMPANY_ID公司IDNUMBER(16)公司的唯一標(biāo)識(shí)COMPANY_CID公司變更序號(hào)NUMBER(16)固定值:1COMPANY_CODE公司編碼VARCHAR2(50)P_COMPANY_ID上級(jí)公司IDNUMBER(16)COMPANY_NAME公司名稱VARCHAR2(200)SORT_ID排序號(hào)NUMBER(16)可空IS_LAST是否最新記錄NUMBER(1)固定值:1STATE是否有效NUMBER(1)固定值:1部門(mén)(CORE_DEPARTMENT)字段字段名稱類型說(shuō)明DEP_ID部門(mén)IDNUMBER(16)部門(mén)的唯一標(biāo)識(shí)DEP_CID部門(mén)變更序號(hào)NUMBER(16)固定值:1COMPANY_ID所屬公司IDNUMBER(16)關(guān)聯(lián)到CORE_COMPANYCOMPANY_CID所屬公司變更序號(hào)NUMBER(16)固定值:1DEP_CODE部門(mén)編碼VARCHAR2(50)P_DEP_ID上級(jí)部門(mén)IDNUMBER(16)DEP_NAME部門(mén)名稱VARCHAR2(200)SORT_ID排序號(hào)NUMBER(16)可空IS_LAST是否最新記錄NUMBER(1)固定值:1STATE是否有效NUMBER(1)固定值:1員工(CORE_EMPLOYEE)字段字段名稱類型說(shuō)明EMP_ID員工IDNUMBER(16)員工的唯一標(biāo)識(shí)EMP_CID員工變更序號(hào)NUMBER(16)固定值:1DEP_ID所屬部門(mén)IDNUMBER(16)關(guān)聯(lián)到CORE_DEPARTMENTDEP_CID所屬部門(mén)變更序號(hào)NUMBER(16)固定值:1COMPANY_ID所屬公司IDNUMBER(16)關(guān)聯(lián)到CORE_COMPANYCOMPANY_CID所屬公司變更序號(hào)NUMBER(16)固定值:1EMP_CODE員工編碼VARCHAR2(50)EMP_NAME姓名VARCHAR2(50)SORT_ID排序號(hào)NUMBER(16)可空IS_LAST是否最新記錄NUMBER(1)固定值:1STATE是否有效NUMBER(1)固定值:1用戶(CORE_USER)字段字段名稱類型說(shuō)明USER_ID用戶IDNUMBER(16)用戶的唯一標(biāo)識(shí)DEP_ID所屬部門(mén)IDNUMBER(16)關(guān)聯(lián)到CORE_DEPARTMENTCOMPANY_ID所屬公司IDNUMBER(16)關(guān)聯(lián)到CORE_COMPANYEMP_ID所屬員工IDNUMBER(16)關(guān)聯(lián)到CORE_EMPLOYEEMAIN_ROLE_CODE主要角色編碼VARCHAR2(30)該用戶的主要角色(權(quán)限角色)LOGIN_ID登錄賬號(hào)VARCHAR2(50)該用戶登錄到系統(tǒng)的賬號(hào)USER_NAME用戶姓名VARCHAR2(50)能夠與員工姓名一致SORT_ID排序號(hào)NUMBER(16)可空STATE是否有效NUMBER(1)固定值:1角色(CORE_ROLE)字段字段名稱類型說(shuō)明ROLE_CODE角色編碼VARCHAR2(30)角色的唯一標(biāo)識(shí)ROLE_NAME角色名稱VARCHAR2(50)COMPANY_ID所屬公司IDNUMBER(16)關(guān)聯(lián)到CORE_COMPANY。空表示全部公司可使用的角色。ROLE_TYPE角色類型CAHR(1)0:權(quán)限角色;1:流程角色;2:權(quán)限流程角色。默認(rèn)為:2。SORT_ID排序號(hào)NUMBER(16)可空PARENT_CODE父角色編碼VARCHAR2(30)可空IS_LEAF是否末級(jí)CAHR(1)1:是,0:否IS_INNER是否內(nèi)置CAHR(1)1:是,0:否。默認(rèn)為:0。用戶流程角色表(CORE_USER_ROLES)字段字段名稱類型說(shuō)明ROLE_CODE角色編碼VARCHAR2(30)角色的唯一標(biāo)識(shí)USER_ID用戶IDNUMBER(16)用戶的唯一標(biāo)識(shí)建立流程數(shù)據(jù)表根據(jù)《流程數(shù)據(jù)表.pdm》建立各個(gè)流程數(shù)據(jù)表。各數(shù)據(jù)表說(shuō)明如下:CORE_WF_CONFIG:流程配置表。用于保存設(shè)計(jì)工具設(shè)計(jì)出來(lái)的流程圖。CORE_WF_INSTANCE:流程實(shí)例表。用于保存系統(tǒng)中發(fā)起的流程實(shí)例。CORE_WF_INSTANCE_VARIABLE:流程實(shí)例變量表。用于保存每個(gè)流程實(shí)例的變量。CORE_WF_WORKITEM:流程工作項(xiàng)表。用于保存用戶發(fā)起一個(gè)流程或?qū)徟暌粋€(gè)待辦后,產(chǎn)生出的待辦工作項(xiàng)。CORE_WF_WORKITEM_RELATION:工作項(xiàng)的轉(zhuǎn)移關(guān)系表。用于保存每個(gè)工作項(xiàng)的來(lái)源工作項(xiàng)。CORE_WF_REASSIGN_RELATION:流程委托關(guān)系表。用于保存用戶委托其它用戶處理自己的流程待辦。CORE_SYSTEM_BIG_DATA:系統(tǒng)專用大數(shù)據(jù)表。用于保存流程圖的XML源代碼。序列:SEQ_COMMON_BASE,長(zhǎng)度為16。用于設(shè)置CORE_WF_INSTANCE、CORE_SYSTEM_BIG_DATA等表的主鍵值。如果數(shù)據(jù)庫(kù)不支持序列,則要?jiǎng)?chuàng)立平臺(tái)的序列表(CORE_SEQUENCE):字段字段名稱類型說(shuō)明SEQ序列名VARCHAR2(30)序列唯一標(biāo)識(shí),流程引擎使用:SEQ_COMMON_BASEMAX_ID當(dāng)前值NUMBER(16)初始值為:1安裝流程設(shè)計(jì)工具安裝JDK流程設(shè)計(jì)工具需要JDK1.6或以上版本才能運(yùn)行。安裝完之后要指定JAVA_HOME,確認(rèn)當(dāng)前使用的JDK是1.6版本。安裝流程設(shè)計(jì)工具1),將”流程設(shè)計(jì)工具”目錄拷貝到一個(gè)無(wú)空格的路徑中,。2),運(yùn)行”imp_run32.bat”(32位操作系統(tǒng)使用)或”imp_run64.bat”(64位操作系統(tǒng)使用)。點(diǎn)擊主界面上的”設(shè)置”按鈕,設(shè)置數(shù)據(jù)庫(kù)連接(流程數(shù)據(jù)表所在的數(shù)據(jù)庫(kù)),如下圖所示:點(diǎn)擊”確認(rèn)”即完成了流程設(shè)計(jì)工具的設(shè)置。將流程編程接口加入到項(xiàng)目代碼中將”流程編程接口”目錄下的文件拷貝到項(xiàng)目中即可。文件目錄已經(jīng)是安裝web工程的要求建立,如有特殊目錄要求請(qǐng)自行修改。流程編程接口需要JDK1.5或以上版本才能運(yùn)行。開(kāi)發(fā)指南流程設(shè)計(jì)工具使用運(yùn)行流程設(shè)計(jì)工具”imp_run32.bat”或”imp_run64.bat”。點(diǎn)擊菜單”流程-流程自定義”即可進(jìn)入流程設(shè)計(jì)界面。如下圖所示:界面上部是工具條。左側(cè)的上面一個(gè)列表是系統(tǒng)中已存在的流程圖,下面一個(gè)列表是每個(gè)流程圖的明細(xì)版本(每個(gè)流程圖能夠有多個(gè)版本,每個(gè)版本的流程代碼都相同)。界面的右側(cè)是流程圖的設(shè)計(jì)區(qū)域。新增流程點(diǎn)擊界面工具條的”新增”按鈕,彈出”新增流程”對(duì)話框:輸入新流程代碼(流程圖的標(biāo)識(shí))和新流程名稱,點(diǎn)擊”確定”即可創(chuàng)立一個(gè)新流程圖(新創(chuàng)立的流程版本為1,只有”開(kāi)始”、”結(jié)束”2個(gè)節(jié)點(diǎn))。在界面的流程列表中能夠查詢到剛創(chuàng)立的流程。設(shè)計(jì)流程圖選擇左側(cè)的流程圖列表中的一個(gè)流程圖,在下面的”版本明細(xì)”列表就會(huì)顯示該流程圖的所有版本。選擇需要設(shè)計(jì)的一個(gè)版本,在右側(cè)的流程設(shè)計(jì)區(qū)域即可顯示該版本的流程圖。如圖所示:流程設(shè)計(jì)區(qū)域的上部是流程圖設(shè)計(jì)的工具條。左側(cè)是流程圖中的節(jié)點(diǎn)列表以及連接(節(jié)點(diǎn)之間的連接線)列表。操作說(shuō)明:點(diǎn)擊工具條的”開(kāi)始”按鈕,再點(diǎn)擊流程圖指定地方,能夠在指定地方增加一個(gè)”開(kāi)始節(jié)點(diǎn)”。一個(gè)流程圖只能有一個(gè)”開(kāi)始節(jié)點(diǎn)”。點(diǎn)擊工具條的”中間”按鈕,再點(diǎn)擊流程圖指定地方,能夠在指定地方增加一個(gè)”中間節(jié)點(diǎn)”。連續(xù)點(diǎn)擊流程圖,能夠連續(xù)增加”中間節(jié)點(diǎn)”。點(diǎn)擊右鍵能夠返回到”選擇”狀態(tài)。點(diǎn)擊工具條的”結(jié)束”按鈕,再點(diǎn)擊流程圖指定地方,能夠在指定地方增加一個(gè)”結(jié)束節(jié)點(diǎn)”。點(diǎn)擊工具條的”連接”按鈕,再點(diǎn)擊流程圖指定的一個(gè)節(jié)點(diǎn),鼠標(biāo)左鍵不放,將連線連接到另外一個(gè)節(jié)點(diǎn),放開(kāi)左鍵,即可在兩個(gè)節(jié)點(diǎn)中增加一個(gè)連接線。連續(xù)的操作能夠連續(xù)增加連接線。點(diǎn)擊右鍵能夠返回到”選擇”狀態(tài)。點(diǎn)擊工具條的”選擇”按鈕,能夠使鼠標(biāo)返回到”選擇”狀態(tài)(能夠選擇節(jié)點(diǎn)或連接線)。選中流程圖中的節(jié)點(diǎn)或連接線(能夠使用鼠標(biāo)選擇一個(gè)區(qū)域中的節(jié)點(diǎn)或連接線),再點(diǎn)擊工具條的”刪除”按鈕,能夠刪除選中的節(jié)點(diǎn)或連接線。點(diǎn)擊工具條的”刷新”按鈕,能夠刷新當(dāng)前流程圖(有時(shí)候由于畫(huà)布沒(méi)有重畫(huà),會(huì)導(dǎo)致流程圖顯示不全)。點(diǎn)擊工具條的”查看XML”按鈕,彈出當(dāng)前流程圖的XML內(nèi)容窗口:在XML源代碼窗口中文本框顯示的是當(dāng)前流程圖的XML內(nèi)容。能夠修改XML或拷貝其它版本流程圖的XML,然后點(diǎn)擊”設(shè)置XML”按鈕來(lái)改變當(dāng)前流程圖。設(shè)置的XML中的流程代碼值必須與當(dāng)前流程圖的代碼值一致,而且版本不能低于當(dāng)前流程圖的版本。流程屬性設(shè)置在流程圖的空白地方雙擊或者點(diǎn)擊工具條的”屬性”按鈕,彈出當(dāng)前流程圖的屬性設(shè)置窗口:流程屬性說(shuō)明流程編碼:即當(dāng)前流程圖的代碼,不可修改。版本號(hào):即當(dāng)前流程圖的版本號(hào),不可修改。每次保存版本號(hào)自動(dòng)遞增(也能夠使用覆蓋保存,不增加版本號(hào))。流程名稱:當(dāng)前流程的名稱,每個(gè)版本的流程圖名稱能夠不一樣。有效天數(shù):流程引擎只記錄該屬性,尚未未使用。待辦URL:顯示一個(gè)流程待辦工作項(xiàng)時(shí),使用的頁(yè)面URL。待辦查詢URL:查詢?cè)摿鞒痰拇k工作項(xiàng)時(shí),使用的頁(yè)面URL。已辦URL:顯示一個(gè)流程已辦流程實(shí)例時(shí),使用的頁(yè)面URL。已辦查詢URL:查詢?cè)摿鞒痰囊艳k流程實(shí)例時(shí),使用的頁(yè)面URL。我的申請(qǐng)查詢URL:查詢?cè)摿鞒痰摹蔽业纳暾?qǐng)”流程實(shí)例(登錄人發(fā)起的流程實(shí)例)時(shí),使用的頁(yè)面URL。已辦界面數(shù)據(jù)權(quán)限:能夠是:none-不控制權(quán)限,login-使用當(dāng)前登錄用戶的權(quán)限,starter-使用發(fā)起人的權(quán)限。該屬性只在EMOSS2平臺(tái)使用。流程結(jié)束方式:能夠設(shè)置有幾個(gè)人(或者百分之幾的人)審批經(jīng)過(guò)達(dá)到結(jié)束節(jié)點(diǎn)時(shí),流程算是正式結(jié)束,剩下未審批的工作項(xiàng)不再需要審批。說(shuō)明:記錄流程圖的說(shuō)明信息。流程變量定義在”流程變量”選項(xiàng)卡,能夠定義流程變量(流程發(fā)起的時(shí)候能夠設(shè)置流程變量的值,供業(yè)務(wù)操作或流程圖使用)。流程變量定義如下圖:能夠在列表中直接修改已有的變量。點(diǎn)擊”增加”按鈕,能夠在變量列表中增加一個(gè)流程變量。選擇列表中的某個(gè)流程變量,再點(diǎn)擊”刪除”按鈕,能夠刪除該變量。注:datetime類型的變量暫不支持。流程數(shù)據(jù)屬性在”流程數(shù)據(jù)”選項(xiàng)卡,能夠定義流程的數(shù)據(jù)相關(guān)屬性。如下圖所示:流程主題SQL:是發(fā)起流程或?qū)徟k工作項(xiàng)時(shí)流程引擎調(diào)用的SQL,用來(lái)更新流程實(shí)例表的主題字段(CORE_WF_INSTANCE.SUBJECT)。流程金額SQL:是發(fā)起流程或?qū)徟k工作項(xiàng)時(shí)流程引擎調(diào)用的SQL,用來(lái)更新流程實(shí)例表的金額字段(CORE_WF_INSTANCE.MONEY)。流程數(shù)據(jù)表:是EMOSS2平臺(tái)使用的。在JAVA代碼中使用DDProxy類增刪改查數(shù)據(jù)時(shí),會(huì)自動(dòng)設(shè)置PROCESS_ID(流程實(shí)例ID)和AUDIT_STATUS(審批狀態(tài))字段。高級(jí)屬性在”高級(jí)”選項(xiàng)卡,能夠設(shè)置流程的一些高級(jí)屬性。如下圖所示:流程結(jié)束/否決時(shí)發(fā)送消息的設(shè)置:能夠在流程結(jié)束或被否決時(shí)向流程相關(guān)的用戶發(fā)送消息(通知某個(gè)流程已經(jīng)結(jié)束/被否決)。該設(shè)置在EMOSS2平臺(tái)才使用。常見(jiàn)審批意見(jiàn):能夠設(shè)置審批該流程時(shí)使用的常見(jiàn)審批意見(jiàn)有哪些。該設(shè)置在EMOSS2平臺(tái)才使用。流程業(yè)務(wù)組件:用來(lái)設(shè)置一個(gè)JAVA類,重寫(xiě)父類(com.zbiti.core.config.wf.WorkFlowComponent)的某些方法,能夠?qū)⒘鞒痰臓顟B(tài)變化與業(yè)務(wù)操作的聯(lián)系起來(lái)。如:審批經(jīng)過(guò)后要做某些業(yè)務(wù)處理,能夠重寫(xiě)父類的afterApprove方法實(shí)現(xiàn)。流程結(jié)束后要做某些業(yè)務(wù)處理,能夠重寫(xiě)父類的instanceEnded方法實(shí)現(xiàn)...等。具體的父類說(shuō)明能夠參見(jiàn)”JAVA_DOCS”目錄下的javaDoc。流程節(jié)點(diǎn)屬性設(shè)置雙擊流程圖中的節(jié)點(diǎn)或選擇節(jié)點(diǎn)列表中的某個(gè)節(jié)點(diǎn),點(diǎn)擊工具條的”屬性”按鈕,彈出選中節(jié)點(diǎn)的屬性設(shè)置窗口:屬性說(shuō)明節(jié)點(diǎn)ID:節(jié)點(diǎn)在當(dāng)前流程圖中的唯一標(biāo)識(shí),創(chuàng)立節(jié)點(diǎn)時(shí)會(huì)自動(dòng)生成。節(jié)點(diǎn)名稱:該節(jié)點(diǎn)的顯示名稱。X坐標(biāo):流程節(jié)點(diǎn)在流程圖的X坐標(biāo)值。Y坐標(biāo):流程節(jié)點(diǎn)在流程圖的Y坐標(biāo)值。長(zhǎng)度:流程節(jié)點(diǎn)在流程圖中顯示的長(zhǎng)度。寬度:流程節(jié)點(diǎn)在流程圖中顯示的寬度。有效天數(shù):流程引擎只記錄該屬性,尚未未使用。待辦URL:顯示該節(jié)點(diǎn)的一個(gè)流程待辦工作項(xiàng)時(shí),使用的頁(yè)面URL。如果未設(shè)置,則使用流程的”待辦URL”屬性。數(shù)據(jù)權(quán)限:能夠是:none-不控制權(quán)限,login-使用當(dāng)前登錄用戶的權(quán)限,starter-使用發(fā)起人的權(quán)限。該屬性只在EMOSS2平臺(tái)使用。審批方式:能夠設(shè)置有幾個(gè)人(或者百分之幾的人)審批經(jīng)過(guò)(負(fù)數(shù)表示回退,如人數(shù)設(shè)置-1表示有一個(gè)人退回,百分比設(shè)置-33表示有33%的人退回)時(shí),該節(jié)點(diǎn)算是審批經(jīng)過(guò)(被退回),剩下未審批的工作項(xiàng)不再需要審批。能夠取回:該節(jié)點(diǎn)的工作項(xiàng)審批經(jīng)過(guò)后是否能夠被取回。能夠自動(dòng)提交:該節(jié)點(diǎn)的工作項(xiàng)與前一節(jié)點(diǎn)的工作項(xiàng)屬于同一個(gè)人的時(shí)候,如果前一節(jié)點(diǎn)的工作項(xiàng)被審批經(jīng)過(guò)了,該節(jié)點(diǎn)的工作項(xiàng)是否能夠自動(dòng)設(shè)置為審批經(jīng)過(guò)。審批后是否提示打印:該節(jié)點(diǎn)的工作項(xiàng)被審批經(jīng)過(guò)后是否會(huì)提示打印流程。該屬性只在EMOSS2平臺(tái)使用。常見(jiàn)審批意見(jiàn):能夠設(shè)置審批該節(jié)點(diǎn)的工作項(xiàng)時(shí)使用的常見(jiàn)審批意見(jiàn)有哪些,審批時(shí)的常見(jiàn)審批意見(jiàn)也包含流程屬性的”常見(jiàn)審批意見(jiàn)”。該設(shè)置在EMOSS2平臺(tái)才使用。說(shuō)明:記錄流程節(jié)點(diǎn)的說(shuō)明信息。按鈕信息在”按鈕信息”選項(xiàng)卡,能夠定義該節(jié)點(diǎn)的審批界面有哪些審批按鈕。如下圖:”駁回”、”退回發(fā)起人”、”否決”、”廢棄”按鈕每個(gè)界面只能有一個(gè),其中”廢棄”按鈕只能設(shè)置在”發(fā)起節(jié)點(diǎn)”。”批量審批使用的按鈕”用于指定一個(gè)審批經(jīng)過(guò)的按鈕,當(dāng)使用批量審批時(shí),相當(dāng)于點(diǎn)擊該按鈕。”批量駁回使用的按鈕”用于指定一個(gè)駁回的按鈕,當(dāng)使用批量駁回時(shí),相當(dāng)于點(diǎn)擊該按鈕。點(diǎn)擊”添加”按鈕,彈出添加按鈕對(duì)話框:在窗口上填寫(xiě)必要的信息:按鈕ID、標(biāo)題、顯示順序、是否可見(jiàn)后點(diǎn)擊”確認(rèn)”即可添加一個(gè)審批按鈕。注:按鈕ID在一個(gè)節(jié)點(diǎn)中不能重復(fù)。雙擊按鈕列表中的某個(gè)按鈕或者點(diǎn)擊”編輯”按鈕,彈出該按鈕的編輯窗口。與添加窗口一樣。點(diǎn)擊”刪除”按鈕,能夠刪除按鈕列表中選中的按鈕。審批用戶范圍設(shè)置在”審批用戶范圍”選項(xiàng)卡,能夠定義該節(jié)點(diǎn)的審批用戶有哪些。如下圖:待辦人員選擇方式:指提交給該節(jié)點(diǎn)時(shí),選擇人員是單選還是多選。”自動(dòng)全選”是指選擇全部指定范圍的用戶,”自動(dòng)選擇第一個(gè)”是指在指定范圍的用戶中選擇第一個(gè)用戶(用戶是根據(jù)CORE_SUER的SORT_ID字段排序的)。SQL說(shuō)明:C(XXX)表示公司編碼為XXX的公司,流程引擎會(huì)轉(zhuǎn)換為SQL條件:C.COMPANY_CODE=’XXX’(C是CORE_COMPANY的別名);D(XXX)表示部門(mén)編碼為XXX的部門(mén),流程引擎會(huì)轉(zhuǎn)換為SQL條件:D.DEP_CODE=’XXX’(C是CORE_DEPARTMENT的別名);U(XXX)表示用戶登錄賬號(hào)為XXX的用戶,流程引擎會(huì)轉(zhuǎn)換為SQL條件:U.LOGIN_ID=’XXX’(U為CORE_USER的別名);R(XXX)表示角色編碼為XXX的角色,流程引擎會(huì)轉(zhuǎn)換為SQL條件:UR.ROLE_CODE=’XXX’(UR為CORE_USER_ROLES的別名);{starter:XXX}或{currentUser:XXX}表示取發(fā)起人或當(dāng)期用戶的XXX屬性的值。XXX能夠是DepartmentCode、ParentDepartmentCode、CompanyCode、ParentCompanyCode、MainRoleCode、loginId之一,也能夠是company_YYY、department_YYY表示公司或部門(mén)的某個(gè)字段(YYY字段)的屬性值。{XXX}表示取流程變量XXX的值。SQL示例:C({starter:CompanyCode})ANDD({starter:DepartmentCode})ANDR(BMFZR)將轉(zhuǎn)換為(設(shè)發(fā)起人公司編碼為A1001,發(fā)起人部門(mén)編碼為A1001_01):C.COMPANY_CODE=’A1001’ANDD.DEP_CODE=’A1001_01’ANDUR.ROLE_CODE=’BMFZR’點(diǎn)擊”公司”按鈕將彈出公司編碼的選擇窗口,如下圖所示:點(diǎn)擊”部門(mén)”按鈕將彈出部門(mén)編碼的選擇窗口,如下圖所示:點(diǎn)擊”用戶”按鈕將彈出用戶賬號(hào)的選擇窗口,如下圖所示:點(diǎn)擊”角色”按鈕將彈出角色編碼的選擇窗口,如下圖所示:點(diǎn)擊彈出窗口的”確定”按鈕,即能夠在SQL文本框中光標(biāo)位置插入相應(yīng)的SQL。轉(zhuǎn)辦用戶范圍設(shè)置在”轉(zhuǎn)辦用戶范圍”選項(xiàng)卡,能夠定義該節(jié)點(diǎn)的工作項(xiàng)能夠轉(zhuǎn)交給哪些用戶處理。如下圖:SQL的設(shè)置參照”審批用戶范圍設(shè)置”。傳閱用戶范圍設(shè)置在”傳閱用戶范圍”選項(xiàng)卡,能夠定義該節(jié)點(diǎn)的工作項(xiàng)能夠傳閱給哪些用戶查看。如下圖:SQL的設(shè)置參照”審批用戶范圍設(shè)置”。連接屬性設(shè)置雙擊流程圖中的連接或選擇連接列表中的某個(gè)連接,點(diǎn)擊工具條的”屬性”按鈕,彈出選中連接的屬性設(shè)置窗口:設(shè)置該連接的”轉(zhuǎn)移條件”,即滿足這個(gè)條件時(shí),流程會(huì)從該連接的”源節(jié)點(diǎn)”提交到”目標(biāo)節(jié)點(diǎn)”。點(diǎn)擊”添加”參數(shù),彈出”流程參數(shù)”選擇窗口:能夠選擇流程中定義的流程變量作為參數(shù),也能夠選擇發(fā)起人\當(dāng)前提交人的某個(gè)屬性作為參數(shù),也能夠使用當(dāng)前審批界面的按鈕(源節(jié)點(diǎn)定義的按鈕,批量審批或批量退回時(shí)的按鈕使用節(jié)點(diǎn)”按鈕信息”的”批量審批時(shí)使用的按鈕”或”批量駁回時(shí)使用的按鈕”)作為參數(shù)。{XXX}表示一個(gè)string型的參數(shù),{n:XXX}表示一個(gè)number型的參數(shù),{b:XXX}表示一個(gè)bool型的參數(shù)。保存流程圖點(diǎn)擊工具條上的”保存”按鈕能夠保存當(dāng)前流程圖,而且自動(dòng)將當(dāng)前流程圖的版本遞增(所有同一編碼的流程版本最大值加1),即會(huì)生成一個(gè)新版本的流程圖(如果當(dāng)前流程版本沒(méi)有被使用則把當(dāng)前流程圖刪除)。點(diǎn)擊工具條上的”覆蓋保存”按鈕能夠保存當(dāng)前流程圖,而且流程版本不變。流程圖保存到CORE_WF_CONFIG表中,實(shí)際的XML代碼保存在CORE_SYSTEM_BIG_DATA表中,經(jīng)過(guò)CORE_WF_CONFIG的DATA_ID與CORE_SYSTEM_BIG_DATA的DATA_ID關(guān)聯(lián)。設(shè)置流程圖雙擊流程版本明細(xì)列表中的某個(gè)版本或點(diǎn)擊工具條上的”設(shè)置”按鈕,彈出流程設(shè)置窗口:在窗口上能夠設(shè)置該版本啟用時(shí)間(有效開(kāi)始時(shí)間)、所屬公司(如果是父子公司,能夠只設(shè)置父公司,子公司將使用父公司的流程圖)和狀態(tài)。要發(fā)起某個(gè)編碼XXX的流程時(shí),流程引擎檢查當(dāng)前CORE_WF_CONFIG的WF_CODE=’XXX’而且未停用的所有版本,按照有效開(kāi)始時(shí)間倒序,取得當(dāng)前登錄人所在公司能使用(流程圖的所屬公司為本公司或上級(jí)公司或?yàn)榭盏?的最新(有效開(kāi)始時(shí)間小于當(dāng)前時(shí)間)流程圖版本,使用該版本發(fā)起流程。刪除流程圖選擇流程版本明細(xì)中的某個(gè)流程版本,點(diǎn)擊工具條的”刪除”按鈕,即可刪除該流程版本。導(dǎo)出流程圖選擇流程列表中的某幾個(gè)流程圖或流程版本明細(xì)列表中的某幾個(gè)版本,點(diǎn)擊工具條的”導(dǎo)出”按鈕,即可將選中的流程圖或版本導(dǎo)出成zip文件。導(dǎo)入流程圖點(diǎn)擊工具條的”導(dǎo)入”按鈕,選擇導(dǎo)出流程的zip文件,即可將文件中的所有流程導(dǎo)入到當(dāng)前數(shù)據(jù)庫(kù)。注:導(dǎo)入的流程啟用時(shí)間(有效開(kāi)始時(shí)間)為當(dāng)前時(shí)間。流程編程接口使用要使用流程編程接口,必須將”流程編程接口”目錄下的代碼加入到項(xiàng)目代碼中,文件的目錄結(jié)構(gòu)能夠根據(jù)實(shí)際需要修改。流程引擎數(shù)據(jù)源初始化要使用流程引擎首先要初始化一個(gè)專用的數(shù)據(jù)源,該數(shù)據(jù)源為流程配置加載、組織架構(gòu)信息獲取、流程圖片生成等功能使用。數(shù)據(jù)源的初始化示例代碼如下:不使用連接池方式:...importcom.zbiti.core.util.db.DataSource;importcom.zbiti.core.util.db.DirectFactory;...DirectFactoryf=newDirectFactory();Propertiesproperties=newProperties();properties.setProperty("jdbc.driver",”oracle.jdbc.driver.OracleDriver”);properties.setProperty("jdbc.url",”jdbc:oracle:thin:@:1521:orcl”);properties.setProperty("jdbc.username",”test”);properties.setProperty("jdbc.password",”1”);f.init(properties,DataSource.CORE_DATASOURCE);DataSource.addDBConnectionFactory(DataSource.CORE_DATASOURCE,f);...使用C3P0連接池方式...importcom.zbiti.core.util.db.DataSource;importcom.zbiti.core.util.db.C3P0Factory;...C3P0Factoryf=newC3P0Factory();Propertiesproperties=newProperties();properties.setProperty("jdbc.driver",”oracle.jdbc.driver.OracleDriver”);properties.setProperty("jdbc.url",”jdbc:oracle:thin:@:1521:orcl”);properties.setProperty("jdbc.username",”test”);properties.setProperty("jdbc.password",”1”);properties.setProperty("maxPoolSize",”10”);properties.setProperty("initPoolSize",”1”);properties.setProperty("waitTimeout",”10000”);properties.setProperty("maxIdleTime",”1000000”);f.init(properties,DataSource.CORE_DATASOURCE);DataSource.addDBConnectionFactory(DataSource.CORE_DATASOURCE,f);...流程配置的加載流程配置保存在CORE_WF_CONFIG表中,在系統(tǒng)啟動(dòng)時(shí)或流程圖被修改后,必須重新加載流程配置。需要執(zhí)行的代碼如下:...com.zbiti.core.config.wf.WorkFlowConfigProvider.load();...用戶登錄的改造(可選)流程引擎使用ponents.User保存登錄用戶信息,能夠在用戶登錄的時(shí)候創(chuàng)立ponents.User實(shí)例保存在session中,這樣不需要每次與流程引擎交互時(shí)都創(chuàng)立一次ponents.User。登錄時(shí)執(zhí)行的示例代碼如下:importponents.User;importponents.UserComponent;...Useru=UserComponent.getUser("123456");//123456為CORE_USER的USER_IDu.setLogined(true);request.getSession().setAttribute("KEY_USER_BIND_SESSION",u);...流程處理EMOSS2流程引擎提供了流程處理的封裝源代碼(WFInvoker.js,WFInvoker.jsp,WFSelectUsers.jsp,WFInvoker.java...),各項(xiàng)目能夠根據(jù)自己的需要做一定的修改。流程處理的一次典型過(guò)程如下:5:選擇審批人或轉(zhuǎn)辦人5:選擇審批人或轉(zhuǎn)辦人(該步驟可能是自動(dòng)完成)WFInvoker.js客戶端(js、jsp)WFInvoker.js客戶端(js、jsp)WFInvoker.java1:調(diào)用doXXX方法發(fā)起或?qū)徟鞒?:調(diào)用doXXX方法發(fā)起或?qū)徟鞒蘏electUsers.jspSelectUsers.jsp或SelectUsers2.jsp8:返回JSON格式的正式處理結(jié)果6:AJAX提交(已選擇審批人或轉(zhuǎn)別人)2:AJAX提交8:返回JSON格式的正式處理結(jié)果6:AJAX提交(已選擇審批人或轉(zhuǎn)別人)2:AJAX提交4:返回JSON格式的預(yù)處理結(jié)果WFInvoker4:返回JSON格式的預(yù)處理結(jié)果WFInvoker.jsp7:正式處理:保存流程變量、發(fā)起流程、生成新待辦...7:正式處理:保存流程變量、發(fā)起流程、生成新待辦...3:預(yù)處理:計(jì)算流程變量、下一結(jié)點(diǎn)及審批參與人...流程業(yè)務(wù)組件流程業(yè)務(wù)組件XXX.java以下給出了發(fā)起和審批經(jīng)過(guò)的示例代碼:點(diǎn)擊發(fā)起流程按鈕:...//發(fā)起test1流程vardatas=zbiti.WFInvoker.doStart(”test1”,”form1”);if(datas){ alert(”發(fā)起成功,流程ID為:”+datas.instanceId);}點(diǎn)擊審批經(jīng)過(guò)按鈕:...//審批經(jīng)過(guò)工作項(xiàng)ID為111vardatas=zbiti.WFInvoker.doApprove(”111”,”form1”);if(datas){ alert(”審批成功!”);}服務(wù)端實(shí)現(xiàn)業(yè)務(wù)處理.../***test1流程的業(yè)務(wù)組件*/publicclassTest1WFComponentextendsWorkFlowComponent{ publicTest1WFComponent(DBConnectiondbc,ParameterObjectpo, WorkFlowObjectwfo,StringinstanceId,StringworkItemId, StringnodeId){ super(dbc,po,wfo,instanceId,workItemId,nodeId); } /** *計(jì)算流程的變量 */ publicMap<String,String>calcWorkFlowVariables(booleanisPreprocess) throwsException{ Map<String,String>map=newHashMap<String,String>(); map.put("item1",po.getParameterValue("txtAAA")); map.put("item2","aaa"); returnmap; } /** *流程發(fā)起 */ publicvoidafterStart(List<String>newWorkItems)throwsException{ super.afterStart(newWorkItems); //TODOsomething... } /** *流程被否決 */ publicvoidinstanceTerminated()throwsException{ super.instanceTerminated(); //TODOsomething... } /** *流程審批結(jié)束 */ publicvoidinstanceEnded()throwsException{ super.instanceEnded(); //TODOsomething... } /** *審批經(jīng)過(guò)后 */ publicvoidafterApprove(List<String>newWorkItems)throwsException{ super.afterApprove(newWorkItems); if("CWSH".equals(this.currentNodeId)){ //TODOsomething... } }}常見(jiàn)JAVA類說(shuō)明com.zbiti.core.config.wf.WorkFlowComponent該類是流程業(yè)務(wù)組件的父類,所有的流程業(yè)務(wù)組件必須繼承該類,重寫(xiě)該類的方法,實(shí)現(xiàn)流程狀態(tài)變動(dòng)與業(yè)務(wù)操作的聯(lián)動(dòng)。com.zbiti.core.config.wf.WorkFlowConfigProvider流程配置提供類。能夠加載CORE_WF_CONFIG中所有的流程圖,而且提供獲取指定流程圖信息的方法。com.zbiti.core.config.wf.WorkFlowObject流程定義信息類。該類保存流程圖中的全部信息,能夠經(jīng)過(guò)其中的方法取得流程圖的節(jié)點(diǎn)、按鈕、連接、流程變量等信息。com.zbiti.core.config.wf.WFImage流程圖生成類。該類能夠生成某一個(gè)流程實(shí)例的流程圖。com.zbi

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論