簡體   English   中英

如何從交易保存搜索/Suitescript 搜索中獲取銷售訂單“shipaddresslist”值?

[英]How to get Sales Order 'shipaddresslist' value from Transaction Saved Search/Suitescript Search?

在 Netsuite 中,銷售訂單記錄類型包含一個名為“ shipaddresslist ”的字段,其中包含與所選客戶地址關聯的客戶地址內部 ID。

不幸的是,沒有可獲取“ shipaddresslist ”值的 Sales Orders 搜索列,因此我不得不尋找解決方法。

使用 SuiteScript,我已經能夠通過循環搜索結果、將銷售訂單 ID 傳遞給 record.Load() function 並在加載的記錄上調用 record.getValue() 來獲取該字段的值,如下所示如下所示

搜索:

 var salesorderSearchObj = search.create({
   type: "salesorder",
   filters:
   [
      ["type","anyof","SalesOrd"],
      "AND",
      ["item.isfulfillable","is","T"],
      "AND",
      ["status","anyof","SalesOrd:B","SalesOrd:E","SalesOrd:D"],
      "AND",
      ["quantitycommitted","greaterthanorequalto","1"],
      "AND",
      ["location","anyof","1","3"],
      "AND",
      ["mainline","is","F"],
      "AND",
      ["item.type","anyof","InvtPart"]
   ],
   columns:
   [
      search.createColumn({
         name: "transactionnumber",
         sort: search.Sort.ASC,
         label: "Transaction Number"
      }),
      search.createColumn({name: "entity", label: "Name"}),
      search.createColumn({
         name: "custcol8",
         sort: search.Sort.ASC,
         label: "JANコード"
      }),
      search.createColumn({name: "quantityuom", label: "Quantity in Transaction Units"}),
      search.createColumn({name: "statusref", label: "Status"}),
      search.createColumn({
         name: "quantityonhand",
         join: "item",
         label: "On Hand"
      }),
      search.createColumn({
         name: "isfulfillable",
         join: "item",
         label: "Can be Fulfilled"
      }),
      search.createColumn({name: "department", label: "Department"}),
      search.createColumn({name: "otherrefnum", label: "PO/Cheque Number"}),
   ]
});

循環和記錄加載:

var matches = [];

salesorderSearchObj.run().each(function(result){
  var objRecord = record.load({
      type: record.Type.SALES_ORDER,
      id: result.id,
      isDynamic: true,
  });
  var push = resultToObject(result);
  push.addressid = objRecord.getValue({fieldId:'shipaddresslist'});
  log.debug("Result:",push);
  matches.push(push);
  return true;
});

這很好用......除了我通過搜索返回大約 1000 個銷售訂單這一事實,這意味着 record.Load() 在我完成搜索並構建整個結果列表之前吃掉了我的治理單元。

簡而言之,有沒有辦法直接從搜索 object 中返回銷售訂單記錄中“ shipaddresslist ”的值? 或者也許是一種無需加載整個記錄 object 即可動態獲取該字段的方法?

任何幫助是極大的贊賞!

已解決(有點)

大家好,我四處詢問並得到了一個半解決方案,所以如果其他人遇到這個問題,這里有一個解決方案。

出於我的目的,我只使用 SuiteScript,因為我認為您無法在 Netsuite 本身中獲得該字段,但事實證明我錯了。 以下是在 Netsuite 中獲取該字段的方法:

解決方案

1:導航到列表>搜索>保存的搜索>新建

2:Select 交易

3:在 Criteria 選項卡的 Standard 子選項卡下,添加以下過濾器:

---選擇Type: Select 你要拉起的交易類型

---送貨地址:不為空

---主線是真的

---公式(文本):DECODE({shipaddress}, {customer.address},'1','0') 以 1 開頭

4:在“結果”選項卡下添加以下列:

- -收件地址

---客戶/項目字段是地址內部ID

5:為搜索命名並點擊保存並運行。

唯一需要的標准是公式,但此解決方案是從 SuiteAnswers 復制和粘貼的。 我建議只使用公式並添加您認為合適的所需標准。

感謝 r/Netsuite subreddit 上的 u/seekcant 找到並發布了這個解決方案。

如果您正在尋找客戶地址的內部 ID,您可以將其添加到搜索列中

search.createColumn({
         name: "internalid",
         join: "shippingAddress",
         label: "Internal ID"
      })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM