cancel
Showing results for 
Search instead for 
Did you mean: 

Workflow-Aktion konnte nicht abgeschlossen werden

dsoe
Champ in-the-making
Champ in-the-making
Hallo zusammen,

ich habe folgenden Anwendungsfall durch eine Regel nachgebildet:

Wenn der Benutzer A ein Dokument im Ordner X erstellt, wird dem Dokument automatisch ein einfacher Workflow zugewiesen:  „Verschieben Element nach 'Y' wenn Aktion 'Genehmigen' durchgeführt wird.“

Wenn der Benutzer A die Aktion 'Genehmigen' durchführt, erscheint folgender Hinweis: „Die Workflow-Aktion konnte nicht abgeschlossen werden“. Das Problem liegt wohl daran, dass der Benutzer A keine Zugriffsberechtigung auf Ordner 'Y' hat. Der Anwendungsfall sieht dies aber auch nicht vor, denn Benutzer A darf nur Zugriffsberechtigungen auf Ordner X haben.

Wie lässt realisieren, dass die eigentliche Workflowaktion, also das Verschieben von Dokumenten, vom System und nicht vom Anwender durchgeführt wird?
2 REPLIES 2

jpfi_4454
Champ in-the-making
Champ in-the-making
Hallo,
hinter dem Simple-Workflow hängt auf der Alfresco-Repo Ebene ein ActionExecuter (org.alfresco.repo.action.executer.TransitionSimpleWorkflowActionExecuter).
Diesen musst du über eigene bean überschreiben & AuthenticationUtil.runAs rund unm dein move nutzen, e.g.:

AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork<Object>()
         {
            public String doWork() throws Exception
            {
                nodeService.moveNode(
                      actionedUponNodeRef,
                      destinationFolder,
                      ContentModel.ASSOC_CONTAINS,
                      QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, qname));
               return null;
            }
         }, AuthenticationUtil.getSystemUserName());
cheers, jan

dsoe
Champ in-the-making
Champ in-the-making
Danke für deine schnelle Antwort. Der Benutzer A kann nun die Aktion 'Genehmigen' durchführen und das Dokument wird in Ordner Y verschoben (ohne das Benutzer A Zugriffsrechte auf Ordner Y besitzt).

Ab hier entsteht leider ein neues Problem:

1. Der Ordner, in dem das genehmigte Dokument verschoben wurde, ist ebenfalls mit einer Regel ausgestattet. Die Regel ist ähnlich wie die erste: Beim 'Genehmigen' soll das Dokument verschoben werden, sagen wir in Ordner Z (Benutzer B hat keine Zugriffsrechte auf Z). Jetzt kann Benutzer B das Dokument aber nur genehmigen, wenn er die Koordinator-Rolle im Ordner Y besitzt. Anderenfalls erscheint der Hinweis: „Die Workflow-Aktion konnte nicht abgeschlossen werden“. Komisch, ich dachte der SystemUser übernimmt durch meine Erweiterung sämtliche Kopiervorgänge?

2. Hat der Benutzer B also die Koordinator-Rolle im Ordner Y, kann er das Dokument in Ordner Z verschieben. Wie sich vielleicht erahnen lässt, ist Ordner Z ebenfalls mit einer Regel ausgestattet. Problem: Die Regel greift nicht, verschobene Dokumente werden nicht mit einem Workflow ausgestattet.




Grüße
dsoe
Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.