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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.08.2013, 08:37   #1  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Автоматическое создание пользователей
Доброго дня, коллеги. Создал джобик, который заводит аккаунты для пользователей, которые являются разработчиками и должны быть в системе, скажем после обновления базы. Записи создаются, но если зайти в AX, говорит, что You are not recognized user.
Чего не хватает, чтобы сделать код полноценным.

P.S. Система AX 4.0
X++:
public static void AutoAddUsers(Args _args)
{
    #Admin

    void addUserInfo(UserId _userId, NetworkAlias _alias, NetworkDomain _domain, Name _name, int _noOfSessions = 5)
    {
        UserGroupList               ugList;
        UserInfo                 uInfo, adminRecord;
        ;

        select firstonly adminRecord
            where adminRecord.Id == #AdminUser;

        ttsbegin;

        uInfo.clear();
        uInfo.initValue();
        uInfo.Id            = _userId;
        uInfo.NetworkAlias  = _alias;
        uInfo.NetworkDomain = _domain;
        uInfo.Company       = curext();
        uInfo.Enable        = NoYes::Yes;
        uInfo.Name          = _name;
        uInfo.Language      = adminRecord.Language;
        uInfo.HelpLanguage  = adminRecord.Helplanguage;

        if (uInfo.validateWrite())
            uInfo.write();

        ugList.clear();
        ugList.initValue();
        ugList.UserId = _userId;
        ugList.GroupId = #AdminUserGroup;
        if (ugList.validateWrite())
            ugList.write();

        ttscommit;
    }
    ;

    addUserInfo("user", "alias", "domain.com", "Last, First");
    
    info('Done');
}
__________________
// no comments
Старый 01.08.2013, 08:47   #2  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Не вижу поля sid. Такая ошибка появляется если это поле не заполнено или заполнено неверно.
PS : Извиняюсь, не обратил. внимание на версию. Не знаю есть ли это поле в 4.0. В AX2009 одна из причин такой ошибки именно в этом 100%.
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.

Последний раз редактировалось Pustik; 01.08.2013 в 09:08.
За это сообщение автора поблагодарили: dech (1).
Старый 01.08.2013, 08:48   #3  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
306 / 137 (5) +++++
Регистрация: 21.04.2008
Есть же еще SysUserInfo !

посмотрите
X++:
    SysCheckList::createAdminUser();
    SysCheckList::createAdministratorGroup();
За это сообщение автора поблагодарили: Pustik (2), dech (1).
Старый 01.08.2013, 09:10   #4  
ansoft is offline
ansoft
Участник
Аватар для ansoft
 
123 / 37 (2) +++
Регистрация: 20.10.2005
Посмотрите код отрабатывающий на установку галочки активности пользователя...
В AX2009 все прописано в validateWrite... датасоурса

Последний раз редактировалось ansoft; 01.08.2013 в 09:13.
За это сообщение автора поблагодарили: Pustik (2).
Старый 01.08.2013, 09:19   #5  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
заведите группу в AD и импортируйте за 1 раз сразу всех.
Старый 01.08.2013, 09:22   #6  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
если и писать такой джоб, то на sql
Старый 01.08.2013, 12:37   #7  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Все получилось, добавил запись в SysUserInfo, а также заполнил поле Sid. Без этого действительно никак. Полностью джоб выглядит следующим образом:
X++:
public static void AutoAddUsers(Args _args)
{
    #Admin

    void addUserInfo(UserId _userId, NetworkAlias _alias, NetworkDomain _domain, Name _name)
    {
        UserGroupList               ugList;
        UserInfo                    uInfo, adminRecord;
        SysUserInfo                 suInfo;
        xAxaptaUserManager          mgr;
        xAxaptaUserDetails          det;
        ;

        select firstonly adminRecord
            where adminRecord.Id == #AdminUser;

        ttsbegin;

        mgr = new xAxaptaUserManager();
        det = mgr.getDomainUser(_domain, _alias);

        uInfo.clear();
        uInfo.initValue();
        uInfo.Id            = _userId;
        uInfo.Sid           = det.getUserSid(0);
        uInfo.NetworkAlias  = _alias;
        uInfo.NetworkDomain = _domain;
        uInfo.Company       = curext();
        uInfo.Enable        = NoYes::Yes;
        uInfo.Name          = _name;
        uInfo.Language      = adminRecord.Language;
        uInfo.HelpLanguage  = adminRecord.Helplanguage;
        if (uInfo.validateWrite())
            uInfo.write();
            
        // следующие 2 строчки возможно лишние, не успел проверить)))
        infolog.getUserSetup().setDefaults(uInfo);
        infolog.getUserSetup().setUserSetup(uInfo);

        suInfo.initValue(_userId);
        suInfo.Id = _userId;
        suInfo.Email = det.getUserMail(0);
        if (suInfo.validateWrite())
        {
            suInfo.write();
        }
        
        ugList.clear();
        ugList.initValue();
        ugList.UserId = _userId;
        ugList.GroupId = #AdminUserGroup;
        if (ugList.validateWrite())
            ugList.write();

        ttscommit;
    }
    ;

    addUserInfo("denis", "chernyakovd", "mydomain.com", "Chernyakov, Denis");

    info('Done');
}
__________________
// no comments
За это сообщение автора поблагодарили: Kabardian (3).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Автоматическое создание формы... lev DAX: Программирование 37 29.05.2009 14:31
автоматическое создание записей в таблице mdconsult DAX: Программирование 6 12.01.2009 09:54
Автоматическое создание РБП MNG DAX: Функционал 3 13.11.2007 15:46
Автоматическое создание РБП с привязкой к документу ГК ArtBar DAX: Функционал 3 16.06.2006 10:31
Галочка "Автоматическое создание груза" в шаблоне отгрузки slava09 DAX: Функционал 14 12.10.2005 16:22

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:05.