NetSuite加载前取消操作

NetSuite加载前取消操作,netsuite,suitescript2.0,Netsuite,Suitescript2.0,我有一个userevent beforeload,它有条件地删除打印按钮。如果用户在列表视图中,他们仍然可以从该菜单打印。所以我想知道是否有人知道一种方法,可以拦截请求并重定向或通知他们,甚至可以更改使用的pdf模板 以下是我的代码片段: if (scriptContext.type === scriptContext.UserEventType.PRINT) { if(status == 2){ log.d

我有一个userevent beforeload,它有条件地删除打印按钮。如果用户在列表视图中,他们仍然可以从该菜单打印。所以我想知道是否有人知道一种方法,可以拦截请求并重定向或通知他们,甚至可以更改使用的pdf模板

以下是我的代码片段:

if (scriptContext.type === scriptContext.UserEventType.PRINT) {
                    if(status == 2){
                        log.debug({
                            title: 'Trying to Print Approved PO',
                            details: status
                        });
                        return true;
                    }
                    else{
                        log.debug({
                            title: 'Trying to Print UnApproved PO',
                            details: status
                        });
                        //code here to redirect users, notify them of issue or change to different pdf template
                        return false;
                    }


                }

虽然不理想,但我只是抛出了一个错误,没有抓住它

throw 'This error is a result of trying to print a PO that has not been approved.';

您可以在UE beforeLoad事件上添加复选框字段,并设置值true/false(如果用户可以/无法生成pdf)。然后控制freemarker AdvPDF上的新字段,如果用户无法生成pdf,则可以显示消息,而不是打印内容

var field=objForm.addField({
id:“custpage\u allow\u access”,
类型:serverWidget.FieldType.CHECKBOX,
标签:“允许访问”
});
field.defaultValue=“F”;
field.updateDisplayType({
displayType:serverWidget.FieldDisplayType.HIDDEN

});谢谢你的建议。我考虑过这一点,但我们有很多模板,我希望避免向所有模板添加逻辑,并尽可能保持它们的干净。