0从NetSuite搜索返回的结果

问题描述:

我试图根据搜索结果停止创建记录。尽管我知道数据存在,但我似乎无法通过我的SuiteScript搜索返回任何数据。0从NetSuite搜索返回的结果

我创建了一个自定义保存的搜索,使用下面使用的确切过滤器并返回我正在寻找的结果。

为什么我可能没有检索到任何结果,有什么突出吗?

注意:sfdcAccountId变量确实有一个值,所以我正在搜索一个有效的值。

// 2.0 
define(["N/error", "N/log", "N/search"], function (err, log, search) { 

    /** 
    * User Event 2.0 example showing usage of the Submit events 
    * 
    * @NApiVersion 2.x 
    * @NModuleScope SameAccount 
    * @NScriptType UserEventScript 
    * @appliedtorecord customer 
    */ 
    var exports = {}; 

    function beforeSubmit(scriptContext) {  
     log.debug({ 
      "title": "Before Submit", 
      "details": "action=" + scriptContext.type 
     }); 

     if (doesCustomerExist(scriptContext)) { 
      throw err.create({ 
       "name": "DUPLICATE_SFDC_ACCOUNT_ID", 
       "message": "Customer Already Contains SFDC Account Id", 
       "notifyOff": true 
      }); 
     } 
    } 

    function doesCustomerExist(scriptContext) { 
     var sfdcAccountId = scriptContext.newRecord.getValue('custentitysfdc_account_id'); 
     log.debug({ 
      "title": "Before Submit", 
      "details": "sfdcAccountId=" + sfdcAccountId 
     }); 

     if(sfdcAccountId == null || sfdcAccountId == '') return false; 

     var searchResult = search.create({ 
              type: search.Type.CUSTOMER, 
              filters: ['custentitysfdc_account_id', search.Operator.IS, sfdcAccountId] 
             }).run(); 

     return (searchResult != null && searchResult.length > 0); 
    } 

    exports.beforeSubmit = beforeSubmit; 
    return exports; 
}); 

当您在搜索调用.run(),它返回一个search.ResultSet对象。如果您在该对象上调用getRange(),则会得到您要查找的结果数组。这是您的搜索的更新版本,返回search.Result[],您可以根据需要检查长度或迭代。

var searchResult = search.create({ 
    type: search.Type.CUSTOMER, 
    filters: ['custentitysfdc_account_id', search.Operator.IS, sfdcAccountId] 
}).run().getRange({start: 0, end: 1000});