|
27.01.2016, 16:58 | #1 |
Участник
|
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 |
MCITP
|
>> Преимущество RunBase - там progressBar есть + все в одном классе
В SysOperationFramework тоже есть прогресбар, только его нужно уметь готовить По существу вопроса, если вы всё равно не планируете переносить исполнение класса (и заполнение Excel) на сервер, то нет особых оснований для использования SysOperationFramework, Imho. По крайней мере я бы делал через RunBase.
__________________
Zhirenkov Vitaly |
|
27.01.2016, 20:03 | #3 |
Участник
|
|
|
27.01.2016, 20:56 | #4 |
MCITP
|
Готового рецепта не нашёл, готовил эксперементальным путём.
В чём конкретно проблема у вас? Что не получается? Что вы делали?
__________________
Zhirenkov Vitaly |
|
27.01.2016, 19:07 | #5 |
Участник
|
Цитата:
По-моему, даже при большей трудоемкости стоит попробовать реализовать отчет на SysOperation framework - хотя бы для собственного развития. Заодно можно будет разобраться с Open XML SDK и научиться формировать Excel-файлы без самого Excel Я лично не замечал таких оговорок - про пакетные задания. Зато были оговорки, что RunBase - кандидат на вылет в следующих версиях. Одно из удобств SysOperation framework в том, что сервисная операция из клиента может запускаться в асинхронном режиме: она будет работать в отдельном потоке, при этом пользователь сможет продолжить работу в Аксапте, а не будет вынужден пялиться на градусник. При завершении же операции контроллер сервисной операции получит обратный вызов и сможет как-то просигналить пользователю, что результат готов, например - открыть отчет в Excel. |
|
|
За это сообщение автора поблагодарили: Михаил Андреев (2), MikeR (5). |
27.01.2016, 19:20 | #6 |
Участник
|
Проблема с SysOperation framework в том, что он выполняется на сервере. А некоторые задачи импорта/экспорта требуют выполнения на клиенте.
|
|
27.01.2016, 20:01 | #7 |
Участник
|
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. " Цитата:
Я уже сделала по новой религии, те SysOperation, рассчитывая, что, если одумаются и захотят нормальный отчет, то будет легко переделать, оставив те же Contract&UIBuilder( или запускать нужный отчет по выбору). Но... это невозможно, тк в принципе наследование от srsReport* классов сразу должно быть(и как следстви, например, запросы передаваться будут различным образом ) . Последний раз редактировалось kitty; 27.01.2016 в 20:28. |
|
27.01.2016, 20:00 | #8 |
Участник
|
По-моему, любой нормальный импорт, работающий с клиентскими данными, должен идти примерно так:
От импортов/экспортов/отчетов в Excel, которые всё делают на клиенте, меня лично коробит. |
|
27.01.2016, 20:24 | #9 |
Участник
|
Цитата:
Т.е спец оформление таблиц, фиксация колонок и тд. Вопрос: Есть класс собирающий данные (MyCalcClass, RunOn:Server), есть класс выгрузки всего в эксель(MyExcelClass, RunOn:Client) Если мы используем SysOperation framework, то как лучше организовать вызовы: 1) Контроллер вызывает серверный MyCalcClass. Когда данные рассчитались, MyCalcClass внутри себя вызывает MyExcelClass и передает ему рассчитанную таблицу. 2) Контроллер вызывает клиентский MyExcelClass , который внутри вызывает серверный MyCalcClass. MyCalcClass возвращает рассчитанную таблицу и MyExcelClass ее использует для выгрузки. Мне кажется, второй вариант совсем сводит на нет возможные преимущества sysoperation, тк по сути клиентский код управлет всем. Может, правда , и нет вообще разницы. |
|
27.01.2016, 22:15 | #10 |
Участник
|
Можно применить шаблон Model-View-Controller (MVC). В приведенном описании MyCalcClass можно классифицировать как модель (данные), MyExcelClass - как представление (вывод собранных данных в Excel, а не, скажем, в html или визуализация в виде диаграммы). Координацию их работы логично возложить на контроллер (как в терминах MVC, так и в терминах SysOperation framework), передачу же собранных данных из модели в представление можно реализовать через выходной контракт класса, собирающего данные. Если в этом контракте реализовать сериализацию, то можно будет существенно сэкономить на RPC-вызовах.
|
|
28.01.2016, 12:44 | #11 |
Участник
|
Цитата:
Сообщение от gl00mie
По-моему, любой нормальный импорт, работающий с клиентскими данными, должен идти примерно так:
|
|
28.01.2016, 21:31 | #12 |
MCTS
|
Использовать XmlExcelReport_RU.
__________________
Dynamics AX Experience |
|
01.02.2016, 08:00 | #13 |
Lean Six Sigma
|
Как это ни неожиданно, но SysOperation framework убран из АХ7
Последний раз редактировалось Ned; 01.02.2016 в 08:00. Причина: опечатался |
|
01.02.2016, 10:37 | #14 |
Участник
|
Все довольно просто. Формируем Excel файл на сервере, используя XMLExcelDocument_RU, передаем файл на клиент через BinData и открываем его.
|
|
01.02.2016, 10:38 | #15 |
Гость
|
|
|
01.02.2016, 14:18 | #16 |
Участник
|
|
|
01.02.2016, 16:31 | #17 |
Lean Six Sigma
|
Э, belugin, это попытка наезда?
Если отвечать в стиле вопроса, то: 1. По коду. Я работаю с АХ7 с весны, было время определить. Есть желание - можете проверить 2. По документации и по словам сотрудников Майкрософт на конференциях по АХ7 для участников программы TAP Я не могу сейчас подкрепить своё утверждение документами и цитатами - на сайте Майкрософт этих указаний не нашёл, а виртуалки с АХ7 под рукой нет, удалил с ноутбука. Если кто-то зайдёт в систему и подтвердит по поводу RunBase - было бы хорошо. Цитата:
А что взамен?
|
|
01.02.2016, 17:02 | #18 |
Участник
|
Цитата:
Но можно найти его использование. Цитата:
2. По документации и по словам сотрудников Майкрософт на конференциях по АХ7 для участников программы TAP
|
|
|
За это сообщение автора поблагодарили: Ned (4), gl00mie (1). |
01.02.2016, 17:15 | #19 |
Участник
|
|
|
01.02.2016, 17:20 | #20 |
Участник
|
|
|