Показать сообщение отдельно
Старый 15.01.2009, 18:23   #4  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от DmitrySincerity Посмотреть сообщение
День добрый, уважаемые!

Есть следующая задача-проблема.
Мне нужно с помощью вызова методов X++ (через .NET BC) выполнить примерно следующее: создать Company, создать для нее Domain, "поместить" Company в уже существующий Domain, добавить в созданную Company уже имеющуюся Virtual Company, создать пользователя (роль) для данного Domain с определенными правами (таких ролей может быть несколько, естественно), т.е. настроить RLS. Кто-нибудь делал нечто подобное?

p.s.: Почему это необходимо? нужно минимизировать участие во всем процессе интегратора Dynamics - все это будет происходить по нажатию на кнопку определенным пользователем из ASP.NET приложения.

Заранее спасибо за совет и помощь.

Не думаю, что это правильный подход, но не такой уж он и нереальный, мне кажется.
Сам не делал, но кой-чего для начала подсказать могу - начните с этого:

X++:
static void JobZVVTestCompany(Args _args)
{
    DataArea            dataArea;
    DomainInfo          domainInfo;
    CompanyDomainList   companyDomainList;
    VirtualDataAreaList virtualDataAreaList;
    ;

    ttsBegin;

    // Обычная компания
    dataArea.clear();
    dataArea.name = 'ZVVCompany';
    dataArea.id = 'ZVV';
    dataArea.isVirtual = NoYes::No;
    dataArea.insert();

    // Виртуальная компания
    dataArea.clear();
    dataArea.name = 'ZVVVirtualCompany';
    dataArea.id = 'ZVT';
    dataArea.isVirtual = NoYes::Yes;
    dataArea.insert();

    // Домен
    DomainInfo.name = 'ZVVDomain';
    DomainInfo.id = 'ZVVDom';
    DomainInfo.insert();

    // Домен в компанию
    companyDomainList.companyId = 'ZVV';
    companyDomainList.domainId = 'ZVVDom';
    companyDomainList.insert();

    // Компанию в вирт. компанию
    virtualDataAreaList.Id = 'ZVV';
    virtualDataAreaList.virtualDataArea = 'ZVT';
    virtualDataAreaList.insert();

    /*
    // Ну и так далее по аналогии:
    //USERInfo - пользователи
        (проблемы - там целая куча неизвестных настроечных полей,
         с которыми нужно доразбираться и как-то заполнять,
         в том числе зашифрованное поле "пароль",
         но правда его можно оставить пустым - прокатывает.
         Лучше найти какое-то стандартные механизмы.
        )
    //USERGroupInfo - группы (роли) (2 поля: Id, Name)
    //USERGroupList - Группы по пользователям (2 поля: UserId, GroupId)
    //SYSRecordLevelSecurity - RLS
        (проблема - сами правила в MEMO-поле.
         Лучше найти какое-то стандартные механизмы.
        )

    Возможно надо ещё какие-то настроечные таблицы заполнять. Придётся пробовать методом тыка и разбираться.
    */

    ttsCommit;
}
__________________
Zhirenkov Vitaly
За это сообщение автора поблагодарили: DmitrySincerity (1).