【问题标题】:netsuite suitescript filter expression not producing the search results needednetsuite suitescript 过滤器表达式不产生所需的搜索结果
【发布时间】:2015-12-14 18:36:53
【问题描述】:
    var filterExp = [ 
                [ ['custrecord_rebate_customer.isinactive', 'is', 'F'],
                   'and',
                  ['custrecord_rebate_customer.custrecord_start_date', 'before', date],
                  'and',
                  ['custrecord_rebate_customer.custrecord_end_date', 'after', date],
                  'and',
                  ['custrecord_rebate_customer.custrecord_upaya_warehouse', 'anyof', warehouse],
                  'and',
                  ['isinactive', 'is', 'F' ],
                  'and',
                  ['custrecord_customer_name', 'anyof', customer]],

                  'or',

                 ['custrecord_rebate_customer.custrecord_global_clearance_item','is','T']


                  ];

我正在运行一个搜索以获得结果。我需要使用表达式,因为我需要在过滤器中有一个“或”。因此,在 UI 中,我构建了搜索并产生了正确的结果。我得到 7 个结果。现在在我的代码中,当我提醒搜索结果时,我得到 6,这意味着它没有执行代码的“或”部分。我似乎无法弄清楚如何使用“或”。第一次在代码中使用表达式,因此修复它可能是一件简单的事情。我已经以各种可能的方式尝试了括号。有没有人有任何解决方案?提前致谢!

【问题讨论】:

  • 哪一部分没有运行?包含日期的部分或包含清除测试的部分?如果是日期部分,您实际上在预期字段中有日期吗?
  • 清仓部分未运行。 or 之前的一切都运行良好。我得到 6 个结果,这是正确的。应该是包括清除在内的总共 7 个结果。使用上面的代码,我得到 6 个结果。所以它没有看到最终的清仓返利项目。但在 UI 中我得到 7。
  • 语法上看起来是正确的。我很想看看您在 UI 中设置的搜索过滤器以及您在 UI 中期望的结果。

标签: filter expression netsuite suitescript


【解决方案1】:

如果您的搜索在 UI 中正常工作,您可以尝试通过加载搜索来获取代码中的过滤器表达式,然后在您的代码中使用它。

x = nlapiLoadSearch(null, YOUR_UI_SEARCH_ID);
y = nlapiSearchRecord(YOUR_CUSTOM_RECORD_ID, null, x.getFilterExpression());

y 应该产生与 UI 中 x 相同的结果。您还可以查看x.getFilterExpression() 的内容以匹配您的过滤器表达式。

另外,如果您对自己在代码中执行/匹配过滤器表达式不感兴趣,您可以使用下面的代码来获取结果

nlapiLoadSearch(null, YOUR_UI_SEARCH_ID).runSearch().getResults(0, 1000);

【讨论】:

  • 这为我指明了正确的方向。感谢您提醒我可以从搜索中获取这些值。因此,我正在执行的 UI 搜索与代码中的自定义记录不同。我更改了 UI 以反映代码并得到相同的结果。所以代码是正确的。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-06
  • 1970-01-01
  • 1970-01-01
  • 2016-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多