金蝶云星空单据转换插件-二开(协同开发云六)

发布时间 2023-10-20 11:34:21作者: lanrenka

参考:

金蝶云星空服务端基础资料赋值-公共方法 - lanrenka - 博客园 (cnblogs.com)

 

背景:

bos界面的单据转换规则映射已经无法满足,需要插件完善。

 

业务需求:

采购价目表下推采购调价单时,默认名称为:定期+日期(格式:yyyyMMDDhhmmss)   调价原因为:定期调价

 

具体实现:

1、无项目先创建插件项目。

命名格式【开发商标识.K3.SCM.App.Service.PlugIn

 

2、修改生成路径

 

 

3、添加类PUR_PriceToPat(可以建一个转换插件的文件夹Convert),继承抽象类AbstractConvertPlugIn。【命名空间Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn】

 

 

using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn;
using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args;
using Kingdee.BOS.Core.Metadata.FieldElement;

  

4、重写转换后事件

 

            var billHead = e.Result.FindByEntityKey("FBillHead");      //目标单
            foreach (var item in billHead)
            {
                object date = item["CreateDate"];

                //FName
                item.DataEntity["Name"] = date.ToString();

                //单选辅助资料:调价原因:默认值
                BaseDataField reasonField = e.TargetBusinessInfo.GetField("FPaReason") as BaseDataField;
//参考 金蝶云星空服务端基础资料赋值-公共方法 - lanrenka - 博客园 (cnblogs.com) BOSCommon.SetBaseDataFieldValue(
this.Context, reasonField, item.DataEntity, "7590e08cf9064cdfbfe7e3a7fb0741e2"); }

 

BOSCommon:引用需看参考

5、编译项目

 

 

6、未二开过需先扩展

 

 

 

7、单据转换规则注册插件

 

 

 

 

 

8、启用转换规则并保存

 

 

其他事件:

OnInitVariable(InitVariableEventArgs e)初始化变量,可以得到转换规则,源单和目标单的BussinessInfo

OnQueryBuilderParemeter(QueryBuilderParemeterEventArgs e)解析字段映射关系,并构建查询参数。这里可以加入你想要的额外的字段

OnInSelectedRow(InSelectedRowEventArgs e)构建列表中选择数据行的查询条件语句

OnParseFilter(ParseFilterEventArgs e)解析过滤策略中配置的条件

OnGetSourceData(GetSourceDataEventArgs e)下推时,执行SQL,读取源单数据(下推执行)

OnBeforeGroupBy(BeforeGroupByEventArgs e)执行源数据分组前

OnCreateTarget(CreateTargetEventArgs e)根据源数据分组结果,初始化创建目标单据数据包(下推执行)

OnBeforeFieldMapping(BeforeFieldMappingEventArgs e)根据字段映射,向目标字段填充值之前

OnFieldMapping(FieldMappingEventArgs e)根据字段映射,向目标字段填充值

OnAfterFieldMapping(AfterFieldMappingEventArgs e)所有字段映射完成

OnCreateLink(CreateLinkEventArgs e)关联关系(Link表)创建前

OnAfterCreateLink(CreateLinkEventArgs e)关联关系(Link表)创建完成

AfterConvert(AfterConvertEventArgs e)单据转换后事件