这是使用SQL 2008 R2的Dynamics CRM 2011汇总11内部部署
我们正在尝试调试以下方案:
在Synchronous PostCreate插件中,我们将用户添加到拥有特定记录的团队,并通过安全角色对该记录具有读取权限。这应该意味着当完成创建过程时,添加到团队的用户可以访问该记录。当这样的用户然后打开记录时,他们会收到SecurityException ReadAccess错误。记录确实显示在网格中,如果它们没有记录的读取权限,则不应该发生。
作为进一步测试,我们从控制台应用程序为用户和记录执行SDK调用RetrievePrincipalAccessRequest,并查看用户没有读取权限。
我们可以在UI中查看团队成员列表,用户是团队成员。如果我们等待足够长的时间(并创建另一条记录,问题最终将自行解决 - 几分钟后。)
我们可以使用我们在插件中执行的相同代码(但在控制台应用程序中运行)向团队添加用户,并且用户具有读取权限,并且可以在调用完成后立即访问记录。
我们的插件中明显出现了导致问题但我们无法弄清楚是什么或为什么的问题 - 因为Create调用完成且没有错误,我们可以看到UI中列出的用户。我们没有做任何时髦的事情 - 即直接SQL,外部服务等。
我们称之为标准CRM 2011 SDK消息,并且完成时不会抛出错误。我们可以验证用户是否已添加到用户界面中。用户有权读取实体,但他们没有。
任何想法/想法?我们一直在跟踪疯狂,但没有找到我们的吸烟枪!
更新
如果我们在插件代码中暂停,我们可以降低发生率。仅在插件期间完成添加时才会发生此错误,而不是在插件外部完成添加时。我开始怀疑是否存在SQL过程/语句(当用户被添加到团队时有三个存储过程触发)由于某种原因而被缩短或无法完成,因为添加是没有在插件代码中完成。
答案 0 :(得分:0)
最后在Rollup 18(http://support.microsoft.com/kb/2958724)
解决的项目列表中找到了答案如果您通过插件分配团队成员资格,则用户缓存会执行 不会失效,在尝试检索时导致错误 记录。如果团队具有安全角色和Access,则会出现此问题 权利由团队所有权控制。
我们在2个月前与微软公开过一张票,其中涉及很多来回但不是明确的解决方案。
因此,如果您在CRM 2011上遇到相同的问题,则需要更新到Rollup 18。