如何配置流程决定性意见?
李小翔
2014-01-03 22:15

内容列表
示例一 	 # 
示例二 	 # 
示例三 	 # 
示例四 	 # 
示例五 	 # 

供稿人：许庆洋
流程审批中的决定性意见，是一种路径选择的快捷方式，比如“同意”时，则跳出某几条路径（或者自动选择某条路径），而当“不同意”的时候，则跳出另外的路径（或自动选择某条路径）；同时，用户选择的决定性意见也可以保存到数据库中（Task 的 decisiveOpinion 属性中），参与业务计算。
在 BroBPM 中，决定性意见的配置包括：
环节属性决定性意见（decisiveOpinions）：多个决定性意见之间用分号分割，每个决定性意见长度不超过20个字
路径属性decisiveOpinion：多值以分号分隔。当环节配置有多条决定性意见、且提交方式为“统一”或者“平铺分组”时可用。
环节属性 sendbackDecisiveOpinions：自动生成的“退回上一环节”路径的决定性意见
环节属性 sendbacktodrafterDecisiveOpinions：自动生成的“退回起草人”路径的决定性意见

示例一
环节上设置决定性意见属性：decisiveOpinions，多个决定性意见之间用分号分割，每个决定性意见长度不超过20个字：
<task-node decisiveOpinions=”同意;不同意”></task-node>
提交时，显示界面如下所示：

示例二
提交方式必须是分组（submitMode=’group)’，只有选择了决定性意见后才能显示路径，分组的多条路径上至少有一条需要配置决定性意见属性，否则选择后出来的还是所有路径，例如：
<task-node decisiveOpinions=”同意;不同意” submitMode=”group” sendback=”true” sendbacktodrafter=”true”>
   <transition to=”部长审批” />
   <transition to=”科长会签” />
</task-node>
或：
<task-node decisiveOpinions=”同意;不同意” sendback=”true” sendbacktodrafter=”true”
        submitMode=”group|协助办理=/会签$/;通过=/^((?!(退回|会签)).)*$/;不通过=/^退回/” >
   <transition to=”部长审批”/>
   <transition to=”科长会签”/>
</task-node>
如果路径上不配决定性意见属性，选择”同意”或“不同意”均显示如下：

示例三
指向环节的路径、或指向网关的路径上，设置对应的决定性意见属性，多个意见之间用分号分割。
指向环节的路径：
<task-node decisiveOpinions=”同意;不同意”>
   <transition to=”部长审批” decisiveOpinion=”同意”/>
   <transition to=”不同意并送科长审批” decisiveOpinion=”不同意” />
</task-node>
选中上图中的”同意”后显示如下：
而选中“不同意”后，则仅显示路径“不同意并送科长审批”。
指向网关的路径：
注意只能在网关的入口路径（下面代码的to=”部长审批”）上配置决定性意见，配置在网关的出口路径上（即下面gateway中的路径上）不生效。
<task-node decisiveOpinions=”同意;不同意”>
   <transition to=”部长审批” decisiveOpinion=”同意”/>
</task-node>
<gateway name=”部长审批”>
   <transition to=”需求调研人员审批” />
   <transition to=”OA系统开发科科长审批” />
   <transition to=”起草人反馈”/>
</gateway>
选中“同意”的决定性意见后，“提交路径”中仅显示路径“部长审批”。

示例四
如果路劲上没有配置决定性意见属性，则默认和环节上的决定性意见一致，即选中各个决定性意见后都会出现该条路径：
<task-node decisiveOpinions=”同意;不同意” submitMode=”group” sendback=”true” sendbacktodrafter=”true”>
   <transition to=”部长审批” decisiveOpinion=”同意” />
   <transition to=”科长会签” decisiveOpinion=”不同意”/>
   <transition to=”起草人反馈”/>
</task-node>
则不论是选择同意还是不同意，路径“送起草人反馈”都会出现在“提交路径”的列表框中。

示例五
由于默认的”退回上一环节”、”退回起草人”的路径可以直接在环节上配置出来的（不需要在图上画连接线），因此环节上会有 sendbackDecisiveOpinions、sendbacktodrafterDecisiveOpinions 这两个属性用来配置各自属于哪种决定性意见：
<task-node decisiveOpinions=”同意;不同意” submitMode=”group” sendback=”true” sendbacktodrafter=”true”
       sendbackDecisiveOpinions=”不同意” sendbacktodrafterDecisiveOpinions=”不同意”>
   <transition to=”部长审批” decisiveOpinion=”同意” />
   <transition to=”科长会签” decisiveOpinion=”同意”/>
</task-node>
选择“不同意”后，显示如下：