为了生成所需的令牌-消费者密钥,消费者密钥,令牌ID,令牌密钥-我们正在创建集成和访问令牌,并将它们分配给具有访问TBA特定角色的员工。(请参阅https://medium.com/@morrisdev/netsuite-token-based-authentication-tba-342c7df56386)
那么,有没有可能几乎没有麻烦地获得该员工的特定角色呢?
我正在尝试这样做,但是我找不到办法,所以我才开始列出所有可能的雇员,并要求进行身份验证的人员(除了提供其4个令牌(以及其帐户ID)之外,还应提供他们的身份)。角色,这看起来很愚蠢。(一旦有了员工,我就可以找到具有所需角色的员工,因为他们是唯一使用它的员工。)
private static void GetEmployees()
{
EmployeeSearch search = new EmployeeSearch();
EmployeeSearchBasic esb = new EmployeeSearchBasic();
esb.isInactive = new SearchBooleanField();
esb.isInactive.searchValue = false;
esb.isInactive.searchValueSpecified = true;
search.basic = esb;
SearchResult res = Client.Service.search(search);
res.pageSize = 2000;
res.pageSizeSpecified = true;
if (res.status.isSuccess)
{
Record[] searchRecords = res.recordList;
if (searchRecords != null && searchRecords.Length >= 1)
{
//Do something...
}
else
{
//Do something...
}
}
else
{
throw new Exception("Couldn't find any employees.");
}
}
Run Code Online (Sandbox Code Playgroud)
我搜索他们的角色的原因是确保它具有我将要使用的所需权限。如果我不需要他们的角色来执行此任务,因为它又以某种方式与令牌绑定,请告诉我如何做,然后在需要时编辑上下文。
我正在使用以下Web服务-https: //webservices.netsuite.com/wsdl/v2017_2_0/netsuite.wsdl
仅使用 SuiteTalk 调用无法获取此信息。一个用户可以拥有多个角色。此外,Netsuite 角色具有很强的可塑性,因此除非您正在处理标准角色,否则它们在确定权限方面没有多大用处。
因此,您需要检查特定权限,而不是获取角色。
更好的选择是创建一个配套的 RESTlet,您可以使用与查询 SuiteTalk 相同的令牌进行查询。然后,您可以查询 RESTlet 的权限(或者只是让它为您提供您关心的所有权限,这样您只需调用它一次。
您还可以要求客户在用户和角色上设置令牌,以满足您的需求。为此,您必须指定角色的权限,这可能会很麻烦,因此最后:
您还可以在开发帐户中创建角色和集成记录,并将它们作为捆绑包提供。然后,您需要您的客户安装该捆绑包并使用令牌的角色和集成记录,并且您无需查询任何内容。
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |