0

保存された検索に含まれる列の数とその情報など、保存された検索に関する情報を取得しようとしています。検索 ID を保存しました。コードを介して netsuite サービスで検索すると、recordList オブジェクトでデータを取得できますが、リスト内の各項目 (行) には null であり、保存された検索では使用されない多くの静的フィールドがあります。この行オブジェクトには、値を持つフィールドのみが設定されます。

C#.Net の SuiteTalk Web サービス経由で netsuite に保存された検索の列ヘッダー情報を取得する方法はありますか?

4

2 に答える 2

0

まず、Suite Analytics Connect から SavedSearches にアクセスできないと思います。これに対するデータ ソースは Connect Browser であり、Record Browser ではありません。

保存された検索は、レコード ブラウザに基づいて作成されます! それが将来的に何らかの価値を追加する可能性がある場合。

ここで発生している問題の 1 つを参照してください:レコード ブラウザー アイテムの保存済み検索でテーブルとフィールドを検索する

Connect を使用しようとしましたが、機能しません。

于 2018-09-14T08:45:09.117 に答える
0

はい、SuiteTalk ライブラリと RestletsService API を使用します。解析可能な JSON データを返します。NetSuite スクリプト側で保存された検索を実行し、結果を json で返すための restlet が作成されていることを確認してください。

このメモも役に立ちます。

から一度に返される検索結果は 4000 件まで nlobjSearchResultSet.forEachResult(callback)です。検索条件を修正するか、コールバック ロジックを修正して、返される結果が 4000 件を超えないようにしてください。

.Net側

RestletsService api = AppSettings.BuildRestletsService;
string json = api.CallRestlet({RESTLET_ID_THAT_RUNS_SAVED_SEARCHES}, {DEPLOY #}, {SAVED_SEARCH_ID});
JArray resultsArray = JArray.Parse(json);

スクリプト側

function get_search_data(datain)
{   
    var results = [];
    var savedsearch = nlapiLoadSearch(null, datain.savedsearchid);
    var resultset = savedsearch.runSearch();
    var searchid = 0;
    do {
        var resultslice = resultset.getResults( searchid, searchid+1000 );
        for (var rs in resultslice) {
            results.push( resultslice[rs] );
            searchid++;
        }
    } while (resultslice.length >= 1000);
    return results;
}
于 2019-11-18T19:46:45.733 に答える