SuiteScript AddButton未向其他用户显示

问题描述 投票:0回答:3

我创建了两个按钮,显示在Estimate上。当用户具有设定角色时,一个按钮向所有人显示,另一个按钮显示。

form.addButton({id : 'button1', label : 'button1', functionName : "window.open('" + urlCallBack1 + "', '_blank')"});
var acceptedRoles = [ common.CONSTANTS.ROLES.TEAM_LEADER, 
common.CONSTANTS.ROLES.ADMINISTRATOR ];
if(acceptedRoles.indexOf(userRole) > -1)
{
    form.addButton({id : 'button2', label : 'button2', functionName : "window.open('" + urlCallBack2 + "', '_blank')"});
}

当我亲自前往以任一角色登录的Estimate时,我会看到按钮。任何其他角色,我登录都看不到button2。这是预期的行为。

但是,当具有团队领导角色的用户登录时,他们会看到button1但看不到button2。相同的脚本提供两个按钮,因此它不是脚本本身的权限问题。

预期行为:当团队领导登录时,他们可以在估计值上看到button2。

实际行为:当团队领导登录时,他们无法在估计值上看到button2。

netsuite suitescript2.0
3个回答
0
投票

您是否尝试将'userRole'变量显式转换为整数值以确保您的条件是比较两个相同类型的值?我在下面。

if(acceptedRoles.indexOf(parseInt(userRole)) > -1)

0
投票

您的脚本部署是否处于测试模式?如果是,则该脚本仅对脚本所有者执行。在这种情况下可能你。


0
投票

我认为这与userRole的值不匹配acceptedRoles数组中的任何值都有关。检查userRole的值以及它是否与TEAM_LEADER的常量值匹配。

var acceptedRoles = [ 'TEAM_LEADER', 'ADMINISTRATOR' ];
var userRole = 'TEAM_LEADER';

 if(acceptedRoles.indexOf(userRole) > -1) { 
      console.log('here');
}
© www.soinside.com 2019 - 2024. All rights reserved.