Web层插件,如何调用保存(Save)操作,BusinessDataServiceHelper.Save()
金蝶云社区-Running
Running
4人赞赏了该文章 712次浏览 未经作者许可,禁止转载编辑于2023年10月23日 19:27:51

Ø  运行在Web层的插件

    包括动态表单插件、单据编辑插件、基础资料编辑插件、列表插件等,控制着交互界面;

Ø  实现思路

    调用BusinessDataServiceHelper类提供的Save方法

Ø  插件准备

    插件工程引用Kingdee.BOS.ServiceHelper.dll组件

    类文件引用BusinessDataServiceHelper类所在的命名空间Kingdee.BOS.ServiceHelper

 

Ø  BusinessDataServiceHelper.Save方法介绍

    BusinessDataServiceHelper提供4个Save方法,看上去差不多,其实本质有区别,可以将这4个方法区分为2类方法

  • 直接调用Orm把数据保存到数据库

    public static DynamicObject Save(Context ctx, DynamicObject dataObject)

    public static DynamicObject[] Save(Context ctx, DynamicObject[] dataObject)


  • 模拟保存操作服务端完整过程,调用填充主键、生成单据编号,执行校验器,调用服务端服务与服务端插件,最后调用Orm把数据保存到数据库

    public static DynamicObject[] Save(Context ctx, BusinessInfo businessInfo, DynamicObject[] dataObject, string operationNumber)

    public static IOperationResult Save(Context ctx, BusinessInfo businessInfo, DynamicObject dataObject, OperateOption option = null, string operationNumber = "")

 

Ø  Save方法参数介绍

名称

类型

说明

ctx

Context

系统全局信息,这里主要使用全局信息中的数据库连接信息

dataObject

DynamicObject

待保存的数据对象

businessInfo

BusinessInfo

待保存数据对象的元数据信息

option

OperateOption

自定义额外参数对象,服务端服务和服务端插件都能持有此对象

operationNumber

string

当前操作的操作码

 

Ø  示例代码

C#


using   Kingdee.BOS.Core.Bill.PlugIn;

using   Kingdee.BOS.Core.DynamicForm.PlugIn.Args;

using   Kingdee.BOS.ServiceHelper;

using   System;

using   System.Collections.Generic;

using   System.Linq;

using   System.Text;

using   System.Threading.Tasks;

 

namespace MyDynamicFormPlugIn

{

    [System.ComponentModel.Description("区分当前类应用在哪个模型上")]

    public class Class2 : AbstractBillPlugIn

    {

        public override void ButtonClick(ButtonClickEventArgs e)

        {

            //直接调用Orm保存,把数据保存到数据库

            BusinessDataServiceHelper.Save(this.Context, this.View.Model.DataObject);

            //执行保存服务端服务和保存操作的服务端插件

            BusinessDataServiceHelper.Save(this.Context, this.View.BusinessInfo, this.View.Model.DataObject);

        }

    }

}


本文转载自:《K/3 Cloud BOS 插件开发百问百答》

作者:张晋博、丁振华

原文链接:https://open.kingdee.com/K3Cloud/Wenku/DocumentView.aspx?docId=117527

赞 4