netsuite - Suitescript 2.0 - Suitelet + transaction_search for serverWidget_sublist 获取项目并选择子字段
问题描述
在以下脚本中,我创建了一个套件来从搜索中获取列。如何在子列表中为选择字段(如项目)设置字段值?
在“myLog”中,我可以看到我得到了正确项目的内部 ID - 但是如果我将值设置为文本或值它不起作用 - 有人知道吗?
在脚本下方:
/**
* u/NApiVersion 2.x
* u/NScriptType Suitelet
* u/NModuleScope SameAccount
*/
define(['N/record', 'N/redirect', 'N/ui/serverWidget', 'N/search', 'N/log'],
function( record, redirect, serverWidget, search, myLog) {
function onRequest(context) {
var request = context.request;
var response = context.response;
if (request.method == 'GET') {
// title of the page
var form = serverWidget.createForm({
title: 'Dispatching'
});
var sublist = form.addSublist({
id: 'item',
type: serverWidget.SublistType.LIST,
label: 'Dispatching - List'
});
//Item
var item\_field = sublist.addField({
id: 'itemid',
type: serverWidget.FieldType.SELECT,
source: 'item',
label: 'item'
});
//price Level
sublist.addField({
id: 'level',
type: serverWidget.FieldType.SELECT,
source: 'pricelevel',
label: 'price level'
});
var button = form.addSubmitButton({
label: 'Process Proforma creation'
});
var salesorderSearchObj = search.create({
type: "salesorder",
filters: [
["type", "anyof", "SalesOrd"],
"AND",
["status", "anyof", "SalesOrd:A", "SalesOrd:B", "SalesOrd:D", "SalesOrd:E", "TrnfrOrd:E"],
"AND",
["item.type", "anyof", "Group", "Kit", "InvtPart"],
"AND",
["closed", "is", "F"],
"AND",
["job.entityid", "haskeywords",],
"AND",
["formulanumeric: {quantity}-{quantityshiprecv}", "notequalto", "0"],
"AND",
["custcol_deldate", "within", "thisweek"],
"AND",
["custcol57", "is", "T"]
],
columns: [
search.createColumn({
name: "item",
label: "Item"
}),
search.createColumn({
name: "tranid",
sort: search.Sort.ASC,
label: "Document Number"
}),
search.createColumn({
name: "custcol12",
sort: search.Sort.ASC,
label: "PS"
}),
search.createColumn({
name: "custcolcustomerpart",
label: "Customer Part"
}),
search.createColumn({
name: "formulatext",
formula: "XXX"
label: "Customer Description"
}),
search.createColumn({
name: "formulacurrency",
formula: "{item.pricelevel12}",
label: "Price €"
}),
]
});
var searchResultCount = salesorderSearchObj.runPaged().count;
log.debug("salesorderSearchObj result count", searchResultCount);
salesorderSearchObj.run().each(function(result) {
// .run().each has a limit of 4,000 results
var searchResult = salesorderSearchObj.run().getRange({
start: 0,
end: 200
});
for (var i = 0; i < searchResult.length; i++) {
var ps = searchResult[i].getValue({name: 'custcol12'});
var item = searchResult[i].getValue({name: 'item'});
var description = searchResult[i].getValue({name: 'formulatext'});
myLog.debug({
title: 'Item in loop',
details: item
});
//SET ITEM
var setItem = sublist.setSublistValue({
id : 'custpage_dispatching',
line : i,
value : item
});
解决方案
您的子列表item
似乎没有带有 id 的 sublsit-field,custpage_dispatching
因此它不会设置/更新任何值。如果您将setSublistValue块更改为以下内容,它应该可以工作并根据需要设置值。
sublist.setSublistValue({
id: 'itemid',
line: i,
value: item
})
推荐阅读
- image - 在颤动中选择一个时如何向前移动选择图像按钮
- python - 我的熊猫数据框的特定转置
- python - ProcessPoolExecutor如何统计繁忙和空闲进程?
- python - 如何在python中获取解释器命令历史记录
- mysql - PHP SQL按多行排序
- python - 如何使用 str 类型的全局变量来填充 MDLable 文本字段。我还需要设置字体和大小
- webpack-5 - ScriptExternalLoadError:加载脚本失败
- javascript - 为什么我的 html(Javascript) 代码在 vsCode 中不起作用?
- c# - Blazor:EditForm.Model 更改后如何保持对输入的关注
- quartz.net - Quartz .NET 和 Resiliense,如何正确处理这种情况