做D365开发这么长时间竟然没用过Access Team Templates, 前几天有人问我,直接就给我问懵了。之后赶紧去查阅了资料,做了一些练习并且总结了一下:
对于实体级的控制我们可以用Security Role来限制,对于字段级有字段级安全的设置。那么对于Access Team Template我们就可以简单的理解为它是对记录级的一种权限控制;
下面就来聊聊这个Access Team Templates的使用步骤以及它的注意事项:
1. 启用实体的'Access Teams'功能
Setting -> Customizations -> Customize the System找到需要开启Access Teams功能的实体,选中Access Teams复选款,保存
2. 创建团队模板
Setting -> Security -> Access Team Templates
点击New, 填写需要的信息还有合适的权限,然后保存
Notes:
- 上图中Entity的下拉框中只会列出已经开启Access Teams功能的实体
- 每个实体默认只能创建两个 Access Team 模板(注:这个限制可以更改,我会在下期的博客中说一下如何更改)
3. 向实体的Form中添加Team Template
Setting -> Customizations -> Customize the System找到需要使用团队模板的实体,我们这里以我们刚刚创建的team template为例,刚刚我们创建的team template是Account实体的:
1)在Account实体的主窗体中选择我们要添加的Form
2)创建Subgrid并关联Team Template
2.1 在Form的主窗体选择Insert
2.2 选择Sub-Grid
2.3 在Set Properties对话框中填写所需的字段
Notes:
Records的下拉列表中选择"All Record Types"
Entity的下拉列表中选择"Users"
Default View下拉列表中选择"Associated Record Team Members"
Team Template下拉列表中选择我们刚刚创建的Team Template
2.4 保存并发布
Notes:
- Access Team Template不会与其在解决方案中的实体一起导出。管理员在将实体导出到另一个实例时需要重新创建模板。
- 使用Access Team的user至少需要有那个实体Read,Write, Delete, Append, Append To, Assign, Share的user level的权限。 以我们上面Account实体为例,如果想让一个user能够顺利的看到你通过Access Team给他的记录,那么就需要有下面这几个权限,否则在最初的Add User阶段就会报错:
- 经过测试还发现,如果一个Access Team Template,例如关联的是Account实体,并且可以使用的权限是Read权限,如下
那么在这之后对A这条记录使用Access Team添加一个user S,这时user S就能对A这条记录有读的权限,我想这里大家应该都不会有疑问,因为这是正常的。但接下来就是我们需要注意的了:
在这之后我们将这个Access Team Template的权限变一下,变成如下:
但我们会发现对于之前的A记录user S仍然是只有读权限,并没有Share, Assign这类的权限;
这个时候我们再将一条记录B使用Access Team添加给user S,这个时候user S基本上就有对这条B记录的所有的权限了。
我们可以理解为如果你对一条记录使用的Asscess Team功能的话,那么被添加的user能够操作这条记录的权限就是你在当时的Access Team Template中的权限,切记,是当时的。
这一点大家在使用这个功能的时候需要注意一下。