3
我想在線配置Dynamics CRM 2011,以便默認顯示特定用戶角色的特定儀表板。這可能通過一些設置或通過使用插件或JavaScript編寫自定義代碼?默認情況下爲特定用戶角色顯示特定儀表板
例如,如果首席執行官CEO登錄 - 他應該看到年度收入儀表板,如果銷售人員登錄,他們會看到銷售線索儀表板。 儀表板是公用儀表板而不是個人儀表板。
我想在線配置Dynamics CRM 2011,以便默認顯示特定用戶角色的特定儀表板。這可能通過一些設置或通過使用插件或JavaScript編寫自定義代碼?默認情況下爲特定用戶角色顯示特定儀表板
例如,如果首席執行官CEO登錄 - 他應該看到年度收入儀表板,如果銷售人員登錄,他們會看到銷售線索儀表板。 儀表板是公用儀表板而不是個人儀表板。
如果您有內部部署版本,可能做到這一點的最快方法是訪問數據庫表UserSettingsBase
和更新DefaultDashboardId
列,你希望每個用戶有儀表板的GUID。 (編輯 - 剛剛意識到你正在使用CRM Online的,所以這是不適用的。)
您可以通過實例化UserSettings
實體爲每個用戶,找到每個用戶的適當roleid
和更新完成的API框架相同DefaultDashboardID
UserSettings
實體的屬性。下面是一個例子。
using (OrganizationServiceProxy _serviceProxy = new OrganizationServiceProxy(new Uri("Your CRM Server"), null, null, null))
{
_serviceProxy.EnableProxyTypes();
using (OrganizationServiceContext osc = new OrganizationServiceContext(_serviceProxy))
{
var usersSettings = from u in osc.CreateQuery<SystemUser>()
join ur in osc.CreateQuery<SystemUserRoles>() on u.SystemUserId.Value equals ur.SystemUserId.Value
join r in osc.CreateQuery<Role>() on ur.RoleId.Value equals r.RoleId.Value
select new
{
id = u.SystemUserId.Value
, roleName = r.Name
};
foreach (var users in usersSettings)
{
UserSettings us = new UserSettings();
us.SystemUserId = users.id;
switch (users.roleName)
{
case "CEO":
us.DefaultDashboardId = Guid.Parse("2E3D0841-FA6D-DF11-986C-00155D2E3002"); //the appropriate dashboardid
break;
//case "Sales Person"
//case "..."
//default: ...
}
_serviceProxy.Update(us);
}
}
}