[英]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.