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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.08.2024, 16:40   #1  
Lankey is offline
Lankey
Участник
 
127 / 28 (1) +++
Регистрация: 19.05.2020
Сделать батч для release vendor catalog
Есть форма catVendorCatalogReleaseApprovedProducts
По кнопке ОК запускается , собственно, release
Хотят, чтобы на той же форме была добавлена опция run in the background, чтобы запускать процесс в батче
Я не понимаю следующее:
1) Как добавить в форму такой диалог, он же создается обычно самим в runBaseBatch.
Это, имхо, невозможно. Можно предложить :
а) добавить отдельную кнопку(menuItem), что будет запускать runBaseBatch и показывать нужный диалог
или
б) по кнопке Ok (при закрытии формы) запускать runBaseBatch и и показывать этот диалог

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

2) Почему в стандарте не предусмотрена пакетная обработка для release из каталога поставщика? Может, есть повод для этого? Я смотрю класс EсoRedProductReleaseManager и немного беспокоюсь ,тк там всякие проверки на сессии и где выполняется код и тд. То есть, все совсем нетривиально, поэтому боюсь дров наломать, если кастомный батч напишу, как просят. Зря опасаюсь? Если зря. то что надо иметь ввиду, чтобы корректно это сделать и не было дэдлоков или какие-то иных проблем, для кот sessionId там как параметр введен

Последний раз редактировалось Lankey; 06.08.2024 в 16:46.
Старый 06.08.2024, 19:36   #2  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Цитата:
Сообщение от Lankey Посмотреть сообщение
Хотят, чтобы на той же форме была добавлена опция run in the background, чтобы запускать процесс в батче
Я не понимаю следующее:
1) Как добавить в форму такой диалог, он же создается обычно самим в runBaseBatch.
Диалог RunBaseBatch нужен не только, чтобы увести обработку в фон, но и для настройки периодичности этой обработки в фоне. А периодичность к форме с данными привязать не получится. Поэтому кмк не нужен вам тот штатный диалог.
__________________
С уважением,
Вячеслав
Старый 06.08.2024, 23:23   #3  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,692 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Физически, пакетное задание - это просто запись в таблице Batch. Далее соответствующая служба просматривает записи этой таблицы и используя сохраненные в ней настройки, запускает на выполнение соответствующий класс

Диалог от RunBaseBatch - это всего-лишь интерфейс для заполнения определенных реквизитов в создаваемой записи

Т.е. Ваша задача - это как раз сформировать запись таблицы Batch, используя те или иные инструменты

В общем случае, можно вообще без дополнительного класса, примерно так

X++:
    MyClass         taskBatch;
    BatchHeader     batchHeader;

    // Класс, который надо запустить в пакетном задании. Наследник от RunBase
    taskBatch = new MyClass();
    taskBatch.parm_1(xxx);
    taskBatch.parm_2(yyy);

    // Создание пакетного задания, которое запустится "немедленно"
    batchHeader = BatchHeader::construct();
    batchHeader.addTask(taskBatch);
    batchHeader.parmStartDateTime(DateTimeUtil::utcNow());
    batchHeader.save();
Наследник от RunBase, поскольку нужно, чтобы были методы pack/unpack для упаковки/распаковки параметров и метод run, который будет запускаться

Но, поскольку, все-равно придется делать "оболочку" над классом "release", то реквизиты пакетного задания указываются через объект

runBaseBatch.batchInfo()

а собственно создание пакетного задания - это команда

X++:
runBaseBatch.batchInfo().parmBatchExecute(true);
runBaseBatch.doBatch();
Так что, вполне можно обойтись без меню и без дополнительного диалога
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: S.Kuskov (10), Lankey (1).
Старый 07.08.2024, 09:03   #4  
Lankey is offline
Lankey
Участник
 
127 / 28 (1) +++
Регистрация: 19.05.2020
Цитата:
Сообщение от pitersky Посмотреть сообщение
Диалог RunBaseBatch нужен не только, чтобы увести обработку в фон, но и для настройки периодичности этой обработки в фоне. А периодичность к форме с данными привязать не получится. Поэтому кмк не нужен вам тот штатный диалог.
Спасибо.
Немного не поняла Ваш ответ. Клиент хочет , чтобы стандартный диалог запуска в пакете был "интегрирован" в форму catVendorCatalogReleaseApprovedProducts (как на картинке во вложении)

Вы имеете ввиду, что для запуска с этой формы периодичность не имеет смысла?
Миниатюры
Нажмите на изображение для увеличения
Название: ZZ.png
Просмотров: 17
Размер:	38.3 Кб
ID:	13653  
Старый 07.08.2024, 19:02   #5  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Володя Максимов выше уже подробно ответил
Посмотрите ещё раз на этот диалог. По сути, вам там нужна только галочка "Batch processing". Всё остальное поля больше информационные, без них спокойно можно обойтись. А кнопки Recurrence и Alerts вам, как я понял, и вовсе не нужны. Поэтому да, я бы обошёлся одним чекбоксом и убедил в этом покупателя. А как создать батч из кода - см пост Владимира, там хорошо расписано.
Кстати, если у вас в форме много строк для обработки, и эти строки независимы друг от друга, то я бы дополнительно задумался над многопоточкой. Вот, например, можно посмотреть - https://d365technext.blogspot.com/20...365fo-ax7.html
__________________
С уважением,
Вячеслав
За это сообщение автора поблагодарили: Lankey (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
jaestevan: Release your Dynamics 365 for Finance and Operation packages to LCS with Azure DevOps Pipelines [EN] Blog bot DAX Blogs 0 16.06.2019 16:19
dynamicsaxse: November 2018 Release – Dynamics AX2012 R3 update Blog bot DAX Blogs 0 15.11.2018 09:11
everythingdynamicsaxbi: October ’18 release for Dynamics 365 for Finance and Operations Blog bot DAX Blogs 0 01.11.2018 03:14
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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