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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.01.2016, 16:58   #1  
kitty is offline
kitty
Участник
 
370 / 30 (2) +++
Регистрация: 24.05.2005
RunBase vs SysOperationFramework для Excel отчета
Пользователям нужен экселевский отчет (именно Excel, а не стандартный, который можно в эксель потом сохранить)
При запуске должны запрашиваться параметры и критерии запроса.
(Пока в batch его не просят запускать)

Как лучше делать Через SysOperationFramework или через RunBase
Преимущество RunBase - там progressBar есть + все в одном классе
С другой стороны он морально(хоть и не практически) устарел и , вроде как рекоммендуется использовать теперь SysOperationFramework. (с оговоркой, что в основном для batch process-ов)

Спасибо

Ax2012 R2

Последний раз редактировалось kitty; 27.01.2016 в 17:09.
Старый 27.01.2016, 18:58   #2  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
>> Преимущество RunBase - там progressBar есть + все в одном классе
В SysOperationFramework тоже есть прогресбар, только его нужно уметь готовить

По существу вопроса, если вы всё равно не планируете переносить исполнение класса (и заполнение Excel) на сервер, то нет особых оснований для использования SysOperationFramework, Imho.
По крайней мере я бы делал через RunBase.
__________________
Zhirenkov Vitaly
Старый 27.01.2016, 19:07   #3  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от kitty Посмотреть сообщение
Пользователям нужен экселевский отчет (пока в batch его не просят запускать)
Как лучше делать Через SysOperationFramework или через RunBase
Если предполагается запускать потом отчет в пакете, то надо сразу делать не на RunBase, а на RunBaseBatch, иначе при смене родительского класса потом могут повылезать проблемы.
По-моему, даже при большей трудоемкости стоит попробовать реализовать отчет на SysOperation framework - хотя бы для собственного развития. Заодно можно будет разобраться с Open XML SDK и научиться формировать Excel-файлы без самого Excel
Цитата:
Сообщение от kitty Посмотреть сообщение
вроде как рекоммендуется использовать теперь SysOperationFramework. (с оговоркой, что в основном для batch process-ов)
Я лично не замечал таких оговорок - про пакетные задания. Зато были оговорки, что RunBase - кандидат на вылет в следующих версиях. Одно из удобств SysOperation framework в том, что сервисная операция из клиента может запускаться в асинхронном режиме: она будет работать в отдельном потоке, при этом пользователь сможет продолжить работу в Аксапте, а не будет вынужден пялиться на градусник. При завершении же операции контроллер сервисной операции получит обратный вызов и сможет как-то просигналить пользователю, что результат готов, например - открыть отчет в Excel.
За это сообщение автора поблагодарили: Михаил Андреев (2), MikeR (5).
Старый 27.01.2016, 19:20   #4  
Napalm is offline
Napalm
Участник
 
80 / 88 (3) ++++
Регистрация: 23.05.2012
Проблема с SysOperation framework в том, что он выполняется на сервере. А некоторые задачи импорта/экспорта требуют выполнения на клиенте.
Старый 27.01.2016, 20:00   #5  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
По-моему, любой нормальный импорт, работающий с клиентскими данными, должен идти примерно так:
  • запуститься на сервере;
  • запустить "нечто" на клиенте (возможно, 2-й экземпляр себя же по аналогии с RunBase.promptPrim()), чтобы считать "сырые" данные на клиенте и вернуть их на сервер;
  • прогнать на сервере цикл разбора/проверки/сохранения импортированных данных со всей сопутствующей бизнес-логикой.
для экспорта - аналогично, но с чуть иной последовательностью шагов.
От импортов/экспортов/отчетов в Excel, которые всё делают на клиенте, меня лично коробит.
Старый 27.01.2016, 20:01   #6  
kitty is offline
kitty
Участник
 
370 / 30 (2) +++
Регистрация: 24.05.2005
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Я лично не замечал таких оговорок - про пакетные задания. .
https://msdn.microsoft.com/en-us/library/gg862488.aspx
"You use the SysOperation framework (formerly known as the Business Operation framework, or BOF) when you extend Microsoft Dynamics AX by adding new functionality that may require batch processing. The SysOperation framework replaces the RunBase Framework and provides infrastructure for creating user interaction dialog boxes and integration with the batch server for batch processing. "

Цитата:
Сообщение от gl00mie Посмотреть сообщение
Зато были оговорки, что RunBase - кандидат на вылет в следующих версиях.
Собственно, отсюда и дилемма

Я уже сделала по новой религии, те SysOperation, рассчитывая, что, если одумаются и захотят нормальный отчет, то будет легко переделать, оставив те же Contract&UIBuilder( или запускать нужный отчет по выбору). Но... это невозможно, тк в принципе наследование от srsReport* классов сразу должно быть(и как следстви, например, запросы передаваться будут различным образом ) .

Последний раз редактировалось kitty; 27.01.2016 в 20:28.
Старый 27.01.2016, 20:03   #7  
kitty is offline
kitty
Участник
 
370 / 30 (2) +++
Регистрация: 24.05.2005
Цитата:
Сообщение от ZVV Посмотреть сообщение
>>
В SysOperationFramework тоже есть прогресбар, только его нужно уметь готовить .
Где найти рецепт готовки?
Старый 27.01.2016, 20:24   #8  
kitty is offline
kitty
Участник
 
370 / 30 (2) +++
Регистрация: 24.05.2005
Цитата:
Сообщение от gl00mie Посмотреть сообщение
От импортов/экспортов/отчетов в Excel, которые всё делают на клиенте, меня лично коробит.
Клиенту нужны бантики и рюшечки, которые только в экселе можно сделать
Т.е спец оформление таблиц, фиксация колонок и тд.

Вопрос:
Есть класс собирающий данные (MyCalcClass, RunOn:Server), есть класс выгрузки всего в эксель(MyExcelClass, RunOn:Client)
Если мы используем SysOperation framework, то как лучше организовать вызовы:

1) Контроллер вызывает серверный MyCalcClass. Когда данные рассчитались, MyCalcClass внутри себя вызывает MyExcelClass и передает ему рассчитанную таблицу.

2) Контроллер вызывает клиентский MyExcelClass , который внутри вызывает серверный MyCalcClass. MyCalcClass возвращает рассчитанную таблицу и MyExcelClass ее использует для выгрузки.

Мне кажется, второй вариант совсем сводит на нет возможные преимущества sysoperation, тк по сути клиентский код управлет всем. Может, правда , и нет вообще разницы.
Старый 27.01.2016, 20:56   #9  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от kitty Посмотреть сообщение
Где найти рецепт готовки?
Готового рецепта не нашёл, готовил эксперементальным путём.
В чём конкретно проблема у вас? Что не получается? Что вы делали?
__________________
Zhirenkov Vitaly
Старый 27.01.2016, 22:15   #10  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от kitty Посмотреть сообщение
Есть класс собирающий данные (MyCalcClass, RunOn:Server), есть класс выгрузки всего в эксель(MyExcelClass, RunOn:Client)
Если мы используем SysOperation framework, то как лучше организовать вызовы?
Можно применить шаблон Model-View-Controller (MVC). В приведенном описании MyCalcClass можно классифицировать как модель (данные), MyExcelClass - как представление (вывод собранных данных в Excel, а не, скажем, в html или визуализация в виде диаграммы). Координацию их работы логично возложить на контроллер (как в терминах MVC, так и в терминах SysOperation framework), передачу же собранных данных из модели в представление можно реализовать через выходной контракт класса, собирающего данные. Если в этом контракте реализовать сериализацию, то можно будет существенно сэкономить на RPC-вызовах.
Старый 28.01.2016, 12:44   #11  
Napalm is offline
Napalm
Участник
 
80 / 88 (3) ++++
Регистрация: 23.05.2012
Цитата:
Сообщение от gl00mie Посмотреть сообщение
По-моему, любой нормальный импорт, работающий с клиентскими данными, должен идти примерно так:
  • запуститься на сервере;
  • запустить "нечто" на клиенте (возможно, 2-й экземпляр себя же по аналогии с RunBase.promptPrim()), чтобы считать "сырые" данные на клиенте и вернуть их на сервер;
  • прогнать на сервере цикл разбора/проверки/сохранения импортированных данных со всей сопутствующей бизнес-логикой.
На RunBase так сделать очень просто. А с SysOperationFramework есть хоть один пример такого решения?
Старый 28.01.2016, 21:31   #12  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
Цитата:
Сообщение от kitty Посмотреть сообщение
Пользователям нужен экселевский отчет (именно Excel, а не стандартный, который можно в эксель потом сохранить)

Как лучше делать Через SysOperationFramework или через RunBase

Ax2012 R2
Использовать XmlExcelReport_RU.
__________________
Dynamics AX Experience
Старый 01.02.2016, 08:00   #13  
Ned is offline
Ned
Lean Six Sigma
 
680 / 99 (5) ++++
Регистрация: 29.12.2002
Адрес: самолёт
Как это ни неожиданно, но SysOperation framework убран из АХ7
__________________
Viacheslav Nefedov, http://www.nefedov.net, http://restock.guru/

Последний раз редактировалось Ned; 01.02.2016 в 08:00. Причина: опечатался
Старый 01.02.2016, 10:37   #14  
maldini is offline
maldini
Участник
 
103 / 30 (2) +++
Регистрация: 06.03.2007
Адрес: москва
Все довольно просто. Формируем Excel файл на сервере, используя XMLExcelDocument_RU, передаем файл на клиент через BinData и открываем его.
Старый 01.02.2016, 10:38   #15  
axm2013
Гость
 
n/a
Цитата:
Сообщение от Ned Посмотреть сообщение
Как это ни неожиданно, но SysOperation framework убран из АХ7

А что взамен?
Старый 01.02.2016, 14:18   #16  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Ned Посмотреть сообщение
Как это ни неожиданно, но SysOperation framework убран из АХ7
По каким признакам вы это определили?
Старый 01.02.2016, 16:31   #17  
Ned is offline
Ned
Lean Six Sigma
 
680 / 99 (5) ++++
Регистрация: 29.12.2002
Адрес: самолёт
Э, belugin, это попытка наезда?
Если отвечать в стиле вопроса, то:
1. По коду. Я работаю с АХ7 с весны, было время определить. Есть желание - можете проверить
2. По документации и по словам сотрудников Майкрософт на конференциях по АХ7 для участников программы TAP

Я не могу сейчас подкрепить своё утверждение документами и цитатами - на сайте Майкрософт этих указаний не нашёл, а виртуалки с АХ7 под рукой нет, удалил с ноутбука. Если кто-то зайдёт в систему и подтвердит по поводу RunBase - было бы хорошо.

Цитата:
А что взамен?
Откатились обратно на RunBase как я помню, сам проверить смогу попозже, когда разберусь со всеми делами.
__________________
Viacheslav Nefedov, http://www.nefedov.net, http://restock.guru/
Старый 01.02.2016, 16:55   #18  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Нет, я просто использую вовсю SysOperation FW в Ax7 и мне никто ничего не говорил, и соответствующая команда даже фиксила баги.
Старый 01.02.2016, 17:02   #19  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Ned Посмотреть сообщение
1. По коду. Я работаю с АХ7 с весны, было время определить. Есть желание - можете проверить
Вероятно, так как он перенесен из приложения в платформу в рамках разделения на модули поэтому его нельзя найти в исходниках Application Suite.

Но можно найти его использование.

Цитата:
2. По документации и по словам сотрудников Майкрософт на конференциях по АХ7 для участников программы TAP
А в какой именно документации - я по быстрому не смог найти упоминание в wiki
За это сообщение автора поблагодарили: Ned (4), gl00mie (1).
Старый 01.02.2016, 17:02   #20  
Ned is offline
Ned
Lean Six Sigma
 
680 / 99 (5) ++++
Регистрация: 29.12.2002
Адрес: самолёт
Забавно. Нам как объявили сразу что на нём крест, так я и не смотрел после этого. Что ты на нём пишешь, периодические операции?

Я пока снёс семёрку - у меня места впритык на ноуте, не могу сейчас посмотреть. А runbasebatch как, присутствует?
__________________
Viacheslav Nefedov, http://www.nefedov.net, http://restock.guru/
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Падение DAX при формировании отчета в Excel Storaenso DAX: Прочие вопросы 16 06.07.2011 15:57
"Печать" отчета в Excel - проблема с округлением real полей Яга DAX: Программирование 6 17.06.2011 14:57
Написание отчета с выводом в Excel (новичок) axalex DAX: Программирование 14 19.05.2011 13:31
Не идет выгрузка отчета в Excel. Слабая машина. asabin DAX: Администрирование 27 29.06.2005 10:48
Печать отчета в Excel. Axapta 3.0 Fedr Kuzmich DAX: Функционал 2 19.05.2004 18:26

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

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

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