如何使用SuiteScript检查用户对NetSuite上当前记录的权限?

时间:2018-01-16 06:30:32

标签: netsuite suitescript suitescript2.0

我们正在NetSuite上编写脚本以与第三方应用程序集成。

当您访问记录(无论是查看还是编辑)时,我们需要确定NetSuite用户对记录的权限类型。

我从文档中知道这些是可能的权限值:

  • 创建
  • EDIT
  • FULL
  • NONE
  • VIEW

我也知道我可以使用以下方式获取用户权限:

var userObj = runtime.getCurrentUser();
var permission = userObj.getPermission('ADMI_ACCOUNTING')`

问题是我需要知道根据我当前的记录特别要求的权限。我在currentRecord中找不到可以允许我请求对用户对象的权限的值能够确定用户对记录的权限级别。

任何有关如何解决这个问题的人都会非常感激!

1 个答案:

答案 0 :(得分:4)

我认为你最好的选择是创建一个帮助函数,将记录类型映射到匹配的权限。你必须手动维护它。

看起来你正在使用SS2.0,所以假设你有可用的N /记录模块(或类似的东西),你可以这样做:

function getPermissionName(recordType) {
    var objectPermissionMap = {
        customer: 'LIST_CUSTJOB',
        invoice: 'TRAN_CUSTINVC'
    };

    return objectPermissionMap[recordType];
}

var user = runtime.getCurrentUser();
var permissionName = getPermissionName(record.type);
var permission = runtime.getPermission(permissionName);