Загрузить изображение для проекта: 'Citeck Community'
  1. Citeck Community
  2. ECOSCOM-4834

BPMN - form property can't be multi instantiated

    XMLWordДля печати

Детали задачи

    • Icon: Ошибка Ошибка
    • Решение: Нет решения
    • Icon: Medium Medium
    • Community 2024.10
    • Community 4.0rc6
    • Не заполнено
    • Minor

    Описание

      На текущий момент переменная в бизнес-процесс может быть добавлена двумя способами:

      • объявлением в script-блоке процесса через execution.setVariable()
      • неявно через property name компонента формы

      Существует случай, когда форма применяется к multi Instance задачам, таким образом количество переменных неявно созданных из property name компонентов формы должно быть равно числу создаваемых сущностей (инстансов), и те в свою очередь должны работать в своих локальных областях видимости во избежание перезаписи.

      Однако, работа неявного объявления переменных для multi Instance сейчас работает так: до использования формы в списке процесса переменных нет, а когда они создаются, то по умолчанию применяется глобальная область видимости (https://docs.camunda.org/manual/7.17/user-guide/process-engine/variables/#java-object-api ) , в результате чего происходит впоследствии перезапись этих глобальных переменных разными сущностями multi задачи.

      Обходное решение - использование второго доступного способа (script-блок): первым шагом в сущности задаются все необходимые переменные пустыми значениями (то есть хардкод формы) выражением execution.setVariableLocal(), таким образом, когда дело дойдет до взятия значений с формы, то переменные (раздельно для каждой сущности) будут заданы и движком не будут созданы их глобальные версии.

      Минусы текущего решения: хардкод, работает только для подпроцессов (нужен script блок внутри отдельной сущности), для простых множественных задач не получится.

      ОР: решение в котором автоматически определеяется, что если форма привязана к multi Instance, то переменные создаются локально.

      Вложенные файлы

        Активность

          Люди

            alexey.shlaikov@citeck.ru Alexey Shlaikov
            ug:09c5160d-25b9-4aca-8bf0-420d14037de1 Pavel Maslov [X] (Неактивный)
            Голоса:
            0 Голосовать за эту задачу
            Наблюдатели:
            1 Начать наблюдение за этой задачей

            Даты

              Создано:
              Обновленo: