本文介绍了在EAS系统中,由于传统工作流角色参与人配置的限制,无法直接使用单据实体/分录之外的组织字段来匹配工作流角色。为解决此问题,系统新增了根据工作流角色编码和组织ID获取参与人的函数,并提供了配置案例。案例包括定义流程变量、输出单据内码到变量、编写脚本为组织ID赋值、配置工作流函数节点以及将结果配置到参与人配置中。
问题背景:传统工作流角色参与人配置必须选择单据实体/分录对象上的某个组织字段作为匹配工作流角色的行政组织,但是很多业务/客户需求是单据实体/分录之外的组织字段用来匹配,这样就没办法实现,于是后面提供了可以传入组织id变量的工作流角色参与人函数来获取满足条件的参与人。
EAS环境准备:
EAS861:PT174788
EAS8.8: PT175622
EAS9.0SP1: PTM177509
配置案例:
1、定义流程变量
定义 内码类型变量 单据ID 如:billId
定义 外部数据类型变量 行政组织ID 如:orgIds
定义 外部数据类型变量 审批人ID 如:spr
定义 字符串类型变量 工作流角色编码 如:roleNumbers ,并且直接维护初始值。
2、在单据提交节点-任务-输出单据明细 -将单据内码 输出到 billId变量
3、编写脚本,用来给行政组织ID orgIds 赋值。
即:将如下脚本放在提交节点的 后置脚本中即可。
java . lang . StringBuffer Sql = new java . lang . StringBuffer ( ) ;
Sql . append ("select fadminorgunitid from t_hr_scmpcaltable where fid in (select fcaltableid from t_hr_scmpcaltablewfrecord where fcmpsendbillid='"+billId+"')");
com.kingdee.jdbc.rowset.IRowSet rs= com.kingdee.eas.util.app.DbUtil.executeQuery (__bosContext,Sql.toString());
java . util . ArrayList list1 = new java . util . ArrayList ( ) ;
while ( rs . next ( ) ) {
list1 . add ( rs. getString (1) ) ;
}
if(list1.size()>0){
orgIds= new String [ list1 . size ( ) ] ;
for ( int i = 0 ; i < list1 . size() ; i ++ ) {
orgIds[ i ] = list1 . get ( i ) . toString ( ) ;
}
}
4、此时我们可以开始配置工作流函数节点
打开函数节点-任务-参与人函数-参与人相关-选择【根据工作流角色编码以及行政组织ID获取参与人】,
我们需要配置3个输入参数和1个输出参数,
输入参数1:角色编码 绑定变量 roleNumbers
输入参数2:组织ID 绑定变量 orgIds
输入参数3:单据ID 绑定变量 billId
输出参数: 结果 绑定变量 spr
5、将spr变量配置到参与人配置中即可
您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!
请选择打赏金币数 *