【问题标题】:NetSuite: How to disable "new" button on a linked record in netsuite using suitescriptNetSuite:如何使用suitescript禁用netsuite中链接记录上的“新建”按钮
【发布时间】:2016-12-20 03:32:15
【问题描述】:

我们在 NetSuite CRM 模块中有客户记录,以及与客户记录相关联的其他自定义记录。我们在客户记录“客户状态”上有一个自定义字段。

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
    }
});

【问题讨论】:

    标签: javascript netsuite suitescript


    【解决方案1】:

    我不相信有任何 API 支持的方式来做到这一点。

    如果你想求助于 DOM 黑客,你可以使用客户端脚本来隐藏它:

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

    请记住,不能保证这不会在未来的 NetSuite 更新中中断。

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

    【讨论】:

    • 防止记录被保存工作,但它并不优雅,因为用户可能已经输入了信息(我们正在尝试为支持/案例模块执行此操作)。通过操作 DOM,我能够禁用该按钮,客户端脚本没有“查看”事件,因此无法产生预期的效果。感谢您的帮助。
    • @user3757527 您不能在查看模式下部署客户端脚本,但如果您使用用户事件来设置客户端脚本,它也会在查看模式下运行。您还可以通过自定义内联 HTML 字段将客户端脚本注入查看模式。
    • 您能否提供一些关于如何使用用户事件脚本设置客户端脚本的指导?在加载事件注入客户端脚本之前我是否使用用户事件?
    • @irfans 正确。您只需要使用客户端脚本路径/ internalid 设置context.form.clientScriptModulePathcontext.form.clientScriptFileId 属性
    • 尝试创建一个 On Entry 工作流来检查客户状态是否有效,如果不是,工作流会将用户转移到其他地方
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-19
      • 1970-01-01
      • 2018-06-24
      相关资源
      最近更新 更多