馳騁工作流引擎設(shè)計(jì)系列08 接收人規(guī)則設(shè)計(jì)

第1節(jié). 關(guān)鍵字

馳騁工作流引擎?流程快速開發(fā)平臺?workflow ccflow jflow

第1節(jié). 接收人規(guī)則設(shè)計(jì)

接收人員規(guī)則是節(jié)點(diǎn)屬性的一個重要設(shè)置梳码,是確定當(dāng)前接受人范圍的規(guī)則,該規(guī)則有多種方式組成蹭越。

1.1.1:概要說明

關(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)行該流程誓焦。

1.1.1: 屬性字段存儲

該規(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ī)則。

1.1.3.1.1:按崗位智能計(jì)算

設(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è)置硕淑。



1.1.3.1.4:按綁定的崗位與部門交集計(jì)算

設(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就從表單字段取值作為接收人狼纬。

1.1.3.1.7: 僅按綁定的崗位計(jì)算

按照節(jié)點(diǎn)上綁定的崗位來計(jì)算接受人羹呵,這里去掉了部門維度的過濾。

1.1.3.2: 按指定節(jié)點(diǎn)處理人

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: 按自定義SQL計(jì)算

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)是子線程才有意義专普。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市弹沽,隨后出現(xiàn)的幾起案子檀夹,更是在濱河造成了極大的恐慌,老刑警劉巖策橘,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件炸渡,死亡現(xiàn)場離奇詭異,居然都是意外死亡丽已,警方通過查閱死者的電腦和手機(jī)蚌堵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吼畏,你說我怎么就攤上這事督赤。” “怎么了泻蚊?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵躲舌,是天一觀的道長。 經(jīng)常有香客問我性雄,道長没卸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任秒旋,我火速辦了婚禮约计,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘迁筛。我一直安慰自己病蛉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布瑰煎。 她就那樣靜靜地躺著铺然,像睡著了一般。 火紅的嫁衣襯著肌膚如雪酒甸。 梳的紋絲不亂的頭發(fā)上魄健,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天,我揣著相機(jī)與錄音插勤,去河邊找鬼沽瘦。 笑死,一個胖子當(dāng)著我的面吹牛农尖,可吹牛的內(nèi)容都是我干的析恋。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼盛卡,長吁一口氣:“原來是場噩夢啊……” “哼助隧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起滑沧,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤并村,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后滓技,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哩牍,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年令漂,在試婚紗的時候發(fā)現(xiàn)自己被綠了膝昆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丸边。...
    茶點(diǎn)故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖荚孵,靈堂內(nèi)的尸體忽然破棺而出原环,到底是詐尸還是另有隱情,我是刑警寧澤处窥,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布嘱吗,位于F島的核電站,受9級特大地震影響滔驾,放射性物質(zhì)發(fā)生泄漏谒麦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一哆致、第九天 我趴在偏房一處隱蔽的房頂上張望绕德。 院中可真熱鬧,春花似錦摊阀、人聲如沸耻蛇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽臣咖。三九已至,卻和暖如春漱牵,著一層夾襖步出監(jiān)牢的瞬間夺蛇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工酣胀, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留刁赦,地道東北人。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓闻镶,卻偏偏與公主長得像甚脉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子铆农,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容