App层插件,如何调用提交(Submit)操作,ISubmit.Submit()
金蝶云社区-Running
Running
1人赞赏了该文章 133次浏览 未经作者许可,禁止转载编辑于2023年10月23日 19:35:16

Ø  运行在App层的插件

    包括操作插件、单据转换插件、反写插件、账表取数插件等,此类插件掌控着某种特定服务的执行过程,与交互界面无关;


Ø  实现思路

    调用Kingdee.BOS.App.dll组件提供的ServiceHelper类所提供的GetService泛型方法,获取提交服务,调用提交服务的Submit方法

 

Ø  插件准备

    插件工程引用Kingdee.BOS.App.dll、Kingdee.BOS.Contracts.dll、Kingdee.BOS.DataEntity.dll

    类文件引用相关命名空间,详见示例代码

 

Ø  ISubmit.Submit接口介绍

    ISubmit类提供了1个Submit方法,调用此方法模拟提交操作的服务端服务全过程,即修改单据状态、执行提交服务端服务,执行提交服务端插件,最后执行Orm保存数据到数据库

 

Ø  示例代码

C#


using   Kingdee.BOS.Contracts;

using   Kingdee.BOS.Core.DynamicForm.PlugIn;

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

using   Kingdee.BOS.Core.Metadata;

using   System;

using   System.Collections.Generic;

using   System.Linq;

using   System.Text;

using   System.Threading.Tasks;

 

namespace MyOperaionServicePlugIn

{

    public class Class2 : AbstractOperationServicePlugIn

    {

        public override void BeforeExecuteOperationTransaction(

BeforeExecuteOperationTransaction e)

        {

            //例如:提交id10001的物料数据

            //获取提交服务

            ISubmitService submitService =   Kingdee.BOS.App.ServiceHelper.GetService<ISubmitService>();

            //获取元数据服务

            IMetaDataService metadataService =   Kingdee.BOS.App.ServiceHelper.GetService<IMetaDataService>();

            //获取物料元数据

            FormMetadata materialMetadata   = metadataService.Load(this.Context, "BD_Material") as FormMetadata;

            //执行提交服务

            submitService.Submit(

                this.Context,

                  materialMetadata.BusinessInfo,

                new object[] { 10001 },

                "Submit");

        }

    }

}


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

作者:张晋博、丁振华

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

图标赞 1
1人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0