二开案例.单据插件.WebApi保存单据失败后暂存单据

【应用场景】
WebApi保存单据失败后,暂存单据。
【案例演示】
采购订单,WebApi保存单据失败后,暂存单据。
正常情况下,保存失败,接口内部不会暂存单据,只会返回操作失败的响应数据。

【实现步骤】
<1>编写表单插件,代码如下。
using Kingdee.BOS;
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.Bill.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Validation;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using System.ComponentModel;
using System.Linq;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【单据插件】WebApi保存单据失败后暂存单据
/// </summary>
[Description("【单据插件】WebApi保存单据失败后暂存单据"), HotUpdate]
public class DraftBillAfterSaveFailedBillPlugIn : AbstractBillPlugIn
{
public override void AfterSaveFailed(AfterSaveFailedEventArgs e)
{
base.AfterSaveFailed(e);
if (Context.ClientType == ClientType.WebApi)
{
if (e.OperationResult.ValidationErrors.Any(o => o.Message.Contains("违反字段唯一性要求:编码唯一")))
{
// 编码重复,暂存单据
var result = BusinessDataServiceHelper.Draft(this.Context, this.View.BillBusinessInfo, this.Model.DataObject);
// 执行暂存操作后,将执行结果写入WebApi保存接口的返回数据包中。
var validationErrorInfo = new ValidationErrorInfo(
"###",
this.Model.DataObject["Id"].ToString(),
0,
0,
"E2",
"单据暂存" + (result.IsSuccess ? "成功" : "失败"),
"",
Er二开案例.单据插件.WebApi保存单据失败后暂存单据
【应用场景】WebApi保存单据失败后,暂存单据。【案例演示】采购订单,WebApi保存单据失败后,暂存单据。正常情况下,保存失败,接口内部不...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



