//update脚本模板 var Sql = new java.lang.StringBuffer(); var dateFormat =new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); var date = dateFormat.format(new java.util.Date()); //要执行的sql,具体sql需要对应业务模块老师指导编写 Sql.append ("UPDATE T_CAS_PaymentBill SET FBillStatus =8 ,FApproverID = '"+sprId +"', FApproveDate = {ts'"+date+"'} WHERE FID = '"+billId+"'"); //执行sql com.kingdee.eas.util.app.DbUtil.execute(__bosContext,Sql.toString());
【EAS工作流】工作流脚本案例--修改单据表数据原创
19人赞赏了该文章
579次浏览
编辑于2024年03月14日 09:38:32
问题背景:客户想要在流程中配置自动节点(如:XX单据-审核通过)实现XX单据数据的更新,这里可以选范围是业务的function元数据,业务如果没有开发对应功能那么就选不到。
根本解决方法:提需求到业务模块开发对应操作的function即可。
临时变通处理:通过工作流脚本执行sql来更新单据数据
配置案例如下(实现功能:修改单据的状态为已审核,单据的审核人为流程中某个审批人,审核时间为当前时间):
1、定义内码类型流程变量billId和sprId
注:billId用来接收单据id的值,sprId用来接收某个节点审批人id的值,最终将这两个变量用来拼接到sql中。
2、在 【单据提交】节点 -【任务】中将单据id字段输出到billId中
3、在 某个审批节点(你需要谁来作为单据的审核人就找那个人对应的审批节点)- 【任务】- 将审批人内码输出到 sprId中
4、添加一个脚本节点 到流程中,用连接弧连接好之后,将脚本维护到任务中
由于涉及到日期字段,如果是oracle数据库,脚本参考如下:
由于涉及到日期字段,如果是sql server 数据库,脚本参考如下:
//update脚本模板 var Sql = new java.lang.StringBuffer(); var dateFormat =new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); var date = dateFormat.format(new java.util.Date()); //要执行的sql,具体sql需要对应业务模块老师指导编写 Sql.append ("UPDATE T_CAS_PaymentBill SET FBillStatus =8 ,FApproverID = '"+sprId +"', FApproveDate = '"+date+"' WHERE FID = '"+billId+"'"); //执行sql com.kingdee.eas.util.app.DbUtil.execute(__bosContext,Sql.toString());
5、保存,发布无问题就可以测试验证。
结束语:
该方案为临时变通处理,由于脚本是人为编写,可能会有错误,不方便维护,因此不能作为长期方案。
有需要请提需求到业务模块开发对应操作的function。
赞 19
19人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!