2017-06-16 31 views
0

この検索が正しく機能するよう、さまざまな方法で試してみました。私は検索結果が返ってくることを知っている値を返すためにフィルターを削除しました。その後、フィルタを追加して、別のプロジェクトIDを取得し、検索が(UIを介して)正しく実行されたことを確認しました。NetSuite SuiteScript保存された検索に登録されていない値が返されない

これは、1つのパラメータ(プロジェクトID)を受け入れ、2つのデータを返すJOIN型の検索です。それでおしまい。私のパラメータ(フィルタ)がそれほどうまくいかない理由についてのアイデアはありますか?

var filter = new Array(); 
filter[0] = new nlobjSearchFilter('entityid', 'job', 'is', int_Project_ID); 

var results = nlapiSearchRecord('transaction', 'customsearch_[...]', filter, null); 

if (!isNull(results) && results.length > 0) 

ここには、NetSuiteの検索条件と結果タブへのリンクがあります。

Imgur Link

+0

あなたは 'entityid'の代わりにプロジェクトの' internalid'をフィルタリングしようとしましたか? – erictgrubaugh

+0

はい。私は2,3回交換可能に試しました。それはフィルターの「仕事」と関係していました。また、保存された検索に予想されるパラメータ(プロジェクトID)が保存されていることも確認してください。その答えは、 'entityid'を 'internalid'に、 'job'を 'jobmain'に変更し、UIで保存された検索からパラメータを削除することでした。今すぐ動作します。私の上司は、実際に私がこのことを理解する手助けをしなければなりませんでした。そして、彼はしばらくの間、困っていました。 – Finnster

答えて

0

検索をロードした後にフィルタを設定するために、これを試してみてください。

var filter = mySearch.filters; 
        var newfilters = []; 
        var filterss = {}; 
        filterss.name = 'department'; 
        filterss.operator = 'IS'; 
        filterss.values = dep_fil; 
        filterss.join = 'employee'; 
        filterss.summary = 'max'; 
        newfilters.push(search.createFilter(filterss)); 
        mySearch.filters = newfilters; 


var searchResults = mySearch.run().getRange({ 
        start : 0, 
        end : 500 
       }); 

あなたは最大、合計、グループなど私はsummmaryが理由だと思うような要約の切り抜いた型があります

searchResult.getValue({ 
          name : 'email', 
          join : 'employee', 
          summary : 'max' 
         }); 

を使用して値を取得することができます。

これはsuitescript 2メソッドです。

関連する問題