N /查询列定义

时间:2019-05-10 09:47:59

标签: netsuite suitescript2.0

我正在尝试使用N / query模块获取交易数据:

require([ 'N/query'],
function(query) {
        var trxQuery = query.create({ type: query.Type.TRANSACTION });

        trxQuery.columns = [
            trxQuery.createColumn({ fieldId: 'externalid' }),
            trxQuery.createColumn({ fieldId: 'account' }),
            trxQuery.createColumn({ fieldId: 'fxamount' })
       ];

      var results = trxQuery.run();
})

帮助说出关于在创建查询列时设置fieldId的另一件事:

  

从“记录浏览器”中获取此值(fieldId)。

1. Go to the appropriate record type.
2. Scroll until you see the Search Columns table.
3. Locate the appropriate value in the Internal ID column.

但是,出现以下错误: {“类型”:“ error.SuiteScriptError”,“名称”:“ SSS_SEARCH_ERROR_OCCURRED”,“消息”:“发生搜索错误:找不到记录'交易'的字段'帐户'。 ...

fxamount字段也发生同样的事情。

如何通过使用N /查询模块来定义查询列以获取有关交易的帐户和金额(外币)的数据?

1 个答案:

答案 0 :(得分:2)

通过N/query模块,您可以使用与UI中的Google Analytics(分析)工作簿功能相同的逻辑。由于某些原因,这些工作簿并不总是具有与记录浏览器中相同的字段名称。对于我的两分钱,N/search模块仍然是要走的路。 N/query似乎比N/search慢得多。

在工作簿用户界面中,您可以单击每个字段名称旁边的信息图标,并查看query模块所需的字段ID。

在您的示例中,fxamount的搜索可能是查询中的foreigntotal

此外,顶级交易或交易行级别似乎没有account字段。在交易会计行级别,有一个account字段。

enter image description here

我不确定您要查找的帐户字段是否正确,但是此代码似乎有效。

var trxQuery = query.create({
  type: query.Type.TRANSACTION
});

trxQuery.columns = [
  trxQuery.createColumn({ fieldId: 'id' }),
  trxQuery.createColumn({ fieldId: 'transactionlines.accountingimpact.account' }),
  trxQuery.createColumn({ fieldId: 'foreigntotal' })
];

var results = trxQuery.run();