金蝶云 python脚本调试
金蝶云 python脚本调试,通过断点调试可以轻松解决问题。
优点:
1.调试python与c#相比无需重启IIS。
2.测试脚本无需关闭界面重新打开,修改保存即为最新脚本。
3.部署插件无需重启IIS,脚本即时生效。
缺点:
1.金蝶云部分插件不支持。(例如:执行计划)
2.调试监视时多层对象容易超时锁死。(处理方法:停止调试,重新登录金蝶云)
3.断点时间过长容易超时锁死。(处理方法:停止调试,重新登录金蝶云)
4.无法加载python第三方模块,如调用接口等。(另有方法解决,后续介绍)
5.类型冲突,如python list 与 c# List(另有方法解决,后续介绍)
6.类型转换,如调用方法时,传参类型不同。(另有方法解决,后续介绍)
1.安装Visual Studio 2013
百度经验:https://jingyan.baidu.com/article/ab0b56305e8883c15bfa7d7a.html
2.下载IronPython
下载地址:https://download.csdn.net/download/weixin_39023606/12912338
3.下载python tools for visual studio工具
下载地址:https://archive.codeplex.com/?p=pytools
下载上述文件部署开发环境。当然也可以从其他地方下载到。
4.新建项目(环境准备)
1.新增项目
2.载入环境
3.选择环境
4.引入库
把所需要的dll复制到项目路径下。
5.调试准备
1.调试表单插件(调试什么类型插件注册对应的方法和位置)
以下代码借鉴于金蝶社区。
clr.AddReference('IronPython')
from IronPython.Hosting import Python
def wrap_d(f):
func_name = f.__name__
del f
def wrapper(e):
engine = Python.CreateEngine({'Debug': True})
scope = engine.CreateScope()
g = globals()
for v in ('this',):
scope.SetVariable(v, g[v])
engine.CreateScriptSourceFromFile(r'L:\开发\VSCLOUD\测试开发\IronPythonApplication1\IronPythonApplication1\IronPythonApplication1.py').Execute(scope)
return getattr(scope, func_name)(e)
return wrapper
@wrap_d
def AfterEntryBarItemClick(e):
pass
2.附加到进程
3.增加断点监视信息
到此调试金蝶云python脚本已完成。