【问题标题】:How to get column headers of a saved search in NetSuite via suite talk in C#.Net?如何通过 C#.Net 中的套件对话获取 NetSuite 中已保存搜索的列标题?
【发布时间】:2019-01-03 19:16:30
【问题描述】:

我正在尝试获取有关已保存搜索的信息,例如已保存搜索中有多少列及其信息。 我已经保存了搜索 ID,当我通过代码使用 netsuite 服务进行搜索时,我能够在 recordList 对象中获取数据,但是,列表中的每个项目(行)都有许多静态字段,这些字段为空且未用于保存的搜索此行对象中仅设置具有任何值的字段。

有没有办法通过 C#.Net 中的 SuiteTalk Web 服务获取 netsuite 中已保存搜索的列标题信息?

【问题讨论】:

    标签: c# netsuite suitetalk saved-searches


    【解决方案1】:

    是的,使用 SuiteTalk 库和 RestletsService API。它返回您可以解析的 JSON 数据。确保您创建了一个 restlet 以在 NetSuite 脚本端运行保存的搜索并以 json 格式返回结果。

    这个注释也很有用:

    一次最多只能返回 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;
    }
    

    【讨论】:

      【解决方案2】:

      首先,我认为我们不能从 Suite Analytics Connect 访问 SavedSearches,因为它的数据源是连接浏览器,而不是记录浏览器。

      已保存的搜索是基于记录浏览器创建的!如果这可能会在未来增加一些价值。

      请参考我在这里遇到的问题之一:Find the tables and fields in a saved search for Records Browser Item

      我尝试使用 Connect,但它不起作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多