вопрос я имею я постоянно получаю следующее сообщение об ошибке при выполнении сценария событий пользователя в 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, как я ожидал.
У меня отсутствует сравнение для проверки неопределенности в любом месте, или кто-либо еще видит какие-либо проблемы с кодом?
Я инициализирован FBA до 0, не повезло. Я назначаю qtyAvail для fba, так как когда я возвращаюсь, я возвращаю ассоциативный массив, из которого я могу вытащить объекты из-за пределов функции. Что странно, так это то, что код будет работать с некоторыми файлами, а другие с ошибкой не будут определены. Сравнительное сравнение записей, расположенных рядом друг с другом, показывает, что значения присутствуют в местоположении fba, которое терпит неудачу. Любые другие идеи? Я собираюсь рассмотреть возможность перезаписи своих функций, но я бы предпочел, чтобы избежать этого. –
Вы пробовали использовать свой код в отладчике netsuite? – Craig
Да, у меня есть - я нашел источник моего горя, хотя: элементы набора вызывают сбои, поэтому я написал функцию, которая отбрасывает часть набора имени элемента и возвращает основную часть. Поскольку это изменение работает, я в настоящее время выполняю партию из 200 заказов на продажу, чтобы увидеть, как она работает. –