Ø 运行在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
推荐阅读