我一直在寻找一种方法来提取NetSuite系统备注中的记录。下面的行抛出'INVALID_RCRD_TYPE'错误:
var columns = new Array();
columns[0] = new nlobjSearchColumn('internalid').setSort();
var results = nlapiSearchRecord('systemnote', null, null, columns);
我想知道如何引用系统注释作为nlapiSearchRecord API的第一个参数。显然,它不称为系统笔记。
类似的问题已发布here,但系统注释在那里被错误引用。
答案 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;
}