Перейти к основному содержимому

Настройка задачи на схеме бизнес-процесса

На схеме бизнес-процесса основным BPMN-элементом является задача (Task) типа Service Task, описывающая выполнение бизнес-логики, или User Task, описывающая действие пользователя. Каждый BPMN-элемент на схеме бизнес-процесса имеет определенный набор параметров. Параметры BPMN-элемента отображаются на панели свойств справа в момент, когда этот BPMN-элемент выбран на схеме бизнес-процесса.

В группе General на панели свойств отображаются общие для всех BPMN-элементов свойства. Для каждого BPMN-элемента укажите имя в поле Name и идентификатор в поле ID.

подсказка

Camunda Modeler автоматически подставляет значение в поле ID BPMN-элемента. Для удобства работы со схемой бизнес-процесса в среде разработки и среде исполнения рекомендуется заменять автоматически присвоенное значение и указывать значение идентификатора, которое ассоциируется с назначением этого BPMN-элемента.

При указании параметров BPMN-элементов на схеме бизнес-процесса могут использоваться переменные. Для вычисления значений переменных на основе данных, доступных в контексте бизнес-процесса, используется язык выражений Camunda.

Параметры задачи зависят от типа задачи и действий, которые вы хотите описывать с помощью этой задачи.

Чтобы настроить задачу, выберите описываемое задачей действие и укажите параметры задачи:

<Tabs groupId="task"> <TabItem value="Service Task for business logic service" label="Сервис бизнес-логики"> Если вы хотите описать вызов метода API сервиса бизнес-логики, в контекстном меню BPMN-элемента <i>задача</i> (<i>Task</i>) выберите <i>Service Task</i> и укажите следующие параметры:

  1. В группе Implementation укажите следующие параметры:

    • Type: DelegateExpression;
    • DelegateExpression: ${callPlatformADS}.
  2. В группе Extension properties укажите пары параметров Name и Value. Используйте кнопку Плюс, чтобы добавить очередную пару параметров.

    Пара параметров 1 - Адрес сервиса бизнес-логики:

    • Name: address.
    • Value: строка со значением адреса метода сервиса бизнес-логики в формате <service_name>:<method_name>, например, booksservice:api/Order/.UpdateOrder.

    Далее следуют пары параметров, которые используются для передачи переменных и их значений методу. Следующие пары параметров приведены в качестве примера.

    Пара параметров 2 - параметр Id, значение которого соответствует значению параметра orderId, сохраненного в контексте бизнес-процесса:

    • Name: Id.
    • Value: ${orderId}.

    Пара параметров 3 - Параметр Id, значение которого вычисляется с помощью переменной GetEmployee_result, которая хранит результат вызова метода сервиса бизнес-логики:

    • Name: ExecutorId.
    • Value: ${GetEmployee_result.prop("result").elements().get(0).prop("id").stringValue()}.

    Пара параметров 4 - Параметр status со значением по умолчанию:

    • Name: status.
    • Value: execute.

Результат выполнения задачи типа Service Task, настроенной для вызова метода сервиса бизнес-логики, сохраняется в переменной [<Id_задачи>]_[result].

примечание

Строковые переменные, передаваемые методу сервиса бизнес-логики, заключаются в одинарные кавычки.

</TabItem> <TabItem value="Service Task for GraphQL query" label="GraphQL-запрос"> Если вы хотите описать изменение данных в БД или выполнение GraphQL-запроса, в контекстном меню BPMN-элемента <i>задача</i> (<i>Task</i>) выберите <i>Service Task</i> и укажите следующие параметры:

  1. В группе Implementation укажите следующие параметры:

    • Type: DelegateExpression;
    • DelegateExpression: ${callPlatformGraphQL}.
  2. В группе Extension properties укажите несколько пар параметров Name и Value. Используйте кнопку Плюс, чтобы добавить пару параметров.

    Пара параметров 1 - Адрес сервиса GraphQL:

    • Name: address.
    • Value: строка со значением адреса сервиса GraphQL, например, postgresIdataservice:graphql/.

    Пара параметров 2 - ID клиента для доступа к делегатам сервиса BPMS:

    • Name: clientId.
    • Value: значение по умолчанию, которое автоматически создается при установке сервиса BPMS, или значение, которое назначено вручную.

    Пара параметров 3 - Тип доступа клиента для взаимодействия с делегатами сервиса BPMS:

    • Name: grantType.
    • Value: delegation.

    Пара параметров 4 - ID системного клиента для доступа к делегатам сервиса BPMS:

    • Name: systemClientId.
    • Value: bpms-system-client.

    Пара параметров 5 - Запрос или мутация GraphQL:

    • Name: query.
    • Value: тело запроса или мутации, например, mutation($id:Int){ update_bpmsdemo_orderbpm (bpmsdemo_orderBPM: {orderStatus: "Утверждена"}, where: {id:{eq: $id}}) { objectName countObjectsModified operation } }.

    Пара параметров 6 - Переменные и их значения, передаваемые в запрос или мутацию GraphQL:

    • Name: variables.
    • Value: { "notificationType": "Незакрытая задача", "notificationMessage": "${orderName}", "notificationLink": "${notificationLink}", "notifOrderId": ${orderId} }, где "notificationType": "Незакрытая задача" – используется значение по умолчанию; "notifOrderId": ${orderId} – используется значение из контекста бизнес-процесса, а именно: значение параметра orderId;
примечание

Текстовые значения в параметре Value заключаются в двойные кавычки.

</TabItem> <TabItem value="User Task" label="Действия пользователя"> Если вы хотите описать задачу, которая требует действий пользователя, или вы хотите передать результат выполнения задачи в контекст бизнес-процесса, в контекстном меню BPMN-элемента <i>задача</i> (<i>Task</i>) выберите <i>User Task</i> и укажите следующие параметры:

  1. В группе User assignment введите следующие параметры:

    • Assignee: идентификатор пользователя (в Платформе Multi-D), которому назначена задача;
    • Candidate groups: идентификатор группы (в Платформе Multi-D), являющейся кандидатом на выполнение задачи;
    • Candidate users: идентификатор пользователя (в Платформе Multi-D), являющегося кандидатом на выполнение задачи.
  2. В группе Form для параметра Type выберите значение из раскрывающегося списка:

    • Camunda forms: выберите, если вы хотите использовать форму Camunda для отображения этой задачи при запуске бизнес-процесса, и укажите Form JSON configuration.
    • Custom form key: выберите, если вы хотите использовать иную форму, нежели форма Camunda, для отображения этой задачи в интерфейсе при запуске бизнес-процесса, и укажите Form key, например, genericForm.
  3. В группе Inputs укажите локальные параметры задачи, которые задача получает при запуске. Например, в эти параметры могут использоваться для названий полей и кнопок, а также соответствующих значений параметров, отображаемых в интерфейсе, например, genericForm:

    • taskDescriptionName: имя поля Description;
    • taskDescriptionValue: значение, отображаемое в поле Description.
    • ConfirmButtonName: название кнопки подтверждения выполнения задачи.
    • DeclineButtonName: название кнопки отказа от выполнения задачи.
    • confirmButtonResult: результат, передаваемый в контекст бизнес-процесса по нажатию кнопки подтверждения.
    • declineButtonResult: результат, передаваемый в контекст бизнес-процесса по нажатию кнопки отказа.
  4. В группе Outputs укажите сопоставление параметров, передаваемых в контекст бизнес-процесса по завершении выполнения задачи. Например, если результат выполнения задачи передается в переменной taskResult, в контексте бизнес-процесса вы используете параметр checkingStatus, который определяет логику ветвления в зависимости от стадии исполнения бизнес-процесса и результата выполнения текущей задачи, то в группе Outputs укажите следующие параметры:

    • Process Variable Name: checkingStatus;
    • Variable assignment value: ${taskResult}.
примечание

Переменные в группе Outputs должны быть указаны в группе Inputs со значениями по умолчанию или с пустыми значениями.

</TabItem> </Tabs>