好的,这在 SuiteScript 1 中有效,但出于某种原因我无法让它与 SuiteScript 2 一起使用。我错过了什么?
客户端(现场更改/在线更改)或服务器端(提交时),我无法更改销售订单上的行,例如设置自定义字段。
这些都不起作用。找不到该函数或没有任何反应。我尝试了各种不同的功能和组合来设置文本或值。我只是似乎没有工作:
1.
Rec.setSublistText({
sublistId : 'item',
fieldId : 'custcol_example',
line : i,
value : "A"
});
2.
Rec.selectLine({
sublistId : 'item',
line : i
});
Rec.setCurrentSublistText({
sublistId : 'item',
fieldId : 'custcol_example',
value : "A",
ignoreFieldChange: true
});
Rec.commitLine();
这在 SuiteScript 1 中完美运行
function clientFieldChanged(type, name, linenum) {
var Count = nlapiGetLineItemCount("item");
for (var i = 1; i <= Count; i++) {
nlapiSelectLineItem("item", i);
nlapiSetCurrentLineItemValue("item", "custcol_example", "A", false, false);
nlapiCommitLineItem("item");
}
}
根据要求,一个更完整的 SS2 示例。不起作用。
function fieldChanged(scriptContext) {
var Rec = scriptContext.currentRecord;
var Count = Rec.getLineCount("item");
for (var i = 0; i < Count; i++) {
Rec.selectLine({
sublistId : 'item',
line : i
});
Rec.setCurrentSublistText({
sublistId : 'item',
fieldId : 'custcol_example',
line : i,
value : "A"
});
Rec.commitLine();
}
}
最佳答案
您的代码 1 中有一个小错误。
Rec.setSublistText({
sublistId : 'item',
fieldId : 'custcol_example',
line : i,
value : "A"
});
由于您使用的是 setSublistText(),因此您应该使用 'text': 'A',而不是值。它是这样的:
Rec.setSublistText({
sublistId : 'item',
fieldId : 'custcol_example',
line : i,
text: "A"
});
希望这对您有所帮助。
关于netsuite - 如何使用 SuiteScript 2 更改销售订单的行项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37514012/