我们在NetSuite CRM模块中有客户记录,其中包含链接到客户记录的其他自定义记录。我们在客户记录和#34;客户状态"。
上有自定义字段根据客户状态,我们要禁用新的自定义记录(在本例中为新服务记录)按钮。我能够使用beforeLoad脚本来禁用主客户记录上的按钮,但是当我尝试禁用与链接记录关联的按钮时,类似方法失败。
/**
* @NApiVersion 2.0
* @NScriptType UserEventScript
*/
define(["N/log", "N/ui/serverWidget"], function(log,ui) {
function disableNewCaseButton(context){
if (context.type == context.UserEventType.VIEW){
var customerStatus = context.newRecord.getValue({"fieldId" : "custentitycustomer_status"});
if (customerStatus !== 1){
var newButton = context.form.getButton({
id: 'newrecrecmachcustrecordso_customer_name'
})
try{
newButton.isDisabled = true;
}
catch(e){
log.debug({
title : "error",
details: e
});
}
}
return;
}
}
return {
beforeLoad: disableNewCaseButton
}
});

答案 0 :(得分:0)
我不相信有任何支持API的方法可以做到这一点。
如果您想诉诸DOM hackery,可以使用客户端脚本来隐藏它:
document.getElementById("newrecrecmachcustrecordso_customer_name").style.display = "none";
请记住,无法保证未来的NetSuite更新不会中断。
另一种方法可能是离开按钮,但在链接记录上使用工作流程或脚本,以防止在客户状态无效时保存。
答案 1 :(得分:0)
设置自定义记录访问类型=使用权限列表。然后在角色配置上,将自定义记录权限分配给具有Access = View的角色。
查看访问权限低于“创建”,因此具有此角色的用户可以选择,但下拉列表中的“新建”选项将不可用。