Appearance
apps/panel 0.74.0
Выпущена 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. Настройте этот конец коннектора:
- Укажите технический тип существующего Link в
getGraphContextLink.linkNameвнутриrequest.sourceилиrequest.target. - Задайте
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.