【EAS工作流】使用工作流角色参与人函数获取参与人原创
金蝶云社区-汪伟康
汪伟康
14人赞赏了该文章 144次浏览 未经作者许可,禁止转载编辑于2024年10月17日 09:46:13
summary-icon摘要由AI智能服务提供

本文介绍了在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


image.png

image.png


5、将spr变量配置到参与人配置中即可


图标赞 14
14人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0