![]() |
#1 |
Участник
|
AX2009 изменение кода пакетного задания
AX2009 - если код класса пакетного задания поменялся, как сделать, что бы изменения подхватились.
Пересоздать пакетник или можно как то обновить уже существующий. Примечание: 3 AOS кэш обновил....
__________________
Dynamics AX 2009 SP1, Rollup 5, SQL Server 2008 Хороший ученик во всем найдет себе учителя... |
|
![]() |
#2 |
NavAx
|
Не помню такой проблемы. Инкрементную компиляцию делали?
|
|
![]() |
#3 |
Участник
|
Да. Перевел в статус Отложено, потом опять в Ожидание.
Видать где-то что-то закэшировалось. Пересоздал новый, но на будущее из Вашего ответа понял, что это не норм ![]() Должно работать без пересоздания. Так?
__________________
Dynamics AX 2009 SP1, Rollup 5, SQL Server 2008 Хороший ученик во всем найдет себе учителя... |
|
![]() |
#4 |
Участник
|
а в табличке Batch хранится идентификатор класса. Если он поменялся то тогда надо и поле с идентификатором отредактировать на новое значение. И все должно быть норм.
|
|
![]() |
#5 |
Участник
|
Зависит от вида изменений. Что менялось? Если это параметры запуска класса - они в БД лежат и их нужно заново вводить.
|
|
![]() |
#6 |
Участник
|
На всякий случай спрошу. А сам клиент Аксапты на котором запущена обработка пакетной очереди перезапускали?
|
|
![]() |
#7 |
Участник
|
Само по себе пакетное задание ничем не отличается от "обычного" выполнения кода. Какая разница, как именно тот или иной классы был запущен?! Соответственно, если выполнился "старый" код, то, скорее всего, это не что-то специфичное именно для пакетного задания, а именно проблемы синхронизация кода между разными AOS
Есть, конечно, специфика именно пакетных заданий, но она напрямую с кодом не связана. В отношении пакетных задание надо посмотреть 1. Собственно код 2. Входные параметры, определяемые в методе pack() 3. Кэш 1. Собственно код Это "общее место" для любого кода и его синхронизацией между AOS. Не только для пакетных заданий Если я не ошибаюсь, то в dax2009 пакетник - это просто еще одна копия AOS. Соответственно, надо убедиться, что перенос кода и компиляция была выполнена именно на том AOS, где запускаются пакетные задания 2. Входные параметры, определяемые в методе pack() Если изменился список переменных в методе pack(), то физически все эти значения записываются в таблицу Batch в момент создания пакетного задания и без перезаписи этих значений явным образом ничего не получится. Перезапись - это вызов формы параметров пакетного задания или просто пересоздать задание 3. Кэш Если под кешем понимать таблицу SysLastValue, то пакетное задание кеш не использует. Все данные для запуска записаны в таблице Batch. Теоретически, может сохраниться старая откомпилированная копия, если изменения делали в процессе работы пакетника. Но обычно повторная компиляция или "в тяжелых случаях" перезагрузка пакетного AOS снимает эту проблему
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
|