Search Netsuite获取公式的显示文本
我需要得到一个字段的文本显示值,以比较过帐期间的日期范围。我有下面的公式,我正在推到一个过滤器阵列,还有其他需要运行的过滤器Search Netsuite获取公式的显示文本,search,text,filter,formula,netsuite,Search,Text,Filter,Formula,Netsuite,我需要得到一个字段的文本显示值,以比较过帐期间的日期范围。我有下面的公式,我正在推到一个过滤器阵列,还有其他需要运行的过滤器 var columns = []; columns.push(new nlobjSearchColumn('transactionnumber')); columns.push(new nlobjSearchColumn('line')); columns.push(new nlobjSearchColumn('item')); columns.push(new n
var columns = [];
columns.push(new nlobjSearchColumn('transactionnumber'));
columns.push(new nlobjSearchColumn('line'));
columns.push(new nlobjSearchColumn('item'));
columns.push(new nlobjSearchColumn('account'));
columns.push(new nlobjSearchColumn('amount'));
columns.push(new nlobjSearchColumn('vsoeallocation'));
columns.push(new nlobjSearchColumn('postingperiod'));
columns.push(new nlobjSearchColumn('srctranpostperiod','revrecschedule'));
columns.push(new nlobjSearchColumn('recuramount','revrecschedule'));
columns.push(new nlobjSearchColumn('jedoc', 'revrecschedule'));
columns[0].setSort();
columns[1].setSort();
var filter = [];
var formula = "case when TO_DATE({postingperiod.displayname}, 'MON YYYY') >= " + newselectedDate.getFullYear() + " then 1 else 0 end";
filter.push(new nlobjSearchFilter('revrecenddate', null, 'after', newselectedDate));
filter.push(new nlobjSearchFilter('type', null, 'anyof', ['CustInvc', 'CashSale']));
filter.push(new nlobjSearchFilter('templatename','revrecschedule','isnotempty'));
filter.push(new nlobjSearchFilter('deferredamount','revrecschedule','isnot', 0));
filter.push(new nlobjSearchFilter('formulanumeric', null, 'equalto', 1).setFormula(formula));
var search = nlapiCreateSearch('transaction', filter, columns);
var searchresult = search.runSearch();
从理论上讲,这是可行的,但它得到的是字段的值,而不是文本的值,结果是非日期值。我知道在运行搜索后,有很多方法可以获取文本,而不是nlobjsearchsult.getText的值,但我还没有找到在公式中实现这一点的方法
有什么想法吗?似乎发帖期实际上可能包含额外的信息,这些信息显然只在“日期”之类的功能中使用。这可能是因为会计期间的内部层次结构。也可能是因为期间是单个选择框中的列表/记录字段,所以每个过账期间都有一个ID。为了解决这个问题,我对您的代码执行了以下操作:
var formula = "case when TO_DATE(SUBSTR({postingperiod},-8,8), 'MON YYYY') >= " + newselectedDate.getFullYear() + " then 1 else 0 end";
这基本上是添加一个SUBSTR函数来提取字符串中的最后8个字符,并传递给date函数。也许您可以给出搜索的用例?您似乎正在尝试在过帐期间内搜索交易记录。是。基本上,我需要筛选出一定的过帐期间日期内的交易。我必须转换过帐期间,因为它没有存储为日期数据类型。如果事务中的行项目的过帐期间不在日期范围内,我指定要将其过滤掉。您需要创建一个函数,将{postingperiod}转换为实际日期。假设P01 15,您需要将其转换为2015年1月1日,并将其与您的公式连接起来,就像所选日期一样。{postingperiod}字段不能转换为日期。它将是:var公式=case when_DATE+convertpostingPeriod+>=+selectedDate+然后1否则0结束;函数转换postingperiod{//做你的事}我想你不太明白我想做什么。我已经发布了代码块供您查看。你的答案将工作,如果我知道一个具体的张贴期间,然后是的,我可以转换,使它的工作。我需要我的公式来查看搜索中的每个交易过账期,并根据该过账期确定设置过账期格式后的日期。我在网上看到的文档表明,将字段名放在公式中的括号中,可以从我正在搜索的数据中获取该字段的值。