Search the FirstSpirit Knowledge Base
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
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!
Hallo Ana,
hast Du den End-Zustand auch als Beenden & Freigeben deklariert?
MfG Marcel
Gute Frage 🙂
Ja, hat den Typ "Ende und Freigeben". Wenn ich den Workflow über GUI abschliesse, also im SiteArchitect, funktioniert das auch.
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!