Netsuite Suitescript:如何根据上次修改日期检索记录?

时间:2017-06-01 07:14:12

标签: search netsuite restlet suitescript

我正在尝试通过SuiteScript在Netsuite中检索记录。我希望在某个时间戳之后使用lastmodifieddate列来获取记录。

我目前正在做:

var filters = [new nlobjSearchFilter('lastmodifieddate', null, 'notbefore', time)];
var columns = [new nlobjSearchColumn('lastmodifieddate')];
var newSearch = nlapiCreateSearch(table, filters, columns);
var searchResultSet = newSearch.runSearch();
var back = nextEndIndex - 1000
var results = searchResultSet.getResults(back, nextEndIndex);

其中time是日期时间JS,nextEndIndex结果的索引计数器。

这适用于某些对象,但大多数Netsuite对象在记录浏览器中没有lastmodifieddate列。 lastmodifieddate是否有内置变量?如果有,我如何在nlapiCreateSearch中使用它?如果你有更好的方法,我会很感激信息。

3 个答案:

答案 0 :(得分:3)

以下是SuiteScript 2.0的一个简单示例。

define(['N/search'],function(search){
  function test(chkDate){
    log.debug(chkDate);
    var empSearch=search.create({
      type:search.Type.EMPLOYEE,
      columns:['internalid','firstname','lastmodifieddate'],
      filters:['lastmodifieddate','after',chkDate]
    }).run().each(function(result){
      log.debug(JSON.stringify(result));
      return true;
    });
  }
  test('05/30/2017');
});

此示例正在搜索员工,因为我不确定您正在查看哪种记录类型。以下是您可用于构建搜索的信息的链接:

  1. Records Browser(查看过滤器和列中每个部分的底部):
  2. Search Operators(显示哪些字段类型使用)
  3. API Docs

答案 1 :(得分:0)

你可以使用' Max'摘要筛选ListBox - 您当然需要按记录分组(例如文档编号或内部ID),以显示正确的结果。

答案 2 :(得分:0)

交易与实体略有不同。交易有线。如果您尝试确定事务的最后修改日期,则可能需要考虑使用" Line Last Modified"字段代替"上次修改日期。"尝试编写一个简单的搜索来拉取销售订单。包括"上次修改日期"和"线路上次修改。"然后写一个简单的公式来显示那些不匹配的公式。当我这样做时,存在许多不匹配,其中包括" Line Last Modified"超过"上次修改日期超过1个月。"因此,如果您正在寻找真正的上次修改日期,您可能需要使用max" Line Last Modified。"