查询Netsuite中的系统说明

时间:2016-02-19 04:06:46

标签: netsuite

我一直在寻找一种方法来提取NetSuite系统备注中的记录。下面的行抛出'INVALID_RCRD_TYPE'错误:

var columns = new Array();
columns[0] = new nlobjSearchColumn('internalid').setSort();
var results = nlapiSearchRecord('systemnote', null, null, columns);

我想知道如何引用系统注释作为nlapiSearchRecord API的第一个参数。显然,它不称为系统笔记。

类似的问题已发布here,但系统注释在那里被错误引用。

2 个答案:

答案 0 :(得分:4)

systemnotes无法作为记录类型使用,从记录浏览器中可以看出link

但是,您仍然可以使用NetSuite

中任何记录类型的连接搜索来获取系统注释字段

例如:

x = nlapiSearchRecord('vendor', null, null, 
  [new nlobjSearchColumn('date', 'systemNotes'),
   new nlobjSearchColumn('name', 'systemNotes'), // Set By
   new nlobjSearchColumn('context', 'systemNotes'),
   new nlobjSearchColumn('newvalue', 'systemNotes'),
   new nlobjSearchColumn('oldvalue', 'systemNotes'),
]) 

x[0].getValue('name', 'systemNotes'); //gives the set by value

答案 1 :(得分:1)

感谢您的回复。我终于使用下面的代码设法查询系统说明。我想我应该分享它以防其他人想要完成同样的工作。我使用下面的代码在NetSuite中创建了一个RESTlet,该代码返回在给定日期之后合并的合并客户记录列表。

我使用ID customsearch_mergedrecords创建了一个新搜索,并在Criteria选项卡中添加了一个关于'System Notes:NewValue'的过滤器,其中的描述是'以Merged with duplicatelicates开头:'并且在Results选项卡中,我添加了我需要的列

请注意,您需要在Customer上创建新搜索,而不是在System Notes上创建。系统注释使用join(nlobjSearchFilter构造函数中的第二个参数)连接到搜索中。

function GetMergedRecordsAfter(input) {

var systemNotesSearch = nlapiLoadSearch('customer', 'customsearch_mergedrecords');

var filters = new Array();
filters.push(new nlobjSearchFilter('date', 'systemNotes', 'notbefore', input.fromdate));
systemNotesSearch.addFilters(filters);

var resultSet = systemNotesSearch.runSearch();
var searchResultJson = [];
resultSet.forEachResult(function (searchResult){
    var searchColumns = resultSet.getColumns();
    searchResultJson.push({
        ID:  searchResult.getValue(searchColumns[0]),
        Name: searchResult.getValue(searchColumns[1]),
        Context: searchResult.getValue(searchColumns[2]),
        Date: searchResult.getValue(searchColumns[3]),
        Field: searchResult.getValue(searchColumns[4]),
        NewValue: searchResult.getValue(searchColumns[5]),
        OldValue: searchResult.getValue(searchColumns[6]),
        Record: searchResult.getValue(searchColumns[7]),
        Setby: searchResult.getValue(searchColumns[8]),
        Type: searchResult.getValue(searchColumns[9]),
        InternalId: searchResult.getValue(searchColumns[10])
    });
    return true;
});
return searchResultJson;
}