Suitescript:将子列表数据从一条记录复制到另一条记录



我在发票记录上有一个加载前用户事件函数,该函数创建了一个名为'创建供应商账单'的按钮。

按下该键,将打开新的供应商账单记录。UE脚本:

/**
*@NApiVersion 2.x
*@NScriptType UserEventScript
*/
define([
"N/url",
"N/record",
"N/runtime",
"N/ui/serverWidget",
"N/redirect",
], function (url, record, runtime, serverWidget, redirect) {
var exports = {};

/**
* @param {UserEventContext.beforeLoad} context
*/
function beforeLoad(context) {
if (
context.type == context.UserEventType.EDIT ||
context.type == context.UserEventType.VIEW
) {
var record = context.newRecord;
var recordId = record.id;
var recordType = record.type;
var customer = record.getValue({ fieldId: "entity" });
log.debug("entity", customer);
var scriptObj = runtime.getCurrentScript();
var customForm = scriptObj.getParameter({
name: "custscript_custom_form_vb",
});
var recordSublist = record.getSublist({ sublistId: "item" });
log.debug("item", recordSublist);


var form = context.form;
log.debug("form", form);



var userVarStr = record;
log.debug("uservarstr", userVarStr);

var userVarURL = url.resolveRecord({
recordType: "vendorbill",
params: {
entity: parseInt(customer),
supportcase: recordId,
cf: parseInt(customForm),

},
});



form.addButton({
id: "custpage_button_test",
label: "Create Vendor Bill",
functionName: "getDetails('" + userVarURL + "')",
});


}
}

exports.beforeLoad = beforeLoad;
return exports;
});

一旦页面重定向到供应商账单表单,客户端脚本(部署在表单上)就会使用url

中传递的参数设置供应商账单主体上的字段值运行正常

我被卡住的地方是试图找出如何将"项目"子列表值从发票传递到供应商账单?

我要把它作为数组传递吗?

据我所知,可以通过url传递的字符数量是有限制的。我在网上或Netsuite文档中找不到任何处理记录之间传递子列表值的内容

对于初学者,我希望看到客户端脚本。

一种选择是只传递发票记录ID和类型。然后,您可以创建一个用作代理的Suitelet,并通过保存的搜索获取子列表数据。要记住的是,如果子列表非常非常长,您可能会达到执行超时,因此您可能需要考虑触发MapReduce脚本来再次填充子列表,您可以将发票和供应商账单的recType和ID传递给它,然后使用保存的搜索来获取数据。

还有其他方法,但我需要看到客户端脚本。