Hallo Michael,
testweise habe ich versucht den Ansatz oben umzusetzen. Dazu habe ich einen Workflow angelegt (s. unten). Das Skript "check_date" macht nichts anderes als das in den Metadaten hinterlegte Datum mit dem heutigen Datum zu vergleichen. Wenn das Datum gültig ist (d.h. heute oder in der Vergangenheit), dann wird direkt freigegeben, also context.doTransition("freigeben"); Das klappt so auch einwandfrei (Objekt ist danach freigegeben).
Wenn das Datum nicht gültig ist, wird das Objekt in eine Art Wartezustand gebracht. Ein Auftragsskript vor dem Volldeployment (s. unten) schiebt das Objekt wieder der "Freigabe prüfen"-Aktivität zu. Wenn das Datum jetzt gültig ist, soll das Objekt freigegeben werden.
Das Auftragsskript läuft einwandfrei durch und steht auf grün. In der Arbeitsabläufe-Übersicht ist ersichtlich, dass der Endzustand ("Ende") erreicht wurde. Das Problem ist, dass das Objekt NICHT freigegeben wurde und immer noch in der Inhalteverwaltung blau statt schwarz ist. Was mache ich hier falsch? FS-Version: 5.0.210.55494


Das Auftragsskript (ohne import Statements usw.):
storeAgent = context.requestSpecialist(StoreAgent.TYPE);
workflowAgent = context.requestSpecialist(WorkflowAgent.TYPE);
pageStore = (PageStoreRoot)storeAgent.getStore(Type.PAGESTORE);
List<StoreElement> children = pageStore.getChildren(StoreElement.class, true).toList();
for (StoreElement child : children) {
if (child instanceof Page) {
if (child.hasTask()) {
task = child.getTask();
taskState = task.getTaskState();
state = taskState.getModelState();
transition = state.getTargetTransitions().get(0);
workflowProcessContext = workflowAgent.process(task, transition);
nextTransition = workflowProcessContext.getTransitions().get(0);
workflowProcessContext.doTransition(nextTransition);
}
}
}