电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

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

来源:金蝶云社区作者:金蝶2024-09-2312

二开案例.单据插件.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格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信