Questions & Answers

MarcusDau
Occasional Collector

Rekursiver Freigabe-Workflow

Hallo!

Aktuell stoรŸe ich auf das Problem / den Wunsch, dass der bisherige Freigabe-Workflow (Modell einfaches 4-Augen-Prinzip) deutlich erweitert werden muss. Eine Herausforderung dabei ist, dass es mรถglich sein muss, Ordner komplett rekursiv freizugeben. Sprich im Medien-Bereich ganze Verzeichnisse mit Grafiken zum Beispiel, oder wenn man im Inhalt 20 Seiten unterhalb eines Menรผpunktes geรคndert hat, dass man dann alle diese Seiten mit einem Arbeitsschritt freigeben kann.

Bei der Suche hier in der Community bin ich auf einen Verweis auf folgende Seite gestoรŸen:
https://github.com/e-Spirit/basicworkflows

Der Freigabeworkflow dort klingt schon sehr sehr gut, aber ich glaube nicht, dass er mein Problem zur Gรคnze lรถst. Das ist natรผrlich noch umfangreich zu testen.

Hat jemand so einen Freigabe-Workflow wie von mir beschrieben schon mal umgesetzt? Vielleicht ist jemand auch bereit, mir diesen zur Verfรผgung zu stellen.

Danke fรผr Eure Mithilfe im Voraus!

GrรผรŸe

Marcus

0 Kudos
5 Replies
der_sk
I'm new here

Hallo Marcus,

ein kleiner (aber hoffentlich hilfreicher) Werbeeinwurf: Wir bieten fรผr genau solche Szenarien eine Projektlรถsung an:

http://www.e-spirit.com/marketplace/de/workflow-framework

Viele GrรผรŸe

Sascha

0 Kudos
MarcusDau
Occasional Collector

Habe mal den in meiner Mail beschriebenen Freigabeworkflow getestet. Der scheitert jedoch sofort bei Ausfรผhrung:

Client Version: 5.1.410.67084

Java Version: 1.7.0_03 Oracle Corporation

FSVersion=5.1.410.67084#3298;JDK=1.7.0_03 32bit Oracle Corporation;OS=Windows 7 6.1 x86;Date=12.06.2015 09:48:16

de.espirit.firstspirit.access.script.SyntaxError: java.lang.ClassNotFoundException: com.espirit.moddev.basicworkflows.release.WfFindRelatedObjectsExecutable

    at de.espirit.firstspirit.server.script.ClassCallerEngine.getExecutable(ClassCallerEngine.java:46)

    at de.espirit.firstspirit.common.ScriptUtil.getExecutable(ScriptUtil.java:86)

    at de.espirit.firstspirit.store.access.templatestore.ScriptImpl.getExecutable(ScriptImpl.java:275)

    at de.espirit.firstspirit.server.taskmanagement.TaskImpl.doTransition(TaskImpl.java:1085)

    at de.espirit.firstspirit.server.taskmanagement.TaskImpl.doAutomaticActivities(TaskImpl.java:1524)

    at de.espirit.firstspirit.server.taskmanagement.TaskImpl.doTransition(TaskImpl.java:1157)

    at de.espirit.firstspirit.server.taskmanagement.TaskImpl.doTransition(TaskImpl.java:1025)

    at de.espirit.firstspirit.client.action.WorkflowAction.startWorkflow(WorkflowAction.java:475)

    at de.espirit.firstspirit.client.action.WorkflowAction.startWorkflow(WorkflowAction.java:89)

    at de.espirit.firstspirit.client.action.WorkflowAction.startWorkflow(WorkflowAction.java:98)

    at de.espirit.firstspirit.client.action.WorkflowUtil.startWorkflow(WorkflowUtil.java:65)

    at de.espirit.firstspirit.client.action.WorkflowMenuAction$WFStartAction.actionPerformed(WorkflowMenuAction.java:269)

    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)

    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)

    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)

    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)

    at javax.swing.AbstractButton.doClick(AbstractButton.java:376)

    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)

    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)

    at java.awt.Component.processMouseEvent(Component.java:6505)

    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)

    at java.awt.Component.processEvent(Component.java:6270)

    at java.awt.Container.processEvent(Container.java:2229)

    at java.awt.Component.dispatchEventImpl(Component.java:4861)

    at java.awt.Container.dispatchEventImpl(Container.java:2287)

    at java.awt.Component.dispatchEvent(Component.java:4687)

    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)

    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)

    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)

    at java.awt.Container.dispatchEventImpl(Container.java:2273)

    at java.awt.Component.dispatchEvent(Component.java:4687)

    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)

    at java.awt.EventQueue.access$000(EventQueue.java:101)

    at java.awt.EventQueue$3.run(EventQueue.java:666)

    at java.awt.EventQueue$3.run(EventQueue.java:664)

    at java.security.AccessController.doPrivileged(Native Method)

    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)

    at java.awt.EventQueue$4.run(EventQueue.java:680)

    at java.awt.EventQueue$4.run(EventQueue.java:678)

    at java.security.AccessController.doPrivileged(Native Method)

    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

    at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)

    at de.espirit.firstspirit.client.AWTDispatchingEventQueue.defaultDispatchEvent(AWTDispatchingEventQueue.java:161)

    at de.espirit.firstspirit.client.AWTDispatchingEventQueue._dispatchEvent(AWTDispatchingEventQueue.java:138)

    at de.espirit.firstspirit.client.AWTDispatchingEventQueue.dispatchEvent(AWTDispatchingEventQueue.java:131)

    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)

    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)

    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)

    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)

    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)

    at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Caused by: java.lang.ClassNotFoundException: com.espirit.moddev.basicworkflows.release.WfFindRelatedObjectsExecutable

    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)

    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)

    at java.security.AccessController.doPrivileged(Native Method)

    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)

    at de.espirit.firstspirit.server.module.ExtendedUrlClassLoader.findClass(ExtendedUrlClassLoader.java:92)

    at de.espirit.firstspirit.server.module.ModuleClassesLoader.findClass(ModuleClassesLoader.java:135)

    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)

    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)

    at de.espirit.firstspirit.server.module.MutableClassLoader.loadClass(MutableClassLoader.java:121)

    at de.espirit.firstspirit.server.script.ClassCallerEngine.getExecutable(ClassCallerEngine.java:42)

    ... 51 more

0 Kudos
MarcusDau
Occasional Collector

Wo muss ich die mitgelieferten java-Klassen (als jar dann natรผrlich) auf den FS-Server packen? In server\lib oder shared\lib?

0 Kudos
MarcusDau
Occasional Collector

So, habe das nun als Modul gebaut. Damit zieht er alle Klassen an.

thmarx
I'm new here

Der Basicworkflow ist wie der Name schon sagt ein basic Workflow. D.h. wenn er fรผr deinen Anwendungsfall ausreichend ist, dann ist das super. Hast du aber in deinem Projekt spezielle Anforderungen an die Freigabe, muss er dementsprechend angepasst werden.

Viele GรผรŸe

Thorsten

0 Kudos

Type a product name