Questions & Answers

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

Type a product name