Показать сообщение отдельно
Старый 15.08.2012, 15:31   #3  
Deepoint is offline
Deepoint
Участник
SAP
 
60 / 14 (1) ++
Регистрация: 01.04.2011
Записей в блоге: 1
В конечном итоге механизм по переносу настроек + избранного от одного пользователя другому приобрел вид:
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).