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

国际电子面单添加自定义物流公司(Python编译C#代码试例)

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

国际电子面单添加自定义物流公司(Python编译C#代码试例)

    金蝶云星空供应链领域销售管理模块在2021年11月04日发布的补丁 PT-146894 [7.7.0.202111] 中添加了国际电子面单功能,通过菜单‘获取电子面单(国际)’可进入操作界面,其功能界面如下图1-1所示: 

image.webp

图1-1


    在 PT-146911 [8.0.0.202205] 之前的版本中,国际电子面单中的物流公司能选择的只有dhl, fedex, jet,后续快递100添加了新的物流公司,而金蝶云星空没有及时同步更新,导致一些国际物流公司不能输入(后续PT-146915 [8.0.0.202206]版本将支持新的物流公司)。如果客户不想升级,可参照本论坛,本文介绍一种用Python编译C#代码的二开方法处理相关逻辑。首先打开BOSIDE,在获取电子面单界面中注册Python插件,如下图1-2所示:

image.webp

图1-2


其中的Python代码如下所示:

clr.AddReference('System')
clr.AddReference('Kingdee.BOS')
from System import AppDomain
from System.IO import FileInfo
from System.Reflection import Assembly
from System.Reflection import BindingFlags
from System.CodeDom.Compiler import CompilerParameters
from Microsoft.CSharp import CSharpCodeProvider
from Kingdee.BOS.Core.Util import MD5Compute
from Kingdee.BOS.Cache import KCacheManagerFactory
refDlls = '''
Kingdee.BOS
Kingdee.BOS.App
Kingdee.BOS.App.Core
Kingdee.BOS.Business.DynamicForm
Kingdee.BOS.Business.PlugIn
Kingdee.BOS.BusinessEntity
Kingdee.BOS.Contracts
Kingdee.BOS.Core
Kingdee.BOS.DataEntity
Kingdee.BOS.Model
Kingdee.BOS.OrmEngine
Kingdee.BOS.ServiceHelper
Kingdee.BOS.Web
Kingdee.K3.Core
Kingdee.K3.SCM.Sal.Business.PlugIn
log4net
Newtonsoft.Json
System
System.configuration
System.Core
System.Data
System.Data.DataSetExtensions
System.Web
System.Xml
'''
code = '''
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.K3.SCM.Sal.Business.PlugIn;
namespace Kingdee.K3.SCM.Custom.BusinessPlugin
{
    public class CustomGuoJiGetKuaidiBillEdit : AbstractDynamicFormPlugIn
    {
        public override void AfterDoOperation(AfterDoOperationEventArgs e)
        {
            base.AfterDoOperation(e);
            this.View.ShowErrMessage("测试代码 CustomGuoJiGetKuaidiBillEdit:" + e.Operation.Operation.ToUpperInvariant());
            //以上只是一个测试代码
        }
        static CustomGuoJiGetKuaidiBillEdit()
        {
            if (GetKuaidiBillEdit.INTERNATIONAL_COMPANY_CODES != null)
            {
                GetKuaidiBillEdit.INTERNATIONAL_COMPANY_CODES.AddRange(new List<string>() { "shunfeng", "zhongtong" });
            }
        }
    }
}
'''
def CompileCode(code, refDlls):   
    refAsmNames = filter(lambda y: y != '', map(lambda x: x.strip(), refDlls.split()))
    try:
        kcmgr = KCacheManagerFactory.Instance.GetCacheManager('PyCodeGeneratorCache', 'PyCodeGeneratorCache')
    except:
        return None
    cacheKey = MD5Compute().MDString(code + '-'.join(refAsmNames))
    if(kcmgr.Get(cacheKey) is not None):
        return kcmgr.Get(cacheKey)
    cSharpCodePrivoder = CSharpCodePro

国际电子面单添加自定义物流公司(Python编译C#代码试例)

金蝶云星空供应链领域销售管理模块在2021年11月04日发布的补丁 PT-146894 [7.7.0.202111] 中添加了国际电子面单功能,通过菜单‘获...
点击下载文档文档为doc格式

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

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