Показать сообщение отдельно
Старый 01.08.2013, 12:37   #7  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
648 / 352 (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).