NetSuite:如何禁用" new"使用suitecript在netsuite中的链接记录上的按钮

时间:2016-12-20 03:32:15

标签: javascript netsuite suitescript

我们在NetSuite CRM模块中有客户记录,其中包含链接到客户记录的其他自定义记录。我们在客户记录和#34;客户状态"。

上有自定义字段

Screenshot

根据客户状态,我们要禁用新的自定义记录(在本例中为新服务记录)按钮。我能够使用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
    }
});




2 个答案:

答案 0 :(得分:0)

我不相信有任何支持API的方法可以做到这一点。

如果您想诉诸DOM hackery,可以使用客户端脚本来隐藏它:

document.getElementById("newrecrecmachcustrecordso_customer_name").style.display = "none";

请记住,无法保证未来的NetSuite更新不会中断。

另一种方法可能是离开按钮,但在链接记录上使用工作流程或脚本,以防止在客户状态无效时保存。

答案 1 :(得分:0)

设置自定义记录访问类型=使用权限列表。然后在角色配置上,将自定义记录权限分配给具有Access = View的角色。

查看访问权限低于“创建”,因此具有此角色的用户可以选择,但下拉列表中的“新建”选项将不可用。