Dynamics crm 根据general属性在javascript中设置安全字段
我的任务是:如果记录的所有者正在加载表单,则不会发生任何变化,但如果记录的所有者没有加载表单,则X字段必须是“安全字段”(可以看到字段而不是表单上的值,也不能在高级搜索中看到)-是否可能?我不确定这是否可能,因为在高级搜索中,它不会查看记录的所有者数据 我考虑的一个解决方案是,在加载表单时,我会检查用户是否是所有者,如果是,我会给他一个安全角色,或者将他添加到一个有权访问我的安全字段的团队中,这听起来合乎逻辑吗?Dynamics crm 根据general属性在javascript中设置安全字段,dynamics-crm,dynamics-crm-2016,xrm,Dynamics Crm,Dynamics Crm 2016,Xrm,我的任务是:如果记录的所有者正在加载表单,则不会发生任何变化,但如果记录的所有者没有加载表单,则X字段必须是“安全字段”(可以看到字段而不是表单上的值,也不能在高级搜索中看到)-是否可能?我不确定这是否可能,因为在高级搜索中,它不会查看记录的所有者数据 我考虑的一个解决方案是,在加载表单时,我会检查用户是否是所有者,如果是,我会给他一个安全角色,或者将他添加到一个有权访问我的安全字段的团队中,这听起来合乎逻辑吗? 是否有其他选项可以解决此问题?这是一个棘手的要求,因为我们需要为该属性启用字段级安
是否有其他选项可以解决此问题?这是一个棘手的要求,因为我们需要为该属性启用字段级安全性,并基于记录(所有者)中的某个字段值-用户将获得对安全字段的访问权。但通常FLS会为FLS配置文件中配置的一组用户/团队授予权限。我们无法为每个记录创建一个团队,Access团队不能用于此目的,安全角色在此场景中没有帮助 在社区论坛上,讨论如何使用sdk调用来利用“共享安全字段”功能 您可以在plugin/workflow/Javascript中使用类似的代码片段,以便在创建/更新时与所有者共享。这将在形式、高级和无处不在的情况下发挥作用
Entity poaa = new Entity("principalobjectattributeaccess");
poaa["attributeid"] = attributeResponse.AttributeMetadata.MetadataId;
poaa["objectid"] = new EntityReference(entityName, objectId);
poaa["readaccess"] = allowRead;
poaa["updateaccess"] = allowUpdate;
if (shareWithTeam)
{
poaa["principalid"] = new EntityReference("team", principalId);
}
else
{
poaa["principalid"] = new EntityReference("systemuser", principalId);
}
service.Create(poaa);
我认为这应该行得通。请试一试
- 设置一个检索和检索多个插件
- 将插件设置为以当前用户身份运行
- 在插件代码中,如果当前用户和所有者不同,只需从指定字段中删除该值
- 检索插件适用于表单
- RetrieveMultiple插件适用于高级查找和视图
- 在google上查找用于检索和检索多个插件的示例插件代码。根据您的上述要求进行修改