驰骋工作流引擎设计系列08 接收人规则设计

第1节. 关键字

驰骋工作流引擎 流程快速开发平台 workflow ccflow jflow

第1节. 接收人规则设计

接收人员规则是节点属性的一个重要设置,是确定当前接受人范围的规则,该规则有多种方式组成。

1.1.1:概要说明

关键字:ccbpm节点访问规则  接收人规则。

相关功能:访问规则处理内容。

节点属性配置:如下图:


 

功能入口

解释说明:就是下一步工作人员的接受人范围处理规则。A运动到B,如何确定B的处理人范围。根据不同的业务场景,ccbpm提供了如下几种模式,您可以根据自动不同的业务背景设置自己的业务规则。

说明:

1,下列设置类型,都设置当前节点作用于下一步节点。

2,每一种类型,都有路径自动记忆功能,所说自动记忆功能是当节点第一次向下一个节点投递时,它把要投递的人记录下来。

如果您执行了分配系统就把分配的人员,做为接受人员计算.

可以设置的投递的类型:

为了更好的说明该规则,cc为我们提供了一个流程测试案例,如下图:


该案例详尽的设置了各个模式的方法,请打开相关的节点属性,对照节点的名称,运行该流程。

1.1.1: 属性字段存储

该规则是一个节点字段属性,当然要存在节点表里,WF_Node



1.1.2: 开始节点的接受人规则设计

开始节点是一个特殊的节点,是整个流程的入口,一个流程只有一个开始节点。

开始节点的访问规则是为了确定那些人可以发起该流程。

开始节点的访问规则与其他节点也不相同,如下图。


我们从规则名称的字面意思不难理解,如何为开始节点绑定可以发起的工作人员。


1.1.3: 中间节点的接受人规则设计

1.1.3.1:按组织结构结算

本章节详细的介绍了每种访问规则在不同场景下的应用,用户可以根据不同的情况使用不同的访问规则。

1.1.3.1.1:按岗位智能计算

设置方法:在下一个节点上的节点属性里,设置节点岗位。这是默认的投递规则,他是在下一个节点设置岗位时按照岗位计算.他的计算方式,首先按照当前操作员的部门范围计算。如果该操作员部门下没有这个工作岗位的人员,CCBPM就会把当前操作员的部门级次提高一个级别,在寻找,依次计算。理解了这个算法,您就不难理解为什么,本部分的业务,只能让本部门的经理审批了。


举例说明:一个省机关下面有n个县,n个市,n个县. n个所. 一个所员受理人员的业务,只能让自己的所长审批,所长的业务只能投递到本区县的相关业务部分审批,而非其它区县业务部分审批。

这就是岗位的权限与部门权限的交叉形成的被投递的人员集合.这就是ccbpm经常说的。

岗位:表示能做什么事情。部门:表示能做那里的事情。岗位+部门: 表示一个操作员能做那里的那些事情。

1.1.3.1.2:按节点绑定的部门计算

设置方法:在当前节点上的节点属性里,设置节点岗位.

CCBPM会按照您指定的部门下面的人员,进行投递, 就是这个n个部门下面都可以接受这个工作. 这个类于发送邮件的按照邮件组进行发送。


1.1.3.1.3:按节点绑定的人员计算:

节点绑定那些人员,该系统就会发送给这些人,如下图设置。



1.1.3.1.4:按绑定的岗位与部门交集计算

设置方式:在节点岗位,节点部门都设置。

运行方式:ccbpm会取既具备此岗位集合的又具备此部门集合的人员,做为本节点的接受人员。



1.1.3.1.5: 按绑定的岗位计算并且以绑定的部门集合为纬度

该场景用的较少,不说明了。

1.1.3.1.6: 按指定节点的工作人员或者指定字段人员的岗位计算

应用场景:为一个单位设置一个设备维修流程,此单位下分好多部门,有一个IT部门负责计算机设备维修。每个部门的成员如果有设备维护的需要,首先填写一个单子向这个IT部门的受理人员发送详细的故障说明。IT受理人员接受到此请求后,根据情况发送到该发起人的部门领导那里去。

这是简单的三个步骤,发起-》IT部门受理-》发起的部门负责人审批。第一步骤基层人员发起,第二步骤是IT受理岗人员受理。第三个步骤中层领导审批。在第三个节点访问规则就是按按指定节点岗位计算。因为如果按岗位计算在第二步骤就要发送给IT部门经理审批而非发起人的部门经理审批了。默认的按岗位计算就是按上一个节点的岗位计算,现在的应用场景就是要按指定的节点岗位计算了。

设置方式:在接受对象中设置一个节点编号比如:101。

运行方式:ccbpm在处理接受人时,会按指定节点上的人员身份计算,而非按上一步骤的人员身份计算了。

其它:这种方式是对按岗位计算的补充。

变更记录:2015/10/8为了适应能够按指定的表单字段作为人员,特支持为,也可以指定一个表单字段作为处理人。

对于原来设置节点的方式也有效,如果设置一个字段名称,ccbpm就从表单字段取值作为接收人。

1.1.3.1.7: 仅按绑定的岗位计算

按照节点上绑定的岗位来计算接受人,这里去掉了部门维度的过滤。

1.1.3.2: 按指定节点处理人

1.1.3.2.1:按上一节点表单指定的字段值作为本步骤的接受人

设置方式:在当前节点属性访问规则处理内容中指定此方式,在上一个节点的表单上添加一个SysSendEmps的文本框。

运行方式:在用户填写上一个步骤的节点表单时,这个指定的字段可以用逗号分号分开,可以输入多个接受人员的编号。下一步的接受人员就按用户输入的内容结束。说明:这种方式就类似于发送邮件。

1.1.3.2.2: 与上一节点处理人员相同

节点A是甲处理,发送到节点B,也是需要甲处理。

1.1.3.2.3:与开始节点处理人相同

当前节点的处理人与开始节点一致,发起人是zhangsan,现在节点的处理人也是他。

1.1.3.2.4:与指定节点处理人相同

应用场景1:A B C 三个节点, B向C发送时C的接受人员要求与A的工作人员一致。

设置方式:在[访问规则处理内容]中设置一个节点ID比如:101。

应用场景2:如下图,当一个节点可以多个节点可以到达时,在【访问规则处理内容】需要配置多个节点的ID值,如下图:


节点3,可能是从节点1,或者节点2转到节点3,如果在节点3上配置此规则就要配置节点2节点1的两个节点ID,用逗号分开,例如: 507,509。这种情况下ccbpm就会自动判断节点3究竟是从那个节点上过来了,从而把处理人投递给节点3。

对父子流程的支持:

2015年1月28日为珠海高凌变更:如果是父子流程,在子流程上的一个节点要指定与父流程的一个节点的人员相同,配置方式不变化。

比如:父亲流程甲,调用子流程乙,在乙的一个节点上的工作处理人员与甲的一个节点处理人员相同,那就在该参数里设置甲的节点编号,可以是多个变化,如果甲是一个子线程也同样支持。

1.1.3.3: 按自定义SQL计算

1.1.3.3.1:按设置的SQL获取接受人计算

按SQL计算通俗好理解,就是ccbpm在执行一个查询sql时,返回一个数据源,在数据源里约定该节点的接收人信息。

设置方法:在当前节点属性里[接受人SQL]设置一个sql 语句. 这个select 查询语句有一个列. No 分别表示,操作

编号,操作员名称. 这个sql可以有参数.

比如:    1, SELECT No,Name FROM PORT_EMP WHERE FK_Dept=@WebUser.FK_Dept  

查询出来当前操作员中的部门下的所有人员.

2, SELECT xxx as  No, yyy as Name FROM dbo.xxxx.YourTable WHERE字段名称=@表单字段名称.

从您的业务系统中,查找一组人员,变量可以是当前节点字段的编号,格式为@+字段英文名称.

关于合流点的接受人按sql获取接受的表达式的问题

注意子线程向合流点发送时,接受人规则的表达式的变量是临近合流点的子线程节点变量。

比如:流程编号为ABC三个节点.

A是分流点,B是合流点 C是子线程。

如果C的接受人员规则是按sql计算:

配置的表达式如下表达式是错误的:

select UserNo as No, xx as Name from ND2701 WHERE OID=@OID

如下表达式才是正确的:

select UserNo as No from ND2701 WHERE OID=@FID

这是因为子线程在发送时获取的变量OID是子线程的ID而非,干流上的WorkID.

关于子线程接受人的特殊约定:

如果遇到分组的维度,就约定返回4个列来解决问题,流程demo:\\流程树\\同表单分合流\\一人多子线程模式(批次维度任务模式)流程.

在第2个子线程节点配置了如下SQL。


该数据源返回了三个列,分别是:No,Name, GroupMark

No=操作员编号,Name=操作员名称, GroupMark就是分组的维度.

比如配置的SQL:SELECTNo,Name,FK_DeptFROMPort_EmpWHEREFK_Deptin('2','5')


应用场景:有一批物品需要化验,一个人员可能需要承担多个化验项目,这就需要这个人在这个子线程里有n件工作。再比如:一件工作需要下发两个部门处理,如果一个部门的一个人处理了,另外该部门的人员的工作就要自动去掉,属于抢办任务,也就是说,子线程也需要抢办任务。


对动态表单树的支持:

什么是动态表单树?请参节点属性、表单、表单类型章节。简单的说,该节点的表单是有上一步发送人员动态指定的。该节点大部分是子线程节点,也可以是多人处理的普通节点。

应用场景:a节点发向b节点,张三需要分配给,甲乙丙丁四个人去工作,但是这四个人工作内容不同。虽然甲乙丙丁四个人都可以接受到该节点的工作,但是填写的内容是由张三动态的分配的。

我们就要在这里约定数据源来表达接收人的信息,第一种情况没有批次号:返回的列需要有如下要求,No,Name,FrmIDs第3列是表单ID,多个表单ID用逗号分开。

第二中情况具有批次号:需要返回的列是,No,Name,BatchNo,FrmIDs.

Ccbpm为该种应用场景做了一个demo,请参考:



在节点2属性里我们做了如下设置



实现步骤:在开始节点里ccbpm的节点表单里设计了一个明细表。


1.1.3.3.2: 按SQL确定子线程接受人与数据源

此方法与分合流相关,只有当前节点是子线程才有意义。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容