App层插件,如何调用反审核(UnAudit)操作
金蝶云社区-Running
Running
1人赞赏了该文章 298次浏览 未经作者许可,禁止转载编辑于2023年10月23日 19:45:45

Ø  运行在App层的插件

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


Ø  实现思路

    调用Kingdee.BOS.App.dll组件提供的ServiceHelper类提供的GetService泛型方法,获取改变单据状态服务,调用此服务提供的SetBillStatus方法

 

Ø  插件准备

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

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

 

Ø  接口介绍

    SetBillStatus方法与SetStatus方法看上去类似,其实完全不一样,其参数列表也完全不一样,调用单据审核操作的服务端要使用SetBillStatus方法,SetStatus方法后续介绍

 

Ø  SetBillStatus方法参数介绍

名称

类型

说明

ctx

Context

系统上下文全局信息

businessInfo

BusinessInfo

待审核\反审核数据的元数据描述信息

pkEntryIds

List<KeyValuePair<objectobject>>

待审核\反审核数据的id集合,此场景key和value都是id的值

paras

List<object>

审核\反审核时附加的参数,包含两个值,第一个,同意与否,0:驳回;1:通过;2:反审核;第二个,审核意见,此参数默认可以为空

operationNumber

string

审核\反审核操作的操作码

option

OperateOption

额外业务选项,审核\反审核服务端服务和服务端插件都持有此对象

 

 

Ø  示例代码

C#


using   Kingdee.BOS.Contracts;

using   Kingdee.BOS.Core.DynamicForm;

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 Class3 : AbstractOperationServicePlugIn

    {

        public override void BeforeExecuteOperationTransaction(

BeforeExecuteOperationTransaction e)

        {

            //审核\反审核id10001的物料数据

            //获取单据状态转换服务

            ISetStatusService setStatusService   = Kingdee.BOS.App.ServiceHelper.GetService<ISetStatusService>();

            //获取元数据服务

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

            //构建id10001的数据集合

            List<KeyValuePair<object, object>>   lstKeyValuePairs = new List<KeyValuePair<object, object>>();

            KeyValuePair<object, object> keyValuePair   = new KeyValuePair<object, object>(10001, "");

              lstKeyValuePairs.Add(keyValuePair);

            //获取物料元数据

            FormMetadata materialMetaData   = metaDataService.Load(this.Context, "BD_Material") as FormMetadata;

 

            //反审核

            IOperationResult unAuditResult =   setStatusService.SetBillStatus(

                this.Context,

                  materialMetaData.BusinessInfo,

                lstKeyValuePairs,

                null,

                "UnAudit");

        }

    }

}


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

作者:张晋博、丁振华

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

赞 1