金蝶云星空——关于Webapi保存接口同时自动审核
- 问题
期望在调用金蝶Webapi接口的新增单据的时候,同时完成提交、审核操作
- 解决方案
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 ,官方在教程中已隐藏了这个参数,不过,这个参数仍然是可以使用的。 官方特别不建议启用这个参数
- 参考