M_Thomas
I'm new here

Benutzer bleibt in Workflow nicht erhalten

Hallo,

wir erzeugen aus einem Modul heraus einen Workflow in einem anderen Projekt und starten diesen (1. Transitionsschritt).

Wird dies für ein neu erzeugtes Projekt durchgeführt ist die Funktion korrekt.

Wird dieses Projekt exportiert und reimportiert, damit es als zusätzliches Projekt verfügbar ist so schlägt der Prozess fehl.

Durchgeführte Schritte sind folgende:

vorliegender Parameter: de.espirit.firstspirit.access.project.Project project

de.espirit.firstspirit.access.UserService service = project.getUserService();

de.espirit.firstspirit.access.Task newTask = project.getUserService().createTask(...);

MyWorkflowContext wc = new MyWorkflowContext(newTask);

Im korrekten Projekt liefert:

service.getUser()=SYSTEM (SYSTEM)

wc.getUser()=SYSTEM (SYSTEM)

Im Negativfall ergibt sich:

service.getUser()=SYSTEM (SYSTEM)

wc.getUser()=null

Wer hat eine Idee zur Ursachenermittlung und -beseitigung?

Grüße,

Marc Thomas

0 Kudos
3 Replies
stephan
I'm new here

Hallo,

wie sieht denn die Klasse MyWorkflowContext aus?

Wie wird der Workflow erzeugt?

Das ganze sollte ja in etwa wie folgt aussehen, so dass der aktuelle User genutzt wird:

final Workflow workflow = userService.getTemplateStore().getWorkflowByName("workflow_uid");

final Task task = userService.createTask(storeElement, workflow, "Task created by Module");

Viele Grüße,

Jörg

0 Kudos

Hallo,

der Workflow wird genau so erzeugt.

Der MyWorkflowContext enthält folgenden Konstruktor

public MockWorkflowContext(final Task task, final User user) {

  _task = (TaskImpl) task;

  _project = task.getProject();

  _connection = (ServerConnection) _task.getProject().getUserService().getConnection();

  _workflow = task.getWorkflow();

  _workflowable = task.getWorkflowable();

  _user = user;

  if (_workflowable instanceof StoreElement) {

    _storeElement = (StoreElement) _workflowable;

  } else if (_workflowable instanceof ContentWorkflowable) {

    _storeElement = ((ContentWorkflowable) _workflowable).getContent();

  } else {

    _storeElement = null;

  }

}

und bei getUser wird auf das Workflowobjekt zugegriffen

public User getUser() {

  return _workflow.getEditor();

}

Viele Grüße,

Marc

0 Kudos

Hallo Marc,

wenn ich es richtig verstanden habe tritt das Problem nur auf, wenn ihr ein Projektkopie auf dem gleichen Server erstellt? Das hört sich ja merkwürdig an. Könntet ihr uns das Modul (inkl. Code), das Projekt und eine Reproduktionsanleitung zur Verfügung stellen? Eventuell lässt sich das vorher auch noch Abspecken.

Viele Grüße

Christoph

0 Kudos