在 NetSuite SS2.0 中设置表单字段的自定义按钮
Custom Button to Set Fields on Form in NetSuite SS2.0
我在 NetSuite 中有一个自定义按钮,我想知道是否有任何方法可以让我使用该按钮在表单上设置字段。基本上,我将有一个批准按钮来锁定编辑,我想知道我是否可以通过按钮和 javascript 来做到这一点。据我所知,我无法访问脚本的上下文,因为我从用户事件脚本开始,然后转到客户端。我也可能只是遗漏了一些非常愚蠢的东西,但我对 NetSuite 还很陌生。这是我的用户事件脚本
function beforeLoad(context) {
var form = context.form;
form.clientScriptModulePath = './_kk_fc_cs_sd.js';
form.addButton({
id : 'custpage_china_approve_btn',
label : 'Approve - China',
functionName : 'chinaApproveFinalQuote'
});
form.addButton({
id : 'custpage_dallas_approve_btn',
label : 'Approve - Dallas',
functionName : 'dallasApproveFinalQuote'
})
}
然后对于我的客户端脚本,我有
function chinaApproveFinalQuote()
{
alert(record.id);
var firstCost = context.currentRecord;
firstCost.setValue('custrecord_kk_sd_fc_master_carton_cb', true);
}
它几乎不知道上下文是什么。我尝试在用户事件脚本中传递它,也尝试使用 record.id,但这些都不起作用。任何想法,或者我必须以不同的方式解决这个问题吗?
尽管您可以这样做(查看 中客户端和用户脚本之间的关系,这是工作流程倾向于 excel
的领域
工作流有锁定记录的方法,特定用户除外;为特定用户显示 approve/reject 个按钮;批准时设置字段等。
您遇到的问题是因为您需要在客户端脚本中使用 currentRecord 才能 set/get 值。此处要注意的另一件事是,如果您仅通过其 NetSuite 文件夹位置(未实际部署到记录)引用客户端脚本,您仍然需要包含一个 pageInit 入口点函数(尽管它可以为空)。只是另一个 SuiteScript 2.0 警告...
/**
*@NApiVersion 2.x
*@NScriptType ClientScript
*/
define(
[
'N/currentRecord'
],
function (
nsCurRec
) {
function chinaApproveFinalQuote() {
var btn;
var rec = nsCurRec.get();
alert(rec.id);
btn = rec.getField('custpage_china_approve_btn');
btn.isDisabled = true;
rec.setValue({
fieldId: 'custrecord_kk_sd_fc_master_carton_cb',
value: true
});
}
function pageInit(context) {
}
return {
pageInit: pageInit,
chinaApproveFinalQuote: chinaApproveFinalQuote
};
}
);
我在 NetSuite 中有一个自定义按钮,我想知道是否有任何方法可以让我使用该按钮在表单上设置字段。基本上,我将有一个批准按钮来锁定编辑,我想知道我是否可以通过按钮和 javascript 来做到这一点。据我所知,我无法访问脚本的上下文,因为我从用户事件脚本开始,然后转到客户端。我也可能只是遗漏了一些非常愚蠢的东西,但我对 NetSuite 还很陌生。这是我的用户事件脚本
function beforeLoad(context) {
var form = context.form;
form.clientScriptModulePath = './_kk_fc_cs_sd.js';
form.addButton({
id : 'custpage_china_approve_btn',
label : 'Approve - China',
functionName : 'chinaApproveFinalQuote'
});
form.addButton({
id : 'custpage_dallas_approve_btn',
label : 'Approve - Dallas',
functionName : 'dallasApproveFinalQuote'
})
}
然后对于我的客户端脚本,我有
function chinaApproveFinalQuote()
{
alert(record.id);
var firstCost = context.currentRecord;
firstCost.setValue('custrecord_kk_sd_fc_master_carton_cb', true);
}
它几乎不知道上下文是什么。我尝试在用户事件脚本中传递它,也尝试使用 record.id,但这些都不起作用。任何想法,或者我必须以不同的方式解决这个问题吗?
尽管您可以这样做(查看
工作流有锁定记录的方法,特定用户除外;为特定用户显示 approve/reject 个按钮;批准时设置字段等。
您遇到的问题是因为您需要在客户端脚本中使用 currentRecord 才能 set/get 值。此处要注意的另一件事是,如果您仅通过其 NetSuite 文件夹位置(未实际部署到记录)引用客户端脚本,您仍然需要包含一个 pageInit 入口点函数(尽管它可以为空)。只是另一个 SuiteScript 2.0 警告...
/**
*@NApiVersion 2.x
*@NScriptType ClientScript
*/
define(
[
'N/currentRecord'
],
function (
nsCurRec
) {
function chinaApproveFinalQuote() {
var btn;
var rec = nsCurRec.get();
alert(rec.id);
btn = rec.getField('custpage_china_approve_btn');
btn.isDisabled = true;
rec.setValue({
fieldId: 'custrecord_kk_sd_fc_master_carton_cb',
value: true
});
}
function pageInit(context) {
}
return {
pageInit: pageInit,
chinaApproveFinalQuote: chinaApproveFinalQuote
};
}
);