0

我正在尝试使用 NetSuite 的自定义选项(SuiteBuilder、SuiteScript 等)在一定程度上模仿 NetSuite 的 Landed Cost 功能,然后根据我的要求进一步扩展功能。

为此,我需要在脚本中使用保存的搜索获取交易记录(如账单、采购订单等)中项目子列表的“登陆成本类别”行字段的值。

但是在保存的搜索中,我找不到任何可以为我提供 LANDED COST CATEGORY 行字段值的 Column/scriptId。我们可以使用 record.load().getValue() 获得这个值,但我需要来自多个事务记录的这个值,使用这种方法可能会导致性能问题。所以,请你告诉我们如何使用保存的搜索来访问这个值。

4

1 回答 1

1

我不相信 Netsuite 目前不会在保存的搜索中公开该字段。这是 Netsuite 中的记录浏览器,列出了用于事务搜索的所有可用搜索列。该列的内部 id 是landedcostcategory,并且不会显示在列表中。

但是,如果您的目标是在 SuiteScript 中获取此信息,那么您可以使用“N/query”模块。拉起您的一个采购订单,打开 Javascript 控制台 (Ctrl+Shift+J) 并尝试以下操作:

require(['N/query'], (query) => {
  const suiteqlQuery = `SELECT 
                          transaction as transaction_id,
                          BUILTIN.DF(transaction) as transaction_name, 
                          BUILTIN.DF(item) as item_name,
                          item as item_id, 
                          landedcostcategory as landedcostcategory_id,
                          BUILTIN.DF(landedcostcategory) as landedcostcategory_name
                        FROM
                          transactionline
                        WHERE
                          transaction='<internal id of your PO here>'`;
  const results = query.runSuiteQL({query: suiteqlQuery}).asMappedResults();
  console.log(JSON.stringify(results, null, 2));           
  
  /*
    Example output for results:
    [
      {
        "transaction_id": "12345",
        "transaction_name": "Purchase Order #PO123456",
        "item_name": "My Favorite iPod",
        "item_id": 1234,
        "landedcostcategory_id": 1,
        "landedcostcategory_name": "Duties & Tariffs"
      }
    ]
  */
})

于 2021-01-06T09:40:37.243 回答