會簽動態(tài)配置修改手冊_第1頁
會簽動態(tài)配置修改手冊_第2頁
會簽動態(tài)配置修改手冊_第3頁
會簽動態(tài)配置修改手冊_第4頁
會簽動態(tài)配置修改手冊_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

會簽動態(tài)配置

修改手冊

V1.0

2020年4月7日

序言

本手冊主要敘述在原流程會簽的基礎(chǔ)上增加會簽的動態(tài)配置規(guī)則,例如:一票否決、最

小票數(shù)、百分比等方式進行會簽判決,決定會簽的流向。

需要注意的是,已經(jīng)生成的運行流程不支持此次會簽動態(tài)修改,因為在流程部署生成流

程圖時沒有設(shè)置會簽完成條件,所以不具備會簽動態(tài)規(guī)則的功能。新流程按接下來的配置即

可使用動態(tài)配置規(guī)則。

一、手動會簽

在原有流程圖的基礎(chǔ)上,給會簽節(jié)點的配置信息的完成條件增加務(wù)件"${counterSignPass

==true),;然后點擊“部署”發(fā)布新的運行流程即可,其余原有的流程配置不用修改,如下:

?MPx|d無IWEB|X0樣X+-0X

4CGk)calx>rt/Xjfe-M/pc<xe$s£ditofAnodelefJrtml?modetd-Saaac1974<J9c4?c2ba358bl931292184☆0

EPR?Cloud@OutMcW?bAppARedme

回QQQQHQ(3QGQ@QQ

,網(wǎng)關(guān)

,邊用?件

>中間58度期

>中1句黨出

》結(jié)束W4

?泳遇V部門經(jīng)理會簽

?用件±?(10)Counlenign麗

No

0MH?YS:0executtonMsiencn

:P.MBB03^0:NoMg

魚含(―:MUMTUSO元?金■(??M):9rtM

1:1>s?a:

$4<oumefSionPws--true)

?J八?.《!?—

然后部署流程,在“運行流程”中使用拷貝配置將舊流程的配置拷貝進新流程,由于會

簽規(guī)則是新增數(shù)據(jù),舊流程會簽節(jié)點沒有相關(guān)數(shù)據(jù),需要手動配置相應(yīng)的規(guī)則,如不配置則

是默認按原來的方式走(即程序控制)。

?然趣|ERP

運行流程H制

.口?以—E賅

1的VO99MQ

□m-E-

■n?件.Q■-en

IS'|[二__________?GMQN

■n臉一人■左殖QsOifi&itiiA

。二】主ent■性?找?■

Q-忖—■性電ana??o?

□|an—|asa

Q.忖會計■.anana-■E*

■小USDr

□—anan????百分比

西原有BSS有萬代

□L0■?苫

二、多級會簽

2.1流程圖會簽節(jié)點配置

流程圖中配置參考第一章節(jié)艮1可

主It(ID):jolntlySign名分:65

描述信在:Novalue跨步:Q

互斥任務(wù):攜行=聽3&:0rxecutionK$t?n?r$

多實例美史:ParallelSB(妥實可):N)value

集合(多實的:SfuserUst)元衰變量(多實例):assignee

1完成條件(名實??):

${counter$ignPass==.SSM48:Q

4>西?田a-NoAi?ianm?nt本給?|尸?NsV4lu?

2.2業(yè)務(wù)代碼中的流程配合修改:

首先在業(yè)務(wù)代碼中獲取會簽規(guī)則,代碼示例如下:

Map<String,String>param2=newHashMap<String/String>();

Stringprocess_definition_id=ring("process_definitionjd");

Stringtask_def_key=ring("task_def_key");

("process_definition_id",process_definition_id);

("task_def_key",task_def_key);

M叩〈String,Object>countersignRule=ersignRule(param2);〃會簽規(guī)則

:wodc?p?ce-cmNc-?(pnngT?oi(wt?I

AWfdhSource(UfadorNaUg?f.ProjectRunWardowHelp

?3/4?o?d??,?.、?,?,)?

1P-dcfnUm”:"F%??d°u

>毋MmMi1prc)*cfpABn3157389〃含愛

90booleanalHign?tatus=false;

>盅com?ru<t^Mb4<f4o31243if(ta^kNM*.tqu?lf(*jointlySign*)M**Y*.?qu41s(proje<tApply.gftStr(Pr?je<tApply.I$_lMG£MT)))(

>£finmdtcMifoJ0417

>盅fc^cUM?Kh*<M>eJBJ2Nap<String9Stringparaa■n?wHashKapKString,String>();

"

>AC^dMwfo31261Stringprocess_instancc_id■resultJson.getString(?proccss-in*t?nc?_id);

>IrwtwoHcplan/?Stringprcviou5.t?sk_instancc_id=result)son.getString("p^evioui.task.instance.id");

>周p<mCo?wio?Z73UString?ddition?l_infonMtioG?re?ultIson.getString("additionel-inforoation");

97p>r^n.put(*proc?s$inst<nceid-pBce”,cstx?」d);

>盅pmWr?K?23il5-->

aw,」,?」

>度prcje<uW<yind<4tor98paraa.put('pr?viou?_task_instaf%ce.id/p2“ou_t"kct0'cd);

paraa.put("additional_inforaation",ddditional_infor?Ation);

>盅projecucctpuoce2^551

-?1O0List<Map<StringObject?list*WfUti1.counters\gnlnfo{pano<*);//

vA30073f

vcoMroMer焚33102NefKString,String》par??2=n?wHsshMapCStrinf,String>();

>P2ie?Ap/C8trMerj.163Stringprocess.definition.id■resultJson.tet5trint(wproce?$_de<inition_id**);

vaPrej?ctAppl|V^fCcrtrol*r.1B4Stringt“k_d“_k-y?r?tultIson.getString(Mtask^def_k?ya);

▼R曾詠NN

105parda2.put(proc0ss_dofinition_id/procoss_d?finition_id);

?cMe9ory5?*vk?lebparan2.put(*task_def_koy*,task_dcf_k?y);

aco(nmorAtt?ch$?rv?c

N?p<StringvObject>countersignRulc=WfUtil.counterst^nffuleCpar?vi2);//^£lRn

.??v*ce

Q9?<ForkNede(Pfoj?c"(C011e<tio?4nil5.<sMdefRptHHst))(//

“gc^tApp^tylO110IntCOM?0;

-…1111IntprocesfiCount?0;

[..、wAppa-C|112for(FUpKString,Obj?ct>nap:list){//金優(yōu)合二同總行金獎

113Objectprocces5_st?tus?nap.get("proccess.status");

(>k<>dM?Ch>n<je$Utu?

>0|dM2512511<1Ig

>.Mfvke12?5

>琮proje<UpprOM?l,:八

然后判斷是否程序控制(原流程會簽方式),不是則將此類參數(shù)傳遞到前端頁面進行判

斷(此時由于我們不知道當前處理人會如何審批)

if("PROGRAM".equalslgnoreCase((,,counterMode',).toString())){

if(cou==0){

allsignstatus=true;

)

("countersignRule",NString(countersignRule));

}else{

("processcount",processCount);〃己會簽數(shù)量

("agreenum",processCount-cou);//會簽同意數(shù)量

("nrOflnstances",());〃會簽總數(shù)

("countersignafterdown","Y");〃會簽結(jié)束后走向下一步

("countersignRule",NString(countersignRule));

)

109if(CollectionUtils.isMot£flpty(list)){//主

110intCOM?0;

111intproc?ssCcxint>0;

112for(MapKStringiObject>aap:list){//遞代含妥丁弟Mtf是否曾佑鑫

113Objectproccoss_£tatu£?ajip.got(wproccoss_statusM);

114!-nvll)(

115proce$$Count

116)

if(proccess.status!-null&&^N^.equdlsOtring.votv?Cf(pro<cess_status))){//WUKI任何一個不?同欠蜘含二

118coui;

119)

120}

121

122if("PROGRAM*.?qudltIgnor?Ca$?(countorsignRule.get("count?rMod?H).toString())){

123if(cou==0){

124allsignstatus■true;

1251

126(Mrams.put("countersifnRjle-,3SONUtil$.toJS(W5tr(n9(countersignRule));

U7}?!??{

128countersignRule.put("prozesscount*,processCount);

"9countersignRu.put("agr??nu?*,prosssCouct-cou);〃俵整BKH

130counter5ignRule.put("nrOFlnst?nce?">list.size());//n£9A

"Ipae?s.pvt(“c8nteriaafte"gn.jY?);這個拿救必須值.因為我們不注28當用處理人處建后會簽是否給束

132params.put("countorsignRjlo",JSONUtil%.toJStWStri“(c<xjctQr與ignRul"));

133)

頁面代碼處理:

代碼和圖示如下:

function]counterSignResult【params,|process_statu三|至當前人的會簽處理結(jié)果

if(*jointlySign'=='${taskName!!'){""'**

varelJsonObj=JSON.parse(params.elStringValue);

varallsignstatus-el?sonObj.allsignstatus;//三的合簽林面幾人的總答循杲

varcountersignRule=JSON.parse(params.countersignRule);荻取后臺傳遞的會簽規(guī)貝ij

程序控制

if('PROGRAM'==countersignRule.counterMode){使用原有代碼,不做處理

if(allsignstatus){//前面幾個會及旌部則

if(process_statu>=="N"){

elDsonObj.allsignstatus=false;

params.elStringValue=JSON.stringify(elJsonObj);

}else{

elJsonObj.allsignstatus=true;

params.elStringValue=3SON.stringify(elJsonObj);

//params.countersignafterdown='Y';

任何一個不通過,目接送回京起人

params.elStringValue=JSON.stringify(elJsonObj);

}else{已經(jīng)會簽處理的數(shù)星,力口1是加上了當前處理人

varprocesscount=countersignRule.processcount+1;

varnrOfInstances=三ountersiRnRule.nrOfInstances;會簽總實例數(shù)

if(I'ONEVOTEREJECT”==countersignRule.counterMode){

一票否決if(process_status=="N"){會果判斷

el^sonObj.allsignstatus=false;會簽不通過

params.elStringValue=3SON.stringify(elDsonObj);

}el?e(

elJsonObj.allsignstatus=true;

params.elStainaValu。=JSON.stringifv(elJsonObj);

if(processcount!=nrOfInstances){已會簽數(shù)曷不等于總實例數(shù),

params.countersignafterdown=null;

說明會簽未浩束,

此時該參數(shù)必須疊空

fr---------------1最/J要數(shù)

}elseif(」MIN_VOTE'I==countersignRule.counterMode){

varminVote=countersignRule.ruleData;會答為I.則中沒罟的虢小通i寸堇數(shù)

varagreenum=countersignRule.agreenum;除去當前處理人的已同意數(shù)是

if(process_statu>=="Y"){

agreenum=agreenum+1j如果當刖人同e,已同意數(shù)星JJ口1

if(agreenum>=minVote){會笠結(jié)果判斷,處理情況同上

elJsonObj.allsignstatus=七rue;

params.elStringValue=JSON.stringify(elJsonObj);

//params.countersignafterdown='Y';

}?lse(

elJsonObj.allsignstatus=false;

params.elStringValue=3SON.stringify(elJsonObj);

if(processcount!=nrOfInstances){

params.countersignafterdown=null;

}

).百分比

}elseif(|,PERCENT*|==countersignRule.counterMode){

varpercent=countersignRule.ruleData;會密婭則設(shè)?罟的通過百分比

varagreenum=countersignRule.agreenum;

if(process_statu>=="Y'*){

agreenum=agreenum+1;

},*,“、,計苴己同意的百分比是否大于等于

if(agreenum*100/nrOfInstances>=percent){

elJsonObj.allsignstatus=trua;iSS的百分比,進行結(jié)果處理

params.elStringValue=3SON.stringify(el3sonObj);

//params.countersignafterdown='Y';

elJsonObj.allsignstatus=falsa;

params.elStringValue=3SON.stringify(el3sonObj);

params.countersignafterdown=null;

M

returnparams;

)

functioncounterSignResult(params,process_status){

if('jointlySign'=='${taskName!}'){

varelJsonObj=(IngValue);

varallsignstatus=gnstatus;//當前會簽前面幾人的會簽結(jié)果

varcountersignRule=(ersignRule);

if('PROGRAM'==erMode){

if(allsignstatus){//前面幾個會簽人全部通過

if(process_$tatus=="N"){

gnstatus=false;

ingValue=gify(elJsonObj);

}else{

gnstatus=true;

ingValue=gify(elJsonObj);

//ersignafterdown=Y;

)

}else{//任

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論