Hallo zusammen, Ich habe hier eine Verständnisfrage: Wie greift Camunda 8 User Task auf Java Variablen zu? Ich bin hier an der Stelle des User Tasks 'Select Keyword'. Wie man unten im 2. Image sehen kann, ist die Input Variable "keywords" - allerdings steht ja in diesem ZeebeWorker der vorherigen Service Task Methode 'loadKeywords' autoComplete = true --> D.h. nach meinem Verständnis ist die Methode bereits beendet, wenn in Camunda dann der nachfolgende User Task 'Select Keyword' aufgerufen wird. "keywords" ist aber so weit ich das sehe eine lokale Variable der Methode 'loadKeywords' und diese wird auch nicht auf Klassenebene abgespeichert! Wie kann also der User Task 'Select Keyword darauf zugreifen??
@ZeebeWorker(type = "load-keywords", autoComplete = true)
public Map
final List<Option<Integer>> keywords = keywordService.getRepository().findAll().stream()
.map(e -> new Option<>(e.getText(), e.getId()))
.collect(Collectors.toList());
// Probably add some process variables
final HashMap<String, Object> variables = new HashMap<>();
variables.put("keywords", keywords);
return variables;
}
@ZeebeWorker(type = "load-supervisors", autoComplete = true)
public Map<String, Object> loadSupervisors(final ActivatedJob job) {
// Do the business logic
LOGGER.info("Load supervisors");
// Get the
final Object keyword = job.getVariablesAsMap().get("keyword");
final Optional<Keyword> found;
if (keyword instanceof Integer) {
found = keywordService.getRepository().findById(((Integer) keyword));
} else if (keyword != null && keyword.toString().matches("\\d+")) {
found = keywordService.getRepository().findById(Integer.parseInt(keyword.toString()));
} else {
found = Optional.empty();
}
final List<Option<String>> supervisors = found
.map(supervisorService::findAllByKeyword)
.orElse(supervisorService.getRepository().findAll()).stream()
.map(e -> new Option<>(e.getName(), e.getName()))
.collect(Collectors.toList());
// Probably add some process variables
final HashMap<String, Object> variables = new HashMap<>();
variables.put("supervisors", supervisors);
return variables;
}
Punkte: 10
Markdown wird unterstützt.