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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.02.2017, 14:47   #1  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Вызов статического метода, зная UtilElementType, имя объекта и имя метода
Добрый день!
Можно ли выполнить статический метод, зная UtilElementType объекта (например, UtilElementType::Table или UtilElementType::Class), имя этого объекта и имя нужного статического метода?

не предлагать SysDictClass и SysDictTable - варианты не годятся. SysDictMethod подходит по смыслу, но метод из него вызвать видимо нельзя

буду благодарен за любую наводку
Старый 15.02.2017, 15:21   #2  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Почему не годятся?
Посмотрите как работает RunBase.getDescription().
DictClass.callStatic
DictTable.callStatic
__________________
// no comments
За это сообщение автора поблагодарили: mazzy (2).
Старый 15.02.2017, 15:30   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
это олимпиадные задачи? )

метод callStatic существует в Аксапте в 5 классах - DictClass, DictTable, DictView, SysDictClass, SysDictTable.
штатно вызвать только через них.

можно конечно извратиться, достать текст метода при помощи treeNode
и выполнить через runbuf.
Но зачем это?


можете объяснить почему вам штатные классы не годятся?
Миниатюры
Нажмите на изображение для увеличения
Название: 3.PNG
Просмотров: 411
Размер:	33.7 Кб
ID:	11204  
Старый 15.02.2017, 15:56   #4  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
SysDictTable, SysDictClass являются наследниками DictTable и DictClass. По сему 5 классов сужаются до 3.
Также можно снаружи вызвать на C# через AxSession.AxaptaAdapter
__________________
// no comments
За это сообщение автора поблагодарили: mazzy (2).
Старый 15.02.2017, 16:01   #5  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Цитата:
Сообщение от mazzy Посмотреть сообщение
штатно вызвать только через них.
Метод класса еще можно вызвать через
X++:
runas (....)
X++:
new RunAsPermission(runAsUser).assert();
        // BP deviation documented
        result = runas(runAsUser, _classId, _staticMethodName, _args, _company);
        CodeAccessPermission::revertAssert();
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.

Последний раз редактировалось Pustik; 15.02.2017 в 16:10.
За это сообщение автора поблагодарили: mazzy (5), Ace of Database (3), dech (3).
Старый 16.02.2017, 06:22   #6  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
я походил-подумал, в принципе мне сгодится вариант с SysDictClass и SysDictTable, не буду мудрить, а то получится как в "хотел как лучше, а получилось как всегда"
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как проверить существование метода у объекта Lucky13 DAX: Программирование 22 16.08.2024 20:32
Вызов метода element.args().caller().setOfficialsParams(.... Poleax DAX: Программирование 6 04.09.2008 19:49
Вызов статического метода сборки Eldar9x DAX: Программирование 8 24.04.2008 12:01
Com Connector и вызов статического метода Gorlum DAX: Программирование 2 11.08.2005 01:39
Есть ли таблица соответствий ID -объекта - Имя объекта в Аксапта? coja DAX: Администрирование 5 26.04.2005 15:25

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

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

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