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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.03.2020, 22:09   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,719 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
видел как при программном запуске разноски накладной в DAX2009 (не в пакетном режиме) принудительно устанавливался parmInBatch(true),
В таких случаях должны были бы дописать дополнительный признак, указывающий на способ запуска. Там ведь наверняка надо не все обходить. А часть оставить "как есть".

Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
Железобетонно определит работаем ли в пакете
Если идти по пути извращений, то кроме собственно признака выполнения в пакете в экземпляр класса записывается еще и запись таблицы Batch.

batchClass.parmCurrentBatch(batch);

Поэтому можно посмотреть еще есть ли не пустое значение табличной переменной Batch в текущем классе

BatchHeader::getCurrentBatchTask(); - это то пакетное задание, которое выполняется сейчас. Вопрос-то был не о том, выполняется ли что-нибудь, а выполняется ли именно данный экземпляр класса в пакете? Да, конечно, скорее всего, это будет один и тот же экземпляр. Но как-то это из разряда "у нас джентльменам верят на слово" (с)
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 26.03.2020, 08:00   #2  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
BatchHeader::getCurrentBatchTask(); - это то пакетное задание, которое выполняется сейчас. Вопрос-то был не о том, выполняется ли что-нибудь, а выполняется ли именно данный экземпляр класса в пакете?
Не, немного не так.
Это то задание, которое выполняется:
  • Сейчас.
  • С номером сессии, которая выполняется сейчас.
  • С датой начала сессии, которая выполняется сейчас.
Пакетный сервер для каждой задачи создает свою сессию, поэтому это абсолютно уверенно мы и есть.
Именно на этом же механизме основано получение заголовка, в который мы можем добавлять себе "помощников", тех же RunTimeTask.
Старый 26.03.2020, 08:17   #3  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
В таких случаях должны были бы дописать дополнительный признак, указывающий на способ запуска. Там ведь наверняка надо не все обходить. А часть оставить "как есть".
Там даже не нужно было менять стандартный код SalesFromLetter.
Стандарт, когда работает в пакете, создает себе "помощников" RunTimeTask на формирование и разноску накладной (точнее, по одному помощнику на каждую накладную, если работает групповая разноска) и одного помощника для завершения.
Если разноска изначально идет в пакете, то помощники создаются внутри общей задачи. А вот если сам запуск не в пакете, но мы передали parmInBatch(true), то разноска обманывается, отрабатывают те же механизмы, но так как текущей задачи нет, то она автоматом создается и все помощники добавляются к ней.
В результате без пакета работает только сама подготовка и запуск, а остальное в пакете.
Понятно, что можно было программно создать пакетную задачу с нуля, то работает и так. Видел это уже не раз, вполне возможно, что в разных местах делал это один и тот же разработчик.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как узнать имя класса наследника RunBaseBatch oleggy DAX: Программирование 3 27.01.2020 11:22
axaptapedia: RunBaseBatch Blog bot DAX Blogs 0 04.04.2009 22:05
axaptapedia: RunBaseBatch Blog bot DAX Blogs 0 31.03.2009 06:06
Запуск AX класса по расписанию SQL job'ом Iris! DAX: Программирование 5 08.05.2007 16:24
Запуск jobа из класса Migel_84 DAX: Программирование 12 05.05.2006 15:31
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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