Это многостраничный печатный вид этого раздела. Нажмите что бы печатать.

Вернуться к обычному просмотру страницы.

Камунда.РФ 7

Введение

Камунда.РФ 7 — это независимая производная (fork) программного обеспечения с открытым исходным кодом Camunda Platform 7 Community Edition, распространяемого под лицензией Apache License 2.0. Проект развивает это ядро, фокусируясь на безопасности, локализации и поддержке для русскоязычных пользователей.

Архитектурно Камунда.РФ 7 состоит из следующих основных компонентов:

  • Process Engine — ядро/движок выполнения процессов

  • REST API — HTTP‑интерфейс управления для Process Engine

  • Database — хранение состояния Process Engine

Основные понятия Process Engine

  • Deployment — загрузки моделей в Process Engine

  • Process Definition — описания/определения процессов (BPMN‑диаграммы), являются составной частью Deployment

  • Process Instance — запущенные экземпляры процессов, на основе Process Definition

  • Activity Instance — пользовательские или сервисные задачи, в рамках Process Instance

  • Variable — переменные экземпляра процесса, хранящие состояние/данные

Предварительные требования

Деплой процесса через REST API

HTTP‑запрос

POST /engine-rest/deployment/create
Content-Type: multipart/form-data

Пример cURL

curl http://localhost:8080/engine-rest/deployment/create -XPOST \
-F "deployment-name=test" \
-F "data=@order-process.bpmn"

Результат

В ответе возвращается информация о Deployment и идентификаторы загруженных Process Definition.

{
    "deployedCaseDefinitions": null,
    "deployedDecisionDefinitions": null,
    "deployedDecisionRequirementsDefinitions": null,
    "deployedProcessDefinitions": {
        "OrderProcess:3:7dde06c5-dfb6-11f0-8730-56d6ece781ef": {
            "category": "http://bpmn.io/schema/bpmn",
            "deploymentId": "7ddbe3e3-dfb6-11f0-8730-56d6ece781ef",
            "description": null,
            "diagram": null,
            "historyTimeToLive": 1,
            "id": "OrderProcess:3:7dde06c5-dfb6-11f0-8730-56d6ece781ef",
            "key": "OrderProcess",
            "name": null,
            "resource": "order-process.bpmn",
            "startableInTasklist": true,
            "suspended": false,
            "tenantId": null,
            "version": 3,
            "versionTag": null
        }
    },
    "deploymentTime": "2025-12-23T07:18:53.709+0300",
    "id": "7ddbe3e3-dfb6-11f0-8730-56d6ece781ef",
    "links": [
        {
            "href": "http://localhost:8080/engine-rest/deployment/7ddbe3e3-dfb6-11f0-8730-56d6ece781ef",
            "method": "GET",
            "rel": "self"
        }
    ],
    "name": "test",
    "source": null,
    "tenantId": null
}

Запуск процесса, создание экземпляра

HTTP‑запрос

POST /engine-rest/process-definition/key/{processKey}/start
Content-Type: application/json

Пример cURL

curl -X POST http://localhost:8080/engine-rest/process-definition/key/OrderProcess/start \
-H "Content-Type: application/json" \
-d '{
"variables": {
"orderId": { "value": "12345", "type": "String" }
}
}'

Результат

В ответе возвращается JSON с идентификатором экземпляра процесса:

{
    "businessKey": null,
    "caseInstanceId": null,
    "definitionId": "OrderProcess:3:7dde06c5-dfb6-11f0-8730-56d6ece781ef",
    "definitionKey": "OrderProcess",
    "ended": false,
    "id": "824b08d5-dfb7-11f0-8362-56d6ece781ef",
    "links": [
        {
            "href": "http://localhost:8080/engine-rest/process-instance/824b08d5-dfb7-11f0-8362-56d6ece781ef",
            "method": "GET",
            "rel": "self"
        }
    ],
    "suspended": false,
    "tenantId": null
}

Получение статуса процесса

Получение информации по экземпляру

GET /engine-rest/process-instance/{id}

Пример cURL

curl http://localhost:8080/engine-rest/process-instance/824b08d5-dfb7-11f0-8362-56d6ece781ef

Результат

{
    "businessKey": null,
    "caseInstanceId": null,
    "definitionId": "OrderProcess:3:7dde06c5-dfb6-11f0-8730-56d6ece781ef",
    "definitionKey": "OrderProcess",
    "ended": false,
    "id": "824b08d5-dfb7-11f0-8362-56d6ece781ef",
    "links": [],
    "suspended": false,
    "tenantId": null
}

Возможные статусы

  • ended = false — процесс активен

  • ended = true — процесс завершён

  • suspended = true — процесс приостановлен

Получение активных задач процесса

GET /engine-rest/process-instance/{processInstanceId}/activity-instances

Пример cURL

curl http://localhost:8080/engine-rest/process-instance/824b08d5-dfb7-11f0-8362-56d6ece781ef/activity-instances

Результат

{
    "activityId": "OrderProcess:3:7dde06c5-dfb6-11f0-8730-56d6ece781ef",
    "activityName": null,
    "activityType": "processDefinition",
    "childActivityInstances": [
        {
            "activityId": "UserTask_HandlerOrder_1",
            "activityName": "Обработать заявку",
            "activityType": "userTask",
            "childActivityInstances": [],
            "childTransitionInstances": [],
            "executionIds": [
                "824b08d5-dfb7-11f0-8362-56d6ece781ef"
            ],
            "id": "UserTask_HandlerOrder_1:824d79d9-dfb7-11f0-8362-56d6ece781ef",
            "incidentIds": [],
            "incidents": [],
            "name": "Обработать заявку",
            "parentActivityInstanceId": "824b08d5-dfb7-11f0-8362-56d6ece781ef",
            "processDefinitionId": "OrderProcess:3:7dde06c5-dfb6-11f0-8730-56d6ece781ef",
            "processInstanceId": "824b08d5-dfb7-11f0-8362-56d6ece781ef"
        }
    ],
    "childTransitionInstances": [],
    "executionIds": [
        "824b08d5-dfb7-11f0-8362-56d6ece781ef"
    ],
    "id": "824b08d5-dfb7-11f0-8362-56d6ece781ef",
    "incidentIds": [],
    "incidents": [],
    "name": null,
    "parentActivityInstanceId": null,
    "processDefinitionId": "OrderProcess:3:7dde06c5-dfb6-11f0-8730-56d6ece781ef",
    "processInstanceId": "824b08d5-dfb7-11f0-8362-56d6ece781ef"
}

Типовой жизненный цикл процесса

  1. Установка (Deployment) BPMN‑модели процесса

  2. Запуск процесса, создание экземпляра

  3. Мониторинг статуса через REST или Камунда.РФ Пульт

  4. Выполнение задач (пользовательских или сервисных)

  5. Экземпляр процесса продолжается или завершается