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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.05.2019, 00:16   #7  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от mazzy Посмотреть сообщение
Предположим у нас есть RunBaseBatch.
Он делает что-то тяжелое. Мы конечно же хотим сделать так, чтобы он мог работать на пакетном сервере. Но этот класс забирает данные из какого-нибудь файла, который находится на клиенте. Как и куда правильно вставить действия, которые должны выполняться на клиенте?
Я лично в свое время для AX2009 делал условно базовый класс импорта из Excel, который при правильном использовании:
  • запускался на сервере (main)
  • переключался на клиента для отображения диалога (prompt) при этом позволял не только выбрать файл Excel, но и нужный лист в нем
  • потом переключался обратно на сервер (run)
  • в определенный момент создавал свою копию на клиенте по аналогии с тем, как это делает RunBase в prompt()
  • на клиенте начитывал данные из файла и сохранял их в контейнер
  • возвращался на сервер, получал контейнер с данными и начинал собственно их обработку, валидацию, вставку, обновление, вот это вот всё
При этом в классах-наследниках требовалось реализовать логику подбора листа по умолчанию, уточнения, откуда на листе считывать данные, и обработки считанных данных уже на сервере. Таким образом, клиент-серверное взаимодействие сводилось к минимуму. У коллег видел реализации импортов, которые просто через специально обученный клиентский класс в один присест получали на сервере данные из клиентского файла в виде опять же контейнера и дальше уже парсили их на сервере, но без интерактива в диалоге выбора файла.
Разумеется, в AX2012 появляются свои заморочки с вызовом клиентского кода, инициированным с сервера, но вроде все решается при желании. А предложенный подход с кастомизированной формочкой - это вроде как раз то, что приходится делать в D365O для импортов из Excel: брать клиентский файл, передавать его во временный каталог на АОСе и там уже с ним работать.
Теги
как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
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, время: 09:09.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.