NetSuite:需要使用事务保存搜索获取到岸成本类别行字段的值

NetSuite: Need to get value Of Landed Cost Category Line Field using Transaction Saved Search

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

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

但是在保存的搜索中我无法找到任何 Column/scriptId 可以给我 LANDED COST CATEGORY 行字段的值。我们能够使用 record.load().getValue() 获取此值,但我需要来自多个事务记录的此值,使用此方法可能会导致性能问题。那么,请您告诉我们如何使用保存的搜索访问此值。

我认为 Netsuite 目前不会在保存的搜索中公开该字段。这是 Netsuite 中的 records browser,列出了交易搜索的所有可用搜索列。该列的内部 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"
      }
    ]
  */
})