Фоновая активность (фоновый процесс) — используется для процессов, занимающих продолжительное время. Не мешает продолжать работу и отдает идентификатор активности, по которому можно получать информацию о том что в ней происходит (например, прогресс выполнения в %), прервать её или дать интерактивный ответ на возникший в процессе вопрос к оператору, если он есть.

Фоновая активность идентифицируется двумя значениями: тип и идентификатор. Все методы, запускающие фоновые активности (обычно начинающиеся на Run*), возвращают именно эту пару значений — тип и идентификатор. А все методы, работающие с активностями, принимают эти два значения.

Найти фоновые активности

Метод SearchBackgroundActivities — метод для нахождения фоновых активностей. Необходим, чтобы знать, что сейчас происходит в системе. 

Принимает параметры поиска активностей, которыми можно, например, ограничить определенные типы активностей. В частности, в интерфейсе Автовыкупа незачем показывать активности, не связанные с ним.
Для простого получения всех активностей можно передать

<BackgroundActivitySearchParameters></BackgroundActivitySearchParameters>

 

Возвращает: список фоновых активностей, с краткой информацией о них. В краткой информации (BackgroundActivityInfo) сразу можно узнать всё, кроме списка шагов активности. Подробнее об основных свойствах активности описано ниже.

Получить информацию о фоновой активности

Метод GetBackgroundActivityInfo — метод для получения фоновой активности. Необходим, чтобы показывать процесс, что происходит в данной активности

Принимает: тип и идентификатор фоновой активности

Возвращает: полную информацию о фоновой активности и процессе её выполнения (BackgroundActivityFullInfoAnswer) Краткое описание свойств можно увидеть в документации по ссылке, а основные моменты подробнее описаны здесь.

Основные свойства активности

IsAwaitingAction

Если это свойство равно true, то активность приостановлена и ждет действия от пользователя. Следует это учесть, так как без действий активность не продолжится.

Actions

Список действий, которые пользователь может сейчас совершить в активности. В каждом действии есть его название и идентификатор. Идентификатор действия следует передать в метод DoActionForBackgroundActivity. Там всегда есть действие отмены самой активности (Cancel), остальные действия могут появляться по ходу работы активности.

Steps

Список шагов активности, отображающих ход выполнения. Каждый шаг (BackgroundActivityStepInfo) состоит из типа шага (информация, ошибка, предупреждение, вопрос, и т.д., на основе которого можно например подсветить соответствующую строчку для оператора), текста шага и списка действий шага. Тип Question обычно описывает вопрос к оператору и приводит к приостановке активности в ожидании реакции.

Действия шага — (BackgroundActivityStepActionInfo) это отдельное от действий активности понятие. Действия шага никогда не приостанавливают активность, но позволяют выполнить что-либо в контексте того события, которое описано данным шагом.

Например, если при связывании заказов не найдено полное соответствие для какого-либо товара, то в сообщении об этом будут приложены действия для произвольного связывания с любым товаром, если оператор сочтет такое нужным. Выполнить действие можно методом DoStepActionForBackgroundActivity.

Действие шага содержит идентификатор, название и набор параметров. Система, работающая с активностями, должна смотреть на идентификатор и делать что-либо при выборе действия на основе идентификатора. Если идентификатор равен DoStepAction, можем выполнить действие путем вызова метода DoStepActionForBackgroundActivity.

Все остальные идентификаторы действий система обрабатывает по своему усмотрению, они не могут быть выполнены простым вызовом OT API.

Выполнить действие для фоновой активности

Когда Фоновая активность ожидает необходимого действия, метод DoActionForBackgroundActivity выполняет это действие для фоновой активности (по сути, отвечает на вопрос, чтобы продолжить процесс).

Принимает: тип и идентификатор фоновой активности, а также идентификатор действия. Доступные действия можно узнать из свойства Actions информации об активности.

Возвращает: не возвращает ничего, кроме ошибок, если таковые есть.

 

Выполнить действие шага для фоновой активности

Метод DoStepActionForBackgroundActivity

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

Возвращает: не возвращает ничего, кроме ошибок, если таковые есть.


  • Нет меток