Odoo 一个空格引发的bug修复 - 苏州远鼎外包遗留问题

昨天仓库那边发来一张bug截图


Odoo 一个空格引发的bug修复 - 苏州远鼎外包遗留问题_第1张图片
1501065258893.jpg

可以看到是
/odoo/custom/addons/ydit_main/xgyh.py 第186行引发的bug
end传入了一个Q31700023778的不能转换int的值

这个ydit_main是苏州远鼎开发的,具体代码我还没看,一个文件大概写了3000多行,比较乱。
之前在186行报过一次bug,可能是修复的不完整

Odoo 一个空格引发的bug修复 - 苏州远鼎外包遗留问题_第2张图片
QQ20170727-111741.jpg

下面我们来演示一次odoo debug过程。

先确定了一下 具体的错误引发点

Odoo 一个空格引发的bug修复 - 苏州远鼎外包遗留问题_第3张图片
1501065436740.jpg

我们的条码 YQ3是店铺的前缀
后10位为产品的条码

Odoo 一个空格引发的bug修复 - 苏州远鼎外包遗留问题_第4张图片
QQ20170727-110613.jpg

把线上的数据库恢复到测试环境

Odoo 一个空格引发的bug修复 - 苏州远鼎外包遗留问题_第5张图片
QQ20170727-112035.jpg

新建库名称为xgyh20170727

由于这个dump是不带data文件的,所以我们直接复制一份同名的目录

Odoo 一个空格引发的bug修复 - 苏州远鼎外包遗留问题_第6张图片
QQ20170727-112249.jpg

完成后就可以在测试环境中调式了
为了方便 这里使用print输出调式

问题复现


Odoo 一个空格引发的bug修复 - 苏州远鼎外包遗留问题_第7张图片
QQ20170727-113654.jpg

错误后 导致批次列表为空

Odoo 一个空格引发的bug修复 - 苏州远鼎外包遗留问题_第8张图片
QQ20170727-114145.jpg

正常状态下的列表

Odoo 一个空格引发的bug修复 - 苏州远鼎外包遗留问题_第9张图片
QQ20170727-114308.jpg

添加print语句

Odoo 一个空格引发的bug修复 - 苏州远鼎外包遗留问题_第10张图片
QQ20170727-114539.jpg

启动服务器调式

Odoo 一个空格引发的bug修复 - 苏州远鼎外包遗留问题_第11张图片
QQ20170727-114619.jpg

最终发现是lot_name 有空的prefix导致的问题。
临时修复 在数据里改数据 去除空格


Odoo 一个空格引发的bug修复 - 苏州远鼎外包遗留问题_第12张图片

代码修复建议
在输入序列号时添加长度验证代码

总结
非常小的bug,就导致作业流程失败,所以在编写ERP代码时需要考虑全面,多多测试。

你可能感兴趣的:(Odoo 一个空格引发的bug修复 - 苏州远鼎外包遗留问题)