私が抱えている問題は、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に設定するのではなく、未定義を返します。
どこかで未定義をチェックするための比較が欠けていますか、それとも他の誰かがコードに問題があるのを見ていますか?