1

在早期版本的 CRM 中,可以从 Deployment Manager 设置默认组织。不过,情况不再如此。现在,每个用户都有自己的默认值,具体取决于服务器上访问的第一个组织

我对这个主题有强烈的(而且不太赞成)意见,但微软似乎很少关心我的想法。

因此,我将对数据库执行以下操作。

use MSCRM_CONFIG

update SystemUser 
set DefaultOrganizationId = 'GUID of the main organization'
--where Id='GUID of a user'

但是,我担心它会破坏某些东西并导致永恒恢复,所以我通过在这里提出问题来进行验证。

  1. 我如何确保毫无疑问地获得组织的正确 GUID?
  2. 在评论针对个人用户的条款并一次性打击所有用户时,它会很好用吗?
  3. 除了在操作之前备份整个系统之外,我还应该考虑哪些其他因素?

如果有人能建议一种更流畅、更不干扰的方式,我会高兴得跳起来。

4

1 回答 1

0

您可以使用http://complexitykills.blogspot.com/2009/09/default-organization-for-user-is.html上的脚本,该脚本与您的相似,但包含更多日志记录 - 请注意注释中包含一条 where 子句条件,用于查找具有“IsDeleted = 0”的组织,以防止选择已删除的组织。如果在 SQL 事务中发出 SQL 命令,您可以运行脚本,验证用户仍然可以登录 Microsoft CRM,如果需要,快速发出“回滚传输”以回滚 SQL 事务,而不必执行完整的恢复 MSCRM_CONFIG 数据库(尽管恢复速度应该很快,因为就 SQL Server 数据库而言,它永远不会很大)。

要获得正确的 OrganizationID,您可以使用如下 SQL 查询:

DECLARE @DefaultOrganizationId AS VARCHAR (100);
SET @DefaultOrganization = '<organizationname>';

SELECT @DefaultOrganizationId = id
FROM   MSCRM_CONFIG..organization
WHERE  UniqueName = @DefaultOrganization AND IsDeleted = 0;

如果您没有包含 where 子句,它确实会将所有用户更新为您在此处添加的组织 ID,并且应该可以正常工作(有关如何从 MSCRM_CONFIG..organization 检索组织 ID 的示例,请参见上面的查询桌子)。

这不一定是常见操作,但我已经看到它与一些组织一起使用,以成功更新与用户关联的默认组织,并指出事先已采取预防措施来备份数据库,并在之后执行测试以确保一切正常对于 Microsoft CRM 中的这些用户。

于 2015-02-16T17:32:24.833 回答