Показать сообщение отдельно
Старый 30.08.2017, 17:12   #38  
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).