Dynamics crm MS CRM在线自定义视图-需要在视图中为特定用户显示特定记录(基于团队)

Dynamics crm MS CRM在线自定义视图-需要在视图中为特定用户显示特定记录(基于团队),dynamics-crm,dynamics-crm-online,Dynamics Crm,Dynamics Crm Online,我有一个实体“工单”,我为它定义了许多自定义视图。工单可以有状态为“活动、取消、关闭、正在进行、已提交”等的记录。我的要求是-属于特定团队的当前登录用户“销售代表”应该能够查看所有记录。这很容易做到,但如果当前登录用户不属于“销售代表”团队,她不应该在视图中看到“取消”的记录,但所有其他记录都应该对她可见。如果可能的话,如何使用自定义过滤器实现这一点?或者通过代码更改?听上去高级查找工具不可能做到这一点。不过,您可以使用安全角色来实现它。如果您可以将取消的工单分配给特定的团队,然后组织安全设置,

我有一个实体“工单”,我为它定义了许多自定义视图。工单可以有状态为“活动、取消、关闭、正在进行、已提交”等的记录。我的要求是-属于特定团队的当前登录用户“销售代表”应该能够查看所有记录。这很容易做到,但如果当前登录用户不属于“销售代表”团队,她不应该在视图中看到“取消”的记录,但所有其他记录都应该对她可见。如果可能的话,如何使用自定义过滤器实现这一点?或者通过代码更改?

听上去高级查找工具不可能做到这一点。不过,您可以使用安全角色来实现它。如果您可以将取消的工单分配给特定的团队,然后组织安全设置,使非销售代表的用户无法查看来自该特定团队的工单,那么它可能会起作用。不幸的是,您必须重新分配已取消的工单,这并不总是一个选项

否则,您可能必须使用单独的视图查看已取消的工单,开箱即用的高级查找应该允许您显示一个空白网格,显示您不在正确的团队中。但现在很明显,您并不是在展示工作单的整体视图


总的来说,我会选择安全选项,让它正常工作。任何其他选择都只是权宜之计。用户始终可以创建自定义视图,因此,如果您不使用安全角色锁定访问权限,则仍然可以通过间接方式访问数据。

高级查找工具听起来不可能做到这一点。不过,您可以使用安全角色来实现它。如果您可以将取消的工单分配给特定的团队,然后组织安全设置,使非销售代表的用户无法查看来自该特定团队的工单,那么它可能会起作用。不幸的是,您必须重新分配已取消的工单,这并不总是一个选项

否则,您可能必须使用单独的视图查看已取消的工单,开箱即用的高级查找应该允许您显示一个空白网格,显示您不在正确的团队中。但现在很明显,您并不是在展示工作单的整体视图


总的来说,我会选择安全选项,让它正常工作。任何其他选择都只是权宜之计。用户始终可以创建自定义视图,因此,如果您不使用安全角色锁定访问权限,则仍然可以通过间接方式访问数据。

可以使用自定义代码执行此操作。不必询问您想这样做的“原因”(可能是敏感信息或其他什么?),您可以使用在操作前事件中注册的RetrieveMultiple插件来实现。在这个插件中,传入的一个输入参数称为“Query”,将有一个QueryExpression。您只需在插件中向该查询添加一个过滤器,相关行就会被过滤掉。大概是这样的:

var query=(QueryExpression)context.InputParameters[“query”];
var condition=new ConditionExpression()
{
AttributeName=“statuscode”,
运算符=ConditionOperator.NotIn,
值={2,3}//或任何要筛选的代码!
};
query.Criteria.AddCondition(条件);

要检查当前用户,您可以从插件上下文中获取用户id,并检索您想要检查的必要信息。

可以使用自定义代码执行此操作。不必询问您想这样做的“原因”(可能是敏感信息或其他什么?),您可以使用在操作前事件中注册的RetrieveMultiple插件来实现。在这个插件中,传入的一个输入参数称为“Query”,将有一个QueryExpression。您只需在插件中向该查询添加一个过滤器,相关行就会被过滤掉。大概是这样的:

var query=(QueryExpression)context.InputParameters[“query”];
var condition=new ConditionExpression()
{
AttributeName=“statuscode”,
运算符=ConditionOperator.NotIn,
值={2,3}//或任何要筛选的代码!
};
query.Criteria.AddCondition(条件);

要检查当前用户,您可以从插件上下文中获取用户id,并检索需要检查的必要信息。

您可以开发一个插件,将已取消的工单分配给用户不是其成员的团队。然后将访问此团队记录的权限限制为销售代表团队成员。您可以开发一个插件,将已取消的工单分配给用户不是其成员的团队。然后限制销售代表团队成员访问此团队记录。