Я работаю с движком процессов camunda BPM и считаю важным понимать некоторые концепции. На данный момент я немного борюсь с концепцией Выполнение процессов и Области действия переменных.
Чтобы понять, что происходит во время выполнения процесса, я разработал следующий демонстрационный процесс и пометил действия внутри одного выполнения тем же цветом. Я мог это сделать, потому что я отлаживал идентификатор выполнения внутри каждого действия.
Я понимаю большую часть этого. Что меня удивило, так это то, что входной параметр открывает новое выполнение (задача 1.3). Благодарим meyerdan за разъяснения по этому поводу.
Я не понимаю, что «Задача 2.2» находится внутри того же выполнения «Задачи 2.1». цитата из документация camunda о казнях
Внутренне механизм процесса создает два параллельных выполнения внутри экземпляра процесса, по одному для каждого параллельного пути выполнения.
Так что я бы ожидал, что задача 2.1 / задача 2.2 и задача 3.1 находятся внутри своего собственного исполнения.
Кто-нибудь может это объяснить?
Моя главная мотивация понять это - влияние, которое это оказывает на объемы переменных процесса. Я пока не разобрался, какие методы Java API
VariableScope # getVariable / VariableScope # setVariable
VariableScope # getVariableLocal / VariableScope # setVariableLocal
действительно. Сначала я подумал, что варианты "Local" относятся только к текущему выполнению, а другие относятся только к выполнению экземпляра процесса - но это, похоже, только половина правда. Это геттеры и сеттеры, в которых я очень скучаю по JavaDoc ;-) Бонусные баллы за объяснение этого!
Спасибо!
Вы найдете процесс в проекте Maven с исполняемым тестом JUnit на GitHub.