Показать сообщение отдельно
Старый 28.02.2008, 16:45   #1  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
Список измененных (новых) объектов. Оптимизация.
Необходимо получить список измененных и новых обьектов в системе за промежуток времени (максимум за день).
Интересуют только названия, то есть если в какой-то енум добавили значение, а имя не поменяли - не выводим.
Формы и отчеты не интересую.

Сейчас делаю так:

X++:
static void DEV_ChangedElements(Args _args)
{
    UtilIdElements utilIdElements;
    TimeOfDay time = 0;//timenow();
    TransDate transDate = systemdateget();
    int begin;
    ;

    begin = WinApi::getTickCount();

    while select  name, id, recordType  from utilIdElements
    where  utilIdElements.recordType == UtilElementType::Class
        || utilIdElements.recordType == UtilElementType::Table
        || utilIdElements.recordType == UtilElementType::Enum
        || utilIdElements.recordType == UtilElementType::ExtendedType &&

        ((utilIdElements.createdDate  == transDate && utilIdElements.createdTime  > time) ||
         (utilIdElements.modifiedDate == transDate && utilIdElements.modifiedTime > time))
       {
         info(strfmt("%1 %2 %3", utilIdElements.name, utilIdElements.id, utilIdElements.recordType));
       }

    info(strfmt("%1 ms.", WinApi::getTickCount() - begin));
}
Вопросы:
  • можно ли это оптимизировать?
  • сколько выполняется такой джоб у Вас (2-3 запуска)?
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0