如何更改为用户选择的默认组织?

时间:2015-02-15 20:24:50

标签: sql-server dynamics-crm-2013 dynamics-crm-2015

在早期版本的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 个答案:

答案 0 :(得分:0)

您可以使用与您类似的http://complexitykills.blogspot.com/2009/09/default-organization-for-user-is.html脚本,但其中包含更多日志记录 - 请注意,评论中包含where子句条件查找具有" IsDeleted = 0"的组织防止选择已删除的组织。如果在SQL事务中发出SQL命令,则可以运行脚本,验证用户仍然可以登录到Microsoft CRM,如果需要,可以快速发出" Rollback Tran"回滚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子句,它确实会将所有用户更新为您在此处添加的组织,并且应该可以正常工作(请参阅上面的查询以获取有关如何从中检索组织的示例MSCRM_CONFIG..organization表)。

这不一定是常见操作,但我已经看到它与少数组织一起成功更新与用户关联的默认组织,并注意到在备份数据库之前已采取预防措施并且之后执行测试确保Microsoft CRM中的所有用户都能正常工作。