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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.02.2021, 17:08   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,210 / 4091 (195) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
ax2009, ax2012, RunBaseBatch: как записать результаты выполнения в BatchJobHistory.Caption?
Я щас глупый вещь спрошу (сам еще не копался, вдруг кто навскидку знает)

есть пакетник, который барабанит периодически
пакетник выводит сводную информацию в инфолог (типа обновлено столько то записей)

вопрос: а можно ли поместить эту информацию в Журнал пакетных заданий (BatchJobHistory.Caption)?

понятно, что где-то в конце метода run должно быть что-то вроде

X++:
    if( this.isInBatch() )
    {
        this.batchInfo().parmCaption(strfmt('summary: %1', summryInfo)));
    }
может делал кто?
__________________
Полезное на axForum, GitHub, Facebook, mazzy.priot, mazzy.music, coub.
Старый 11.02.2021, 17:22   #2  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
1,976 / 1080 (40) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Не, в BatchJobHistory тупо копируется из BatchJob.
Если уж что-то сохранять, то это нужно делать в BatchJob. Но есть нюансы.
Непонятно в какое время это делать. Завершение наследника RunBaseBatch совсем не означает, что закончится BatchJob - там же может быть многоходовая обработка. Ну и потом, изменение Caption в BatchJob сохранит его для следующего запуска, соответственно, следующий запуск еще добавит дополнительный "хвост", следующий еще добавит и так далее.
Ну и, в любом случае, this.batchInfo() вызывать не имеет смысла. this.batchInfo() нужен только на этапе настройки batch. В рантайме работаем с BatchHeader::getCurrentBatchTask для получения Batch, а из него можем получить BatchJob.
Старый 11.02.2021, 17:34   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,210 / 4091 (195) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
Непонятно в какое время это делать.
вот-вот. в этом и вопрос.

Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
Ну и, в любом случае, this.batchInfo() вызывать не имеет смысла.
да-да, это так, филлер....

вопрос - куда и как вставится.
понятно что надо покопать, найти где и как заполняется время окончания пакетника и добавить туда свой код...

но вдруг кто-то такое уже делал
__________________
Полезное на axForum, GitHub, Facebook, mazzy.priot, mazzy.music, coub.
Старый 11.02.2021, 19:02   #4  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
1,976 / 1080 (40) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Как раз с местом завершения не проблема, это класс BatchRun:
  • Завершение операции метод serverFinishTask.
  • Завершение всей пакетной задачи метод serverProcessFinishedJobs.
Но эти места общие для всех пакетников, вызываются самим сервером. Естественно, там нет информации о том, что кто-то хочет записать в заголовок.
Пока в голову приходит только вариант добавления в таблицы Batch (BatchJob) отдельного поля, в которое уже сами RunBaseBatch будут добавлять какую-то информацию в конце выполнения конкретного RunBaseBatch . А в методах BatchRun при копировании в историю эту информацию куда-то добавлять в таблицах истории. Ну и, конечно, при старте эти поля очищать в соответствующих методах того же BatchRun .
За это сообщение автора поблагодарили: mazzy (2).
Теги
ax2012, batchrun

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ax3,ax4,ax2009,ax2012: RunBaseBatch: как правильно добавить действия, которые должны быть выполнены на клиенте? например, импорт из Excel. mazzy DAX: Программирование 56 10.06.2019 00:03
How to change Batch caption dialog field in run time. RunBaseBatch sample Blog bot DAX Blogs 0 17.01.2014 11:11
emeadaxsupport: AX2012 and AX2009 or AX4 side by side - AOS performance counters overwritten Blog bot DAX Blogs 0 13.03.2012 18:11
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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