2016-01-21 36 views
1

在netsuite的sitebuilder denali的ssp頁面中,我建立了一個用於從發票文檔和項目文檔中取消兩條信息的javascript搜索。搜索工作正常,但正在變平(即,對於每個內部id,只返回一行結果,儘管有一些自定義字段有多個值),但目前沒有過濾器,主線或其他方式,儘管我已經嘗試將mainline設置爲false,但沒有任何區別。 的代碼中的相關行是: Javascript在Netsuite中沒有顯示每行的報告

\t \t var searchResults = nlapiSearchRecord('invoice', null, filters, columns); 
 
     return _.map(searchResults, function(result) { 
 
      return { 
 
      internalid: result.getValue('internalid'), 
 
      date: result.getValue('trandate'), 
 
      DocNum: result.getValue('tranid'), 
 
\t \t \t TotalAmount: result.getValue('total'), 
 
\t \t \t status: result.getValue('entitystatus'), 
 
\t \t \t PONum: result.getValue('otherrefnum'), 
 
\t \t \t WellNum: result.getValue('custbody9'), 
 
\t \t \t WellName: result.getValue('custbody8'), 
 
\t \t \t fivecode: result.getValue('custitem35','item'), 
 
\t \t \t desc: result.getValue('itemid','item'), 
 
\t \t \t Reason: result.getValue('custbody67'), \t \t \t 
 
\t \t \t Tech: result.getValue('custbody38') \t \t \t 
 
      }; 
 
     });

如何獲取每一行返回說明了什麼?

+0

你將需要申請某種過濾器或搜索ID,否則該搜索會爲您的帳戶中的每個發票商品生成至少一行。 (它會嘗試,但只會返回1000行)。我不相信下劃線會做任何變平的操作,但可以用'searchResults.map(function(result){});'替換_.map。我知道內置的地圖不會變平。 – bknights

+0

更換searchResults時不幸出現錯誤。 – theinvisibleduck

+1

關於下劃線爲你做的唯一事情是防止空值。 'return _.map(searchResults,function(result){});'和'return(searchResults || [])。map(function(result){});'應該在服務器端腳本或Firefox,Chrome或最新版本的IE。 – bknights

回答

1

由於超過1000個結果,NetSuite可能會跳過訂單項。

你可以通過添加一個搜索欄

columns.push[new nlobjSearchColumn('internalid').setSort()] 

internalid對結果進行排序這將顯示多個結果中的internalid但還是有些發票可能不會在搜索結果中。

要不,你可以用下面的代碼進行搜索,把所有的結果

var search = nlapiCreateSearch('invoice', filters, columns).runSearch(); 
var res = [], 
    currentRes; 

var i = 0; 

while(i % 1000 === 0){ 
    currentRes = (search.getResults(i, i+1000) || []); 
    res = res.concat(currentRes); 
    i = i + currentRes.length; 
} 

最後,你可以用你的代碼來壓平

return _.map(res, function(result) { 
      return { 
      internalid: result.getValue('internalid'), 
      date: result.getValue('trandate'), 
      DocNum: result.getValue('tranid'), 
      TotalAmount: result.getValue('total'), 
      status: result.getValue('entitystatus'), 
      PONum: result.getValue('otherrefnum'), 
      WellNum: result.getValue('custbody9'), 
      WellName: result.getValue('custbody8'), 
      fivecode: result.getValue('custitem35','item'), 
      desc: result.getValue('itemid','item'), 
      Reason: result.getValue('custbody67'),   
      Tech: result.getValue('custbody38')   
      }; 
     });