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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.10.2024, 14:09   #1  
oleggy is offline
oleggy
Участник
 
274 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
AX2009 как получить коллекцию всех классов с целью ее перебора
Привет.
Прошу скиньте пример джоба для перебора всех существующих классов в системе (желательно под AX 2009).

Т.к. задача сформировать таблицу с ClassId / ClassName. Цель что бы сторонний скрипт знал имя класса выполняемого в данный момент на пакетном сервере.

Или есть какое то штатное средство?
Старый 09.10.2024, 15:52   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Задача оптимизации
Старый 09.10.2024, 16:59   #3  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
375 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Так в табличке Batch есть вроде как classId и метод там есть, который название класса показывает.

В пакетной задаче же не все классы можно запускать, я думаю их процент не высок от общего кол-ва классов в AX. Почему бы просто не добавить физ. поле с названием класса и заполнять его при создании пакетной задачи ? Вроде как и метод есть соответствующий initFromClass.
__________________
Sergey Nefedov
За это сообщение автора поблагодарили: Logger (3).
Старый 09.10.2024, 20:10   #4  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,698 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
В ветке AOT: \System Documentation\Tables есть "псевдо-таблица" с именем UtilIdElements. Для dax2009 физически это не есть таблица, поэтому из-вне обратится к ней не получится. Но джобом получить список классов можно

Группировка нужна для того, чтобы убрать "дубли" по компаниям и слоям

X++:
    int         i;
    UtilIdElements      UtilIdElements;
    ;


   while select UtilIdElements
        group by id, Name
        where UtilIdElements.recordType == UtilElementType::Class
    {
        i++;
        if (i > 10) break;
        info(strFmt("%1 = %2", UtilIdElements.id, UtilIdElements.name));
    }
Чтобы сократить список классов, можно посмотреть метод таблицы собственно пакетных заданий. Как там сделан отбор возможных классов

Batch.className() - в этом табличном методе сначала формируют список тех классов, из которых "в принципе" может быть создано пакетное задание.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
DAX2009: job перебора всех форм в AOT oleggy DAX: Программирование 4 18.08.2020 11:30
как программно получить список всех наименований / значений у Enum oleggy DAX: Программирование 9 14.08.2020 08:53
D365 как получить список всех меточных файлов swr DAX: Программирование 1 10.08.2020 10:45
Ax2009 Почему DirPartyView не входит в коллекцию Dir* Arahnid DAX: Администрирование 9 04.10.2011 10:19
Khue Trinh: Fill Utility in AX2009 Blog bot DAX Blogs 0 28.09.2010 10:05
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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