




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、EMOSS2EMOSS2 流程引擎開發(fā)指南流程引擎開發(fā)指南 中博信息技術(shù)研究院中博信息技術(shù)研究院版版本本歷歷史史版本號更改描述更改日期修訂人是否基線版本(Y/N)評審記錄#評審?fù)ㄟ^日期V1.0建立文檔2012-7-30余志淼Y目目 錄錄1.1.概述概述 .5 51.1.流程引擎說明.51.2.流程引擎架構(gòu).52.2.開發(fā)前準備開發(fā)前準備.6 62.1.建立組織架構(gòu)視圖 .62.1.1.公司(CORE_COMPANY).62.1.2.部門(CORE_DEPARTMENT).62.1.3.員工(CORE_EMPLOYEE).62.1.4.用戶(CORE_USER).72.1.5.角色(CORE_R
2、OLE).72.1.6.用戶流程角色表(CORE_USER_ROLES).82.2.建立流程數(shù)據(jù)表 .82.3.安裝流程設(shè)計工具 .82.3.1.安裝JDK .82.3.2.安裝流程設(shè)計工具 .92.4.將流程編程接口加入到項目代碼中 .93.3.開發(fā)指南開發(fā)指南 .9 93.1.流程設(shè)計工具使用 .93.1.1.新增流程.103.1.2.設(shè)計流程圖..流程屬性設(shè)置.12A.流程屬性說明.12B.流程變量定義.13C.流程數(shù)據(jù)屬性.14D.高級屬性..流程節(jié)點屬性設(shè)置 .15A.屬性說明.16B.按鈕信息.17C.審批用戶圍設(shè)置 .18D.轉(zhuǎn)辦用戶圍設(shè)置 .
3、21E.傳閱用戶圍設(shè)置 ..連接屬性設(shè)置.233.1.3.保存流程圖.253.1.4.設(shè)置流程圖.253.1.5.刪除流程圖.253.1.6.導出流程圖.253.1.7.導入流程圖.263.2.流程編程接口使用 .263.2.1.流程引擎數(shù)據(jù)源初始化 .2.不使用連接池方式: .2.使用C3P0連接池方式 .263.2.2.流程配置的加載.273.2.3.用戶登錄的改造(可選).273.2.4.流程處理.2.點擊發(fā)起流程按鈕: .2.點擊審批通過按鈕: .2.服務(wù)端實現(xiàn)業(yè)務(wù)處理 .293.2.5.
4、常用JAVA類說明 .30.ZBITI.CORE.CONFIG.WF.WORKFLOWCOMPONENT.30.ZBITI.CORE.CONFIG.WF.WORKFLOWCONFIGPROVIDER.30.ZBITI.CORE.CONFIG.WF.WORKFLOWOBJECT.3.ZBITI.CORE.CONFIG.WF.WFIMAGE.3.ZBITI.CORE.VO.PARAMETEROBJECT.3.ZBITI.CORE.CONFIG.WF.WORKFLOWPROXY.3.ZBITI.
5、CORE.COMPONENTS.USERCOMPONENT.3.ZBITI.CORE.RESOURCEPOOL.3.ZBITI.CORE.CONSTS.TABLES.30.ZBITI.CORE.CONSTS.SEQUENCES.324.4.附件附件.32321.1.概述概述. 流程引擎說明流程引擎說明EMOSS2 流程引擎是 EMOSS2 開發(fā)平臺的一部分,主要完成流程發(fā)起,審批,監(jiān)控等功能,是較輕量級的流程引擎,但完全可以滿足企業(yè)的業(yè)務(wù)流程需求。流程引擎目前支持的數(shù)據(jù)庫有:oracle、mysql、sybase。主要的組成部分有:
6、1,組織架構(gòu)視圖:流程引擎需要基于組織架構(gòu)才能實現(xiàn)審批人的選擇、工作項的生成、流轉(zhuǎn)條件的判斷等。2,流程數(shù)據(jù)表:用于保存流程圖、流程實例、工作項等流程相關(guān)的數(shù)據(jù)。3,流程設(shè)計工具:用于設(shè)計流程圖,分配不同的版本給不同的公司。JDK要求必須是 1.6 及以上。4,流程編程接口:提供流程的發(fā)起、審批、參與者計算等接口給外部程序調(diào)用。主要是 jar 包形式,JDK 的版本必須是 1.5 及以上。 . 流程引擎架構(gòu)流程引擎架構(gòu)外部外部JspJsp、javajava程序程序組織架構(gòu)視圖組織架構(gòu)視圖流程編程接口流程編程接口流程設(shè)計工具流程設(shè)計工具流程數(shù)據(jù)表流程數(shù)據(jù)表: :流程圖流程圖流程數(shù)據(jù)
7、表流程數(shù)據(jù)表: :流程實流程實例、工作項例、工作項.2.2.開發(fā)前準備開發(fā)前準備. 建立組織架構(gòu)視圖建立組織架構(gòu)視圖根據(jù)字段列表建立各個視圖。字段列表只列出必要字段,也可以根據(jù)需要擴展其他字段。.1.1. 公司(公司(CORE_COMPANYCORE_COMPANY)字段字段字段名稱字段名稱類型類型說明說明COMPANY_ID公司IDNUMBER(16)公司的唯一標識COMPANY_CID公司變更序號NUMBER(16)固定值:1COMPANY_CODE公司編碼VARCHAR2(50)P_COMPANY_ID上級公司IDNUMBER(16)COMPANY_NAME公
8、司名稱VARCHAR2(200)SORT_ID排序號NUMBER(16)可空IS_LAST是否最新記錄NUMBER(1)固定值:1STATE是否有效NUMBER(1)固定值:.1.2. 部門(部門(CORE_DEPARTMENTCORE_DEPARTMENT)字段字段字段名稱字段名稱類型類型說明說明DEP_ID部門IDNUMBER(16)部門的唯一標識DEP_CID部門變更序號NUMBER(16)固定值:1COMPANY_ID所屬公司IDNUMBER(16)關(guān)聯(lián)到CORE_COMPANYCOMPANY_CID所屬公司變更序號NUMBER(16)固定值:1DEP_CODE部門編碼
9、VARCHAR2(50)P_DEP_ID上級部門IDNUMBER(16)DEP_NAME部門名稱VARCHAR2(200)SORT_ID排序號NUMBER(16)可空IS_LAST是否最新記錄NUMBER(1)固定值:1STATE是否有效NUMBER(1)固定值:.1.3. 員工(員工(CORE_EMPLOYEECORE_EMPLOYEE)字段字段字段名稱字段名稱類型類型說明說明EMP_ID員工IDNUMBER(16)員工的唯一標識EMP_CID員工變更序號NUMBER(16)固定值:1DEP_ID所屬部門IDNUMBER(16)關(guān)聯(lián)到CORE_DEPARTMENTDEP_CI
10、D所屬部門變更序號NUMBER(16)固定值:1COMPANY_ID所屬公司IDNUMBER(16)關(guān)聯(lián)到CORE_COMPANYCOMPANY_CID所屬公司變更序號NUMBER(16)固定值:1EMP_CODE員工編碼VARCHAR2(50)EMP_NAMEVARCHAR2(50)SORT_ID排序號NUMBER(16)可空IS_LAST是否最新記錄NUMBER(1)固定值:1STATE是否有效NUMBER(1)固定值:.1.4. 用戶(用戶(CORE_USERCORE_USER)字段字段字段名稱字段名稱類型類型說明說明USER_ID用戶IDNUMBER(16)用戶的唯一標
11、識DEP_ID所屬部門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登錄賬號VARCHAR2(50)該用戶登錄到系統(tǒng)的賬號USER_NAME用戶VARCHAR2(50)可以與員工一致SORT_ID排序號NUMBER(16)可空STATE是否有效NUMBER(1)固定值:.1.5. 角色(角色(CORE_
12、ROLECORE_ROLE)字段字段字段名稱字段名稱類型類型說明說明ROLE_CODE角色編碼VARCHAR2(30)角色的唯一標識ROLE_NAME角色名稱VARCHAR2(50)COMPANY_ID所屬公司IDNUMBER(16)關(guān)聯(lián)到CORE_COMPANY??毡硎救抗究墒褂玫慕巧OLE_TYPE角色類型CAHR(1)0:權(quán)限角色;1:流程角色;2:權(quán)限流程角色。默認為:2。SORT_ID排序號NUMBER(16)可空PARENT_CODE父角色編碼VARCHAR2(30)可空IS_LEAF是否末級CAHR(1)1:是,0:否IS_INNER是否置CAHR(1)1:是,0:否。默
13、認為:0。.1.6. 用戶流程角色表(用戶流程角色表(CORE_USER_ROLESCORE_USER_ROLES)字段字段字段名稱字段名稱類型類型說明說明ROLE_CODE角色編碼VARCHAR2(30)角色的唯一標識USER_ID用戶IDNUMBER(16)用戶的唯一標識. 建立流程數(shù)據(jù)表建立流程數(shù)據(jù)表根據(jù)流程數(shù)據(jù)表.pdm建立各個流程數(shù)據(jù)表。各數(shù)據(jù)表說明如下:1)CORE_WF_CONFIG:流程配置表。用于保存設(shè)計工具設(shè)計出來的流程圖。2)CORE_WF_INSTANCE:流程實例表。用于保存系統(tǒng)中發(fā)起的流程實例。3)CORE_WF_INSTANCE_VAR
14、IABLE:流程實例變量表。用于保存每個流程實例的變量。4)CORE_WF_WORKITEM:流程工作項表。用于保存用戶發(fā)起一個流程或?qū)徟暌粋€待辦后,產(chǎn)生出的待辦工作項。5)CORE_WF_WORKITEM_RELATION:工作項的轉(zhuǎn)移關(guān)系表。用于保存每個工作項的來源工作項。6)CORE_WF_REASSIGN_RELATION:流程委托關(guān)系表。用于保存用戶委托其他用戶處理自己的流程待辦。7)CORE_SYSTEM_BIG_DATA:系統(tǒng)專用大數(shù)據(jù)表。用于保存流程圖的XML源代碼。8)序列:SEQ_COMMON_BASE,長度為16。用于設(shè)置CORE_WF_INSTANCE、CORE_SY
15、STEM_BIG_DATA等表的主鍵值。如果數(shù)據(jù)庫不支持序列,則要創(chuàng)建平臺的序列表(CORE_SEQUENCE):字段字段字段名稱字段名稱類型類型說明說明SEQ序列名VARCHAR2(30)序列唯一標識,流程引擎使用:SEQ_COMMON_BASEMAX_ID當前值NUMBER(16)初始值為:. 安裝流程設(shè)計工具安裝流程設(shè)計工具.3.1. 安裝安裝 JDKJDK流程設(shè)計工具需要JDK1.6或以上版本才能運行。安裝完之后要指定JAVA_HOME,確認當前使用的JDK是1.6版本。.3.2. 安裝流程設(shè)計工具安裝流程設(shè)計工具1) ,將“流程設(shè)計工具”目
16、錄拷貝到一個無空格的路徑中, 。2) ,運行“imp_run32.bat” (32位操作系統(tǒng)使用)或“imp_run64.bat” (64位操作系統(tǒng)使用) 。點擊主界面上的“設(shè)置”按鈕,設(shè)置數(shù)據(jù)庫連接(流程數(shù)據(jù)表所在的數(shù)據(jù)庫) ,如下圖所示:點擊“確認”即完成了流程設(shè)計工具的設(shè)置。. 將流程編程接口加入到項目代碼中將流程編程接口加入到項目代碼中將“流程編程接口”目錄下的文件拷貝到項目中即可。文件目錄已經(jīng)是安裝web工程的要求建立,如有特殊目錄要求請自行修改。流程編程接口需要JDK1.5或以上版本才能運行。3.3.開發(fā)指南開發(fā)指南. 流程設(shè)計工具使用流程設(shè)計工具使用運
17、行流程設(shè)計工具“imp_run32.bat”或“imp_run64.bat” 。點擊菜單“流程-流程自定義”即可進入流程設(shè)計界面。如下圖所示:界面上部是工具條。左側(cè)的上面一個列表是系統(tǒng)中已存在的流程圖,下面一個列表是每個流程圖的明細版本(每個流程圖可以有多個版本,每個版本的流程代碼都相同) 。界面的右側(cè)是流程圖的設(shè)計區(qū)域。.1.1. 新增流程新增流程點擊界面工具條的“新增”按鈕,彈出“新增流程”對話框:輸入新流程代碼(流程圖的標識)和新流程名稱,點擊“確定”即可創(chuàng)建一個新流程圖(新創(chuàng)建的流程版本為1,只有“開始” 、 “結(jié)束”2個節(jié)點) 。在界面的流程列表中可以查詢到剛創(chuàng)建的流程
18、。.1.2. 設(shè)計流程圖設(shè)計流程圖選擇左側(cè)的流程圖列表中的一個流程圖,在下面的“版本明細”列表就會顯示該流程圖的所有版本。選擇需要設(shè)計的一個版本,在右側(cè)的流程設(shè)計區(qū)域即可顯示該版本的流程圖。如圖所示:流程設(shè)計區(qū)域的上部是流程圖設(shè)計的工具條。左側(cè)是流程圖中的節(jié)點列表以及連接(節(jié)點之間的連接線)列表。操作說明:1)點擊工具條的“開始”按鈕,再點擊流程圖指定地方,可以在指定地方增加一個“開始節(jié)點” 。一個流程圖只能有一個“開始節(jié)點” 。2)點擊工具條的“中間”按鈕,再點擊流程圖指定地方,可以在指定地方增加一個“中間節(jié)點” 。連續(xù)點擊流程圖,可以連續(xù)增加“中間節(jié)點” 。點擊右鍵可以返回到
19、“選擇”狀態(tài)。3)點擊工具條的“結(jié)束”按鈕,再點擊流程圖指定地方,可以在指定地方增加一個“結(jié)束節(jié)點” 。4)點擊工具條的“連接”按鈕,再點擊流程圖指定的一個節(jié)點,鼠標左鍵不放,將連線連接到另外一個節(jié)點,放開左鍵,即可在兩個節(jié)點中增加一個連接線。連續(xù)的操作可以連續(xù)增加連接線。點擊右鍵可以返回到“選擇”狀態(tài)。5)點擊工具條的“選擇”按鈕,可以使鼠標返回到“選擇”狀態(tài)(可以選擇節(jié)點或連接線) 。6)選中流程圖中的節(jié)點或連接線(可以使用鼠標選擇一個區(qū)域中的節(jié)點或連接線) ,再點擊工具條的“刪除”按鈕,可以刪除選中的節(jié)點或連接線。7)點擊工具條的“刷新”按鈕,可以刷新當前流程圖(有時候由于畫布沒有重畫,
20、會導致流程圖顯示不全) 。8)點擊工具條的“查看XML”按鈕,彈出當前流程圖的XML容窗口:在XML源代碼窗口中文本框顯示的是當前流程圖的XML容??梢孕薷腦ML或拷貝其他版本流程圖的XML,然后點擊“設(shè)置XML”按鈕來改變當前流程圖。設(shè)置的XML中的流程代碼值必須與當前流程圖的代碼值一致,并且版本不能低于當前流程圖的版本。..流程屬性設(shè)置流程屬性設(shè)置在流程圖的空白地方雙擊或者點擊工具條的“屬性”按鈕,彈出當前流程圖的屬性設(shè)置窗口:A.A.流程屬性說明流程屬性說明流程編碼流程編碼:即當前流程圖的代碼,不可修改。版本號版本號:即當前流程圖的版本號,不可修改。每次保存版
21、本號自動遞增(也可以使用覆蓋保存,不增加版本號) 。流程名稱流程名稱:當前流程的名稱,每個版本的流程圖名稱可以不一樣。有效天數(shù)有效天數(shù):流程引擎只記錄該屬性,尚未未使用。待辦待辦URLURL:顯示一個流程待辦工作項時,使用的頁面URL。待辦查詢待辦查詢URLURL:查詢該流程的待辦工作項時,使用的頁面URL。已辦已辦URLURL:顯示一個流程已辦流程實例時,使用的頁面URL。已辦查詢已辦查詢URLURL:查詢該流程的已辦流程實例時,使用的頁面URL。我的申請查詢我的申請查詢URLURL:查詢該流程的“我的申請”流程實例(登錄人發(fā)起的流程實例)時,使用的頁面URL。已辦界面數(shù)據(jù)權(quán)限已辦界面數(shù)據(jù)權(quán)
22、限:可以是:none-不控制權(quán)限,login-使用當前登錄用戶的權(quán)限,starter-使用發(fā)起人的權(quán)限。該屬性只在EMOSS2平臺使用。流程結(jié)束方式流程結(jié)束方式:可以設(shè)置有幾個人(或者百分之幾的人)審批通過達到結(jié)束節(jié)點時,流程算是正式結(jié)束,剩下未審批的工作項不再需要審批。說明說明:記錄流程圖的說明信息。B.B.流程變量定義流程變量定義在“流程變量”選項卡,可以定義流程變量(流程發(fā)起的時候可以設(shè)置流程變量的值,供業(yè)務(wù)操作或流程圖使用) 。流程變量定義如下圖:可以在列表中直接修改已有的變量。點擊“增加”按鈕,可以在變量列表中增加一個流程變量。選擇列表中的某個流程變量,再點擊“刪除”按鈕,可以刪除該
23、變量。注:datetime類型的變量暫不支持。C.C.流程數(shù)據(jù)屬性流程數(shù)據(jù)屬性在“流程數(shù)據(jù)”選項卡,可以定義流程的數(shù)據(jù)相關(guān)屬性。如下圖所示:1)流程主題SQL:是發(fā)起流程或?qū)徟k工作項時流程引擎調(diào)用的SQL,用來更新流程實例表的主題字段(CORE_WF_INSTANCE.SUBJECT) 。2)流程金額SQL:是發(fā)起流程或?qū)徟k工作項時流程引擎調(diào)用的SQL,用來更新流程實例表的金額字段(CORE_WF_INSTANCE.MONEY) 。3)流程數(shù)據(jù)表:是EMOSS2平臺使用的。在JAVA代碼中使用DDProxy類增刪改查數(shù)據(jù)時,會自動設(shè)置PROCESS_ID(流程實例ID)和AUDIT_S
24、TATUS(審批狀態(tài))字段。D.D. 高級屬性高級屬性在“高級”選項卡,可以設(shè)置流程的一些高級屬性。如下圖所示:1)流程結(jié)束/否決時發(fā)送消息的設(shè)置:可以在流程結(jié)束或被否決時向流程相關(guān)的用戶發(fā)送消息(通知某個流程已經(jīng)結(jié)束/被否決) 。該設(shè)置在EMOSS2平臺才使用。2)常用審批意見:可以設(shè)置審批該流程時使用的常用審批意見有哪些。該設(shè)置在EMOSS2平臺才使用。3)流程業(yè)務(wù)組件:用來設(shè)置一個JAVA類,重寫父類(.zbiti.core.config.wf.WorkFlowComponent)的某些方法,可以將流程的狀態(tài)變化與業(yè)務(wù)操作的聯(lián)系起來。如:審批通過后要做某些業(yè)務(wù)處理,可以重寫父類的afte
25、rApprove方法實現(xiàn)。流程結(jié)束后要做某些業(yè)務(wù)處理,可以重寫父類的instanceEnded方法實現(xiàn).等。具體的父類說明可以參見“JAVA_DOCS”目錄下的javaDoc。..流程節(jié)點屬性設(shè)置流程節(jié)點屬性設(shè)置雙擊流程圖中的節(jié)點或選擇節(jié)點列表中的某個節(jié)點,點擊工具條的“屬性”按鈕,彈出選中節(jié)點的屬性設(shè)置窗口:A.A.屬性說明屬性說明節(jié)點節(jié)點IDID:節(jié)點在當前流程圖中的唯一標識,創(chuàng)建節(jié)點時會自動生成。節(jié)點名稱節(jié)點名稱:該節(jié)點的顯示名稱。X X坐標坐標:流程節(jié)點在流程圖的X坐標值。Y Y坐標坐標:流程節(jié)點在流程圖的Y坐標值。長度長度:流程節(jié)點在流程圖中顯示的長度。寬
26、度寬度:流程節(jié)點在流程圖中顯示的寬度。有效天數(shù)有效天數(shù):流程引擎只記錄該屬性,尚未未使用。待辦待辦URLURL:顯示該節(jié)點的一個流程待辦工作項時,使用的頁面URL。如果未設(shè)置,則使用流程的“待辦URL”屬性。數(shù)據(jù)權(quán)限數(shù)據(jù)權(quán)限:可以是:none-不控制權(quán)限,login-使用當前登錄用戶的權(quán)限,starter-使用發(fā)起人的權(quán)限。該屬性只在EMOSS2平臺使用。審批方式審批方式:可以設(shè)置有幾個人(或者百分之幾的人)審批通過(負數(shù)表示回退,如人數(shù)設(shè)置-1表示有一個人退回,百分比設(shè)置-33表示有33%的人退回)時,該節(jié)點算是審批通過(被退回) ,剩下未審批的工作項不再需要審批??梢匀』乜梢匀』兀涸摴?jié)點的
27、工作項審批通過后是否可以被取回。可以自動提交可以自動提交:該節(jié)點的工作項與前一節(jié)點的工作項屬于同一個人的時候,如果前一節(jié)點的工作項被審批通過了,該節(jié)點的工作項是否可以自動設(shè)置為審批通過。審批后是否提示打印審批后是否提示打?。涸摴?jié)點的工作項被審批通過后是否會提示打印流程。該屬性只在EMOSS2平臺使用。常用審批意見常用審批意見:可以設(shè)置審批該節(jié)點的工作項時使用的常用審批意見有哪些,審批時的常用審批意見也包含流程屬性的“常用審批意見” 。該設(shè)置在EMOSS2平臺才使用。說明:說明:記錄流程節(jié)點的說明信息。B.B.按鈕信息按鈕信息在“按鈕信息”選項卡,可以定義該節(jié)點的審批界面有哪些審批按鈕。如下圖:
28、“駁回” 、 “退回發(fā)起人” 、 “否決” 、 “廢棄”按鈕每個界面只能有一個,其中“廢棄”按鈕只能設(shè)置在“發(fā)起節(jié)點” 。“批量審批使用的按鈕”用于指定一個審批通過的按鈕,當使用批量審批時,相當于點擊該按鈕?!芭狂g回使用的按鈕”用于指定一個駁回的按鈕,當使用批量駁回時,相當于點擊該按鈕。點擊“添加”按鈕,彈出添加按鈕對話框:在窗口上填寫必要的信息:按鈕ID、標題、顯示順序、是否可見后點擊“確認”即可添加一個審批按鈕。注:按鈕ID在一個節(jié)點中不能重復(fù)。雙擊按鈕列表中的某個按鈕或者點擊“編輯”按鈕,彈出該按鈕的編輯窗口。與添加窗口一樣。點擊“刪除”按鈕,可以刪除按鈕列表中選中的按鈕。C.C.審批
29、用戶圍設(shè)置審批用戶圍設(shè)置在“審批用戶圍”選項卡,可以定義該節(jié)點的審批用戶有哪些。如下圖:待辦人員選擇方式待辦人員選擇方式:指提交給該節(jié)點時,選擇人員是單選還是多選。 “自動全選”是指選擇全部指定圍的用戶, “自動選擇第一個”是指在指定圍的用戶中選擇第一個用戶(用戶是根據(jù)CORE_SUER的SORT_ID字段排序的) 。SQLSQL說明說明:C(XXX)C(XXX)表示公司編碼為XXX的公司,流程引擎會轉(zhuǎn)換為SQL條件:C.COMPANY_CODE=XXX (C是CORE_COMPANY的別名) ;D(XXX)D(XXX)表示部門編碼為XXX的部門,流程引擎會轉(zhuǎn)換為SQL條件:D.DEP_COD
30、E=XXX (C是CORE_DEPARTMENT的別名) ;U(XXX)U(XXX)表示用戶登錄賬號為XXX的用戶,流程引擎會轉(zhuǎn)換為SQL條件:U.LOGIN_ID=XXX (U為CORE_USER的別名) ;R(XXX)R(XXX)表示角色編碼為XXX的角色,流程引擎會轉(zhuǎn)換為SQL條件:UR.ROLE_CODE=XXX (UR為CORE_USER_ROLES的別名) ;starter:XXXstarter:XXX或currentUser:XXXcurrentUser:XXX表示取發(fā)起人或當期用戶的XXX屬性的值。XXX可以是DepartmentCode、ParentDepartmentCod
31、e、CompanyCode、ParentCompanyCode、MainRoleCode、loginId之一,也可以是company_YYY、department_YYY表示公司或部門的某個字段(YYY字段)的屬性值。XXXXXX表示取流程變量XXX的值。SQL示例:C(starter:CompanyCode) AND D(starter:DepartmentCode) AND R(BMFZR)將轉(zhuǎn)換為(設(shè)發(fā)起人公司編碼為A1001,發(fā)起人部門編碼為A1001_01):C.COMPANY_CODE=A1001 AND D.DEP_CODE=A1001_01 AND UR.ROLE_CODE=B
32、MFZR點擊“公司”按鈕將彈出公司編碼的選擇窗口,如下圖所示:點擊“部門”按鈕將彈出部門編碼的選擇窗口,如下圖所示:點擊“用戶”按鈕將彈出用戶賬號的選擇窗口,如下圖所示:點擊“角色”按鈕將彈出角色編碼的選擇窗口,如下圖所示:點擊彈出窗口的“確定”按鈕,即可以在SQL文本框中光標位置插入相應(yīng)的SQL。D.D. 轉(zhuǎn)辦用戶圍設(shè)置轉(zhuǎn)辦用戶圍設(shè)置在“轉(zhuǎn)辦用戶圍”選項卡,可以定義該節(jié)點的工作項可以轉(zhuǎn)交給哪些用戶處理。如下圖:SQL的設(shè)置參照“審批用戶圍設(shè)置” 。E.E.傳閱用戶圍設(shè)置傳閱用戶圍設(shè)置在“傳閱用戶圍”選項卡,可以定義該節(jié)點的工作項可以傳閱給哪些用戶查看。如下圖:SQL的設(shè)置參照“審批用戶圍設(shè)置
33、” 。..連接屬性設(shè)置連接屬性設(shè)置雙擊流程圖中的連接或選擇連接列表中的某個連接,點擊工具條的“屬性”按鈕,彈出選中連接的屬性設(shè)置窗口:設(shè)置該連接的“轉(zhuǎn)移條件” ,即滿足這個條件時,流程會從該連接的“源節(jié)點”提交到“目標節(jié)點” 。點擊“添加”參數(shù),彈出“流程參數(shù)”選擇窗口:可以選擇流程中定義的流程變量作為參數(shù),也可以選擇發(fā)起人當前提交人的某個屬性作為參數(shù),也可以使用當前審批界面的按鈕(源節(jié)點定義的按鈕,批量審批或批量退回時的按鈕使用節(jié)點“按鈕信息”的“批量審批時使用的按鈕”或“批量駁回時使用的按鈕” )作為參數(shù)。XXX表示一個string型的參數(shù),n:XXX表示一個n
34、umber型的參數(shù),b:XXX表示一個bool型的參數(shù)。.1.3. 保存流程圖保存流程圖點擊工具條上的“保存”按鈕可以保存當前流程圖,并且自動將當前流程圖的版本遞增(所有同一編碼的流程版本最大值加1) ,即會生成一個新版本的流程圖(如果當前流程版本沒有被使用則把當前流程圖刪除) 。點擊工具條上的“覆蓋保存”按鈕可以保存當前流程圖,并且流程版本不變。流程圖保存到CORE_WF_CONFIG表中,實際的XML代碼保存在CORE_SYSTEM_BIG_DATA表中,通過CORE_WF_CONFIG的DATA_ID與CORE_SYSTEM_BIG_DATA的DATA_ID關(guān)聯(lián)。3.1.4
35、.3.1.4. 設(shè)置流程圖設(shè)置流程圖雙擊流程版本明細列表中的某個版本或點擊工具條上的“設(shè)置”按鈕,彈出流程設(shè)置窗口:在窗口上可以設(shè)置該版本啟用時間(有效開始時間) 、所屬公司(如果是父子公司,可以只設(shè)置父公司,子公司將使用父公司的流程圖)和狀態(tài)。要發(fā)起某個編碼XXX的流程時,流程引擎檢查當前CORE_WF_CONFIG的WF_CODE=XXX并且未停用的所有版本,按照有效開始時間倒序,取得當前登錄人所在公司能使用(流程圖的所屬公司為本公司或上級公司或為空的)的最新(有效開始時間小于當前時間)流程圖版本,使用該版本發(fā)起流程。.1.5. 刪除流程圖刪除流程圖選擇流程版本明細中的某個流
36、程版本,點擊工具條的“刪除”按鈕,即可刪除該流程版本。.1.6. 導出流程圖導出流程圖選擇流程列表中的某幾個流程圖或流程版本明細列表中的某幾個版本,點擊工具條的“導出”按鈕,即可將選中的流程圖或版本導出成zip文件。.1.7. 導入流程圖導入流程圖點擊工具條的“導入”按鈕,選擇導出流程的zip文件,即可將文件中的所有流程導入到當前數(shù)據(jù)庫。注:導入的流程啟用時間(有效開始時間)為當前時間。. 流程編程接口使用流程編程接口使用要使用流程編程接口,必須將“流程編程接口”目錄下的代碼加入到項目代碼中,文件的目錄結(jié)構(gòu)可以根據(jù)實際需要修改。.2.1.
37、 流程引擎數(shù)據(jù)源初始化流程引擎數(shù)據(jù)源初始化要使用流程引擎首先要初始化一個專用的數(shù)據(jù)源,該數(shù)據(jù)源為流程配置加載、組織架構(gòu)信息獲取、流程圖片生成等功能使用。數(shù)據(jù)源的初始化示例代碼如下:..不使用連接池方式:不使用連接池方式:.import .zbiti.core.util.db.DataSource;import .zbiti.core.util.db.DirectFactory;.DirectFactory f = new DirectFactory();Properties properties = new Properties();properties.setPr
38、operty(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(D
39、ataSource.CORE_DATASOURCE, f);...使用使用 C3P0C3P0 連接池方式連接池方式.import .zbiti.core.util.db.DataSource;import .zbiti.core.util.db.C3P0Factory;.C3P0Factory f = new C3P0Factory();Properties properties = new Properties();properties.setProperty(jdbc.driver, “oracle.jdbc.driver.OracleDriver”);prop
40、erties.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.s
41、etProperty(maxIdleTime, “1000000”);f.init(properties, DataSource.CORE_DATASOURCE);DataSource.addDBConnectionFactory(DataSource.CORE_DATASOURCE, f);..2.2. 流程配置的加載流程配置的加載流程配置保存在CORE_WF_CONFIG表中,在系統(tǒng)啟動時或流程圖被修改后,必須重新加載流程配置。需要執(zhí)行的代碼如下:.zbiti.core.config.wf.WorkFlowConfigProvider.load();..2.3.
42、 用戶登錄的改造(可選)用戶登錄的改造(可選)流程引擎使用ponents.User保存登錄用戶信息,可以在用戶登錄的時候創(chuàng)建ponents.User實例保存在session中,這樣不需要每次與流程引擎交互時都創(chuàng)建一次ponents.User。登錄時執(zhí)行的示例代碼如下:import ponents.User;import ponents.UserComponent;.User u = UserComponent.getUser(123456);/123456為CORE_USER的USER_IDu.setLogined(true);request.getSession().setAttribute
43、(KEY_USER_BIND_SESSION,u);..2.4. 流程處理流程處理EMOSS2流程引擎提供了流程處理的封裝源代碼(WFInvoker.js,WFInvoker.jsp,WFSelectUsers.jsp,WFInvoker.java.) ,各項目可以根據(jù)自己的需要做一定的修改。流程處理的一次典型過程如下:以下給出了發(fā)起和審批通過的示例代碼:2:AJAX提交WFInvoker.jsWFInvoker.js客戶端(js、jsp)WFInvoker.jspWFInvoker.jsp1:調(diào)用doXXX方法發(fā)起或?qū)徟鞒蘔FInvoker.javaWFInvoker.jav
44、a3:預(yù)處理:計算流程變量、下一結(jié)點及審批參與人.流程業(yè)務(wù)組件流程業(yè)務(wù)組件XXX.javaXXX.java4:返回JSON格式的預(yù)處理結(jié)果SelectUsers.jspSelectUsers.jsp或或SelectUsers2.jspSelectUsers2.jsp5:選擇審批人或轉(zhuǎn)辦人(該步驟可能是自動完成)6:AJAX提交(已選擇審批人或轉(zhuǎn)別人)7:正式處理:保存流程變量、發(fā)起流程、生成新待辦.8:返回JSON格式的正式處理結(jié)果..點擊發(fā)起流程按鈕:點擊發(fā)起流程按鈕:./發(fā)起test1流程var datas = zbiti.WFInvoker.doStart(“
45、test1”,”form1”);if(datas) alert(“發(fā)起成功,流程ID為:”+datas.instanceId);..點擊審批通過按鈕:點擊審批通過按鈕:./審批通過工作項ID為111var datas = zbiti.WFInvoker.doApprove(“111”,”form1”);if(datas) alert(“審批成功!”);..服務(wù)端實現(xiàn)業(yè)務(wù)處理服務(wù)端實現(xiàn)業(yè)務(wù)處理./*test1流程的業(yè)務(wù)組件*/public class Test1WFComponent extends WorkFlowComponent pu
46、blic Test1WFComponent(DBConnection dbc, ParameterObject po,WorkFlowObject wfo, String instanceId, String workItemId,String nodeId) super(dbc, po, wfo, instanceId, workItemId, nodeId);/* * 計算流程的變量 */public Map calcWorkFlowVariables(boolean isPreprocess)throws Exception Map map = new HashMap();map.put
47、(item1,po.getParameterValue(txtAAA);map.put(item2,aaa);return map;/* * 流程發(fā)起 */public void afterStart(List newWorkItems) throws Exception super.afterStart(newWorkItems);/TODO something./* * 流程被否決 */public void instanceTerminated() throws Exception super.instanceTerminated();/TODO something./* * 流程審批結(jié)
48、束 */public void instanceEnded() throws Exception super.instanceEnded();/TODO something./* * 審批通過后 */public void afterApprove(List newWorkItems) throws Exceptionsuper.afterApprove(newWorkItems);if(CWSH.equals(this.currentNodeId)/TODO something..2.5. 常用常用 JAVAJAVA 類說明類說明..zbiti.co
49、re.config.wf.WorkFlowComponent.zbiti.core.config.wf.WorkFlowComponent該類是流程業(yè)務(wù)組件的父類,所有的流程業(yè)務(wù)組件必須繼承該類,重寫該類的方法,實現(xiàn)流程狀態(tài)變動與業(yè)務(wù)操作的聯(lián)動。..zbiti.core.config.wf.WorkFlowConfigProvider.zbiti.core.config.wf.WorkFlowConfigProvider流程配置提供類??梢约虞dCORE_WF_CONFIG中所有的流程圖,并且提供獲取指定流程圖信息的方法。..zbiti.c
50、ore.config.wf.WorkFlowObject.zbiti.core.config.wf.WorkFlowObject流程定義信息類。該類保存流程圖中的全部信息,可以通過其中的方法取得流程圖的節(jié)點、按鈕、連接、流程變量等信息。..zbiti.core.config.wf.WFImage.zbiti.core.config.wf.WFImage流程圖生成類。該類可以生成某一個流程實例的流程圖。..zbiti.core.vo.ParameterObject.zbiti.core.vo.ParameterObject輸入?yún)?shù)類。該類用來保存request中的參數(shù)以及當前的登錄用戶。..zbiti.core.config.wf.WorkFlowProxy.zbiti.core.config.wf.WorkFlowProxy流程操作類。該類是流程引擎操作流程的核心類,提供發(fā)起、審批、駁回、轉(zhuǎn)辦、否決、恢復(fù)流程等操作方法。調(diào)用該類的方法前,需要輸入?yún)?shù)來創(chuàng)建該類(參數(shù)區(qū)分大小寫):參數(shù)參數(shù)含義含義說明說明_WF_isStart是否發(fā)起流程的操作true/false。默認為false_WF_isPreprocess是否預(yù)處理true/false。默認為fa
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司爬長城團建登山活動方案
- 公司節(jié)假日內(nèi)部活動方案
- 公司標準化體系策劃方案
- 公司策劃端午節(jié)活動方案
- 公司組織年終滑雪活動方案
- 公司激勵活動方案
- 公司組織打球活動方案
- 公司節(jié)能減排活動方案
- 公司策劃小活動方案
- 機房施工方案及技術(shù)措施
- 員工培訓矩陣表
- 摜蛋大賽招商方案
- 電影特效制作課件
- 304不銹鋼管焊接工藝
- 網(wǎng)絡(luò)安全教育安全教育
- 醫(yī)療器械經(jīng)銷商和代理商法規(guī)義務(wù)
- 糖尿病專科護士培訓學習匯報課件
- 心理健康教育C證面試20個題目參考答案
- 危險化學品庫房貯存規(guī)定培訓課件
- Part 3-4 Unit 7 Invention and Innovation教案-【中職專用】高一英語精研課堂(高教版2021·基礎(chǔ)模塊2)
評論
0/150
提交評論