ana_oleski
Returning Observer

Worklflow per API beendet: Element nicht freigegeben

Jump to solution

Hallo Community,

ich versuche aus einem Auftrag per API einen Freigabe Workflow zu beeenden. Code (vereinfacht)

QueryAgent agent = scheduleContext.requestSpecialist(QueryAgent.TYPE);

WorkflowAgent workflowAgent = scheduleContext.requestSpecialist(WorkflowAgent.TYPE);

Iterable<IDProvider> answer = agent.answer("fs.workflow=*");

for(final IDProvider elementInWorkflow : answer) {

    final Task t = elementInWorkflow.getTask();

     WorkflowProcessContext workflowContext = workflowAgent.process(t,

       checkTransition );  //Transition mit Name "scheduleCheck", Code zum raussuchen aus Task lasse ich weg

  workflowContext.doTransition(releaseTransition);

   scheduleContext.logInfo("finished  " + WorkflowUtil.toString(t));

}            

Der Workflow beendet sich auch aber die Seite wird nicht freigegeben, sie ist wieder rot.

Ich habe den Server im Debug-Level laufen lassen und eigentlich sieht es schon so aus, als ob er die Seite freigeben will.  Siehe Logausschnitt unten. Tut er aber nicht.

Habe ich was übersehen?

Gruß,

Ana

INFO  25.11.2015 08:54:52.804 (de.espirit.firstspirit.impl.access.ScriptContextImpl): release  1751069[PageRefImpl] index_73  [null, null] isExpired()=false]

DEBUG 25.11.2015 08:54:52.804 (de.espirit.firstspirit.workflow.WorkflowAgentImpl): workflow agent -> start workflow process thread #doTransition

DEBUG 25.11.2015 08:54:52.804 (de.espirit.firstspirit.workflow.WorkflowAgentImpl): workflow agent without special executor - pass executionmanager ...

DEBUG 25.11.2015 08:54:52.805 (de.espirit.firstspirit.workflow.WorkflowAgentImpl): workflow agent -> waiting for manual activity call back

DEBUG 25.11.2015 08:54:52.808 (de.espirit.firstspirit.server.taskmanagement.TaskImpl):  doTransition ->Release item (Scheduled Script), mode=MANUAL

DEBUG 25.11.2015 08:54:52.809 (de.espirit.firstspirit.workflow.WorkflowAgentImpl): workflow agent:transition op -> manual activity callback - create api process context

DEBUG 25.11.2015 08:54:52.810 (de.espirit.firstspirit.workflow.WorkflowAgentImpl): workflow agent:transition op -> unBlock doTransition -

DEBUG 25.11.2015 08:54:52.810 (de.espirit.firstspirit.workflow.WorkflowAgentImpl): workflow agent:transition op -> block process -> await api call back

DEBUG 25.11.2015 08:54:52.810 (de.espirit.firstspirit.workflow.WorkflowAgentImpl): workflow agent -> return workflow process -> api callback

INFO  25.11.2015 08:54:52.810 (de.espirit.firstspirit.impl.access.ScriptContextImpl): after  scheduleCheck - workflowContext :  transitions = [final, error] transitionParameters dueDate=null transition null TaskImpl@117427 von Admin (Admin) state=awaiting release workflow =Freigabe Anfordern_1

DEBUG 25.11.2015 08:54:52.810 (de.espirit.firstspirit.workflow.WorkflowAgentImpl): workflow agent -> api user called #doTransition(final) -> unblock workflow process to apply this transition

DEBUG 25.11.2015 08:54:52.810 (de.espirit.firstspirit.workflow.WorkflowAgentImpl): workflow agent -> block api call WorkflowProcessContext#doTransition until workflow process is finished

DEBUG 25.11.2015 08:54:52.810 (de.espirit.firstspirit.workflow.WorkflowAgentImpl): workflow agent:transition op -> api process finished -> continue with transition 'final

DEBUG 25.11.2015 08:54:52.811 (de.espirit.firstspirit.server.taskmanagement.TaskImpl):   Release item (Scheduled Script) -> Element released

INFO  25.11.2015 08:54:52.811 (de.espirit.firstspirit.store.access.AccessStoreBuilder): SITESTORE loaded in 0ms

INFO  25.11.2015 08:54:52.811 (de.espirit.firstspirit.server.action.ServerActionManagerImpl): starting server action [id=95, name=Server-Release project=1596190, store=SITESTORE, START-Node-ID=1751069, session=3563864319804704602]

INFO  25.11.2015 08:54:52.812 (de.espirit.firstspirit.server.action.ServerActionManagerImpl): removing server action [id=95]

DEBUG 25.11.2015 08:54:52.813 (de.espirit.firstspirit.storage.XmlHandler): xml changed (p=1596190, file=de.espirit.storage.backend.FileImpl@f650a{type=SITE_STORE_NODE_XML, id=1751069, revision=1432940}) - new =PAGEREF{editor=1, uniquedescription=index_73, id=1751069, htmlname=index_16, pageref=1637322}'

DEBUG 25.11.2015 08:54:52.813 (de.espirit.firstspirit.store.access.DefaultStoreElement): refresh 1751069, local revision 1432938, dto revision 1432940

DEBUG 25.11.2015 08:54:52.814 (de.espirit.firstspirit.server.reference.ReferenceStorage): [1596190] load refs (cache-hit): rev=1432925, id=1751069, type=190, count=2

DEBUG 25.11.2015 08:54:52.814 (de.espirit.firstspirit.server.reference.ReferenceStorage): [1596190] load refs (cache-hit): rev=1432925, id=1751069, type=179, count=1

DEBUG 25.11.2015 08:54:52.814 (de.espirit.firstspirit.store.access.DefaultStoreElement): refresh 1751069, local revision 1432938, dto revision 1432940

DEBUG 25.11.2015 08:54:52.815 (de.espirit.firstspirit.workflow.WorkflowAgentImpl): workflow agent -> fallback unblock await manual activity

DEBUG 25.11.2015 08:54:52.815 (de.espirit.firstspirit.workflow.WorkflowAgentImpl): workflow agent -> unblock api call WorkflowProcessContext#doTransition

INFO  25.11.2015 08:54:52.815 (de.espirit.firstspirit.impl.access.ScriptContextImpl): finished  TaskImpl@117427 von Admin (Admin) state=Element released workflow =Freigabe Anfordern_1

1 Solution

Accepted Solutions
ana_oleski
Returning Observer

Das Problem war, wie ich den Agent geholt habe.

Falsch:

WorkflowAgent workflowAgent = scheduleContext.requestSpecialist(WorkflowAgent.TYPE);

Richtig:

WorkflowAgent workflowAgent = connection.getBroker().requestSpecialist(WorkflowAgent.TYPE);

Danke Helpdesk!

View solution in original post

3 Replies
MarsDD
Occasional Observer

Hallo Ana,

hast Du den End-Zustand auch als Beenden & Freigeben deklariert?

MfG Marcel

0 Kudos

Gute Frage 🙂

Ja, hat den Typ "Ende und Freigeben". Wenn ich den Workflow über GUI abschliesse, also im SiteArchitect, funktioniert das auch.

0 Kudos
ana_oleski
Returning Observer

Das Problem war, wie ich den Agent geholt habe.

Falsch:

WorkflowAgent workflowAgent = scheduleContext.requestSpecialist(WorkflowAgent.TYPE);

Richtig:

WorkflowAgent workflowAgent = connection.getBroker().requestSpecialist(WorkflowAgent.TYPE);

Danke Helpdesk!