EMSS2流程引擎開(kāi)發(fā)指南_第1頁(yè)
EMSS2流程引擎開(kāi)發(fā)指南_第2頁(yè)
EMSS2流程引擎開(kāi)發(fā)指南_第3頁(yè)
已閱讀5頁(yè),還剩26頁(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)介

1、EMOSS流程引擎開(kāi)發(fā)指南中博信息技術(shù)研究院有限公司版本歷史版本號(hào)更改描述更改日期修訂人是否基線版本(Y/N)評(píng)審記錄#評(píng)審?fù)ㄟ^(guò)日期V1.0建立文檔2012-7-30余志淼Y目錄1. 概述5流程引擎說(shuō)明51.1. 流程引擎架構(gòu)5開(kāi)發(fā)前準(zhǔn)備.61.2. 建立組織架構(gòu)視圖6公司(CORE_COMPA)NY61.2.1. 部門(CORE_DEPARTME)NT6員工(CORE_EMPLOY)EE61.2.2. 用戶(CORE_USE)R7角色(CORE_ROL)E71.2.3. 用戶流程角色表(CORE_USER_ROL)ES8建立流程數(shù)據(jù)表81.3. 安裝流程設(shè)計(jì)工具8安裝JDK81.3.1. 安

2、裝流程設(shè)計(jì)工具9將流程編程接口加入到項(xiàng)目代碼中92. 開(kāi)發(fā)指南9流程設(shè)計(jì)工具使用92.1.1. 新增流程10設(shè)計(jì)流程圖. 流程屬性設(shè)置12流程屬性說(shuō)明12A. 流程變量定義13流程數(shù)據(jù)屬性14B. 高級(jí)屬性14流程節(jié)點(diǎn)屬性設(shè)置15A. 屬性說(shuō)明16按鈕信息17B. 審批用戶范圍設(shè)置18轉(zhuǎn)辦用戶范圍設(shè)置21C. 傳閱用戶范圍設(shè)置22連接屬性設(shè)置232.1.2. 保存流程圖25設(shè)置流程圖252.1.3. 刪除流程圖25導(dǎo)出流程圖252.1.4. 導(dǎo)入流程圖26流程編程接口使用262.1.5. 流程引擎數(shù)據(jù)源初始化26不使用連接池方式:263212使用C3P0連接池方式26流程配置

3、的加載272.1.6. 用戶登錄的改造(可選)27流程處理2. 點(diǎn)擊發(fā)起流程按鈕:28點(diǎn)擊審批通過(guò)按鈕:2. 服務(wù)端實(shí)現(xiàn)業(yè)務(wù)處理29常用JAVA類說(shuō)明30. COM.ZBITI.CORE.CONFIG.WF.WORKFLOWCOMPONEN.T30COM.ZBITI.CORE.CONFIG.WF.WORKFLOWCONFIGPROVIDER30. COM.ZBITI.CORE.CONFIG.WF.WORKFLOWOBJECT31COM.ZBITI.CORE.CONFIG.WF.WFIMAGE3. COM.ZBITI.C

4、ORE.VO.PARAMETEORBJECT31COM.ZBITI.CORE.CONFIG.WF.WORKFLOWPROXY3. COM.ZBITI.CORE.COMPONEN.TUSSERCOMPONEN.T32COM.ZBITI.CORE.RESOURCPEOOL3. COM.ZBITI.CORE.CONST.STABLES32COM.ZBITI.CORE.CONST.SSEQUENCES323. 附件331.概述流程引擎說(shuō)明EMOSS流程引擎是EMOSS開(kāi)發(fā)平臺(tái)的一部分,主要完成流程發(fā)起,審批,監(jiān)控等功能,是較輕量級(jí)的流程引擎,但完全可以滿足企業(yè)的業(yè)務(wù)流程

5、需求。流程引擎目前支持的數(shù)據(jù)庫(kù)有:oracle、mysql、Sybase。主要的組成部分有:1,組織架構(gòu)視圖:流程引擎需要基于組織架構(gòu)才能實(shí)現(xiàn)審批人的選擇、工作項(xiàng)的生成、流轉(zhuǎn)條件的判斷等。2,流程數(shù)據(jù)表:用于保存流程圖、流程實(shí)例、工作項(xiàng)等流程相關(guān)的數(shù)據(jù)。3,流程設(shè)計(jì)工具:用于設(shè)計(jì)流程圖,分配不同的版本給不同的公司。JDK要求必須是1.6及以上。4,流程編程接口:提供流程的發(fā)起、審批、參與者計(jì)算等接口給外部程序調(diào)用。主要是jar包形式,JDK的版本必須是1.5及以上。1.1. 流程引擎架構(gòu)外部Jsp、java程序流程數(shù)據(jù)表:流程實(shí)例、工作項(xiàng)2. 開(kāi)發(fā)前準(zhǔn)備建立組織架構(gòu)視圖根據(jù)字段列表建立各個(gè)視圖

6、。字段列表只列出必要字段,也可以根據(jù)需要擴(kuò)展其他字段。2.1.1. 公司(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)SORTID排序號(hào)NUMBER(16)可空ISLAST疋否最新記錄NUMBER(1)固定值:1STATE是否有效NUMBER(1)固定值:12.1.2.部門(CORE_DEPARTME

7、NT)字段字段名稱類型說(shuō)明DEP_ID部門IDNUMBER(16)部門的唯一標(biāo)識(shí)DEP_CID部門變更序號(hào)NUMBER(16)固定值:1COMPANYID所屬公司IDNUMBER(16)關(guān)聯(lián)到CORECOMPACOMPANY_CID所屬公司變更序號(hào)NUMBER(16)固定值:1DEPCODE部門編碼VARCHAR2(50)PDEPID上級(jí)部門IDNUMBER(16)DEPNAME部門名稱VARCHAR2(200)SORTID排序號(hào)NUMBER(16)可空ISLAST疋否最新記錄NUMBER(1)固定值:1STATE是否有效NUMBER(1)固定值:12.1.3.員工(CORE_EMPLOYEE

8、)字段字段名稱類型說(shuō)明EMPID員工IDNUMBER(16)員工的唯一標(biāo)識(shí)EMPCID員工變更序號(hào)NUMBER(16)固定值:1DEP_ID所屬部門IDNUMBER(16)關(guān)聯(lián)到COREDEPARTMENTDEP_CID所屬部門變更序號(hào)NUMBER(16)固定值:1COMPANY_ID所屬公司IDNUMBER(16)關(guān)聯(lián)到CORE_COMPACOMPANY_CID所屬公司變更序號(hào)NUMBER(16)固定值:1EMP_CODE員工編碼VARCHAR2(50)EMP_NAME姓名VARCHAR2(50)SORT_ID排序號(hào)NUMBER(16)可空IS_LAST疋否最新記錄NUMBER(1)固定值:

9、1STATE是否有效NUMBER(1)固定值:12.14用戶(CORE_USER)字段字段名稱類型說(shuō)明USER_ID用戶IDNUMBER(16)用戶的唯一標(biāo)識(shí)DEP_ID所屬部門IDNUMBER(16)關(guān)聯(lián)到CORE_DEPARTMENTCOMPANY_ID所屬公司IDNUMBER(16)關(guān)聯(lián)到CORECOMPAEMP_ID所屬員工IDNUMBER(16)關(guān)聯(lián)到CORE_EMPLOYEEMAIN_ROLE_CODE主要角色編碼VARCHAR2(30)該用戶的主要角色(權(quán)限角色)LOGIND登錄賬號(hào)VARCHAR2(50)該用戶登錄到系統(tǒng)的賬號(hào)USERNAME用戶姓名VARCHAR2(50)可以

10、與員工姓名一致SORTID排序號(hào)NUMBER(16)可空STATE是否有效NUMBER(1)固定值:12.1.5.角色(CORE_ROLE)字段字段名稱類型說(shuō)明ROLECODE角色編碼VARCHAR2(30)角色的唯一標(biāo)識(shí)ROLENAME角色名稱VARCHAR2(50)COMPANY_ID所屬公司IDNUMBER(16)關(guān)聯(lián)到CORE_COMPAN空表示全部公司可使用的角色。ROLE_TYPE角色類型CAHR(1)0:權(quán)限角色;1:流程角色;2:權(quán)限流程角色。默認(rèn)為:2。SORTID排序號(hào)NUMBER(16)可空PARENTCODE父角色編碼VARCHAR2(30)可空ISLEAF是否末級(jí)CA

11、HR(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ō)明如下:1) CORE_WF_CONFI流程配置表。用于保存設(shè)計(jì)工具設(shè)計(jì)出來(lái)的流程圖。2) CORE_WF_INSTANC流程實(shí)例表。用于保存系統(tǒng)中發(fā)起的流程實(shí)例。3) CORE_WF_INSTANCE_VARIAB流程實(shí)例變量表。用于保存每個(gè)流程實(shí)例的變

12、量。4) CORE_WF_WORKITE流程工作項(xiàng)表。用于保存用戶發(fā)起一個(gè)流程或?qū)徟暌粋€(gè)待辦后,產(chǎn)生出的待辦工作項(xiàng)。5) CORE_WF_WORKITEM_RELATI工作項(xiàng)的轉(zhuǎn)移關(guān)系表。用于保存每個(gè)工作項(xiàng)的來(lái)源工作項(xiàng)。6) CORE_WF_REASSIGN_RELATIO流程委托關(guān)系表。用于保存用戶委托其他用戶處理自己的流程待辦。7) CORE_SYSTEM_BIG_DAT系統(tǒng)專用大數(shù)據(jù)表。用于保存流程圖的XML源代碼。8) 序列:SEQ_COMMON_BA長(zhǎng)度為16。用于設(shè)置CORE_WF_INSTAN、EORE_SYSTEM_BIG_DATA等表的主鍵值。如果數(shù)據(jù)庫(kù)不支持序列,則要?jiǎng)?chuàng)建

13、平臺(tái)的序列表(CORESEQUENC:E)字段字段名稱類型說(shuō)明SEQ序列名VARCHAR2(30)序列唯一標(biāo)識(shí),流程引擎使用:SEQCOMMONBASEMAXID當(dāng)前值NUMBER(16)初始值為:1安裝流程設(shè)計(jì)工具2.1.2. 安裝JDK流程設(shè)計(jì)工具需要JDK1.6或以上版本才能運(yùn)行。安裝完之后要指定JAVA_HOME確認(rèn)當(dāng)前使用的JDK是1.6版本。2.1.3. 安裝流程設(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è)置”

14、按鈕,設(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)行。3. 開(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è)版本的流

15、程代碼都相同)。界面的右側(cè)是流程圖的設(shè)計(jì)區(qū)域。3.1.1. 新增流程點(diǎn)擊界面工具條的“新增”按鈕,彈出“新增流程”對(duì)話框:13新C超*w*Iw-gW'佩程代碼:j新詵程呈穂輸入新流程代碼(流程圖的標(biāo)識(shí))和新流程名稱,點(diǎn)擊“確定”即可創(chuàng)建一個(gè)新流程圖(新創(chuàng)建的流程版本為1,只有“開(kāi)始”、“結(jié)束”2個(gè)節(jié)點(diǎn))。在界面的流程列表中可以查詢到剛創(chuàng)建的流程。3.1.2. 設(shè)計(jì)流程圖選擇左側(cè)的流程圖列表中的一個(gè)流程圖,在下面的“版本明細(xì)”列表就會(huì)顯示該流程圖的所有版本。選擇需要設(shè)計(jì)的一個(gè)版本,在右側(cè)的流程設(shè)計(jì)區(qū)域即可顯示該版本的流程圖。如圖所示:KmSJ-比旦燈底中電出mYurArEhiViwExj

16、hti-.prtlFbwlpmFiKi池vttpmFlKqfcMll超詭沖7出鈿if事用群:遇11.2012-07Kill常esi#-rnH*FiaFRflSJR£H!|sa|h?:fifflhHVKML壬口客霽話ED期0SJR1ii!|i流程設(shè)計(jì)區(qū)域的上部是流程圖設(shè)計(jì)的工具條。左側(cè)是流程圖中的節(jié)點(diǎn)列表以及連接(節(jié)點(diǎn)之間的連接線)列表。操作說(shuō)明:1)點(diǎn)擊工具條的“開(kāi)始”按鈕,再點(diǎn)擊流程圖指定地方,可以在指定地方增加一個(gè)“開(kāi)始節(jié)點(diǎn)”。一個(gè)流程圖只能有一個(gè)“開(kāi)始節(jié)點(diǎn)”。2)點(diǎn)擊工具條的“中間”按鈕,再點(diǎn)擊流程圖指定地方,可以在指定地方增加一個(gè)“中間節(jié)點(diǎn)”。連續(xù)點(diǎn)擊流程圖,可以連續(xù)增加“中

17、間節(jié)點(diǎn)”。點(diǎn)擊右鍵可以返回到“選擇”狀態(tài)。3)點(diǎn)擊工具條的“結(jié)束”按鈕,再點(diǎn)擊流程圖指定地方,可以在指定地方增加一個(gè)“結(jié)束節(jié)點(diǎn)”。4)點(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)。5)點(diǎn)擊工具條的“選擇”按鈕,可以使鼠標(biāo)返回到“選擇”狀態(tài)(可以選擇節(jié)點(diǎn)或連接線)6)選中流程圖中的節(jié)點(diǎn)或連接線(可以使用鼠標(biāo)選擇一個(gè)區(qū)域中的節(jié)點(diǎn)或連接線),再點(diǎn)擊工具條的“刪除”按鈕,可以刪除選中的節(jié)點(diǎn)或連接線。7)點(diǎn)擊工具條的“刷新”按鈕,可以刷新當(dāng)前流程圖(有時(shí)

18、候由于畫布沒(méi)有重畫,會(huì)導(dǎo)致流程圖顯示不全)。8)點(diǎn)擊工具條的“查看XML按鈕,彈出當(dāng)前流程圖的XML內(nèi)容窗口:XtSSXMLversion""1.0'encoding=*UTF-8M?>I<workflowid'caiwubaozhang'version="2"workitemURL二5/PmQuoteBiIICA1WView.forimBhisURL="/pm/pm025/PmQuoteBillCAIWView.form1IvalidDays.-*3O'passType-'perceinrp

19、assP&r,sion,s.=i,l'pa-s-sPercent"100.0"dacType="none,*componerit="pmlpmO14.5enrice-PmQuateIBillCATWCcmp"><subjertSqil>seiect(selectCrdepnanaefromcoredepartmerrtcwhereadepjd=a.reateddepLbyandcJsastI=1)|'-s|c.PQBD_PROJ_NAIME等f(wàn)rompm_qLiote_billa,pm_quotejbi

20、Il_dletailcwherea.pqbjd=c.pqb_cessJdl=ri!PROCESSJD)andrownuim魚1上=l</subj&rtSql=(n:PROCESSJD</moneySql><tables><tablename=HPM_QU0TE_BILL7>在XM源代碼窗口中文本框顯示的是當(dāng)前流程圖的XML內(nèi)容。可以修改XML或拷貝其他版本流程圖的XML,然后點(diǎn)擊“設(shè)置XML'按鈕來(lái)改變當(dāng)前流程圖。設(shè)置的XML中的流程代碼值必須與當(dāng)前流程圖的代碼值一致,并且版本不能低于當(dāng)前流程圖的版本。3.121.流

21、程屬性設(shè)置在流程圖的空白地方雙擊或者點(diǎn)擊工具條的“屬性”按鈕,彈出當(dāng)前流程圖的屬性設(shè)置窗口:A. 流程屬性說(shuō)明流程編碼:即當(dāng)前流程圖的代碼,不可修改。版本號(hào):即當(dāng)前流程圖的版本號(hào),不可修改。每次保存版本號(hào)自動(dòng)遞增(也可以使用覆蓋保存,不增加版本號(hào))。流程名稱:當(dāng)前流程的名稱,每個(gè)版本的流程圖名稱可以不一樣。URL有效天數(shù):流程引擎只記錄該屬性,尚未未使用。待辦URL顯示一個(gè)流程待辦工作項(xiàng)時(shí),使用的頁(yè)面待辦查詢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è)摿?/p>

22、程的“我的申請(qǐng)”流程實(shí)例(登錄人發(fā)起的流程實(shí)例)時(shí),使用的頁(yè)面URL已辦界面數(shù)據(jù)權(quán)限:可以是:none-不控制權(quán)限,login-使用當(dāng)前登錄用戶的權(quán)限,starter-使用發(fā)起人的權(quán)限。該屬性只在EMOSS平臺(tái)使用。流程結(jié)束方式:可以設(shè)置有幾個(gè)人(或者百分之幾的人)審批通過(guò)達(dá)到結(jié)束節(jié)點(diǎn)時(shí),流程算是正式結(jié)束,剩下未審批的工作項(xiàng)不再需要審批。說(shuō)明:記錄流程圖的說(shuō)明信息。B. 流程變量定義在“流程變量”選項(xiàng)卡,可以定義流程變量(流程發(fā)起的時(shí)候可以設(shè)置流程變量的值,供業(yè)務(wù)操作或流程圖使用)。流程變量定義如下圖:可以在列表中直接修改已有的變量。點(diǎn)擊“增加”按鈕,可以在變量列表中增加一個(gè)流程變量。選擇列表

23、中的某個(gè)流程變量,再點(diǎn)擊“刪除”按鈕,可以刪除該變量。注:datetime類型的變量暫不支持。C. 流程數(shù)據(jù)屬性在“流程數(shù)據(jù)”選項(xiàng)卡,可以定義流程的數(shù)據(jù)相關(guān)屬性。如下圖所示:1)流程主題SQL是發(fā)起流程或?qū)徟k工作項(xiàng)時(shí)流程引擎調(diào)用的SQL用來(lái)更新流程實(shí)例表的主題字段(CORE_WF_INSTANCE.SUBJECT2)流程金額SQL是發(fā)起流程或?qū)徟k工作項(xiàng)時(shí)流程引擎調(diào)用的SQL用來(lái)更新流程實(shí)例表的金額字段(CORE_WF_INSTANCE.MONEY3)流程數(shù)據(jù)表:是EMOSS平臺(tái)使用的。在JAVA弋碼中使用DDProxy類增刪改查數(shù)據(jù)時(shí),會(huì)自動(dòng)設(shè)置PROCESS_I(流程實(shí)例ID)和AU

24、DIT_STATU(審批狀態(tài))字段。D. 高級(jí)屬性在“高級(jí)”選項(xiàng)卡,可以設(shè)置流程的一些高級(jí)屬性。如下圖所示:1)流程結(jié)束/否決時(shí)發(fā)送消息的設(shè)置:可以在流程結(jié)束或被否決時(shí)向流程相關(guān)的用戶發(fā)送消息(通知某個(gè)流程已經(jīng)結(jié)束/被否決)。該設(shè)置在EMOSS平臺(tái)才使用。2)常用審批意見(jiàn):可以設(shè)置審批該流程時(shí)使用的常用審批意見(jiàn)有哪些。該設(shè)置在EM0SS2平臺(tái)才使用。3)流程業(yè)務(wù)組件:用來(lái)設(shè)置一個(gè)JAVA類,重寫父類()的某些方法,可以將流程的狀態(tài)變化與業(yè)務(wù)操作的聯(lián)系起來(lái)。如:審批通過(guò)后要做某些業(yè)務(wù)處理,可以重寫父類的afterApprove方法實(shí)現(xiàn)。流程結(jié)束后要做某些業(yè)務(wù)處理,可以重寫父類的instanceE

25、nded方法實(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)值。丫坐標(biāo):流程節(jié)點(diǎn)在流程圖的丫坐標(biāo)值。長(zhǎng)度:流程節(jié)點(diǎn)在流程圖中顯示的長(zhǎng)度。寬度:流程節(jié)點(diǎn)在流程圖中顯示的寬度。有效天數(shù):流程引擎只記錄該屬性,尚未未使用。待辦URL顯示該節(jié)點(diǎn)的一個(gè)流程待辦工作項(xiàng)時(shí),使用的頁(yè)面URL。

26、如果未設(shè)置,則使用流程的“待辦URL屬性。數(shù)據(jù)權(quán)限:可以是:none-不控制權(quán)限,login-使用當(dāng)前登錄用戶的權(quán)限,starter-使用發(fā)起人的權(quán)限。該屬性只在EMOSS平臺(tái)使用。審批方式:可以設(shè)置有幾個(gè)人(或者百分之幾的人)審批通過(guò)(負(fù)數(shù)表示回退,如人數(shù)設(shè)置-1表示有一個(gè)人退回,百分比設(shè)置-33表示有33%勺人退回)時(shí),該節(jié)點(diǎn)算是審批通過(guò)(被退回),剩下未審批的工作項(xiàng)不再需要審批。可以取回:該節(jié)點(diǎn)的工作項(xiàng)審批通過(guò)后是否可以被取回。可以自動(dòng)提交:該節(jié)點(diǎn)的工作項(xiàng)與前一節(jié)點(diǎn)的工作項(xiàng)屬于同一個(gè)人的時(shí)候,如果前一節(jié)點(diǎn)的工作項(xiàng)被審批通過(guò)了,該節(jié)點(diǎn)的工作項(xiàng)是否可以自動(dòng)設(shè)置為審批通過(guò)。審批后是否提示打印:

27、該節(jié)點(diǎn)的工作項(xiàng)被審批通過(guò)后是否會(huì)提示打印流程。該屬性只在EMOSS平臺(tái)使用。常用審批意見(jiàn):可以設(shè)置審批該節(jié)點(diǎn)的工作項(xiàng)時(shí)使用的常用審批意見(jiàn)有哪些,審批時(shí)的常用審批意見(jiàn)也包含流程屬性的“常用審批意見(jiàn)”。該設(shè)置在EMOSS平臺(tái)才使用。說(shuō)明:記錄流程節(jié)點(diǎn)的說(shuō)明信息。A. 按鈕信息在“按鈕信息”選項(xiàng)卡,可以定義該節(jié)點(diǎn)的審批界面有哪些審批按鈕。如下圖:在“按鈕信息”選項(xiàng)卡,可以定義該節(jié)點(diǎn)的審批界面有哪些審批按鈕。如下圖:“駁回”、“退回發(fā)起人”、“否決”、“廢棄”按鈕每個(gè)界面只能有一個(gè),其中“廢棄”按鈕只能設(shè)置在“發(fā)起節(jié)點(diǎn)”。“批量審批使用的按鈕”按鈕。“批量駁回使用的按鈕”用于指定一個(gè)審批通過(guò)的按鈕,當(dāng)

28、使用批量審批時(shí),相當(dāng)于點(diǎn)擊該用于指定一個(gè)駁回的按鈕,當(dāng)使用批量駁回時(shí),相當(dāng)于點(diǎn)擊該按鈕。點(diǎn)擊“添加”按鈕,彈出添加按鈕對(duì)話框:即可添加一與添加窗口即可添加一與添加窗口在窗口上填寫必要的信息:按鈕ID、標(biāo)題、顯示順序、是否可見(jiàn)后點(diǎn)擊“確認(rèn)'個(gè)審批按鈕。注:按鈕ID在一個(gè)節(jié)點(diǎn)中不能重復(fù)。雙擊按鈕列表中的某個(gè)按鈕或者點(diǎn)擊“編輯”按鈕,彈出該按鈕的編輯窗口。樣。點(diǎn)擊“刪除”按鈕,可以刪除按鈕列表中選中的按鈕。B. 審批用戶范圍設(shè)置在“審批用戶范圍”選項(xiàng)卡,可以定義該節(jié)點(diǎn)的審批用戶有哪些。如下圖:待辦人員選擇方式:指提交給該節(jié)點(diǎn)時(shí),選擇人員是單選還是多選。"自動(dòng)全選”是指選擇全部指定范

29、圍的用戶,“自動(dòng)選擇第一個(gè)”是指在指定范圍的用戶中選擇第一個(gè)用戶(用戶是根據(jù)CORE_SUERSORT_ID字段排序的)。SQ說(shuō)明:C(XXX)表示公司編碼為XXX的公司,流程引擎會(huì)轉(zhuǎn)換為SQL條件:C.COMPANY_CODEXXX(C是CORE_COMPAN別名);D(XXX)表示部門編碼為XXX的部門,流程引擎會(huì)轉(zhuǎn)換為SQL條件:D.DEP_CODE=XXX(C是CORE_DEPARTMEN別名);U(XXX)表示用戶登錄賬號(hào)為XXX的用戶,流程引擎會(huì)轉(zhuǎn)換為SQL條件:U.LOGIND='XXX(U為CORE_USER別名);R(XXX)表示角色編碼為XXX的角色,流程引擎會(huì)轉(zhuǎn)換

30、為SQL條件:UR.ROLE_CODE=XXX(UR為CORE_USER_ROL的別名);starter:XXX或currentUser:XXX表示取發(fā)起人或當(dāng)期用戶的XXX屬性的值。XXX以是DepartmentCode、ParentDepartmentCode、CompanyCodeParentCompanyCode、MainRoleCode、loginld之一,也可以是company_YYYdepartment_YYY表示公司或部門的某個(gè)字段(YY存段)的屬性值。XXX表示取流程變量XXX勺值。SQI示例:C(starter:CompanyCode)ANDD(starter:Depart

31、mentCode)ANDR(BMFZR)將轉(zhuǎn)換為(設(shè)發(fā)起人公司編碼為A1001,發(fā)起人部門編碼為A1001_01):C.COMPANY_CODEA1001'ANDD.DEP_CODE'A1001_01'ANDUR.ROLE_CODE=BMFZR點(diǎn)擊“公司”按鈕將彈出公司編碼的選擇窗口,如下圖所示:S3公司Q匡走'宣Q匡走'宣胡公司發(fā)起人公罰笈起人上緩公司澄有上級(jí)公司對(duì)使用發(fā)起人公司)當(dāng)前提交人公司蘭前提交人上級(jí)公司湼有二販公司時(shí)哽用H交人公司)點(diǎn)擊“部門”按鈕將彈出部門編碼的選擇窗口,如下圖所示:Q國(guó)走值;發(fā)起人部門選擡部門存發(fā)起人上級(jí)都門(浸有上駿郃門

32、時(shí)便用發(fā)起人部門)©當(dāng)罰提交人部門當(dāng)前提交人上圾部門(浚有上級(jí)部門時(shí)使用提交人部門)點(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)交給哪些用戶處理。圖:SQ的設(shè)置參照“審批用戶范圍設(shè)置”C. 傳閱用戶范圍設(shè)置在“傳閱用戶范圍”選項(xiàng)卡,可以定義該節(jié)點(diǎn)的工作項(xiàng)可以傳閱給哪些用戶查看。如下圖:SQ的設(shè)置參照“審批用戶范圍設(shè)置”3.123.連接屬性設(shè)置“屬性”按鈕,彈出選中雙擊流程圖中

33、的連接或選擇連接列表中的某個(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ù)。3.1.3. 保存流程圖點(diǎn)擊工具條上的“保存”

34、按鈕可以保存當(dāng)前流程圖,并且自動(dòng)將當(dāng)前流程圖的版本遞增(所有同一編碼的流程版本最大值加1),即會(huì)生成一個(gè)新版本的流程圖(如果當(dāng)前流程版本沒(méi)有被使用則把當(dāng)前流程圖刪除)。點(diǎn)擊工具條上的“覆蓋保存”按鈕可以保存當(dāng)前流程圖,并且流程版本不變。流程圖保存到CORE_WF_CON表中,實(shí)際的XM代碼保存在CORE_SYSTEM_BIG_DAT中,通過(guò)CORE_WF_CONF的DATA_ID與CORE_SYSTEM_BIG_DATDATA_ID關(guān)聯(lián)。3.1.4. 設(shè)置流程圖雙擊流程版本明細(xì)列表中的某個(gè)版本或點(diǎn)擊工具條上的“設(shè)置”按鈕,彈出流程設(shè)置窗口:雙擊流程版本明細(xì)列表中的某個(gè)版本或點(diǎn)擊工具條上的“設(shè)置

35、”按鈕,彈出流程設(shè)置窗口:在窗口上可以設(shè)置該版本啟用時(shí)間(有效開(kāi)始時(shí)間)、所屬公司(如果是父子公司,可以只設(shè)置父公司,子公司將使用父公司的流程圖)和狀態(tài)。要發(fā)起某個(gè)編碼XXX勺流程時(shí),流程引擎檢查當(dāng)前CORE_WF_CONFGWF_CODE=XXX并且未停用的所有版本,按照有效開(kāi)始時(shí)間倒序,取得當(dāng)前登錄人所在公司能使用(流程圖的所屬公司為本公司或上級(jí)公司或?yàn)榭盏模┑淖钚拢ㄓ行ч_(kāi)始時(shí)間小于當(dāng)前時(shí)間)流程圖版本,使用該版本發(fā)起流程。3.1.5. 刪除流程圖選擇流程版本明細(xì)中的某個(gè)流程版本,點(diǎn)擊工具條的“刪除”按鈕,即可刪除該流程版本。3.1.6. 導(dǎo)出流程圖點(diǎn)擊工具條的“導(dǎo)出”點(diǎn)擊工具條的“導(dǎo)出”

36、選擇流程列表中的某幾個(gè)流程圖或流程版本明細(xì)列表中的某幾個(gè)版本,按鈕,即可將選中的流程圖或版本導(dǎo)出成zip文件。3.1.7. 導(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í)間。3.2. 流程編程接口使用要使用流程編程接口,必須將“流程編程接口”目錄下的代碼加入到項(xiàng)目代碼中,文件的目錄結(jié)構(gòu)可以根據(jù)實(shí)際需要修改。3.2.1. 流程引擎數(shù)據(jù)源初始化要使用流程引擎首先要初始化一個(gè)專用的數(shù)據(jù)源,該數(shù)據(jù)源為流程配置加載、組織架構(gòu)信息獲取、流程圖片生成等功能使用。數(shù)據(jù)源的初始化示例代碼如下:.

37、不使用連接池方式:importcom.zbiti.core.util.db.DataSource;importcom.zbiti.core.util.db.DirectFactory;DirectFactoryf=newDirectFactory();Propertiesproperties=newProperties();properties.setProperty("jdbc.driver",“”);properties.setProperty("jdbc.url",“jdbc:oracle:thin::1521:orcl”);

38、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.cor

39、e.util.db.C3P0Factory;C3P0Factoryf=newC3P0Factory();Propertiesproperties=newProperties();properties.setProperty("jdbc.driver",“”);properties.setProperty("jdbc.url",“jdbc:oracle:thin::1521:orcl”);properties.setProperty("jdbc.username",“test”);properties.setPro

40、perty("jdbc.password",“1”);properties.setProperty("maxPoolSize",“10”);properties.setProperty("initPoolSize",“1”);properties.setProperty("waitTimeout",“10000”);properties.setProperty("maxIdleTime",“1000000”);f.init(properties,DataSource.CORE_DATASOURC

41、E);DataSource.addDBConnectionFactory(DataSource.CORE_DATASOURCE,f);3.2.2. 流程配置的加載流程配置保存在CORE_WF_CON表中,在系統(tǒng)啟動(dòng)時(shí)或流程圖被修改后,必須重新加載流程配置。需要執(zhí)行的代碼如下:com.zbiti.core.config.wf.WorkFlowConfigProvider.load();.2.3.用戶登錄的改造(可選)流程引擎使用保存登錄用戶信息,可以在用戶登錄的時(shí)候創(chuàng)建實(shí)例保存在session中,這樣不需要每次與流程引擎交互時(shí)都創(chuàng)建一次。登錄時(shí)執(zhí)行的示例代碼如下:ponents.User;pon

42、ents.UserComponent;Useru=UserComponent.getUser("123456");/123456為CORE_USERUSER_ID.setLogined(true);request.getSession().setAttribute("KEY_USER_BIND_SESSION",u);流程處理EMOSS流程引擎提供了流程處理的封裝源代碼(WFInvoker.js,WFInvoker.jsp,WFSelectUsers.jsp,WFInvoker.java.),各項(xiàng)目可以根據(jù)自己的需要做一定的修改。流程處理的一次典型過(guò)程如

43、下:以下給出了發(fā)起和審批通過(guò)的示例代碼:3.241.點(diǎn)擊發(fā)起流程按鈕:/發(fā)起test1流程test1”,”forml”);test1”,”forml”);vardatas=zbiti.WFinvoker.doStart(if(datas)alert(if(datas)alert("發(fā)起成功,流程ID為:+datas.instanceld);點(diǎn)擊審批通過(guò)按鈕:/審批通過(guò)工作項(xiàng)ID為111111”,”form1”);111”,”form1”);vardatas=zbiti.WFInvoker.doApprove(if(datas)alert(“審批成功!”);. 服務(wù)端實(shí)現(xiàn)

44、業(yè)務(wù)處理*test1流程的業(yè)務(wù)組件*/publicclassTest1WFComponentextendsWorkFlowComponentpublicTest1WFComponent(DBConnectiondbc,ParameterObjectpo,WorkFlowObjectwfo,StringinstanceId,StringworkItemId,StringnodeId)super(dbc,po,wfo,instanceId,workItemId,nodeId);*/計(jì)算流程的變量publicMap<String,String>calcWorkFlowVariables(

45、booleanisPreprocess)throwsExceptionMap<String,String>map=newHashMap<String,String>();map.put("item1",po.getParameterValue("txtAAA");map.put("item2","aaa");returnmap;*流程發(fā)起*/publicvoidafterStart(List<String>newWorkItems)throwsExceptionsuper.aft

46、erStart(newWorkItems);/TODOsomething./*流程被否決*/publicvoidinstanceTerminated()throwsExceptionsuper.instanceTerminated();/TODOsomething./*流程審批結(jié)束*/publicvoidinstanceEnded()throwsExceptionsuper.instanceEnded();/TODOsomething./*審批通過(guò)后*/publicvoidafterApprove(List<String>newWorkItems)throwsExceptionsu

47、per.afterApprove(newWorkItems);if("CWSH".equals(this.currentNodeId)/TODOsomething.常用JAVA類說(shuō)明. 該類是流程業(yè)務(wù)組件的父類,所有的流程業(yè)務(wù)組件必須繼承該類,重寫該類的方法,實(shí)現(xiàn)流程狀態(tài)變動(dòng)與業(yè)務(wù)操作的聯(lián)動(dòng)。. 流程配置提供類。可以加載CORE_WF_CON中所有的流程圖,并且提供獲取指定流程圖信息的方法。325.3. 流程定義信息類。該類保存流程圖中的全部信息,可以通過(guò)其中的方法取得流程圖的節(jié)點(diǎn)、按鈕、連接、流程變量等信息。流程圖生成類。該類可以生成某一個(gè)流程實(shí)例的流程圖。. 輸入?yún)?shù)類

溫馨提示

  • 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)論