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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.05.2019, 10:44   #10  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,718 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от mazzy Посмотреть сообщение
Предположим у нас есть RunBaseBatch.
Он делает что-то тяжелое. Мы конечно же хотим сделать так, чтобы он мог работать на пакетном сервере.
Но этот класс забирает данные из какого-нибудь файла, который находится на клиенте.

Как и куда правильно вставить действия, которые должны выполняться на клиенте?

Сейчас правильный способ видится таким:
* разбить процесс на два runBaseBatch класса: первый будет иметь свойство RunOn=Client, второй - RunOn=Server
* первый в методе run должен будет выполнить клиентские действия, создать второй класс на сервере и передать ему параметры и данные

Но что-то как-то слишком сложно. Очень напоминает overprogramming.

Может существует другой способ?
А по-моему - нормально. Я бы даже усугубил Класс-обработчик не запускать напрямую, а формировать пакетное задание.

Тогда то, что выполняется на клиенте - это запускает сам клиент (вместо RunBaseBatch - использовать RunBase), но результатом запуска становится не обработанные данные, а сформированное пакетное задание. Вот после обработки этого пакетного задания и получим результат

Т.е. логика такая

1. Клиент запускает пункт меню с классом RunBase. Это НЕ пакетное задание
2. Класс загружает нужные данные с клиента. Возможно, записывает в какие-нибудь parm-таблицы
3. Формирует пакетное задание на основе другого класса RunBaseBatch, который и выполняет собственно обработку
4. Для пользователя - работа пункта меню завершена. Но собственно обработка пока не выполнена. Это надо ждать завершение нового пакетного задания


Здесь единственный недостаток, что если по окончании обработки необходимо выполнить некие действия на клиенте, то не получится

Можно вообще разделить на 2 независимых пункта меню

1. Загрузка данных
2. Обработка ранее загруженных данных

Тут можно много всякого разного напридумывать при такой идеологии. И повторная обработка, и просмотр ошибок, и "разбор полетов" на предмет, что загрузили не то. Да мало ли... Но это если в этом есть необходимость, конечно...
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: mazzy (2), ax_mct (5).
Теги
как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ax3,ax4,ax2009,ax2012: Есть ли красивый способ передать packable объект между клиентом и сервером? mazzy DAX: Программирование 20 09.06.2019 23:19
axaptacorner: How to read excel and update record in AX2012 through X++ code Blog bot DAX Blogs 0 04.01.2019 17:13
Скрипт для переноса данных Ax3.0 (Oracle) - Ax2009 (MSSQL) someOne DAX: Программирование 2 14.06.2011 14:53
axcoder: AxPath pugin for Tabax which works with Ax3, Ax4, Ax2009 Blog bot DAX Blogs 0 08.11.2008 02:11
Импорт из 'офисной БД' (Excel, Access) Gustav DAX: База знаний и проекты 4 07.06.2008 17:17

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

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

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