The issue I am having is I am consistently getting the following error when executing a user event script in NetSuite:
TypeError: Cannot read property "amazon" from undefined
NetSuite uses Javascript to do the business logic on both client and server side. For those without NetSuite experience, a user event script is executed on the server.
The code I can share is as follows:
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
}
I am calling the return values like:
var itemQty = getLocationQty(item);
if(itemQty.amazon){
var fbaStock = itemQty.amazon;
} else { fbaStock = 0;}
This code works fine for some of my locations, but if there is not quantity available in a specific location it is returning undefined, rather then setting the qtyAvail to 0 as I would expect.
Am I missing a comparison for checking undefined anywhere, or does anyone else see any issues with the code?
From the snippet you included it looks like you are not initializing the value of fba.
Add
var fba=0;at the start and see if that fixes it.Or perhaps you meant to assign qtyAvail to amazon instead of fba.