Точку входа для Flowable REST API подскажите пожалуйста?

JMIX 2.3, BPM плагин тоже 2.3.
По документации указано, что смотреть нужно там: REST API · Flowable Open Source Documentation, а там сказано что за API отвечает flowable-rest, которого нет в сборке JMIX/BPM.

Подскажите пожалуйста, как на JMIX можно выполнить вот эти запросы, по какому адресу и под каким пользователем:
GET repository/process-definitions
GET runtime/process-instances
GET runtime/process-instances/{processInstanceId}
GET runtime/process-instances/{processInstanceId}/variables

Здравствуйте,

Для версии 2.3 мы в экспериментальном формате реализовывали REST API starter для BPM, поэтому не делали подробную документацию, вы можете подключить стартер для BPM REST API добавив зависимость:

implementation 'io.jmix.bpm:jmix-bpm-rest-starter'

В новой версии 2.4 данный стартер будут удалены, в скором времени описания подключения напрямую через flowable зависимость будет добавлено в документацию, а пока можно прочитать информацию здесь:

Инструкция по подключению вручную:

Похожий вопрос на форуме:

С Уважением,
Никита

Никита, добрый день, большое спасибо.
Ситуация понятна. А когда планируется стабильная реализация, с версии 2.4 или потом еще будут какие-то доработки? Нам бы по календарю сориентироваться, состыковать со своими планами проектов.

И мне не понятно, как тогда будет работать метод runtime/process-instances, он же возвращает URL в формате ядра Flowable, а ядро, если я правильно понял, вы не трогаете:
{
“id”:“7”,
“url”:“http://localhost:8182/runtime/process-instances/7”,
“processDefinitionUrl”:“http://localhost:8182/repository/process-definitions/processOne%3A1%3A4”,

}

С версией 2.4, дальнейших доработок не планируется.

А когда планируется стабильная реализация, с версии 2.4 или потом еще будут какие-то доработки? Нам бы по календарю сориентироваться, состыковать со своими планами проектов.

Да верно, ядро мы не изменяем. Ответ будет приходить только с данными, которые находятся в самом ядре Flowable.

BPM Аддон почти не приносит новых персистентных сущностей, кроме набора сущностей связанных с назначение (User, UserGroup).

Вы можете создать собственный Rest Controller и выдать дополнительные данные по экземпляру процесса.

С Уважением,
Никита

Спасибо.
Получается, что URL в ответе ядра Flowable, запущенного из под JMIX, будут не валидными.
И это фича, верно?

Что вы имеете ввиду под не валидными? По ним нельзя отправить запрос?

По Url который будет возвращен от Rest API Flowable, вы также можете получить данные, например данные конкретного process-instance. То есть стандарное поведение Rest Api Flowable.

Для примера:
image

Запрос - http://localhost:8080/process-api/runtime/process-instances

{
  "data": [
    {
      "id": "04a8c1cd-9779-11ef-b9ab-0e18a13fcb39",
      "url": "http://localhost:8080/process-api/runtime/process-instances/04a8c1cd-9779-11ef-b9ab-0e18a13fcb39",
      "name": null,
      "businessKey": null,
      "businessStatus": null,
      "suspended": false,
      "ended": false,
      "processDefinitionId": "process:1:0022c47c-9779-11ef-b9ab-0e18a13fcb39",
      "processDefinitionUrl": "http://localhost:8080/process-api/repository/process-definitions/process:1:0022c47c-9779-11ef-b9ab-0e18a13fcb39",
      "processDefinitionName": "Process",
      "processDefinitionDescription": null,
      "activityId": null,
      "startUserId": "admin",
      "startTime": "2024-10-31T15:12:29.678+04:00",
      "superProcessInstanceId": null,
      "variables": [],
      "callbackId": null,
      "callbackType": null,
      "referenceId": null,
      "referenceType": null,
      "propagatedStageInstanceId": null,
      "tenantId": "",
      "completed": false
    }
  ],
  "total": 1,
  "start": 0,
  "sort": "id",
  "order": "asc",
  "size": 1
}

И второй запрос по Url из ответа - http://localhost:8080/process-api/runtime/process-instances/04a8c1cd-9779-11ef-b9ab-0e18a13fcb39

{
  "id": "04a8c1cd-9779-11ef-b9ab-0e18a13fcb39",
  "url": "http://localhost:8080/process-api/runtime/process-instances/04a8c1cd-9779-11ef-b9ab-0e18a13fcb39",
  "name": null,
  "businessKey": null,
  "businessStatus": null,
  "suspended": false,
  "ended": false,
  "processDefinitionId": "process:1:0022c47c-9779-11ef-b9ab-0e18a13fcb39",
  "processDefinitionUrl": "http://localhost:8080/process-api/repository/process-definitions/process:1:0022c47c-9779-11ef-b9ab-0e18a13fcb39",
  "processDefinitionName": "Process",
  "processDefinitionDescription": null,
  "activityId": null,
  "startUserId": "admin",
  "startTime": "2024-10-31T15:12:29.678+04:00",
  "superProcessInstanceId": null,
  "variables": [],
  "callbackId": null,
  "callbackType": null,
  "referenceId": null,
  "referenceType": null,
  "propagatedStageInstanceId": null,
  "tenantId": "",
  "completed": false
}

Тестовый проект:
bpm-rest-test.zip (2.3 МБ)

С Уважением,
Никита

1 симпатия

Большое спасибо.
Видимо я не верно воспринял документацию и описания в ишью.
Если REST API Flowable будет доступно по стандартным для него путям (в параллели с путями для REST JMIX), то все хорошо. Тогда подождем релиза и более полной документации.

Отдельное спасибо за примеры! Запланируем скорейший апгред проектов на 2.4.

1 симпатия