09.10.2024, 14:09 | #1 |
Участник
|
AX2009 как получить коллекцию всех классов с целью ее перебора
Привет.
Прошу скиньте пример джоба для перебора всех существующих классов в системе (желательно под AX 2009). Т.к. задача сформировать таблицу с ClassId / ClassName. Цель что бы сторонний скрипт знал имя класса выполняемого в данный момент на пакетном сервере. Или есть какое то штатное средство? |
|
09.10.2024, 15:52 | #2 |
Участник
|
|
|
09.10.2024, 16:59 | #3 |
Участник
|
Так в табличке Batch есть вроде как classId и метод там есть, который название класса показывает.
В пакетной задаче же не все классы можно запускать, я думаю их процент не высок от общего кол-ва классов в AX. Почему бы просто не добавить физ. поле с названием класса и заполнять его при создании пакетной задачи ? Вроде как и метод есть соответствующий initFromClass.
__________________
Sergey Nefedov |
|
|
За это сообщение автора поблагодарили: Logger (3). |
09.10.2024, 20:10 | #4 |
Участник
|
В ветке 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() - в этом табличном методе сначала формируют список тех классов, из которых "в принципе" может быть создано пакетное задание.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|