WebAPI--审核和反审核接口工作流验证问题原创
12人赞赏了该文章
1,710次浏览
编辑于2024年06月28日 15:23:08
一、说明:
1)通过提单反馈,发现很多这样的问题:单据已审核,工作流程终审节点还未处理。这样流程将无法正常结束,其中一个常见的原因就是WEBAPI同步单据到星空时直接调用API的传统审核接口(Audit)将单据直接审核了。
2)为了保障工作流的正常运行,从2023年11月份补丁起,已把传统审核接口改成默认验证工作流信息,如果单据在流程中,将不能直接调传统审核接口。建议您根据需求来配置流程,如果WEBAPI同步单据不需要启动工作流,建议在流程配置中心设置启动条件,例如API同步的用户创建人是特定的,可以用创建人做i条件
如果WEBAPI同步的单据提交了流程也需要API来审核,请参考:https://vip.kingdee.com/article/53430522420333824?productLineId=1,调工作流的审核接口。
3)如果客户环境确实需要在单据提交流程后,直接调传统审核接口,并且有些特殊原因暂时无法修改代码,为此特写此示例,通过插件干预的方式跳过工作流验证。
4)但是后续大家在使用时还是应该按规范处理,挂了工作流实例的单据如果传统审核接口审核不通过,并且错误,应该去调用工作流的审批接口处理。
二、通过插件干预,跳过工作流信息验证
1)扩展需要审核的单据,在表单插件中加入下面python脚本,
import clr clr.AddReference("Kingdee.BOS.Core") clr.AddReference("Kingdee.BOS") clr.AddReference("Newtonsoft.Json") from Kingdee.BOS.Core.Bill.PlugIn import * from Kingdee.BOS.Core.Bill.PlugIn.Args import * from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import * from Kingdee.BOS import * from Kingdee.BOS.JSON import * from Newtonsoft.Json import * from Kingdee.BOS.Core.DynamicForm.PlugIn import * def OnBeforeWebApiOperation(e): if e.WebContext.FormOperation.Operation == "Audit" or e.WebContext.FormOperation.Operation == "UnAudit": reqJson = JSONObject.Parse(str(e.WebContext.RequestDTO)); reqJson["IsVerifyProcInst"] = False e.WebContext.RequestDTO = JsonConvert.SerializeObject(reqJson)
,如下图。
三、调用工作流WEBAPI接口
1、https://vip.kingdee.com/article/53430522420333824?productLineId=1
赞 12
12人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读