Конфигурационный элемент типа [ Действие процесса ] ([ User task ]) — это сущность, которая позволяет реализовать однотипные операции для дальнейшего выполнения в бизнес-процессе. Подробнее о бизнес-процессах читайте в блоке статей Бизнес-процессы. Элемент процесса [ Выполнить действие процесса ] ([ User task ]) позволяет выбрать необходимый тип действия. Этот тип действия реализован в схеме конфигурационного элемента типа [ Действие процесса ] ([ User task ]). Подробнее об элементе [ Выполнить действие процесса ] ([ User task ]) читайте в статье Элемент процесса [ Выполнить действие процесса ].
Схема действия процесса, которую позволяет добавить Creatio IDE, представлена значением выпадающего списка [ Добавить ] ([ Add ]) панели инструментов рабочей области раздела [ Конфигурация ] ([ Configuration ]).
Подробнее о видах конфигурационных элементов читайте в статье Операции в Creatio IDE.
Конфигурационный элемент типа [ Действие процесса ] ([ User task ]) представлен схемой типа [ Действие процесса ] ([ User task ]) выпадающего списка [ Тип ] ([ Type ]) панели инструментов рабочей области раздела [ Конфигурация ] ([ Configuration ]). Схема — основа конфигурации Creatio.
Тип схемы действия процесса представлен на рисунке ниже.
Подробнее о типах конфигурационных элементов читайте в статье Операции в Creatio IDE.
Реализовать действие процесса
По умолчанию в приложении доступен набор преднастроенных пользовательских действий процесса. Creatio IDE предоставляет возможность реализовать пользовательское действие процесса. В простой реализации действие процесса частично повторяет логику элемента процесса [ Задание-сценарий ] ([ Script task ]). Подробнее об элементе [ Задание-сценарий ] ([ Script task ]) читайте в статье Элемент процесса [ Задание-сценарий ].
Creatio позволяет использовать реализованное пользовательское действие процесса в разных бизнес-процессах. При внесении изменений в пользовательское действие процесса эти изменения применяются во всех бизнес-процессах, в которых используется текущее пользовательское действие.
Чтобы реализовать действие процесса:
- Перейдите в раздел [ Конфигурация ] ([ Configuration ]) и выберите пользовательский пакет, в который будет добавлена схема.
-
На панели инструментов реестра раздела нажмите [ Добавить ] —> [ Действие процесса ] ([ Add ] —> [ User task ]).
-
В дизайнере действия процесса заполните свойства схемы.
Основные свойства схемы:
- Признак [ Пользовательское действие ] ([ User task ])
- Признак [ С настраиваемыми обработчиками событий ] ([ With custom handlers for events ])
- Признак [ Partial ] — устаревшее свойство. Используется для совместимости с предыдущими версиями приложения. Не рекомендуется использовать.
- Признак [ Сериализовать в БД ] ([ Serialize in DB ])
- [ Код ] ([ Code ]) — название схемы (обязательное свойство). Начинается с префикса (по умолчанию Usr), который указан в системной настройке [ Префикс названия объекта ] ([ Prefix for object name ], код SchemaNamePrefix). Может содержать символы латинского алфавита и цифры. При создании схемы конфигурационного элемента префикс, который указан в системной настройке [ Префикс названия объекта ] ([ Prefix for object name ], код SchemaNamePrefix), автоматически добавляется в текущее поле. Наличие префикса и его совпадение со значением системной настройки проверяется при сохранении свойств схемы. Если он отсутствует или не совпадает, то пользователь получает соответствующее уведомление.
- [ Заголовок ] ([ Title ]) — локализуемый заголовок схемы (обязательное свойство). Заголовок схемы конфигурационного элемента генерируется автоматически и совпадает со значением свойства [ Код ] ([ Code ]) без префикса.
- [ Пакет ] ([ Package ]) — пользовательский пакет, в котором создается схема. Заполняется автоматически и недоступно для редактирования.
- [ Описание ] ([ Description ]) — локализуемое описание схемы конфигурационного элемента.
- [ Страница редактирования параметров ] ([ Parameters edit page ]) — выберите страницу настройки параметров действия процесса, которая отображается при настройке элемента в бизнес-процессе. Эту страницу необходимо предварительно создать. В другом случае отображается перечень параметров действия процесса.
- [ Страница редактирования параметров кейса ] ([ Dcm parameters edit page ]) — выберите страницу настройки параметров действия процесса, которая отображается при настройке элемента в дизайнере кейсов. Эту страницу необходимо предварительно создать. В другом случае отображается перечень параметров действия процесса.
- [ Цвет ] ([ Color ]) — HEX-код цвета, который используется для отображения текущего конфигурационного элемента в дизайнере бизнес-процессов. По умолчанию — "#839DC3".
- [ Маленькое векторное изображение ] ([ Small vector image ]), [ Большое векторное изображение ] ([ Large vector image ]), [ Векторное изображение заголовка ] ([ Title vector image ]), [ Маленькое векторное изображение для DCM ] ([ Small vector image for DCM ]) — изображения, которые используются для отображения действия процесса в дизайнере бизнес-процессов.
Для применения заданных свойств нажмите [ Применить ] ([ Apply ]).
В результате заданные свойства конфигурационного элемента типа [ Действие процесса ] ([ User task ]) сохраняются. После этого закрывается дизайнер действия процесса. Повторно открыв схему конфигурационного элемента типа [ Действие процесса ] ([ User task ]), в рабочей области дизайнера действия процесса вы увидите C#-код, который генерируется в процессе сохранения.
Панель свойств дизайнера действия процесса позволяет:
- Изменить основные свойства схемы (кнопка
).
- Задать дополнительные свойства схемы (кнопка
).
Дополнительные свойства схемы:
- [ Локализуемые строки ] ([ Localizable strings ]).
- [ Параметры ] ([ Parameters ]). Параметры пользовательского действия возвращают результат выполнения действия. Для добавления параметров воспользуйтесь инструкцией, которая приведена в пункте Добавить параметр действия процесса.
- В дизайнере действия процесса добавьте исходный код. Для реализации бизнес-логики действия процесса воспользуйтесь инструкцией, которая приведена в пункте Реализовать бизнес-логику действия процесса.
- На панели инструментов дизайнера действия процесса нажмите [ Сохранить ] ([ Save ]) для временного сохранения изменений в метаданных схемы.
- На панели инструментов дизайнера действия процесса нажмите [ Опубликовать ] ([ Publish ]) для выполнения изменений на уровне базы данных.
Добавить параметр действия процесса
- На панели свойств в контекстном меню узла [ Параметры ] ([ Parameters ]) нажмите
.
-
В дизайнере действия процесса заполните свойства параметра.
Основные свойства параметра:
- [ Код ] ([ Code ]) — название параметра (обязательное свойство).
- [ Заголовок ] ([ Title ]) — локализуемый заголовок параметра (обязательное свойство).
- [ Тип данных ] ([ Type ]) — тип параметра (обязательное свойство). В зависимости от выбранного значения, текущий параметр можно связать с другими параметрами действия процесса.
- [ Справочник ] ([ Lookup ]) — выберите справочник. Свойство доступно при выбранном значении "Справочник" ("Lookup") свойства [ Тип данных ] ([ Type ]).
- [ Схема ] ([ Schema ]) — название схемы, которая связана с параметром. Недоступно для редактирования.
- Признак [ Обязательный для заполнения ] ([ Required ]). Указывает, что параметр является обязательным для заполнения.
- Признак [ Результирующий ] ([ Resulting ]) — значение текущего параметра можно использовать в условии условного потока. Указывает, что параметр является результирующим.
- Признак [ Содержит Id исполнителя ] ([ Contains performer Id ]) — идентификатор контакта, который является исполнителем. Свойство доступно при выбранном значении "Справочник" ("Lookup") свойства [ Тип данных ] ([ Type ]).
- Признак [ Отложенная загрузка ] ([ Lazy load ]) — позволяет без задержек загружать диаграмму процесса. Параметр загружается непосредственно перед его использованием. Об отложенной загрузке читайте на Википедии.
- Признак [ Сериализуемый ] ([ Serializable ]) — значение текущего параметра сохраняется в процессе выполнения действия процесса (т. е. между вызовами методов InternalExecute() и CompleteExecuting()). Используется для интерактивных действий процесса. Подробнее о типах действий процесса читайте в пункте Реализовать бизнес-логику действия процесса.
- Признак [ Копировать значение ] ([ Copy value ]). При установленном признаке позволяет копировать значение параметра при его повторном использовании. Устаревшее свойство. Не рекомендуется использовать.
Для добавления параметра нажмите [ Добавить ] ([ Create ]).
Действия, которые позволяет выполнить с параметром дизайнер действия процесса:
- Изменить свойства параметра (кнопка
).
- Удалить параметр (кнопка
).
Реализовать бизнес-логику действия процесса
Пользовательские классы, которые позволяют реализовать бизнес-логику действия процесса:
- Класс, который является наследником класса Terrasoft.Core.Process.ProcessUserTask. Назначение класса — реализация основной логики работы действия процесса. Название класса совпадает со значением свойства [ Код ] ([ Code ]) схемы действия процесса.
- Класс, который является наследником класса Terrasoft.Core.Process.ProcessUserTaskSchemaExtension. Назначение класса — реализация дополнительных возможностей действия процесса (например, синхронизация параметров, установка зависимостей и т. д.). Чтобы сформировать название класса-наследника, к названию класса действия процесса добавьте суффикс SchemaExtension (например, для действия процесса PerformHardWorkUserTask название пользовательского класса-наследника — PerformHardWorkUserTaskSchemaExtension).
Методы класса ProcessUserTask описаны в статье Класс ProcessUserTask. Методы класса ProcessUserTaskSchemaExtension описаны в статье Класс ProcessUserTaskSchemaExtension.
Методы, которые позволяет заместить дизайнер действия процесса в классе-наследнике класса ProcessUserTask, зависят от типа действия процесса. Типы действий процесса содержатся в таблице ниже.
|
|
|
---|---|---|
|
Для завершения выполнения действия процесса необходимо взаимодействие с пользователем или приложением. Взаимодействие включает в себя ввод дополнительных данных, выбор режима работы, ожидание сигнала от объекта. |
|
|
||
|
||
|
Для завершения выполнения действия процесса нет необходимости взаимодействовать с пользователем. |
|
Добавить действие процесса на вкладку [ Элементы процесса ]
Если пользовательский элемент действия процесса планируется часто использовать, то для удобства его необходимо добавить на вкладку [ Элементы процесса ] ([ Process elements ]) дизайнера процессов.
Чтобы добавить действие процесса на вкладку [ Элементы процесса ] ([ Process elements ]) дизайнера процессов:
-
В базе данных выполните SQL-скрипт, который приведен ниже.
SQL-скриптMSSQLPostgreSQLUsrSomeProcessUserTask — название (значение свойства [ Код ] ([ Code ])) схемы действия процесса.
- Повторно войдите в приложение или выполните его компиляцию. О компиляции читайте в статье Операции в Creatio IDE.
1. Создать схему действия процесса
- Перейдите в раздел [ Конфигурация ] ([ Configuration ]) и выберите пользовательский пакет, в который будет добавлена схема.
-
На панели инструментов реестра раздела нажмите [ Добавить ] —> [ Действие процесса ] ([ Add ] —> [ User task ]).
-
В дизайнере действия процесса заполните свойства схемы.
- [ Код ] ([ Code ]) — "UsrSumNumbersProcessUserTask".
- [ Заголовок ] ([ Title ]) — "Действие процесса по суммированию чисел" ("User task of sum numbers").
Для применения заданных свойств нажмите [ Применить ] ([ Apply ]).
-
Добавьте параметр действия процесса, который содержит значение первого числа.
- На панели свойств в контекстном меню узла [ Параметры ] ([ Parameters ]) нажмите
.
-
В дизайнере действия процесса заполните свойства параметра.
- [ Код ] ([ Code ]) — "FirstNumber".
- [ Заголовок ] ([ Title ]) — "Первое число" ("First number").
- [ Тип ] ([ Type ]) — выберите "Целое" ("Integer").
- Установите признак [ Сериализуемый ] ([ Serializable ]).
- Для добавления параметра нажмите [ Добавить ] ([ Create ]).
- На панели свойств в контекстном меню узла [ Параметры ] ([ Parameters ]) нажмите
-
Аналогично добавьте параметры действия процесса, которые содержат:
- Значение второго числа.
- Значение суммы чисел.
Свойства параметров, которые необходимо добавить, приведены в таблице ниже.
Значения свойств параметровПараметр Свойство Значение свойства Параметр, который содержит значение второго числа [ Код ] ([ Code ]) "SecondNumber" [ Заголовок ] ([ Title ]) "Второе число" ("Second number") [ Тип ] ([ Type ]) Выберите "Целое" ("Integer") Признак [ Сериализуемый ] ([ Serializable ]) Установите Параметр, который содержит значение суммы чисел [ Код ] ([ Code ]) "SumNumbers" [ Заголовок ] ([ Title ]) "Сумма чисел" ("Sum of numbers") [ Тип ] ([ Type ]) Выберите "Целое" ("Integer") Признак [ Сериализуемый ] ([ Serializable ]) Установите -
Реализуйте логику суммирования чисел. Для этого добавьте реализацию метода InternalExecute() автогенерируемого исходного кода схемы действия процесса.
Полный исходный код схемы действия процесса - На панели инструментов дизайнера действия процесса нажмите [ Опубликовать ] ([ Publish ]) для выполнения изменений на уровне базы данных.
2. Реализовать бизнес-процесс
- Перейдите в раздел [ Конфигурация ] ([ Configuration ]) и выберите пользовательский пакет, в который будет добавлена схема.
-
На панели инструментов реестра раздела нажмите [ Добавить ] —> [ Бизнес процесс ] ([ Add ] —> [ Business process ]).
-
Заполните свойства бизнес-процесса.
- На панели настройки элементов заполните свойство [ Заголовок ] ([ Title ]) — "Sum of numbers process".
- На вкладке [ Настройки ] ([ Settings ]) панели настройки элементов заполните свойство [ Имя ] ([ Code ]) — "UsrProcessSumNumbers".
-
Реализуйте бизнес-процесс.
Бизнес-процесс представлен на рисунке ниже.
-
Добавьте действие процесса.
-
В области элементов дизайнера нажмите [ Действия системы ] ([ System actions ] и разместите элемент [ Выполнить действие процесса ] ([ User task ]) в рабочей области дизайнера процессов между начальным событием [ Простое ] ([ Simple ]) и завершающим событием [ Останов ] ([ Terminate ]).
-
Заполните свойства действия процесса.
- [ Какое пользовательское действие выполнить? ] ([ Which user task to perform? ]) — выберите "Действие процесса по суммированию чисел" ("User task of sum numbers").
-
Заполните значения параметров действия процесса.
- [ Первое число ] ([ First number ]) — "12".
- [ Второе число ] ([ Second number ]) — "23".
-
-
Добавьте автогенерируемую страницу.
-
В области элементов дизайнера нажмите [ Действия пользователя ] ([ User actions ] и разместите элемент [ Автогенерируемая страница ] ([ Auto-generated page ]) в рабочей области дизайнера процессов после элемента [ Выполнить действие процесса ] ([ User task ]).
-
Заполните свойства автогенерируемой страницы.
- [ Заголовок ] ([ Title ]) — "Sum of numbers page".
- [ Название страницы ] ([ Page title ]) — "Страница суммирования чисел" ("Sum of numbers page").
-
Добавьте элемент автогенерируемой страницы.
-
В блоке [ Элементы страницы ] ([ Page Items ]) нажмите кнопку
и выберите "Целое число" ("Integer").
-
Заполните свойства элемента.
- [ Заголовок ] ([ Title ]) — "SUM:".
- [ Код ] ([ Code ]) — "Sum".
- [ Значение ] ([ Value ]) — нажмите
—> [ Параметр процесса ] —> [ Сумма чисел ] ([ Process parameter ] —> [ Sum of numbers ]).
- Для добавления параметра нажмите [ Сохранить ] ([ Save ]).
-
-
-
- На панели инструментов дизайнера процессов нажмите [ Сохранить ] ([ Save ]).
Результат выполнения примера
Чтобы посмотреть результат выполнения примера, запустите бизнес-процесс Sum of numbers process.
В результате отображается автогенерируемая страница [ Страница суммирования чисел ] ([ Sum of numbers page ]). На странице отображается сумма двух чисел, которые заданы в качестве значения параметров бизнес-процесса.
Пространство имен Terrasoft.Core.Process.
Класс Terrasoft.Core.Process.ProcessUserTask предназначен для реализации основной логики работы действия процесса. В пользовательском классе, который является наследником класса ProcessUserTask, необходимо выполнить замещение методов. Методы, которые позволяет заместить дизайнер действия процесса в классе-наследнике класса ProcessUserTask, зависят от типа действия процесса.
Методы
Выполняет основную логику действия процесса. При необходимости завершить выполнение действия процесса для дальнейшего вызова метода CompleteExecuting() или CancelExecuting() необходимо вернуть false, в другом случае — true. Если метод возвращает значение true, то элемент завершает свое выполнение (т. е. для него устанавливается статус [ Выполнено ] ([ Completed ])) и процесс продолжает свое выполнение. Если метод возвращает значение false, то выполнение элемента и процесса прерывается. При этом элемент остается в статусе [ Запущено ] ([ Running ]). Метод замещается для интерактивного и неинтерактивного типов действия процесса.
context | Контекст выполнения процесса. Значение типа ProcessExecutingContext. |
Вызывается при завершении выполнения действия процесса. Содержит обязательный вызов базового метода base.CompleteExecuting(parameters). Возвращает значение true. Метод замещается для интерактивного типа действия процесса.
parameters | Массив параметров, которые передаются при вызове IProcessEngine.CompleteExecuting. |
Вызывается при прерывании выполнения элемента процесса. Выполняет компенсацию (т. е. отмену активностей, которые созданы в методе InternalExecute(), связанных записей и т. д.). Метод замещается для интерактивного типа действия процесса.
parameters | Массив параметров. Необходим для обратной совместимости. |
Передает дополнительную информацию, которая необходима при открытии страницы элемента действия процесса. Запись значений выполняет интерфейс IProcessExecutionDataWriter.
dataWriter | Экземпляр интерфейса IProcessExecutionDataWriter. Выполняет сериализацию значений. |
Пространство имен Terrasoft.Core.Process.
Класс Terrasoft.Core.Process.ProcessUserTaskSchemaExtension предназначен для реализации дополнительных возможностей действия процесса (например, синхронизация параметров, установка зависимостей и т. д.). В пользовательском классе, который является наследником класса ProcessUserTaskSchemaExtension, необходимо выполнить замещение методов.
Методы
Возвращает перечень возможных значений результирующих параметров действия процесса в виде Dictionary<System.Guid, System.String>.
userConnection | Пользовательское подключение. Экземпляр класса UserConnection. |
userTask | Действие процесса. Экземпляр класса схемы ProcessSchemaUserTask. Класс описывает схему элемента, для которого вызывается текущий метод. |
Синхронизирует динамические параметры. Динамические параметры — параметры, которые отсутствуют в схеме действия процесса, но динамически генерируются для элемента.
userConnection | Пользовательское подключение. Экземпляр класса UserConnection. |
target | Действие процесса. Экземпляр класса схемы ProcessSchemaUserTask. Класс описывает схему элемента, для которого вызывается текущий метод. |
Синхронизирует параметры, которые созданы при реализации действия процесса в дизайнере процессов.
schemaElement | Экземпляр класса схемы ProcessSchemaUserTask. Класс описывает схему элемента, для которого вызывается текущий метод. |
Устанавливает зависимости связанных схем действия процесса путем вызова метода ReportSchemaDependency() параметра dependencyReporter. Метод реализован для версий 8.0.1 и выше.
schemaElement | Экземпляр класса схемы ProcessSchemaUserTask. Класс описывает схему элемента, для которого вызывается текущий метод. |
dependencyReporter | Интерфейс, который содержит методы для установки зависимости на схему или колонку объекта. |