使用工作流打回功能到提交节点导致预算返回金额异常
最近有很多用户反馈使用工作流在审批节点配置的打回功能(不重走流程)会导致申请单关联生成报销单提交报错:上游单据分录可用余额大于了核定金额,
问题根源在于:报销这边业务在提交时会先返还预算再经过预算扣减节点扣减相关预算金额,工作流的打回不重走流程在提交后会直接又跳转到之前打回节点,不会再次经过预算扣减节点导致预算多返还一次。
如果现场希望使用工作流打回功能不重走流程的话可以在提交节点后置脚本中加入以下参考代码:
java.lang.StringBuffer sql =new java.lang.StringBuffer();
sql.append("SELECT fid FROM T_BAS_OPTION where Ftype = 0 and FBILLID = '");
sql.append(id);
sql.append("'");
java.sql.Connection con = null ;
java.sql.Statement batchStatement = null;
try {
con = com.kingdee.bos.framework.ejb.EJBFactory.getConnection(__bosContext);
batchStatement = con.createStatement();
com.kingdee.jdbc.rowset.IRowSet rowset = (IRowSet) batchStatement.executeQuery(sql.toString());
if(rowset != null && rowset.size() >= 1){
com.kingdee.eas.cp.bc.BizCollBillBaseInfo bill = com.kingdee.eas.cp.bc.BizAccountBillFactory.getLocalInstance(__bosContext).getBizAccountBillInfo("where id='"+id+"'");
bgState = com.kingdee.eas.cp.bc.ExpenseCommenFacadeFactory.getLocalInstance(__bosContext).bgAudit(id, bill);
}
} catch (Exception e) {
e.printStackTrace();
} finally{
com.kingdee.util.db.SQLUtils.cleanup(batchStatement, con);
com.kingdee.util.db.SQLUtils.cleanup(con);
}
上面脚本中sql语句主要是判断流程中是否使用了打回操作,中间比较重要的是调用了报销这边预算扣减接口,由于后置脚本会在提交后执行,因此不需要再通过预算扣减节点(未使用打回功能不会调用接口走正常预算扣减节点即可)此脚本主要作为一个参考,未经过充分验证,如果要使用的话建议先在测试环境操作,如果有更好处理方式或者判断逻辑可以在云之家联系我。
修改金额如何让核定金额联动呢
使用工作流打回功能到提交节点导致预算返回金额异常
本文2024-09-16 22:02:28发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-45552.html