2016-11-29 34 views
0

我想通过特定客户的内部ID找到具体地址。目前我正在尝试获取'address1'和'address2'列。找不到特定客户的内部ID的具体地址

function getAddrById(addressid,invcustomerid) { 
    try { 
    var filters = new Array(); 
    filters[0] = new nlobjSearchFilter('internalid', null, 'is', invcustomerid); 

     var columns = new Array(); 
     columns[0] = new nlobjSearchColumn('address1'); 

     var searchResult = nlapiSearchRecord('customer', null, filters , columns); 
     debugger; 

     if (!searchResult || searchResult.length < 1) { 
      nlapiLogExecution('DEBUG', 'XML HEAD', 'not supported address'); 
      return; 
     } 

     if(searchResult) { 
      for (var i = 0 ; i < searchResult.length; i++) { 
      alert(searchResult[i].getValue('address1')); 
     }; 
     }; 
    } catch(e) { 
     nlapiLogExecution('ERROR', 'Try/catch error', e.message); 
    } 
} 

...这里我得到了特定客户的所有地址子记录,但我想只有通过内部id指定的,而不是从客户列出所有关联的地址。

回答

3

columns[0] = new nlobjSearchColumn('addr1');

应该是:

columns[0] = new nlobjSearchColumn('address1');

从你自己的链接,你应该利用“搜索栏”列表中的内部ID在记录的底部,而不是“字段” 。

+0

这是正确的,我只是意识到这一点。没有错误但没有结果。我是否需要在某处指定客户ID? – eXtreme

+0

您不是基于客户进行搜索。过滤器中的内部ID用于地址记录,而不是客户。如果你想要一个特定客户的地址,最好从一个客户搜索开始。尝试在用户界面中构建一个想要的搜索,保存它,然后使用nlapiLoadSearch在某处加载搜索并查看列,过滤器等,以反向设计如何完全在SS中创建适当的搜索。 –

+0

该任务必须在没有保存搜索的情况下完成。好的,谢谢我还在尝试。 – eXtreme

相关问题