金蝶云星空单据转换插件-二开(协同开发云六)
参考:
金蝶云星空服务端基础资料赋值-公共方法 - 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)单据转换后事件