Skip to content

apps/panel 0.74.0 ​

English · Русский

Выпущена 24 августа 2026 года. Предыдущая версия: 0.73.3.

Что изменилось ​

  • В конце нового BPMN-коннектора можно задать getGraphContextLink, чтобы сохранить GUID существующего Link между Object из входных данных запроса графа и Object, представленным соединённым узлом диаграммы.
  • Когда пользователь рисует такой коннектор, панель сама вызывает POST /Object/getLinkedObjects, принимает ровно один подходящий link.objectGuid, повторно проверяет, что в запрос графа по-прежнему передан тот же Object, и отправляет принятый GUID Link в POST /Link. Если подходящего Link нет или найдено несколько, панель показывает ошибку, повторно получает граф и убирает несохранённый коннектор, не отправляя POST /Link.
  • После создания коннектора панель снова вызывает настроенный метод получения графа. Она сообщает об успехе, только если полученный граф содержит все GUID Link из ответа на создание.
  • Когда полученный граф содержит новый коннектор, его удаление удаляет сохранённый Link коннектора по его GUID.
  • Создание нового коннектора с концами по Object, соответствующим соединённым узлам, или по выбору из события работает как раньше.

Настройка после обновления ​

Используйте getGraphContextLink, если в одном из концов нового коннектора нужно сохранить GUID существующего Link. Настройте этот конец коннектора:

  1. Укажите технический тип существующего Link в getGraphContextLink.linkName внутри request.source или request.target.
  2. Задайте getGraphContextLink.reverse, если существующий Link направлен от Object, представленного визуальным узлом, к Object из входных данных запроса графа. По умолчанию используется false: панель ищет Link от Object из запроса графа к Object, представленному визуальным узлом.

Этот фрагмент конфигурации показывает нужную вложенность. Замените <newConnectorLinkType> типом нового коннектора, а <existingContextLinkType> — типом существующего Link, GUID которого нужно сохранить в конце коннектора:

json
{
  "request": {
    "linkName": "<newConnectorLinkType>",
    "source": {
      "getGraphContextLink": {
        "linkName": "<existingContextLinkType>",
        "reverse": false
      }
    }
  }
}

Полный пример конфигурации с getGraphContextLink.

Второй Object BPMN берёт автоматически из входных данных текущего запроса графа. До вызова метода панель обрабатывает request.objects или request.getSelectedObjectForEventId; по ответу метода этот Object не определяется. Панель вызывает POST /Object/getLinkedObjects, только если после этой обработки у запроса один GUID Object. Если GUID нет или их несколько, создание останавливается до POST /Link. Поэтому конфигурация должна передать один текущий Object через request.objects или request.getSelectedObjectForEventId; панель проверяет это автоматически. Если граф намеренно использует ноль или несколько Object контекста, не настраивайте автоматический getGraphContextLink: уберите source или target для конца-Object либо используйте конец-Link, выбранный через событие, с idSource: "link".

Вложенный getGraphContextLink.linkName задаёт тип существующего Link, а внешний request.linkName — тип нового коннектора. В одной конечной точке нельзя одновременно использовать getGraphContextLink и getSelectedObjectForEventId.

Если коннектор исчез после рисования ​

Сначала прочитайте причину в уведомлении. Панель уже убрала несохранённый коннектор и повторно получила граф; рисовать тот же коннектор ещё раз без изменений бессмысленно.

  • Если Link не найден, проверьте getGraphContextLink.linkName, reverse и GUID Object в запросе графа. Повторите попытку только после исправления одного из этих значений или создания отсутствующего Link в интерфейсе приложения, где редактируются связи между Object. Если конец должен хранить GUID Object, удалите source или target и используйте совместимый тип нового Link.
  • Если найдено несколько Link, автоматический поиск не сможет выбрать один из них. Удалите ошибочные дубли в интерфейсе редактирования связей. Если все Link нужны, настройте явный выбор через getSelectedObjectForEventId и idSource: "link".
  • Если редактирование связей недоступно, не повторяйте рисование. Приложите к обращению текст уведомления, getGraphContextLink.linkName, getGraphContextLink.reverse, GUID Object запроса графа и GUID соединяемого узла.
  • Если уведомление сообщает о загрузке или смене Object графа, дождитесь актуального графа и нарисуйте коннектор снова.
  • Если уведомление сообщает об ошибке или некорректном ответе API, повторите попытку один раз после получения актуального графа. При повторной ошибке приложите к обращению текст уведомления, getGraphContextLink.linkName, getGraphContextLink.reverse, GUID Object запроса графа и GUID соединяемого узла.
  • Если уведомление сообщает, что Link создан, но его коннектор не появился, не рисуйте коннектор снова: Link уже существует. Проверьте его по указанному GUID в интерфейсе редактирования связей или приложите GUID и текст уведомления к обращению.
  • Если уведомление сообщает, что панель не смогла определить, был ли создан Link, не рисуйте коннектор снова, пока не проверите коннектор между исходным и целевым узлами и ожидаемый Link. Если такая проверка недоступна, приложите к обращению текст уведомления и полный блок request из конфигурации панели.

Все варианты исправления и пример выбора по событию.

Существующие конфигурации коннекторов без getGraphContextLink менять не нужно.

В этой версии нельзя перенести начало или конец любого сохранённого BPMN-коннектора на другой узел. Если пользователь попытается это сделать, панель не отправит PUT /Link, а снова вызовет настроенный метод получения графа. Попытка переноса будет отменена, и коннектор вернётся в прежнее положение. Чтобы изменить соединение, удалите коннектор и нарисуйте новый.

Обновлённая документация ​

  • Руководство по BPMN — описаны контракт настройки getGraphContextLink, последовательность автоматического поиска, правила направления, обработка ошибок и ограничение для сохранённых коннекторов.
  • Архитектура хранилища BPMN — описано, какие запросы отправляет панель, когда она повторно получает граф и как обрабатывает каждый результат сохранения.
  • API контекстной конечной точки BPMN (EN) — добавлен сгенерированный справочник типа конечной точки.
  • Справочник параметров (EN) — добавлены getGraphContextLink.linkName и getGraphContextLink.reverse.