如何根据提报单分录信息决定工作流走向
【适用版本】
s-HR Cloud V8.6 SP1及以上
【应用场景】
提报单流程设计中,时常会面临要根据提报单分录字段值确定流程走向的需求。提报单特殊的地方在于,提报单分录包含哪些字段取决于提报方案,不能直接通过实体属性获取。因此,面对这一问题,需要通过后置脚本来取分录字段值,以便用于流程设计。
【操作步骤】
1、创建一个流程变量(例如命名为flag),后续将用这个流程变量决定流程走向
2、后置脚本准备
步骤1:获取提报单分录所在的表。在查询分析器中执行以下SQL(注意修改提报方案编码):
SELECT rel.FBillEntryTableName
FROM T_HR_SCalShemeTableRelation rel
inner join T_HR_SCalSubmitScheme sc on rel.FSubmitSchemeID = sc.fid
where sc.FNumber = '提报方案编码'
例如,下图得到的分录表名为:T_HR_SchemeBillEntry024cmp
步骤2:获取分录字段名名称。在查询分析器中执行以下SQL(注意修改提报项目编码):
select FieldSn from T_HR_SCalSubmitItem where FNumber ='提报项目编码'
用字母[S]和查询到结果得到的数字凭借,就得到了分录提报项目的字段名称。以下图为例,得到的字段名为:S72
3、在自动化节点编写后置脚本,以提报项目【网络费】累计值是否大于1000为例给流程变量flag赋值:
StringBuffer sql = new StringBuffer(); // 注意,这条sql中的[S72]和表名[T_HR_SchemeBillEntry024cmp]是第二步准备好的 sql.append( "select S72 from T_HR_SchemeBillEntry024cmp where FBillId = '" +billId+"'"); com.kingdee.jdbc.rowset.IRowSet row= com.kingdee.eas.util.app.DbUtil.executeQuery(__bosContext,sql.toString()); var sumVal = 0; while (row.next()) { var val = row.getDouble("S72") ; sumVal += val; } if (sumVal < 1000.0) { flag = 1; } else { flag = 2; }
4. 在流程中使用flag作为流程走向的判断标准
【注意事项】
编写后置脚本需要具备一定的编程能力,本文仅仅提供的是编写脚本的的格式和方法,不针对实际的业务流程。
如何根据提报单分录信息决定工作流走向
本文2024-09-22 21:12:32发表“s-hr cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-shr-118614.html