Suitescript 2.0-Suitelet + transaction_search for serverWidget_sublist获取项目并选择存在的字段

问题描述 投票:0回答:1

在以下脚本中,我创建了一个套件来从搜索中获取列。如何在子列表中为诸如项目之类的选择字段设置字段值?

在“ myLog”中,我看到我获得了正确项目的内部ID-但是,如果我将值设置为text或value则它不起作用-有人知道吗?

脚本下方:

/**

* 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
});
netsuite suitescript2.0
1个回答
0
投票

您的子列表item似乎没有ID为custpage_dispatching的sublsit字段,因此它不会设置/更新任何值。如果将setSublistValue块更改为下面的块,则它应该起作用并根据需要设置值。

sublist.setSublistValue({
  id: 'itemid',
  line: i,
  value: item
})
© www.soinside.com 2019 - 2024. All rights reserved.