昨天倉庫那邊發來一張bug截圖
1501065258893.jpg
可以看到是
/odoo/custom/addons/ydit_main/xgyh.py 第186行引發的bug
end傳入了一個Q31700023778的不能轉換int的值
這個ydit_main是蘇州遠鼎開發的,具體代碼我還沒看,一個文件大概寫了3000多行,比較亂。
之前在186行報過一次bug,可能是修復的不完整
QQ20170727-111741.jpg
下面我們來演示一次odoo debug過程。
先確定了一下 具體的錯誤引發點
1501065436740.jpg
我們的條碼 YQ3是店鋪的前綴
后10位為產品的條碼
QQ20170727-110613.jpg
把線上的數據庫恢復到測試環境
QQ20170727-112035.jpg
新建庫名稱為xgyh20170727
由于這個dump是不帶data文件的,所以我們直接復制一份同名的目錄
QQ20170727-112249.jpg
完成后就可以在測試環境中調式了
為了方便 這里使用print輸出調式
問題復現
QQ20170727-113654.jpg
錯誤后 導致批次列表為空
QQ20170727-114145.jpg
正常狀態下的列表
QQ20170727-114308.jpg
添加print語句
QQ20170727-114539.jpg
啟動服務器調式
QQ20170727-114619.jpg
最終發現是lot_name 有空的prefix導致的問題。
臨時修復 在數據里改數據 去除空格
代碼修復建議
在輸入序列號時添加長度驗證代碼
總結
非常小的bug,就導致作業流程失敗,所以在編寫ERP代碼時需要考慮全面,多多測試。