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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.08.2017, 17:12   #1  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
По памяти,
SysOperationSandbox для того, чтобы запустить любой статический метод из UI (юзер нажал кнопку и тп) и при этом показать некий фидбек юзеру.
Решает проблемы -
1. Показать прогресс бар нереально, ибо что там внутри статического метода неизвестно
2. Браузер убьет сессию если сессия не отвечает долгое время
3. Юзер нажмет туже кнопку опять и опять и опять и вообще будет в непонятках что происходит

Аналог в 2012 - зависший клиент. Или запуск батча на клиенте без отправки на сервер.

Тоесть SysOperationSandbox надо использовать тогда, когда на кнопку повесили функционал, который может выполнятся продолжительное время, но при этом в большинстве случаев займет пару секунд. Или юзер должен дождатся результата выполнения.
Как чел описал в блоге, проблему можно решить по разному (например, element.runAsync() или реализовать батч).

Цитата:
теперь информировать должен вызывающий класс, а процесс-обработчик должен молчать в тряпочку...
Процесс-обработчик понятия не имеет, что его вызвали из UI.

Цитата:
почему именно такая архитектура?
Заметь, callback в примере с runAsync() не про SysOperationSandbox. И посути тоже самое что в C# - MSDN asynccallback
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0
За это сообщение автора поблагодарили: mazzy (2), Vadik (1), belugin (3).
Старый 31.08.2017, 09:47   #2  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Alex_KD Посмотреть сообщение
Процесс-обработчик понятия не имеет, что его вызвали из UI.
Вообще говоря, процесс мог бы использовать некое API, чтобы информировать окружающих о своем состоянии, а обрабатывать эту информацию показом прогрессбара, обновление какой-нибудь записи в БД или просто ничего не деланьем могла бы UI-запускалка.
Теги
#страшнодалекиониотнарода

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
mfp: X++ in AX7: String truncation Blog bot DAX Blogs 6 29.05.2020 18:24
mfp: What is new in X++ in AX7? Blog bot DAX Blogs 2 10.02.2016 00:29
Пример использования RunBuf Mechanizm DAX: Программирование 11 02.03.2004 13:25
Пример использования класса RunBase* Andronov DAX: Программирование 3 17.09.2003 13:12
HB_Tutorial_setTmpData - пример использования метода setTmpData vitk DAX: База знаний и проекты 0 10.12.2001 15:26

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:29.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.