|
![]() |
#1 |
MCITP
|
![]() Цитата:
Сообщение от 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). |
![]() |
#2 |
Участник
|
|
|
![]() |
#3 |
Боец
|
И не забываем перед каждым .insert() вызывать validateWrite(), и делать это всегда и везде
![]() X++: If (!table.validateWrite()) throw error ('XXX'); |
|
![]() |
#4 |
Участник
|
|
|
|
|