我正在进行Netsuite搜索,但过滤器实际上没有进行任何过滤? " budgetimport"对象有314个项目,无论我如何尝试过滤搜索,每次都会返回所有314个项目。
我错过了什么/做错了什么?
提前致谢。
P.S。虽然我在这里:最好的"最好的"如何获得“金额”的价值'搜索栏? (应该只有一个项目从搜索中返回,但如果还有更多?)
//add search columns
var columns = [];
columns.push(new nlobjSearchColumn('year'));
columns.push(new nlobjSearchColumn('department'));
columns.push(new nlobjSearchColumn('account'));
columns.push(new nlobjSearchColumn('amount'));
//add search filters
var filters = [];
filters.push(new nlobjSearchFilter('year', null, 'anyof', 'FY 2007', null));
filters.push(new nlobjSearchFilter('department', null, 'anyof', 'Bass', null));
filters.push(new nlobjSearchFilter('account', null, 'anyof', 'Administration Expenses', null));
//execute the search
var search = nlapiSearchRecord('budgetimport', null, filters, columns);
答案 0 :(得分:2)
经过大量的游戏和挫折后,问题在于NetSuite中的“非标准”对象,因此“正常”的处理方法不适用。
要过滤budgetimport对象,您需要使用“formulatext”并设置过滤器,例如。
//add search filters
var filters = [];
filters.push(new nlobjSearchFilter('formulatext', null, 'is', fiscalyear).setFormula('{Year}')); //NOTE : Capital 'Y' in Year
filters.push(new nlobjSearchFilter('formulatext', null, 'is', costcentre).setFormula('{department}'));
答案 1 :(得分:1)
尝试将anyof
运算符与内部ID配对。
示例:
filters.push(new nlobjSearchFilter('year', null, 'anyof', *internal id of 'FY 2007'*, null));
答案 2 :(得分:0)
看起来问题与该记录类型有关。我在记录浏览器中找不到任何关于它的内容,所以我不确定允许的过滤器是什么。问题是那些字段没有过滤。如果为innerid添加过滤器并输入其中一个记录的internaid,它将进行过滤(见下文)。我建议向NetSuite提交一个案例,因为这个记录似乎有缺陷。?
filters.push(new nlobjSearchFilter('internalid',null,'is','12345'));
答案 3 :(得分:0)
我不认为此记录类型在NetSuite中获得完整的脚本/已保存搜索支持。
我在NetSuite调试器的脚本中添加了以下行以保存已保存的搜索。当我尝试编辑它时,这部分可以解决错误。很可能不是完全支持的记录类型。
//var search = nlapiSearchRecord('budgetimport', null, filters, columns);
var search = nlapiCreateSearch( 'budgetimport', filters, columns );
var searchId = search.saveSearch('BudgetImport_SEARCH', 'customsearch_budgetimport_search');
如果NetSuite给您答案,请及时通知我们。
答案 4 :(得分:0)
您的过滤器无法正常工作的原因可能是以下原因:
答案 5 :(得分:0)
不要在这里看到这个,但是当我前几天处理我的一个脚本时遇到了这个问题:
//add search filters
var filters = [];
filters.push(new nlobjSearchFilter('year', null, 'anyof', 'FY 2007', null));
filters.push(new nlobjSearchFilter('department', null, 'anyof', 'Bass', null));
filters.push(new nlobjSearchFilter('account', null, 'anyof', 'Administration Expenses', null));
如果所有这些字段都是来自列表的选择字段(自定义或非自定义),那么您需要通过内部ID 引用字段值(我说"需要"因为这是我为了过滤价格而必须做的事情。)
因此,不要使用" FY 2007",而是在其父列表的上下文中查找其内部ID。
要查找您要尝试过滤的值的内部ID,您可以创建一个已保存的搜索,列出该值及其内部ID,这可以从选择字段的任何父记录中完成。 (这是我必须使用的方法,以便找到价格水平的内部ID,因为我在我们的系统中的任何其他地方都找不到)。
如果它是自定义列表,请导航到您的自定义列表页面,找到列表,并标识您要尝试过滤的值的内部ID。