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

如何使用SuiteScript检查用户对NetSuite上当前记录的权限?,netsuite,suitescript,suitescript2.0,Netsuite,Suitescript,Suitescript2.0,我们正在NetSuite上编写一个脚本,以便与第三方应用程序集成 当您访问记录(无论是查看还是编辑)时,我们需要确定NetSuite用户对该记录拥有何种权限 通过文档,我知道以下是可能的权限值: 创造 编辑 满满的 没有 看法 我还知道我可以通过以下方式获得用户权限: var userObj = runtime.getCurrentUser(); var permission = userObj.getPermission('ADMI_ACCOUNTING')` 问题是,我需要知道,根据我

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

当您访问记录(无论是查看还是编辑)时,我们需要确定NetSuite用户对该记录拥有何种权限

通过文档,我知道以下是可能的权限值:

  • 创造
  • 编辑
  • 满满的
  • 没有
  • 看法
我还知道我可以通过以下方式获得用户权限:

var userObj = runtime.getCurrentUser();
var permission = userObj.getPermission('ADMI_ACCOUNTING')`
问题是,我需要知道,根据我目前的记录,具体需要什么样的许可。我在currentRecord中找不到允许我请求对用户对象的权限的值,以确定用户对该记录的权限级别


任何对如何实现这一点有想法的人,我都会非常感激

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

看起来您正在使用SS2.0,因此假设您有可用的N/record模块(或类似模块),您可以执行以下操作:

函数getPermissionName(recordType){ var objectPermissionMap={ 客户:“列出客户工作”, 发票:“TRAN_CUSTINVC” }; 返回objectPermissionMap[recordType]; } var user=runtime.getCurrentUser(); var permissionName=getPermissionName(record.type); var permission=runtime.getPermission(permissionName);
谢谢!实际上我担心这是唯一的方法。。。您知道我可以在哪里至少获得权限到实际记录类型属性的映射吗?再次感谢你抽出时间,米凯索里。我不知道所有记录类型到权限的现有映射。@mikerobins user.getPermission(permissionName);