我遇到的問題是NetSuite的執行用戶事件腳本時,我一直收到以下錯誤越來越庫存數量時:未定義的錯誤在NetSuite的
TypeError: Cannot read property "amazon" from undefined
NetSuite的使用JavaScript做雙方的業務邏輯客戶端和服務器端。對於沒有NetSuite體驗的用戶,在服務器上執行用戶事件腳本。
我可以共享代碼如下:
var qtyAvail = 0;
qtyAvail = rec.getValue('locationquantityavailable');
if(!qtyAvail || qtyAvail === 'undefined' || qtyAvail === null || isNaN(qtyAvail) || typeof qtyAvail === "undefined"){
qtyAvail = 0;
}
location = rec.getValue(kColumns[3]);
if(location == 7 ||location == 16 ||location == 20 ||location == 3 ||location == 19 ||location == 1 ||location == 27 ||location == 27){
if(location == 7){
fba = qtyAvail;
if(!fba){
qtyAvail = 0;
}
}
...more business code here....
return {
amazon: fba,
ups: upsName
}
我打電話喜歡的返回值:
var itemQty = getLocationQty(item);
if(itemQty.amazon){
var fbaStock = itemQty.amazon;
} else { fbaStock = 0;}
此代碼工作正常,我的一些位置,但如果沒有可用數量在特定位置返回未定義,而不是像我期望的那樣設置qtyAvail爲0。
我錯過了檢查undefined任何地方的比較,或沒有其他人看到任何代碼問題嗎?
我FBA初始化爲0,沒有運氣。我將qtyAvail分配給fba,因爲當我做我的返回時我正在返回一個關聯數組,我可以將這些對象從函數外部拉出。 奇怪的是,代碼可以在一些記錄上正常工作,而其他人則會因未定義而失敗。記錄的並排比較顯示值出現在失敗的fba位置。任何其他想法? 我即將考慮重寫我的功能,但我寧願不,如果我可以避免它:) – 2012-04-20 12:58:47
你有沒有嘗試在netsuite調試器中運行你的代碼? – Craig 2012-04-20 15:33:35
是的,我有 - 我發現我的悲傷的來源:套件物品導致失敗,所以我寫了一個函數,放棄物品名稱的套件部分並返回主sku。由於改變似乎正在工作 - 我目前正在運行一批200個銷售訂單,以查看它的執行情況。 – 2012-04-20 15:56:19