电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

如何覆盖快递100电子面单参数

来源:金蝶云社区作者:金蝶2024-09-2324

如何覆盖快递100电子面单参数

    星空供应链领域下的销售模块集成的快递100和快递管家功能不是万能的,满足不了所有客户的需求。例如,现阶段就不满足根据登录用户配置设备码。目前最新的功能只支持按物流公司和组织机构来隔离设备码,如下图1-1配置所示:

image.webp

图1-1


    那如何根据登录用户配置设备码呢?这种情况可以通过反编译工具(比如dnSpy,.Net Reflector)反编译程序集'Kingdee.K3.SCM.Sal.Business.PlugIn.dll'并修改通版插件‘Kingdee.K3.SCM.Sal.Business.PlugIn.GetKuaidiBillEdit’中的方法‘CommonCheckParameter’,在方法中自行处理参数对象中的设备码赋值逻辑。但是这种处理方式比较复杂,容易出错且每次更新补丁时都会被通版覆盖。下面介绍另一种比较方便的方法:

    在即将发布的版本中(注:2021.5.13号发布的版本中已经包含此功能),会修改通版中的‘获取电子面单’配置的动态表单插件‘Kingdee.K3.SCM.Sal.Business.PlugIn.GetKuaidiBillEdit’,在其中公开属性‘Kuaidi100Parameter’,此属性在通版中的逻辑是打开'获取电子面单'界面就会赋值(在AfterBindData中读取参数配置),客户可二开继承此插件,假设二开插件类名为GetKuaidiBillEditExtend,继承通版插件类后重写AfterBindData,在重写的方法中先调用通版的AfterBindData方法再自行定义逻辑,然后在BOSIDE中的‘获取电子面单’动态表单禁用通版的插件,启用二开的插件即可, 如下图1-2所示:

image.webp

图1-2


    上图右侧中的项目引用也需要注意下,图中的代码文本如下所示:

public override void AfterBindData(EventArgs e)
{
    base.AfterBindData(e);  //基类AfterBindData会根据快递100参数配置自动填充属性 Kuaidi100Parameter
    //在基类填充数据之后重新设置码
    if (this.Kuaidi100Parameter != null && this.Kuaidi100Parameter.KuaidiComSettings != null)
    {
        string deviceCode = "abcd"; //假设设备码为abcd,如果要根据当前登录用户获取设备码,可使用以下属性获取登录信息并自行获取设备码信息,
        //this.Context.UserId;  //当前登录用户
        //this.Context.UserName
        foreach (var item in this.Kuaidi100Parameter.KuaidiComSettings)
        {
            item.Devi

如何覆盖快递100电子面单参数

星空供应链领域下的销售模块集成的快递100和快递管家功能不是万能的,满足不了所有客户的需求。例如,现阶段就不满足根据登录用户配置...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信