switt
I'm new here

Workfow next Editor

Hallo,

wir wollen unsere Workflows verbessern durch mehr transparenz indem mehr Mails verschickt werden. Hierfür soll das Feld "Nächster Bearbeiter" genutzt werden. Alle Personen/Gruppen die dort ausgewählt werden sollen eine Mail bekommen. Das Problem ist, dass dieses Feld zT vorbefüllt ist. Nun würde ich gerne über die API dieses Feld leeren, bzw. gezielt Personen setzten.

Die Workflow API bietet scheinbar auch eine passende "setEditors" Funktion an, um Bearbeiter zu setzten, allerdings scheint keine Änderung von mir irgendwas an dem Feld "Nächster Bearbeiter" zu ändern den der Redaktuer sieht.

Task task = context.getWorkflowContext().getTask();

List<Principal> editors = task.getEditors();

editors.clear();

task.setEditors(editors);

task.setPriority(Priority.VERY_HIGH);

task.setDueDate(new Date());

Transition transition = context.showActionDialog();

context.doTransition(transition);

Ich habe unterschiedliche Versionen dieses Codes geprüfen (mal den Task anders geholt, mal mit lock und save gearbeitet, mal statt zu leeren berechtigte hinzugefügt, etc.). Was mich wundert ist, dass das setzen der Priorität und der Deadline funktioniert Smiley Sad

Das Code-Snippet wird direkt auf der zu ändernden Activity ausgeführt (manuelle und automatische Ausführung führen beide zum gleichen Ergbnis).

Gruß,
Sebastian

0 Kudos
4 Replies
marza
I'm new here

Hallo Sebastian,

Hast Du konkret folgendes ausprobiert?

try {

         task.lock();

          //Änderungen am Task

         task.save();

         task.unlock();

} catch (LockException e) {

          Logging.logError(e.getMessage(), e, LOGGER);

}

Wie hast du den User in die Liste der Principals gesetzt? War der User ein "echter" User oder hast Du Dir diesen selbst erzeugt? Wichtig für den Task ist nämlich der Loginname.

Grüße Marian

0 Kudos

Hallo Marian,

ich habe grade zum testen folgendes in einer Beanshell leider ohne Erfolg benutzt:

        Task task = context.getTask();

        task.lock();

        List<Principal> editors = new ArrayList<Principal>();

        editors.add(context.getUser());

        task.setEditors(editors);

        task.setDueDate(new Date());

        task.save();

        task.unlock();

         Transition transition = context.showActionDialog();

        try {

            context.doTransition(transition);

        } catch (IllegalAccessException e) {

        }

ich habe meinen eigenen User als "Next editor" aus dem Context gesetzt. Der User ist auch so über die GUI auswählbar, also sollte es nicht an berechtigungen scheitern.

0 Kudos

Hallo Sebastian,

welche FirstSpirit-Version setzt ihr ein?

Grüße Marian

0 Kudos

Hallo Sebastian,

ich habe versucht, es nachzustellen und komme zu dem gleichen Ergebnis. Es könnte sich u.U. um einen FS-Fehler handeln. Zur weiteren Prognostizierung wende Dich bitte an TechnicalSupport unter Angabe dieses Threads.

Grüße Marian

0 Kudos