获取电子面单表单插件可重写方法汇总

供应链领域的销售模块集成了快递100功能,其中的获取电子面单是一个最常用但又最复杂的功能,也是通版不能完全覆盖所有客户需求的地方(标准功能不管如何迭代产品,都是无法涵盖所有需求)。因此标准功能考虑了部分二开需求,并提供了多个可重写逻辑的方法,本文简单介绍下2024年之后的版本中的获取电子面单可重写的方法及二开应用案例。
获取电子面单的标准插件名为Kingdee.K3.SCM.Sal.Business.PlugIn.GetKuaidiBillEdit(在应用程序集文件Kingdee.K3.SCM.Sal.Business.PlugIn.dll 中),GetKuaidiBillEdit插件里面提供很多可重写的方法,其中绝大部分可重写的方法名都是以Custom**开发的,反编译如下图1-1所示(红框内为可重写的方法):

图1-1
1,CustomHandleExpressNo(Context contxt, Dictionary<int, GetKuaidiBillResult> results)
本方法用于自定义快递100申请电子面单成功后的相关逻辑(不适用快递管家订单导入),results参数是一个以获取电子面单动态表单中的序号(此序号从1开始递增)为KEY,电子面单申请结果为VALUE的字典。GetKuaidiBillResult类中有是否成功(IsSucceed属性),失败信息(ErrorMessage属性),申请成功后电子面单(SuccessDataEnity属性,此属性里面是星空电子面单基础资料,里面保存有关联的单据编号,物流单号,收发件人等信息)等相关信息。这个方法重写的一种应用场景是如果有第三方单据想要申请快递100电子面单,那么在这个方法里面就可以处理一些把物流单号写回到第三方单据上的逻辑。
2,CustomPopulateDataFromBillView(string formId, int rowIndex, IBillView billView)
此方法用于从销售单据/单据列表跳转到获取电子面单界面时如何自定义填充'获取电子面单'数据的逻辑,其中参数formId是单据标识,rowIndex是获取电子面单当前基于0的行号,billView是单据视图对象。客户如果想在第三方单据上跳转到获取电子面单界面,则可以在第三方单据表单插件/列表插件中的某个按钮事件处理程序中先调用工具类方法 Kingdee.K3.SCM.Sal.Business.PlugIn.Kuaidi.KD100Tool.SkipToGetKD100Bill(this.View); 然后重写CustomPopulateDataFromBillView方法,在重写方法中通过billView中的Model.DataObject属性可以获取到单据的相关数据。
3,CustomPopulateRowData(Kuaidi100Parameter parameter, ListSelectedRow row, int rowIndex)
本方法与上面的方法2类似,只不过这个方法只适用于在'获取电子面单'界面中选择某种单据后的自定义填充逻辑,通版在此方法前就已经对相关字段(比如收件人,寄件人等)有默认填充逻辑,如果这种默认逻辑不合客户实际需求,则可以在此方法中覆盖通版逻辑。
4,CustomResetBaseData(Context contxt, DynamicObject baseData, DynamicObject dynamicObject)
此方法是快递100申请电子面单或快递管家订单导入成功后(此方法预计在2024年1月版本才有,其它可重写的方法在2023年10月版本前就已经陆续提供了),自定义电子面单基础资料数据的可重写方法。baseData就是星空电子面单基础资料,在此方法中修改它的相关字段信息最终会导致生成的电子面单相关字段也跟着修改(一些快递100电子面单
获取电子面单表单插件可重写方法汇总
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



