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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.03.2020, 19:23   #1  
Earl1 is offline
Earl1
Участник
 
12 / 10 (1) +
Регистрация: 20.02.2020
Job, который перебирает элементы ветки. Tabletype.
Доброго времени суток. Нужен джоб, который перебирает элементы ветки аот и проверяет свойство. Вроде, был где-то, может кто подскажет.
Старый 06.04.2020, 19:08   #2  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
265 / 808 (27) +++++++
Регистрация: 23.10.2012
Посмотрите как используется источник данных TmpPropertySelection в форме SysAotFind.
Старый 06.04.2020, 21:27   #3  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,651 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Прямое сканирование AOT выполняется на основе объекта TreeNode
Список вообще всех элементов AOT можно получить из таблицы UtilElements или UtilIdElements (эта то же самое, но со значениями Id элементов)

Соответственно, возможны 2 варианта получения списка объектов. Каждый способ имеет достоинства и недостатки

X++:
static void job_test(Args _args)
{
    utilElements    utilElements;
    TableId         tableId ;
    DictTable       dictTable;
    int             totalI;
    
    TreeNode        treeNode;
    TreeNode        node;
    ;

    info("Scan AOT");
    totalI = 0;
    treeNode = treeNode::findNode(@"\Data Dictionary\Tables");
    node = treeNode.AOTfirstChild();
    while (node)
    {
        info(strFmt("Name = %1  tableType = %2", node.AOTname(), node.AOTgetProperty("TableType")));
        
        // debug
        totalI++;
        if (totalI > 10) break;
        
        node = node.AOTnextSibling();
    }
    
    info("-----------");
    
    info("Scan UtilElements");
    totalI = 0;
    while select Name 
        from utilElements 
        group by Name 
        where utilElements.RecordType == UtilElementType::Table
    {
        tableId = tableName2id(utilElements.Name);
        dictTable = new dictTable(tableId);
        
        info(strFmt("Name = %1  tableType = %2", utilElements.Name, dictTable.tableType()));
        
        // debug
        totalI++;
        if (totalI > 10) break;
    }
}
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: IDMF - How to troubleshoot job status issues like Last run result = Error Blog bot DAX Blogs 10 04.11.2015 16:09
dax-ideas: Find print job settings specified on a Customer for Reports Blog bot DAX Blogs 0 09.09.2013 09:11
paruvella: Dynamics Ax 2009 Workflow - Simple Job to complete the workflow steps Blog bot DAX Blogs 0 10.12.2009 21:06
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:03.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.