我有一个SuiteScript 2.0,可以通过发布周期过滤器加载和搜索保存的交易记录。在我的过滤器中,我使用的“ anyof”运算符不适用于“ postingperiod”字段
下面是我的代码示例:
function getTransactionData(datain)
{
try
{
var objSearch = search.load(
{
id: datain.savedsearchid
});
objSearch.filters.push(search.createFilter({ name: "postingperiod", operator: "ANYOF", values: ["42", "43"]}));
//above filter filters only record with internalid 42
result = readAllData(objSearch);
return result;
}
catch (ex)
{
log.error("getTransactionData", ex);
throw ex;
}
}
让我知道我是否在这里想念东西。
请注意,上述问题仅在保存的搜索中发生,如果我使用'anyof'运算符搜索其他对象(例如带有内部标识符过滤器的'account'对象),效果很好。
更新:今天,在进行了更多测试之后,发现它仅在“ postingperiod”过滤器中发生。
答案 0 :(得分:0)
在Netsuite调试器中尝试此代码,在Netsuite中创建一个SavedSearch,不要在其中添加任何过滤器,请保存该过滤器并获取保存的搜索的ID,并在下面的脚本中针对ID值使用。 另外,用您的ID替换周期ID。
require(['N/runtime','N/search'],
function (runtime,search) {
var invoiceSearchObj = search.load({
type: "invoice",
id: '<your search id>',
columns:
[
search.createColumn({
name: "trandate",
sort: search.Sort.ASC,
label: "Date"
})
]
});
invoiceSearchObj.filters.push(search.createFilter({ name: "postingperiod", operator: "ANYOF", values: ["<your period value>"]}));
invoiceSearchObj.filters.push(search.createFilter({ name: "mainline", operator: "is", values : "T"}));
var searchResultCount = invoiceSearchObj.runPaged().count;
log.debug("invoiceSearchObj result count",searchResultCount);
invoiceSearchObj.run().each(function(result){
// .run().each has a limit of 4,000 results
return true;
});
});
var a=0;