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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.08.2010, 01:24   #7  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
У конструкции CompileAll_+ было несколько неприятных особенностей:
  • - она ставила уровень 4 (level 4) в настройках компилятора у пользователя под которым запускалась, несмотря на его (пользователя) предпочтения
  • - она не грохала старые записи, в результате чего наблюдались задвоения при повторном запуске, а само обновление выполнялось дольше
  • - она не обновляла модель данных и иерархию типов. Мелочь конечно - но уж можно было бы все сделать до конца.
В 4.0 сделали попытку дать пользователям возможность строить перекрестные ссылки через команду в XML-файле, которая по факту не работает (т.е. метод, обрабатывающий команду UpdateCrossReference был, но нигде не вызывался).

В 2009 документацию не изменили, а сей доблестный метод удалили (видимо, как нигде не использующийся). А там между прочим был очень простой код:
X++:
    xRef = new xRefUpdate();
    if (xRef)
    {
        xRef.updateAll();
        result = true;
    }
который можно безболезненно перенести в XML-файлик автозапуска (код версии проверяется по значению метода xInfo::releaseVersion()):
PHP код:
<AxaptaAutoRun 
    exitWhenDone
="true" 
    
version="5.0" 
    
logFile="D:\AxaptaAutorun.log">
<
Run type="class" name="xRefUpdate" method="updateAll" /> 
</
AxaptaAutoRun
Ссылка на сей файлик содержится в axc-шнике: startupcmd,Text,autoRun_c:\AX\buildXRef.xml

Использование такой конструкции аналогично использованию пункта меню Сервис-Средства разработки-Перекрестные ссылки-Периодические операции-Обновить с включенными галками:
  • "Удалить все",
  • "Обновить все",
  • "Обновить модель данных",
  • "Обновить иерархию типов" и
  • с выключенной галкой "Выбрано".
При этом - "Удалить все" означает исполнение команды на SQL "TRUNCATE TABLE" для каждой XREF* таблицы - т.е. удаление происходит быстро (=мгновенно), а заполнение производится только командой вставки записи (что гораздо быстрее чем обновление)

Вставка такого ярлыка в шедулер от ОС (Tasks) - позволяет не использовать АХ-овый пакетник (это актуально, к примеру, на разработческом приложении, когда нужно постоянно перезаходить, чтобы "подцепить" последние изменения в коде), при этом хочется, чтобы построив ссылки - АХ завершила бы работу (закрыла сессию)
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 23.08.2010 в 09:30.
За это сообщение автора поблагодарили: mazzy (2), coolibin (2), player (1).
Теги
автозапуск, пакетная обработка, перекрестные ссылки

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ax2009: почему обновление перекрестных ссылок перестало быть пакетным заданием? mazzy DAX: Программирование 9 21.08.2010 22:08
А построение перекрестных ссылок опять сожрет всю память и завесит систему нафих Alex_K DAX: Администрирование 15 04.09.2009 22:00
Построение перекрёстных ссылок Paul_ST DAX: Администрирование 6 24.12.2007 14:22
После перестроения перекрестных ссылок начинает жутко тормозить Add-Ins MironovI DAX: Программирование 4 27.09.2007 13:46
Обновление перекрестных ссылок ест память Sada DAX: Программирование 22 11.10.2006 18:22

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

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

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