AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Функционал
All
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны Забыли пароль?

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.06.2012, 09:51   #1  
Deepoint is offline
Deepoint
Участник
 
60 / 14 (1) ++
Регистрация: 01.04.2011
Перенос настроек пользователя
Здравствуйте Уважаемые.
Вопрос в следующем - как перенести настройки пользователя (избранное, настройки форм, сохраненные параметры в формах отчетов и т.д.) от одного пользователя другому. Наверняка кто-нибудь сталкивался с подобной задачей.
Ax 4.0.
Старый 15.06.2012, 10:09   #2  
Dark Light is offline
Dark Light
Участник
Аватар для Dark Light
 
64 / 49 (2) +++
Регистрация: 17.02.2009
Адрес: Омск
X++:
    SysLastValue                sysLastValue;
    ;

    ttsbegin;

    delete_from sysLastValue
        where sysLastValue.UserId   == #UserIdTo;
        
    while select sysLastValue
        where sysLastValue.UserId   == #UserIdFrom
    {
        sysLastValue.UserId = #UserIdTo;
        sysLastValue.insert();
    }
    
    ttscommit;
Это, что касается пользовательских данных.

Последний раз редактировалось Dark Light; 15.06.2012 в 10:14.
За это сообщение автора поблагодарили: Deepoint (1).
Старый 15.08.2012, 15:31   #3  
Deepoint is offline
Deepoint
Участник
 
60 / 14 (1) ++
Регистрация: 01.04.2011
В конечном итоге механизм по переносу настроек + избранного от одного пользователя другому приобрел вид:
X++:
server static void UserFavoritesAndSettingsTransfer(Args _args)
{
        SysPersonalization FromSysPersonalization;
        SysPersonalization ToSysPersonalization;
        UserId FromUserId='FromUser';// от кого 
        UserId ToUserId='ToUser';  // кому 
        SysLastValue                sysLastValue;
        ;

        ttsbegin;

        // Удаляем Избранное пользователю ToUserId
        while select forupdate ToSysPersonalization
        where ToSysPersonalization.ElementType==UtilElementType::UserMenu
        && ToSysPersonalization.UserId==ToUserId
        {
            ToSysPersonalization.doDelete();
        }

        // Дублируем избранное
        while select FromSysPersonalization
        where FromSysPersonalization.UserId==FromUserId
        && FromSysPersonalization.ElementType==UtilElementType::UserMenu
        {
            ToSysPersonalization.data(FromSysPersonalization);
            ToSysPersonalization.UserId=ToUserId;
            ToSysPersonalization.doInsert();
        }
 
        // Удаляем настройки у ToUserId
        delete_from sysLastValue
            where sysLastValue.UserId   == ToUserId;

        // пишем настойки пользователю ToUserId такие же как у FromUserId
        while select sysLastValue
            where sysLastValue.UserId   == FromUserId
        {
            sysLastValue.UserId = ToUserId;
            sysLastValue.insert();
        }

        ttscommit;
}
Проверено на Ax 4.0.
За это сообщение автора поблагодарили: Pustik (1).
Старый 19.12.2016, 02:51   #4  
mvsenin is offline
mvsenin
Участник
 
21 / 10 (1) +
Регистрация: 09.11.2011
Deepoint, спасибо!
Старый 19.12.2016, 08:56   #5  
AlexeyS is offline
AlexeyS
Участник
 
308 / 198 (7) ++++++
Регистрация: 15.06.2004
Адрес: москва
заодно, копирование групп пользователя (на форме SysUserInfo)
X++:
void clicked()
{
    Dialog          dlg;
    DialogField     dfUser, dfUserN;
    UserInfo        userFrom;
    UserGroupList   UserGroupList, newUserGroupList;

    super();

    dlg = new Dialog("From");
    dfUser = dlg.addField(typeid(UserId), "From UserID");
    dfUserN = dlg.addField(typeid(NetworkAlias), "From NetworkAlias");

   if (dlg.run())
    {
        select firstonly userFrom
            where userFrom.Id == dfUser.value();

        if (!userFrom)

        select firstonly userFrom
            where userFrom.networkAlias == dfUserN.value();

        if (!userFrom)
            throw error("Invalid user!");

        ttsbegin;
            //delete_from UserGroupList
            //    where UserGroupList.UserId == UserInfo.Id;

            while select UserGroupList
                where UserGroupList.UserId == userFrom.Id
            {
                newUserGroupList.clear();
                newUserGroupList.UserId = UserInfo.Id;
                newUserGroupList.GroupId = UserGroupList.GroupId;
                newUserGroupList.insert();

                info(UserInfo.Id + " add " + UserGroupList.GroupId);
            }
            info("Done");
        ttscommit;
    }
}
Теги
перенос данных, перенос настроек пользователя

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
При копировании настроек из таблицы SysLastValue для другого пользователя копируются и права доступа??? Murlin DAX: Программирование 6 23.09.2008 15:09
Использование настроек пользователя (операции с ними) Roman-sp DAX: Функционал 17 09.01.2007 07:32
Перенос настроек из компании в компанию nicko DAX: Администрирование 5 26.04.2005 17:02
Меню пользователя :( leshy DAX: Функционал 1 21.01.2005 11:37
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:23.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.