Дерево страниц
Skip to end of metadata
Go to start of metadata

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 2 Следующий »

Сервис для работы с мониторами процессов, их создания, получения, обновления, удаления.

ru.intertrust.cmj.rest.tunable.object.processes.service.MonitorProcessingServiceImpl

extends: -

properties

name

return value

description

createMonitor

ProcessMonitor

Создание нового монитора для проесса, выполняющегося на сервере

processTitle

createMonitor(String processTitle, String currentStageTitle, String handlerName, TunableObjectREST.Resource data, Map<String, String> params, String httpSessionId, String clientId)


methods

name

return value

description

createMonitor

ProcessMonitor

 ProcessMonitor createMonitor(String processTitle, String currentStageTitle, String handlerName, TunableObjectREST.Resource data,
            Map<String, String> params, String httpSessionId, String clientId);

Создание нового монитора для проесса, выполняющегося на сервере

@param processTitle - - заголовок процесса
     * @param currentStageTitle заголовок первого этапа процесса
     * @param handlerName       имя обработчика, который стартует процесс
     * @param params            параметры, необходимые для работы, по умолчанию в них информация о клиентском контексте
     * @param httpSessionId     идентификатор http-сессии пользователя, в которой он запустил операцию
     * @param clientId          идентификатор вкладки пользователя, в которой он запустил операцию

@return монтитор процесса

deleteMonitorboolean

Удаляет монитор из хранилища

@param monitorId
     * @return - true, если монитор удалён

getMonitorIProcessMonitor
getAll  List<IProcessMonitor>Возвращает мониторы всех процессов в системе
getAllByPersonIProcessMonitor

    List<IProcessMonitor> getAllByPerson(SOPersonSystem person);

Возвращает мониторы для всех запущенных процессов указанного пользователя

@param - SOPersonSystem - person - владелец процессов
     * @return - мониторы всех процесов, запущенных указанным ползователем

getAllByClientId

  List<IProcessMonitor> getAllByClientId(String clientId);

Возвращает все мониторы проессовпо идентификатору активной вкладки браузера
     *
     * @param clientId - идентификатор сессии web-клиента. Привязан к вкладке браузера
     * @return

getParams(String monitorId)

getParams(String monitorId);

Возвращает патаметры процесса
     *
     * @param monitorId
     * @return параметры процесса

getData

    TunableObjectREST.Resource getData(String monitorId);

Возвращает ресурс, необходимый клиенту для испльзования на текущем шаге процесса
     *
     * @param monitorId
     * @return

setStatus

Установка опрдленного статуса процесса

setStatus(String monitorId, IProcessMonitor.Status status);

* @param monitorId
     * @param status    устанавливамый статус

setServerStatus
Установка опредленного статуса серверной обработки процесса.
     *
     * @param monitorId
     * @param serverStatus устанавливамый статус
     */
    void setServerStatus(String monitorId, IProcessMonitor.ServerStatus serverStatus);
prepareForHandlerProcessMonitor/**
     * Заполнение монитора данными перед запуском обработчика
     *
     * @param monitorId
     * @param currentStageTitle - заголовок текущего состояния процесса для отображения
     * @param handlerName       - название обработчика, который должен вызваться в рамках процесса
     * @param data              - ресурс, необходимый для следующего шаге процесса
     * @param httpSessionId     - дентификатор http-сессии пользователя
     * @param clientId          - идентификатор сессии web-клиента. Привязан к вкладке браузера
     */
    ProcessMonitor prepareForHandler(String monitorId, String currentStageTitle, String handlerName, TunableObjectREST.Resource data,
            String httpSessionId, String clientId);
updateByHandler
/**
     * Запись в монитор разультатов работы обработчика
     *
     * @param monitorId
     * @param command           - команда для выполения веб-клиентом
     * @param currentStageTitle - заголовок текущего состояния процесса для отображения
     * @param data              - ресурс, необходимый для следующего шаге процесса
     * @param params            - параметры процесса, необходимые на следующих шагах проесса
     */
    void updateByHandler(String monitorId, IProcessMonitor.Command command, String currentStageTitle, TunableObjectREST.Resource data,
            Map<String, String> params);
notifyClients(String monitorId);

  
 Отправка представления монитора всем клиентам по WebSocket с целью информирования о текущем состоянии процесса

* @param monitorId

sendToClient
Отправка представления монитора на клиент по WebSocket с целью выполнения действий на клиенте
     *
     * @param monitorId
     */
    void sendToClient(String monitorId);
sendToClientForSelectNewActiveSession

Отправка предсталения монитора всем клиентам для выбора клиента, который будет стартовать автоматическую операцию.
     * <p>
     * Выбор клиента происходит по следующей логике:
     * - первому попавшемуся клиенту отправляется монитор с разрешением на выполнение клиентской операции
     * без привлечения внимания пользовтеля. При этом SessionId этого клиента записывается в монитор.
     * - всем остальным клиентам монитор отправляется без такого разрашения.
     * <p>
     * При этом, если клиент с сохраненным SessionId отключится, то берется следующий первый попавшийся клиент.
     *
     * @param monitor                     - монитор процесса
     * @param person                      - инициатор процесса
     * @param needSendToNotActiveSessions - true, если необходимо ли рассылать монитор всем клиентам,
     */

  void sendToClientForSelectNewActiveSession(IProcessMonitor monitor, SOPersonSystem person, boolean needSendToNotActiveSessions);

setActiveSessionAndSentAutoStartCommand

Установка активной websocket-сессии и отправка клиенту по этой сессии команды для автозапуска операции на клиенте

@param monitorId           - монитор процесса
     * @param person              - инициатор процесса
     * @param activeWSSessionId   - id webSocket-сессии для которой надо выдать разрешение для авторзапуска клиентской операции
     * @param activeHttpSessionId - id http-сессии для которой надо выдать разрешение для авторзапуска клиентской операции
     * @param activeClientId      - id клиента который подключился, однозначно идентифицирует вкладку браузера.
     */
    void setActiveSessionAndSentAutoStartCommand(String monitorId, SOPersonSystem person, String activeWSSessionId,
            String activeHttpSessionId, String activeClientId);

startClientOperationboolean  /**
     * Выдача разрешения клиенту на обработку процесса, если процесс еще не занят другим клиентом.
     * При этом статус меняется с WAIT_DATA_FROM_USER на CLIENT_PROCESSING
     *
     * @param monitorId - UNID монитора процесса
     * @param clientId  - идентификатор клиента
     * @return true, если пазрешение выдано. false - если нет.
     */
    boolean startClientOperation(String monitorId, String clientId);
releaseClientOperation
  /**
     * Освобождение монитора клиентом, если пользователь отказался продолжать процесс прямо сейчас, но не превал её.
     * При этом статус меняется с CLIENT_PROCESSING на WAIT_DATA_FROM_USER
     *
     * @param monitorId - UNID монитора процесса
     */
    void releaseClientOperation(String monitorId, boolean needNotify);
 
updateProgress
  /**
     * Обновление прогресса операции, выполняющейся на сервере и отправка её на клиент по WebSocket
     *
     * @param monitorId - UNID монитора процесса
     * @param total     - сколько необходимо для завершения операции, в %
     * @param done      - сколько пройдено, в %
     */
    void updateProgress(String monitorId, int total, int done);
writeErrorDialog
  /**
     * Запись ошибки, блокирующей продолжение процесса.
     * Формирование завершащего диалога для показа ошибки
     *
     * @param monitorId - id монитора процесса
     * @param errorText - текст ошибки
     */
    void writeErrorDialog(String monitorId, String errorText, String stacktrace);
  markFinished

Помечает процесс заверешённым

  void markFinished(String monitorId);

markAborted

Помечает процесс прерванным. Нужно для запуска отката изменений
     *
     * @param monitorId - id монитора процесса

void markAborted(String monitorId);

markDeleted

Помечает процесс удалённым. такой монитор не возвращается клиенту,
     * и игнорирует попытки что-либо с ним сделать по инициативе клиента.

 *
     * @param monitorId - id монитора процесса
     */
    void markDeleted(String monitorId);

updateStatus
  /**
     * Устанавливает статус в монитор с сохранением в базу
     *
     * @param monitorId - id монитора процесса
     * @param status - статус монитора
     */
    void updateStatus(String monitorId, IProcessMonitor.Status status);
updateByHandler



Статус

В РАБОТЕ

Комментарий

Методы, свойства, внутренние классы

  • Нет меток