第1節(jié). 關(guān)鍵字
馳騁工作流引擎?流程快速開發(fā)平臺?workflow ccflow jflow
第1節(jié). 接收人規(guī)則設(shè)計(jì)
接收人員規(guī)則是節(jié)點(diǎn)屬性的一個重要設(shè)置梳码,是確定當(dāng)前接受人范圍的規(guī)則,該規(guī)則有多種方式組成蹭越。
關(guān)鍵字:ccbpm節(jié)點(diǎn)訪問規(guī)則 ?接收人規(guī)則挑格。
相關(guān)功能:訪問規(guī)則處理內(nèi)容猎唁。
節(jié)點(diǎn)屬性配置:如下圖:
?
功能入口
解釋說明:就是下一步工作人員的接受人范圍處理規(guī)則缺前。A運(yùn)動到B,如何確定B的處理人范圍。根據(jù)不同的業(yè)務(wù)場景缓窜,ccbpm提供了如下幾種模式定续,您可以根據(jù)自動不同的業(yè)務(wù)背景設(shè)置自己的業(yè)務(wù)規(guī)則。
說明:
1,下列設(shè)置類型禾锤,都設(shè)置當(dāng)前節(jié)點(diǎn)作用于下一步節(jié)點(diǎn)私股。
2,每一種類型,都有路徑自動記憶功能恩掷,所說自動記憶功能是當(dāng)節(jié)點(diǎn)第一次向下一個節(jié)點(diǎn)投遞時倡鲸,它把要投遞的人記錄下來。
如果您執(zhí)行了分配系統(tǒng)就把分配的人員黄娘,做為接受人員計(jì)算.
可以設(shè)置的投遞的類型:
為了更好的說明該規(guī)則峭状,cc為我們提供了一個流程測試案例,如下圖:
該案例詳盡的設(shè)置了各個模式的方法逼争,請打開相關(guān)的節(jié)點(diǎn)屬性优床,對照節(jié)點(diǎn)的名稱,運(yùn)行該流程誓焦。
該規(guī)則是一個節(jié)點(diǎn)字段屬性胆敞,當(dāng)然要存在節(jié)點(diǎn)表里,WF_Node
1.1.2: 開始節(jié)點(diǎn)的接受人規(guī)則設(shè)計(jì)
開始節(jié)點(diǎn)是一個特殊的節(jié)點(diǎn)杂伟,是整個流程的入口移层,一個流程只有一個開始節(jié)點(diǎn)。
開始節(jié)點(diǎn)的訪問規(guī)則是為了確定那些人可以發(fā)起該流程赫粥。
開始節(jié)點(diǎn)的訪問規(guī)則與其他節(jié)點(diǎn)也不相同观话,如下圖。
我們從規(guī)則名稱的字面意思不難理解越平,如何為開始節(jié)點(diǎn)綁定可以發(fā)起的工作人員匪燕。
1.1.3: 中間節(jié)點(diǎn)的接受人規(guī)則設(shè)計(jì)
1.1.3.1:按組織結(jié)構(gòu)結(jié)算
本章節(jié)詳細(xì)的介紹了每種訪問規(guī)則在不同場景下的應(yīng)用蕾羊,用戶可以根據(jù)不同的情況使用不同的訪問規(guī)則。
設(shè)置方法:在下一個節(jié)點(diǎn)上的節(jié)點(diǎn)屬性里帽驯,設(shè)置節(jié)點(diǎn)崗位龟再。這是默認(rèn)的投遞規(guī)則,他是在下一個節(jié)點(diǎn)設(shè)置崗位時按照崗位計(jì)算.他的計(jì)算方式尼变,首先按照當(dāng)前操作員的部門范圍計(jì)算利凑。如果該操作員部門下沒有這個工作崗位的人員,CCBPM就會把當(dāng)前操作員的部門級次提高一個級別嫌术,在尋找哀澈,依次計(jì)算。理解了這個算法度气,您就不難理解為什么割按,本部分的業(yè)務(wù),只能讓本部門的經(jīng)理審批了磷籍。
舉例說明:一個省機(jī)關(guān)下面有n個縣适荣,n個市,n個縣. n個所. 一個所員受理人員的業(yè)務(wù)院领,只能讓自己的所長審批弛矛,所長的業(yè)務(wù)只能投遞到本區(qū)縣的相關(guān)業(yè)務(wù)部分審批,而非其它區(qū)縣業(yè)務(wù)部分審批比然。
這就是崗位的權(quán)限與部門權(quán)限的交叉形成的被投遞的人員集合.這就是ccbpm經(jīng)常說的丈氓。
崗位:表示能做什么事情。部門:表示能做那里的事情强法。崗位+部門: 表示一個操作員能做那里的那些事情万俗。
1.1.3.1.2:按節(jié)點(diǎn)綁定的部門計(jì)算
設(shè)置方法:在當(dāng)前節(jié)點(diǎn)上的節(jié)點(diǎn)屬性里,設(shè)置節(jié)點(diǎn)崗位.
CCBPM會按照您指定的部門下面的人員,進(jìn)行投遞, 就是這個n個部門下面都可以接受這個工作. 這個類于發(fā)送郵件的按照郵件組進(jìn)行發(fā)送饮怯。
1.1.3.1.3:按節(jié)點(diǎn)綁定的人員計(jì)算:
節(jié)點(diǎn)綁定那些人員该编,該系統(tǒng)就會發(fā)送給這些人,如下圖設(shè)置硕淑。
設(shè)置方式:在節(jié)點(diǎn)崗位课竣,節(jié)點(diǎn)部門都設(shè)置。
運(yùn)行方式:ccbpm會取既具備此崗位集合的又具備此部門集合的人員置媳,做為本節(jié)點(diǎn)的接受人員于樟。
1.1.3.1.5: 按綁定的崗位計(jì)算并且以綁定的部門集合為緯度
該場景用的較少,不說明了拇囊。
1.1.3.1.6: 按指定節(jié)點(diǎn)的工作人員或者指定字段人員的崗位計(jì)算
應(yīng)用場景:為一個單位設(shè)置一個設(shè)備維修流程迂曲,此單位下分好多部門,有一個IT部門負(fù)責(zé)計(jì)算機(jī)設(shè)備維修寥袭。每個部門的成員如果有設(shè)備維護(hù)的需要路捧,首先填寫一個單子向這個IT部門的受理人員發(fā)送詳細(xì)的故障說明关霸。IT受理人員接受到此請求后,根據(jù)情況發(fā)送到該發(fā)起人的部門領(lǐng)導(dǎo)那里去杰扫。
這是簡單的三個步驟队寇,發(fā)起-》IT部門受理-》發(fā)起的部門負(fù)責(zé)人審批。第一步驟基層人員發(fā)起章姓,第二步驟是IT受理崗人員受理佳遣。第三個步驟中層領(lǐng)導(dǎo)審批。在第三個節(jié)點(diǎn)訪問規(guī)則就是按按指定節(jié)點(diǎn)崗位計(jì)算凡伊。因?yàn)槿绻磵徫挥?jì)算在第二步驟就要發(fā)送給IT部門經(jīng)理審批而非發(fā)起人的部門經(jīng)理審批了零渐。默認(rèn)的按崗位計(jì)算就是按上一個節(jié)點(diǎn)的崗位計(jì)算,現(xiàn)在的應(yīng)用場景就是要按指定的節(jié)點(diǎn)崗位計(jì)算了系忙。
設(shè)置方式:在接受對象中設(shè)置一個節(jié)點(diǎn)編號比如:101诵盼。
運(yùn)行方式:ccbpm在處理接受人時,會按指定節(jié)點(diǎn)上的人員身份計(jì)算银还,而非按上一步驟的人員身份計(jì)算了风宁。
其它:這種方式是對按崗位計(jì)算的補(bǔ)充。
變更記錄:2015/10/8為了適應(yīng)能夠按指定的表單字段作為人員见剩,特支持為杀糯,也可以指定一個表單字段作為處理人扫俺。
對于原來設(shè)置節(jié)點(diǎn)的方式也有效苍苞,如果設(shè)置一個字段名稱,ccbpm就從表單字段取值作為接收人狼纬。
按照節(jié)點(diǎn)上綁定的崗位來計(jì)算接受人羹呵,這里去掉了部門維度的過濾。
1.1.3.2.1:按上一節(jié)點(diǎn)表單指定的字段值作為本步驟的接受人
設(shè)置方式:在當(dāng)前節(jié)點(diǎn)屬性訪問規(guī)則處理內(nèi)容中指定此方式疗琉,在上一個節(jié)點(diǎn)的表單上添加一個SysSendEmps的文本框冈欢。
運(yùn)行方式:在用戶填寫上一個步驟的節(jié)點(diǎn)表單時,這個指定的字段可以用逗號分號分開盈简,可以輸入多個接受人員的編號凑耻。下一步的接受人員就按用戶輸入的內(nèi)容結(jié)束。說明:這種方式就類似于發(fā)送郵件柠贤。
1.1.3.2.2: 與上一節(jié)點(diǎn)處理人員相同
節(jié)點(diǎn)A是甲處理香浩,發(fā)送到節(jié)點(diǎn)B,也是需要甲處理。
1.1.3.2.3:與開始節(jié)點(diǎn)處理人相同
當(dāng)前節(jié)點(diǎn)的處理人與開始節(jié)點(diǎn)一致臼勉,發(fā)起人是zhangsan,現(xiàn)在節(jié)點(diǎn)的處理人也是他邻吭。
1.1.3.2.4:與指定節(jié)點(diǎn)處理人相同
應(yīng)用場景1:A B C 三個節(jié)點(diǎn), B向C發(fā)送時C的接受人員要求與A的工作人員一致。
設(shè)置方式:在[訪問規(guī)則處理內(nèi)容]中設(shè)置一個節(jié)點(diǎn)ID比如:101宴霸。
應(yīng)用場景2:如下圖囱晴,當(dāng)一個節(jié)點(diǎn)可以多個節(jié)點(diǎn)可以到達(dá)時膏蚓,在【訪問規(guī)則處理內(nèi)容】需要配置多個節(jié)點(diǎn)的ID值,如下圖:
節(jié)點(diǎn)3畸写,可能是從節(jié)點(diǎn)1驮瞧,或者節(jié)點(diǎn)2轉(zhuǎn)到節(jié)點(diǎn)3,如果在節(jié)點(diǎn)3上配置此規(guī)則就要配置節(jié)點(diǎn)2節(jié)點(diǎn)1的兩個節(jié)點(diǎn)ID艺糜,用逗號分開剧董,例如: 507,509。這種情況下ccbpm就會自動判斷節(jié)點(diǎn)3究竟是從那個節(jié)點(diǎn)上過來了破停,從而把處理人投遞給節(jié)點(diǎn)3翅楼。
對父子流程的支持:
2015年1月28日為珠海高凌變更:如果是父子流程,在子流程上的一個節(jié)點(diǎn)要指定與父流程的一個節(jié)點(diǎn)的人員相同真慢,配置方式不變化毅臊。
比如:父親流程甲,調(diào)用子流程乙黑界,在乙的一個節(jié)點(diǎn)上的工作處理人員與甲的一個節(jié)點(diǎn)處理人員相同管嬉,那就在該參數(shù)里設(shè)置甲的節(jié)點(diǎn)編號,可以是多個變化朗鸠,如果甲是一個子線程也同樣支持蚯撩。
1.1.3.3.1:按設(shè)置的SQL獲取接受人計(jì)算
按SQL計(jì)算通俗好理解,就是ccbpm在執(zhí)行一個查詢sql時烛占,返回一個數(shù)據(jù)源胎挎,在數(shù)據(jù)源里約定該節(jié)點(diǎn)的接收人信息。
設(shè)置方法:在當(dāng)前節(jié)點(diǎn)屬性里[接受人SQL]設(shè)置一個sql 語句. 這個select 查詢語句有一個列. No 分別表示忆家,操作
編號,操作員名稱. 這個sql可以有參數(shù).
比如:????1, SELECT No,Name?FROM PORT_EMP WHERE FK_Dept=@WebUser.FK_Dept ?
查詢出來當(dāng)前操作員中的部門下的所有人員.
2, SELECT xxx as ?No, yyy as Name FROM dbo.xxxx.YourTable WHERE字段名稱=@表單字段名稱.
從您的業(yè)務(wù)系統(tǒng)中犹菇,查找一組人員,變量可以是當(dāng)前節(jié)點(diǎn)字段的編號芽卿,格式為@+字段英文名稱.
關(guān)于合流點(diǎn)的接受人按sql獲取接受的表達(dá)式的問題
注意子線程向合流點(diǎn)發(fā)送時揭芍,接受人規(guī)則的表達(dá)式的變量是臨近合流點(diǎn)的子線程節(jié)點(diǎn)變量。
比如:流程編號為ABC三個節(jié)點(diǎn).
A是分流點(diǎn)卸例,B是合流點(diǎn) C是子線程称杨。
如果C的接受人員規(guī)則是按sql計(jì)算:
配置的表達(dá)式如下表達(dá)式是錯誤的:
select UserNo as No, xx as Name?from ND2701 WHERE OID=@OID
如下表達(dá)式才是正確的:
select UserNo as No from ND2701 WHERE OID=@FID
這是因?yàn)樽泳€程在發(fā)送時獲取的變量OID是子線程的ID而非,干流上的WorkID.
關(guān)于子線程接受人的特殊約定:
如果遇到分組的維度,就約定返回4個列來解決問題筷转,流程demo:\\流程樹\\同表單分合流\\一人多子線程模式(批次維度任務(wù)模式)流程.
在第2個子線程節(jié)點(diǎn)配置了如下SQL姑原。
該數(shù)據(jù)源返回了三個列,分別是:No,Name, GroupMark
No=操作員編號旦装,Name=操作員名稱, GroupMark就是分組的維度.
比如配置的SQL:SELECTNo,Name,FK_DeptFROMPort_EmpWHEREFK_Deptin('2','5')
應(yīng)用場景:有一批物品需要化驗(yàn)页衙,一個人員可能需要承擔(dān)多個化驗(yàn)項(xiàng)目,這就需要這個人在這個子線程里有n件工作。再比如:一件工作需要下發(fā)兩個部門處理店乐,如果一個部門的一個人處理了艰躺,另外該部門的人員的工作就要自動去掉,屬于搶辦任務(wù)眨八,也就是說腺兴,子線程也需要搶辦任務(wù)。
對動態(tài)表單樹的支持:
什么是動態(tài)表單樹廉侧?請參節(jié)點(diǎn)屬性页响、表單、表單類型章節(jié)段誊。簡單的說闰蚕,該節(jié)點(diǎn)的表單是有上一步發(fā)送人員動態(tài)指定的。該節(jié)點(diǎn)大部分是子線程節(jié)點(diǎn)连舍,也可以是多人處理的普通節(jié)點(diǎn)没陡。
應(yīng)用場景:a節(jié)點(diǎn)發(fā)向b節(jié)點(diǎn),張三需要分配給索赏,甲乙丙丁四個人去工作盼玄,但是這四個人工作內(nèi)容不同。雖然甲乙丙丁四個人都可以接受到該節(jié)點(diǎn)的工作潜腻,但是填寫的內(nèi)容是由張三動態(tài)的分配的埃儿。
我們就要在這里約定數(shù)據(jù)源來表達(dá)接收人的信息,第一種情況沒有批次號:返回的列需要有如下要求融涣,No,Name,FrmIDs第3列是表單ID童番,多個表單ID用逗號分開。
第二中情況具有批次號:需要返回的列是暴心,No,Name,BatchNo,FrmIDs.
Ccbpm為該種應(yīng)用場景做了一個demo,請參考:
在節(jié)點(diǎn)2屬性里我們做了如下設(shè)置
實(shí)現(xiàn)步驟:在開始節(jié)點(diǎn)里ccbpm的節(jié)點(diǎn)表單里設(shè)計(jì)了一個明細(xì)表妓盲。
1.1.3.3.2: 按SQL確定子線程接受人與數(shù)據(jù)源
此方法與分合流相關(guān)杂拨,只有當(dāng)前節(jié)點(diǎn)是子線程才有意義专普。