不向其他用户显示SuiteScript AddButton

时间:2019-03-28 00:07:04

标签: netsuite suitescript2.0

我创建了两个按钮,它们显示在“估计”中。一个按钮向所有人显示,当用户具有设定的角色时,另一个按钮显示。

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

当我个人以任一角色登录到“估计”时,我会看到按钮。任何其他角色,我登录后都看不到button2。这是预期的行为。

但是,当具有组长角色的用户登录时,他们看到的是button1,但看不到的button2。相同的脚本同时包含两个按钮,因此这不是脚本本身的权限问题。

预期的行为::团队负责人登录后,可以在估算值上看到button2。

实际行为::团队负责人登录后,看不到估算的button2。

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

 if(acceptedRoles.indexOf(userRole) > -1) { 
      console.log('here');
}