Выполнение действий программно
В редких случаях может понадобиться выполнить действия сервера программно. Это позволяет заменить реализации UI процедур по умолчанию кастомизированными процедурами и/или автоответами.
Чтобы выполнить действие программно:
- Получите объект
Context
действия изContextManager
- Вызовите
ActionsUtils.initAction()
статический метод, предоставляющий имяContext
и действия.ActionExecutionMode
должна быть выставлена либо наNORMAL
, либо наHEADLESS
, если UI процедуры фактически не выполняются человеком-оператором.initAction()
вернетActionIdentifier
, которое позднее будет использоваться для степпинга действия. - Вызовите
ActionsUtils.stepAction()
в цикле, пока не вернет null. Каждая итерацияstepAction()
будет возвращать определенную UI процедуру для ручного выполнения какGenericActionCommand
. Каждый вызов, начиная со второго, должен включать ваш сформированный вручную запросGenericActionResponse
к ранее полученномуGenericActionCommand
. - Обработайте каждую
GenericActionCommand
согласно ее типу, параметрам и заголовку.
Каждое событие запускается как отдельный поток SberMobile Server. Если по какой-то причине, вы прекратите вызывать |