Hallo zusammen,
ich habe ein Beanshell Script in einer Aktion im Server Manager die offene workflows findet und nach einem bestimmten Namen filtert und einem vorhandenen Zustand ("waiting") filtert. Das holen der Ziel Transitions klappt aber aber beim Ausführen der Transition heisst es trotzdem "transition isnt valid for this process". Was kann das sein?
CODE
WorkflowAgent workflowAgent = context.requireSpecialist(WorkflowAgent.TYPE);
hits = agent.answer("fs.workflow = *");
iHit = hits.iterator();
while (iHit.hasNext()) {
hit = iHit.next();
Task actualTask = hit.getTask();
[...]
List<Transition> transitions =
actualTask.getTaskState().getModelState().getTargetTransitions();
for (Transition transition : transitions) {
context.logInfo("Transition "+transition +" Task: " + actualTask);
if("date_reached".equals(transition.toString())) {
context.logInfo("Found target "+transition +" Task: " + actualTask);
final WorkflowAgent.WorkflowProcessContext process = workflowAgent.process(actualTask, transition);
process.doTransition(transition);
}
}
}
LOG:
INFO 28.11.2022 18:02:17.191 (de.espirit.firstspirit.impl.access.ScriptContextImpl): Transition cancel_release Task: de.espirit.firstspirit.server.taskmanagement.TaskImpl@29a
INFO 28.11.2022 18:02:17.192 (de.espirit.firstspirit.impl.access.ScriptContextImpl): Transition date_reached Task: de.espirit.firstspirit.server.taskmanagement.TaskImpl@29a
INFO 28.11.2022 18:02:17.192 (de.espirit.firstspirit.impl.access.ScriptContextImpl): Found target date_reached Task: de.espirit.firstspirit.server.taskmanagement.TaskImpl@29a
ERROR 28.11.2022 18:02:17.201{dNR=} (de.espirit.firstspirit.server.scheduler.ScriptTaskExecutor): error during script execution : de.espirit.firstspirit.access.script.ExecutionException: Method Invocation process.doTransition : at Line: 75 : in file: inline evaluation of: ``__execute() { import de.espirit.firstspirit.workflow.*; import de.espirit.firsts . . . '' : process .doTransition ( transition )
Target exception: java.lang.IllegalArgumentException: transition 'date_reached' isn't valid for this process
at line 75
de.espirit.firstspirit.access.script.ExecutionException: Method Invocation process.doTransition : at Line: 75 : in file: inline evaluation of: ``__execute() { import de.espirit.firstspirit.workflow.*; import de.espirit.firsts . . . '' : process .doTransition ( transition )
Target exception: java.lang.IllegalArgumentException: transition 'date_reached' isn't valid for this process
at line 75
at de.espirit.firstspirit.server.script.BeanshellScriptEngine$BeanshellExecutable.execute(BeanshellScriptEngine.java:109)
at de.espirit.firstspirit.server.script.PermissionsScriptEngine$PermissionsExecutable.lambda$execute$1(PermissionsScriptEngine.java:85)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at de.espirit.firstspirit.server.script.PermissionsScriptEngine$PermissionsExecutable.execute(PermissionsScriptEngine.java:90)
at de.espirit.firstspirit.server.script.PermissionsScriptEngine$PermissionsExecutable.execute(PermissionsScriptEngine.java:85)
at de.espirit.firstspirit.common.ScriptUtil.execute(ScriptUtil.java:111)
at de.espirit.firstspirit.server.scheduler.ScriptTaskExecutor.run(ScriptTaskExecutor.java:162)