金蝶云星空——Webapi保存接口同时自动审核

1. 问题

期望在调用金蝶Webapi接口的新增单据的时候,同时完成提交、审核操作

2. 解决方案

webapi保存接口有个参数 IsAutoSubmitAndAudit,用来在保存时自动提交和审核,传入保存JSON数据时传入此参数设置为true即可实现自动提交审核。

说明:为了减少接口调用,简化接口使用,但在实践中很多单据在使用此参数时会导致事务已中止的问题,这是因为此三个动作都封装在一个事务中,而每个动作又有自己的事务,事务之间相互影响,极易出问题和事务超时等。由于反馈的问题太多,单据的业务逻辑比较复杂,所以在单据保存时,不推荐使用此参数,基础资料一般还可以使用,此参数在WEBAPI说明中已经隐藏,但是目前还是可以使用,建议慎用!

处理:如果使用此参数遇到说明中的问题,建议把保存接口拆成保存,提交和审核三个动作进行调用,这样可以进一步分析是哪个步骤出现的问题。

  • webapi实现单据保存提交和审核
    • 其实这篇文章中的示例,只是分步骤调用保存,保存接口返回成功后调用提交接口,提交接口返回成功调用审核接口。
    • 如果是为了保证事务的一致性,在调用每一步接口出现异常,后都要将调用相反的接口,进行逆操作。比如:审核接口失败后,那就要回滚到保存接口之前的状态
    • 如下可以使用金蝶中的事务:
using (var transactionScope = new KDTransactionScope(TransactionScopeOption.Required)))
{
  try
  {
    //执行插入代码
    transactionScope.Complete();
  }
  catch (Exception ex)
  {
    Console.WriteLine("发生异常,回滚事务: " + ex.Message);
    transactionScope.Rollback();
  }
}

注意:参数 IsAutoSubmitAndAudit ,官方在教程中已隐藏了这个参数,不过,这个参数仍然是可以使用的。 官方特别不建议启用这个参数

3. 参考

posted @   shanzm  阅读(121)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
TOP
点击右上角即可分享
微信分享提示