Size: a a a

Camunda BPM Group

2019 October 31

IP

Igor Petetskikh in Camunda BPM Group
вопрос.

Как можно завершать экстернал таски таким образом, чтоб переменные, которые передавались - устанавливались в "локальном" скоупе, а не в скоупе всего процесс инстанса...
источник

DK

Denis Kotov in Camunda BPM Group
источник

IP

Igor Petetskikh in Camunda BPM Group
паасиб. ща поэкспериментирую
источник

IP

Igor Petetskikh in Camunda BPM Group
ммм.... либо не помогло, либо я что-то недопонял опять.

Вот пример схемы.
источник

A

Alexey Bobok in Camunda BPM Group
Здравствуйте
Есть у кого-то пример схемы для скорринга клиента?
Когда есть ряд запросов во внешние АПИ (рейтинг бюро кредитных историй, статус паспорте об утере и тд)
И на основе полученных данных ветвление и начисление баллов

Из одного источника может быть несколько характеристик
источник

IP

Igor Petetskikh in Camunda BPM Group
таски 1 и 2 имеют доступ только к 2 скоупам - глобальному (скоуп всего процесс инстанса) и локальному скоупу самой таски, который будет недоступен как только таска завершится.

таски 3_1 и 3_2 имеют доступ к 3 скоупам -  глобальному (скоуп всего процесс инстанса), "среднему" - (скоуп, который создался после развилки) и  локальному скоупу самой таски, который будет недоступен как только таска завершится

Соответственно, java код "externalTaskService.complete(task.getId(), this.workerId, null, localVariables);" устанавливает переменные в третий скоуп, и в таске 4_1 или 4_2 эти переменные уже недоступны.

java код "externalTaskService.complete(task.getId(), this.workerId, variables);" устанавливает переменные в первый скоуп, и они перезатирают друг друга.

как "положить" переменные во "второй" скоуп?
источник

VB

Valeriy Bolokhov in Camunda BPM Group
Оберни 2 вилки в подпроцессы, при входе инициализируй нужные переменные в скоупе подпроцессов.
Из 3.2 и 4.2 используй скоуп подпроцесса
Если нужен между 3.1 3.1 4.1 4.2.- всеми, то оберни их все в один подпроцесс

И не забудь в самом конце проставить на скоуп процесса
Чтоб принять решение в конце, если нужно )
источник

VB

Valeriy Bolokhov in Camunda BPM Group
Инициализируй в нужном скоупе при помощи in/out.
Верни в основной in/out из подпроцесса/подпроцессов
источник

IP

Igor Petetskikh in Camunda BPM Group
А без подпроцессов - никак?
источник

VB

Valeriy Bolokhov in Camunda BPM Group
Думаю, что как.
Тебе нужно в нужном екзекьюшене(который распаралелился по шлюзу)
Как-то проинициалищировать нужные проперти.
Поиграй с in/out, не уверен, но вдруг
источник

VB

Valeriy Bolokhov in Camunda BPM Group
У меня та же история была с запуском N параллельных подпроцессов - пришлось бегать с бубном и инициализировать в контексте каждого подпроцесса нужные переменные, чтоб при вызове/установке брался не из совсем родительского, а из первого найденного, а именно подпроцессного(и не локального)
источник

VB

Valeriy Bolokhov in Camunda BPM Group
Ещё ты можешь поиграть с другим: как-то вычленить нужный екзекьюжн объект и про сете переменной явно указывать - в какой конкретно проставить
источник
2019 November 01

SP

Sergey Potekhin in Camunda BPM Group
Igor Petetskikh
А без подпроцессов - никак?
Они создаются бесплатно )))
источник

IP

Igor Petetskikh in Camunda BPM Group
Нет. Чем больше подпроцессов, тем сложнее дальнейший maintenance
источник

VR

Viacheslav Rostov in Camunda BPM Group
Добрый день всем! У меня возник вопрос, частично связанный с архитектурой Камунды, на данный момент у нас в проекте на окружении существует несколько микросервисов использующих Camunda как библиотеку, у каждого микросервиса несколько под и одна база данных на микросервис. Т.к. микросервисы бывают связаны между собой через цепочку вызовов - появилась потребность просматривать все процессы по  определенному id который мы передаем в переменные процесс инстансов. Для этого нужно пересмотреть архитектуру наших приложений. Насколько я знаю - есть несколько вариантов, например использовать один processEngine на все микросервисы - но для этого скорее всего потребуется довольно много времени на рефакторинг и я не знаю, на сколько это правильный подход. Другая идея - использовать общую базу данных для всех Camunda сервисов. Было бы здорово если есть возможность использовать общую бд для истории и разные рантайм бд. Наверное в таком случае имеет смысл изменить БД на liquibase чтобы в каждом инстансе раскатывать только нужные таблицы. Буду очень признателен, если дадите совет,
как лучше всего сделать то что нам нужно, и если есть возможность - поделитесь пожалуйста документацией,
где бы технически описывалось как это можно сделать. Спасибо.
источник

DK

Denis Kotov in Camunda BPM Group
Что значит просматривать?
источник

DK

Denis Kotov in Camunda BPM Group
У меня в эксамаде скоро можно будет проваливаться в другие камунды по клику на диаграммке
источник

VR

Viacheslav Rostov in Camunda BPM Group
Denis Kotov
Что значит просматривать?
Мы хотим в базе видеть по определенному параметру все процесс инстансы в разных микросервисах.
источник

DK

Denis Kotov in Camunda BPM Group
В рантайме?
источник

DK

Denis Kotov in Camunda BPM Group
И в чем прикол их видеть? Чтобы что?
источник