`

开源OA办公平台搭建教程:流程配置路由候选人选择项区段的4种使用场景介绍

阅读更多

 

一,流程配置中路由候选人区段的使用说明。

      在流程配置的路由属性配置候选人选择范围中有一个区段属性,是用来区分同一个活动环节不同依据下提交选择后续处理人的时候可以各自选择对应候选人而不冲突。候选人值存储在data里以数组方式存储,数组下标就是定义的区段依据的值。区段目前提供了五种依据:处理人,处理人所在组织,活动ID,拆分值,脚本。

 

二,以截图所示流程来介绍下4种路由候选人区段依据的使用场景。

 流程图.png

1, 多人并行处理环节按照处理人各自选择候选人互不干扰,后续环节的处理人是这个环节所有处理人选择的所有候选人。拟稿环节送多人并行处理,选择了送测试1、测试3、测试4三个用户。3个用户分别处理提交送整理可以各自选择人,测试1选择测试1用户,测试3选择测试2用户,测试4选择测试4用户。最后一个人提交送整理后,流程流转到多人并行对应整理,当前处理人是测试1,测试2,测试4。这种场景可以通过如下设置使用。

 

A,设置多人并行处理环节送整理的时候启用区段,区段依据选择:处理人。

image.png

 

B,在多人并行对应整理环节的人员这里通过脚本返回。

var relatedpersonsObj =  this.data.relatedperson;

var pArr = [];

for(rp in relatedpersonsObj){

  for(j=0;j<relatedpersonsObj[rp].length;j++){

          pArr.push(relatedpersonsObj[rp][j].distinguishedName);

       }

}

return pArr;

       

Tip:在多人并行处理提交后我们可以观察data中这个已选择的候选人存储方式。这里我们定义的候选人名称是relatedperson,可以看到relatedperson是个object,以处理人对象的person属性为标签存储选择的值。具体参考如下截图:

按处理人的data.png

 

2,     多人串行处理,同部门(直接部门)人需要看到上一个处理人选择的候选人并可以修改,不同组织人员候选人选择互不干扰。后续环节的处理人是这个环节所有处理组织选择的所有候选人。拟稿环节送多人串行按组织,选择了送测试1、测试5、测试6(其中测试5和测试6同属于一个部门)三个用户。3个用户按顺序处理,测试1处理先选择测试2用户,测试5处理选择测试4用户,测试6处理提交可以看到当前已选了测试4,测试6又增加一个测试1提交。流程流转到多人并行整理,当前处理人是测试2,测试4,测试1。这种场景可以通过如下设置使用。

 

A,设置多人串行按组织处理环节送整理的时候启用区段,区段依据选择:处理人所在组织。

 image.png

B,在多人并行对应整理环节的人员这里通过脚本返回。

var relatedpersonsObj =  this.data.relatedperson;

var pArr = [];

for(rp in relatedpersonsObj){

  for(j=0;j<relatedpersonsObj[rp].length;j++){

          pArr.push(relatedpersonsObj[rp][j].distinguishedName);

       }

}

return pArr;

 

TIP:在多人串行按组织处理提交后我们可以观察data中这个已选择的候选人存储方式。这里我们定义的候选人名称是relatedperson,可以看到relatedperson是个object,以处理人所在直接组织名称为标签存储选择的值。具体参考如下截图: 

按所在组织的data.png

 

 

3,     多人串行处理环节在第2个场景中按照处理人所在组织来区分,但如果这里需要按照处理人所在的大部门来区分候选人呢?比如第2个场景处理人是按照直接部门处来区分,那么如果需要按照处理人所在处的上级部门来区分呢?这时候区段依据就需要通过脚本来实现了。拟稿环节送多人串行按组织,选择了送测试1、测试2(测试1属于测试一部,测试2属于测试一部下的测试一处)、测试6(测试6属于测试二部下的测试二处)三个用户。3个用户按顺序处理,测试1处理先选择测试3用户,测试2处理可以看到候选人已选择了测试3,不改变继续流转,测试6处理选择测试4提交。流程流转到多人并行整理,当前处理人是测试3,测试4。这种场景可以通过如下设置使用。

 

A,设置多人串行按组织处理环节送整理的时候启用区段,区段依据选择:脚本。脚本区域输入代码如截图:

 区段按脚本.png

B,在多人并行对应整理环节的人员这里通过脚本返回。

var relatedpersonsObj =  this.data.relatedperson;

var pArr = [];

for(rp in relatedpersonsObj){

  for(j=0;j<relatedpersonsObj[rp].length;j++){

          pArr.push(relatedpersonsObj[rp][j].distinguishedName);

       }

}

return pArr;

 

 

TIP:在多人串行按组织处理提交后我们可以观察data中这个已选择的候选人存储方式。这里我们定义的候选人名称是relatedperson,可以看到relatedperson是个object,以处理人所在类型定义为department组织名称为标签存储选择的值。具体参考如下截图:

 按处理人大部门的data.png

 

4,  拆分环节处理人按照拆分值选择候选人,不同拆分分支互不干扰。拟稿选择2个部门处理人测试1,测试4送部门会签(拆分依据根据拟稿人选择的会签部门处理人),测试1处理选择测试2送处会签,测试4选择测试5,测试6送处会签。这种场景可以通过如下设置使用。

A, 设置部门会签环节送处会签的时候启用区段,区段依据选择:拆分值。

 image.png

B,  处会签人员这里通过脚本返回。

return this.workContext.getWork().splitValue;

 

TIP:在部门会签提交后我们可以观察data中这个已选择的候选人存储方式。这里我们定义的候选人名称是innerPersons,可以看到innerPersons是个object,以拆分依据为标签存储

选择的值。具体参考如下截图:

按拆分值的data.png

0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics