Гранула workflow

Материал из Course Orchestra
Перейти к: навигация, поиск
Внимание! Вы просматриваете документацию к Celesta 6.x. Документация по Celesta 7.x доступна на courseorchestra.github.io/celesta.

1. Справочник Celesta

1.1 Введение и основные понятия
1.2 Запуск и авто-обновление
1.3 Базовая настройка
1.4 Системные таблицы
1.5 CelestaSQL
1.6 CelestaDoc
1.7 Контексты сессии и вызова
1.8 Курсоры
1.9 BLOB-поля
1.10 Option-поля
1.11 Защита от потерянных обновлений
1.12 Метаданные Celesta
1.13 CelestaUnit

2. Celesta и базы данных

2.1 Особенности работы Celesta с поддерживаемыми типами СУБД
2.2 Проектирование базы данных Celesta в DBSchema

3. Создание решений с использованием Celesta для ShowCase

3.1 Программа обучения Celesta
3.2 Подготовка рабочего места для работы с Celesta
3.2.1 Для разработчиков платформы
3.2.2 Для разработчиков решений
3.3 Системные гранулы Celesta
3.3.1 common
3.3.1.1 Экспорт/импорт данных
3.3.1.2 Навигатор
3.3.1.3 Серии номеров
3.3.1.4 Иерархия Дьюи
3.3.1.5 Системные функции
3.3.1.6 Реестр настроек
3.3.1.7 Mailsender
3.3.1.8 Common.filter
3.3.2 common.api
3.3.4 security
3.3.3 lyra
3.4 Стандартные гранулы Celesta
3.4.1 dirusing
3.4.2 workflow
3.4.3 File repository
3.5 Отрисовка элементов Showcase при помощи Celesta
3.5.1 Конвертер XML-JSON
3.5.2 Навигатор (Navigator)
3.5.3 Информационная панель (Datapanel)
3.5.4 Серверное действие (Server activity)
3.5.5 Вебтекст (WebText)
3.5.6 Грид (Grid)
3.5.6.1 Панель инструментов (ToolBar)
3.5.7 XForms
3.5.7.1 Селекторы
3.5.7.2 Submission
3.5.7.3 Загрузка/Выгрузка файлов (Upload/Download)

5. Решение проблем

5.1 Проблемы с кодировкой jython-файлов
Адрес на SVN: https://share.curs.ru/svn/grains/common.workflow

Данная гранула содержит набор функций и классов, необходимых для работы с системой «Организация рабочего процесса». Отвечает за:

  • отображение в навигаторе Showcase группы "Организация рабочего процесса";
  • отображение списка развёрнутых, активных процессов, остановленных процессов;
  • отображение лога операций, связанных с процессом;
  • интерфейс конструирования процессов и генерация xml-описания процесса

Подготовка к работе

В папке workflow содержится файл datapanelSetting.json, который содержит json следующего вида:

{
 "default": 
            {
              "startingProcess" : "workflow.datapanel.processes.standardStartProcess.celesta",
	      "documentTask" : "workflow.datapanel.tasks.standardCompleteTask.celesta"
			 
            },
 "manual": {
             "simpleStatusForm": "workflow.datapanel.tasks.approveTask.celesta"
           }
}

Параметр "startingProcess" задаёт источник данных для датапанели, содержащей форму инициализации процесса. Параметр "documentTask" задаёт источник данных для датапанели, содержащей форму стандартного завершения задачи.

В корневом каталоге гранулы common содержится grainsettings.xml, в котором описаны настройки для гранул. Для гранулы workflow в файле можно указать названия скриптов-обработчиков событий activiti. Пример задания скриптов-обработчиков:

    <activitiEvents>
	<event name="PROCESS_COMPLETED" script="processCompleteHandler.py" />
	<event name="PROCESS_COMPLETED" script="workflow.eventHandler.taskCompleteHandler.cl" />
    </activitiEvents>

Атрибут name задаёт имя события. Список событий activiti доступен по ссылке [1]. Атрибут script задаёт имя скрипта-обработчика события. Скрипт-обработчик может быть Jython-скриптом или Celesta-скриптом.

Управление процессами

В пункте навигатора "Управление процессами" доступны три вкладки "Развёрнутые процессы", "Активные процесса", "Завершённые процессы".

Развёрнутые процессы

Во вкладке "Развёрнутые процессы" находится грид с процессами, развёрнутыми в activiti. При нажатии на кнопку "Развернуть" открывается модальное окно с выбором файла описания процесса и разворачиванием выбранного описания. В гриде развёрнутых процессов для каждого процесса доступны две кнопки: "Схема" и "Старт процесса". При нажатии на кнопку "Схема" откроется новая вкладка, в которой будет изображение схемы процесса. При нажатии на кнопку "Старт процесса" откроется новая вкладка, в которой будет отображена форма старта процесса.

При выделении строки грида развёрнутых процессов во вкладке будет отображен зависимый грид форм процесса, выделенного в верхнем гриде. Для грида форм процесса доступны кнопки "Добавить", "Редактировать", "Удалить". При добавлении или редактировании формы процесса открывается модальное окно, в котором необходимо указать является ли форма формой инициализации, идентификатор формы и ссылку, связанную с формой. У каждого процесса может быть только одна форма инициализации, количество обычных форм не ограничено. Ссылка, связанная с формой должна быть корректной гиперссылкой и должно содержать некоторые обязательные url-параметры. Для формы инициализации обязательными параметрами являются:

  • processKey (Значение этого параметра должно быть либо ключом процесса, с которым связана форма, либо переменной $[processKey])
  • mode (Значение этого параметра для формы инициализации всегда должно быть process)

Пример корректного значения ссылки для формы инициализации процесса:

./?processKey=$[processKey]&mode=process

Обязательные параметры для обычных форм:

  • processId (Значение этого параметра должно быть переменной $[processId])
  • mode (Значение этого параметра должно быть task)
  • taskId (Значение этого параметра должно быть переменной $[taskId]

Пример корректного значения для обычной формы процесса:

./?mode=task&processId=$[processId]&taskId=$[taskId]

При нажатии кнопки "Удалить" в гриде форм процесса отобразится модальное окно подтверждения удаления. После подтверждения удаления соответствующая форма будет удалена.

Активные процессы

Во вкладке "Активные процессы" содержится грид с активными процессами, а также зависимый грид с логом событий конкретного процесса.

В гриде активных процессов отображаются все активные в данный момент процессы. Для каждого процесса доступны кнопки:

  • Схема
  • Остановка процесса
  • Активные задачи

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

При нажатии на кнопку "Остановка процесса" отобразится модальное окно с подтверждением остановки процесса и возможностью указать причину остановки процесса. Если подтвердить остановку процесса, то данный процесс будет остановлен и исчезнет из грида активных процессов.

При нажатии на кнопку "Активные задачи" откроется новая вкладка, в которой будет отображён грид, содержащий записи об активных задачах процесса.

При выделении строки грида активных процессов будет отображён зависимый грид с логом событий процесса, выделенного в гриде активных процессов. В логе событий процесса отображаются следующие типы событий:

  • Старт процесса
  • Старт задачи
  • Изменение переменной
  • Завершение задачи

Для каждого события указана дата его выполнения. Для типа события "Изменение переменной" в гриде отображается новое значение переменной.


Завершённые процессы

Во вкладке "Активные процессы" содержится грид с завершенными процессами, а также зависимый грид с логом событий конкретного процесса.

В гриде активных процессов отображаются все завершённые к данному моменту процессы.


При выделении строки грида завершённых процессов будет отображён зависимый грид с логом событий процесса, выделенного в гриде завершенных процессов. В логе событий процесса отображаются следующие типы событий:

  • Старт процесса
  • Старт задачи
  • Изменение переменной
  • Завершение задачи
  • Завершение процесса

Для каждого события указана дата его выполнения. Для типа события "Изменение переменной" в гриде отображается новое значение переменной.

Конструктор процессов

В данном пункте навигатора содержится вкладка "Конструктор процессов". В данной вкладке содержится интерфейс для создания и редактирования процессов, последующей генерации описания процесса и разворачивания сгенерированного процесса.

Для конструирования процесса сначала надо заполнить форму выбора процесса. В этой форме существуют два варианта:

  • Создание нового процесса. При создании нового процесса необходимо вручную заполнить поля "Ключ" и "Название". При этом ключ нового процесса не должен совпадать с ключами уже существующих процессов.
  • Редактирование существующего процесса. При редактировании процесса выбор процесса происходит в селекторе.

После выбора ключа и название процесса становится доступна кнопка "Создать процесс"/"Редактировать процесс". При нажатии на эту кнопку отображается грид с описанием схемы согласования. В гриде схемы согласования на верхнем уровне может быть два вида элементов: "Задача" и "Параллельное согласование". Порядок следования элементов в гриде задаёт порядок следования задач в процессе.

Элемент "Задача" задаёт задачу в процессе. Задачи можно добавлять, редактировать и удалять. Элемент "Параллельное согласование" объединяет несколько задач, которые могут быть выполнены параллельно. В каждом параллельном согласовании должно быть не менее двух элементов "Задача". При добавлении задач в грид необходимо указывать ответственных за выполнение задачи. Можно указать либо непосредственного ответственного, либо нескольких пользователей-кандидатов(любой из пользователей-кандидатов может выполнить задачу), либо несколько групп-кандидатов(любой из группы-кандидата может выполнить задачу). Для каждой задачи должен быть указан хотя бы один из трёх типов ответственных.

Пример процесса

По схеме согласования процесса формируется xml-описание процесса. Описание процесса состоит из трёх блоков. Стандартный блок начала процесса состоит из задач "Создание документа", "Отправка на доработку", и шлюза, в котором происходит переход либо на удаление документа и окончание процесса, либо на процесс согласования документа. Средний блок процесса формируется по гриду. После каждой задачи находится шлюз, в котором происходит либо передача документа на следующую стадию согласования, либо отправка на доработку. В последнем блоке процесса находится последний шлюз и окончание процесса. В последнем шлюзе документ либо успешно согласуется и процесс заканчивается, либо документ отправляется на доработку.


Под гридом схемы согласования отображается изображение процесса, соответствующего текущему состоянию грида схемы согласования. Под изображением процесса находится кнопка "Развернуть процесс", которая позволяет развернуть процесса в activiti.

Текущие задачи

В данной пункте навигатора содержится вкладка "Текущие задачи". На данной вкладке содержится грид текущих задач, где отображаются задачи текущего пользователя. Пользователю отображаются задачи, которые удовлетворяют одному из условий:

  • Пользователь является ответственным за задачу. Такие задачи пользователь может выполнять. Если существуют другие кандидаты на такую задачу, то пользователь может отказаться от выполнения задачи и тогда он перестанет быть ответственным за задачу
  • Пользователь входит в группу, которая является группой-кандидатом для задачи
  • Пользователь входит в список пользователей-кандидатов на данную задачу