NetSuite:在记录保存上显示项目收据的警报不起作用

时间:2016-04-14 12:50:30

标签: javascript jquery alert netsuite suitescript

我的脚本的目的是在比较两个订单项后保存项目收据时向用户显示一条消息。如果项目和位置匹配,则会弹出警报。我从未构建过成功的脚本,这是我第一次使用订单项。现在,该脚本将允许用户单击保存按钮,但无论项目和位置是否匹配,记录都不会提交。此外,警报消息不会弹出。

我的代码中是否有明显的错误?欢迎任何和所有建议,评论和批评。

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);

}

3 个答案:

答案 0 :(得分:1)

您的脚本是用户事件脚本吗?如果是,那么您将无法显示警报,因为用户事件脚本是服务器端脚本。如果希望脚本在保存记录之前显示警报,请将脚本更改为客户端脚本并使用“保存记录”事件。

答案 1 :(得分:1)

xItem和xLocation没有您正在检查的值。

  

var xItem = nlapiGetLineItemValue('item','itemname',i); //读取项目的内部标识

     

var xLocation = nlapiGetLineItemValue('item','location',i); //读取位置的内部ID

因此代码中的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;
            }

在您部署的客户端脚本的saveRecord事件中调用“is1003GandLeach()”。

答案 2 :(得分:0)

你好@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);
 }