5

Suitescript API を使用して、Netsuite でインベントリ アイテムのカテゴリによる検索を実装しようとしています。次のコードは期待どおりに機能するので、リモート通信が成功していることがわかります。しかし、カテゴリで検索する方法については困惑しています。

function NSTest() {
    var items = [];

    var filters = [
        //new nlobjSearchFilter('price',null,'lessthan','20'),
        new nlobjSearchFilter('thumbnailurl',null,'isnotempty')
        //new nlobjSearchFilter('internalid',null,'is','60635')
        ];

    var columns = [
        new nlobjSearchColumn('itemid'),
        new nlobjSearchColumn('salesdescription'),
        new nlobjSearchColumn('storedisplaythumbnail'),
        new nlobjSearchColumn('baseprice')
        ];

    var results = nlapiSearchRecord('inventoryitemdetail',null,filters,columns);
    for(var i=0,l=results.length; i < l; i++) { 
        var result = results[i];
        var price   = result.getValue('baseprice');
        var thumbImage  = result.getText('storedisplaythumbnail');
        var desc    = result.getValue('salesdescription');
        var name    = result.getValue('itemid');
        var img   = 'http://shopping.netsuite.com'+thumbImage;
        var item = {desc:desc, price:price, name:name, img:img};
        items.push(item);
    }
    response.write(JSON.stringify(items));
}

これは正しく機能しますが、行のコメントを外すと:

new nlobjSearchFilter('internalid',null,'is','60635')

そうではありません。Suitescript でカテゴリ別に項目を検索する方法を教えてもらえますか?

4

2 に答える 2

4

内部 ID 番号から引用符を削除します。internalid の検索フィルターは数値を探しています。

于 2012-07-12T17:42:23.780 に答える
0

レコード ブラウザを確認しましたが、残念ながら有効なレコード内部 ID 'inventoryitemdetail' が見つかりませんでした。間違いだったに違いありません。「在庫品目」である必要があります。コードを確認しましたが、すべて正常に動作しているようです。

function start(request, response) {
   var searchId = '27890';
   var filters = new Array();
   filters[0] = new nlobjSearchFilter('internalid', null, 'is',searchId);
   var columns = new Array();
   columns[0] = new nlobjSearchColumn('itemid');
   columns[1] = new nlobjSearchColumn('salesdescription');
   columns[0] = new nlobjSearchColumn('storedisplaythumbnail');
   columns[1] = new nlobjSearchColumn('baseprice');

  // var search = nlapiCreateSearch('customer', filters, columns);
  // var resultSet = search.runSearch();
  // var results = resultSet.getResults(0, 100);
   var results = nlapiSearchRecord('inventoryitem',null,filters,columns);
   var output = "";
   for(var i in results)
       {
            output += results[i].getValue('itemid')+"\n";
            output += results[i].getValue('salesdescription')+"\n";
            output += results[i].getValue('storedisplaythumbnail')+"\n";
            output += results[i].getValue('baseprice')+"\n";

       }
   response.write(output);
}

それが inventoryitem でなければならない場合は、上記のコードを検討してください。

于 2015-05-21T10:40:40.190 に答える