Цитата:
Сообщение от
a33ik
В сущности usersettings есть поле defaultdashboardid. Предполагаю, что когда юзер кликает "Set as default" в UI - выполняется заполнение данного поля выбранный ДБ. Чтобы не писать и массово обновить значение я бы реклмендовал посмотреть в сторону XrmToolbox - возможно в нём уже есть нужный плагин. Если же нет, то написать код, который выполняет обновление всех настроек - не очень и сложно.
Да, спасибо, так и сделал. XrmToolbox - нет такой фичи, а жаль!
Может кому-то надо будет
X++:
namespace CrmConsoleApp
{
class Program
{
static void Main(string[] args)
{
var service = CrmCon.GetCrmService();
Guid _dashboardId = new Guid("47c8063b-3a8d-e511-80ec-3863bb34ed18");
QueryExpression userSettingsQuery = new QueryExpression("usersettings");
userSettingsQuery.ColumnSet.AddColumns("defaultdashboardid", "systemuserid");
//userSettingsQuery.Criteria.AddCondition("defaultdashboardid", ConditionOperator.Equal, _dashboardId);
EntityCollection userSettings = service.RetrieveMultiple(userSettingsQuery);
if (userSettings.Entities.Count > 0)
{
for (int i = 0; i < userSettings.Entities.Count; i++)
{
var userSettingId = (Guid)userSettings.Entities[i]["systemuserid"];
UpdateSystemSettings(userSettingId, _dashboardId, service);
}
}
Console.ReadKey();
}
public static void UpdateSystemSettings (Guid userSettingId, Guid defaultdashboardid, IOrganizationService service)
{
Entity userSetting = new Entity();
userSetting.LogicalName = "usersettings";
userSetting.Id = userSettingId;
userSetting.Attributes.Add("defaultdashboardid", defaultdashboardid);
service.Update(userSetting);
}
}
}