NetSuite: отображение оповещения о получении товара при сохранении записи не работает

Цель моего сценария — отобразить сообщение пользователю, когда он сохраняет квитанцию ​​об элементе после сравнения двух элементов строки. Если предмет и местоположение совпадают, всплывает предупреждение. Мне никогда не удавалось создать успешный сценарий, и я впервые использую позиции. Прямо сейчас скрипт позволит пользователю нажать кнопку «Сохранить», но запись не будет отправлена ​​независимо от того, совпадают ли элемент и местоположение. Кроме того, предупреждающее сообщение не появляется.

Есть ли что-то явно неправильное в моем коде? Любые рекомендации, комментарии и критика приветствуются.

function is1003GandLeach(){
var record = nlapiLoadRecord('itemreceipt', nlapiGetRecordId());
var count = record.getLineItemCount('item');
for (i = 1; i <= count; i++){
    var xItem = nlapiGetLineItemValue('item', 'itemname', i);
    var xLocation = nlapiGetLineItemValue('item', 'location', i);
    if (xItem == "1003-G" && xLocation == "Leach"){
        alert ("REMINDER – Glacial is diluted when received. Inventory adjustment to remove 1003-G and add 1003. Divide the total pounds received by 0.2 and calculate the new cost per pound. REMINDER - Inventory valuation should be net $0");
        break;
    }
}
nlapiSubmitRecord(record);

}


person Jordan    schedule 14.04.2016    source источник
comment
какой тип скрипта вы используете?   -  person Rockstar    schedule 15.04.2016


Ответы (3)


Является ли ваш сценарий сценарием пользовательского события? Если да, то вы не сможете показать предупреждение, поскольку сценарий пользовательского события является сценарием на стороне сервера. Если вы хотите, чтобы ваш сценарий показывал предупреждение перед сохранением записи, измените свой сценарий на сценарий на стороне клиента и используйте событие «Сохранить запись».

person Rusty Shackles    schedule 15.04.2016

xItem и xLocation не имеют значений, которые вы проверяете.

var xItem = nlapiGetLineItemValue('item', 'itemname', i); //Чтение внутреннего идентификатора элемента

var xLocation = nlapiGetLineItemValue('item', 'location', i); //Чтение внутреннего идентификатора местоположения

Таким образом, условие if в вашем коде всегда будет неудачным. Поэтому, чтобы заставить его работать, вам нужно изменить код api nlapiGetLineItemValue на nlapiGetLineItemText.

//Reads the text on the field so u get the name of the item
var xItem = nlapiGetLineItemText('item', 'itemname', i); 
//Reads the text on the field so u get the name of the location
    var xLocation = nlapiGetLineItemText('item', 'location', i); 
        if (xItem == "1003-G" && xLocation == "Leach"){
                alert ("REMINDER – Glacial is diluted when received. Inventory adjustment to remove 1003-G and add 1003. Divide the total pounds received by 0.2 and calculate the new cost per pound. REMINDER - Inventory valuation should be net $0");
                break;
            }

Вызовите is1003GandLeach() в событии saveRecord в клиентском сценарии, который вы развертываете.

person Frederick RajKumar    schedule 15.04.2016

Привет, @Jordan, я думаю, ты ошибся. если вы проверяете существующую запись, вы должны проверить этот объект записи. Все, что вы сделали до сих пор, очень правильно,но вы должны исправить свой код в 5-й и 6-й строкекак показано ниже

function is1003GandLeach()
 {
   var record = nlapiLoadRecord('itemreceipt', nlapiGetRecordId());
   var count = record.getLineItemCount('item');

   for (i = 1; i <= count; i++)
  {
    var xItem = record.getLineItemValue('item', 'itemname', i);
    var xLocation = record.getLineItemValue('item', 'location', i);

       if (xItem == "1003-G" && xLocation == "Leach")
          {
              alert ("REMINDER – Glacial is diluted when received. Inventory    adjustment to remove 1003-G and add 1003. Divide the total pounds received by 0.2 and calculate the new cost per pound. REMINDER - Inventory valuation should be net $0");
              break;
          }
   }
  nlapiSubmitRecord(record);
 }
person Simon Peter    schedule 22.11.2016