thischke
Returning Observer

Medien-Workflow im ContentCreator?

Jump to solution

Hallo,

folgender Anwendungsfall: der Redakteur tauscht in der Medienverwaltung ein PDF aus und möchte einen Workflow starten, der das PDF freigibt und alle Seiten neu publiziert, die dieses PDF referenziert.

Im SiteArchitekt kein Problem, wie kann ich dies aber im ContentCreator anbieten?

Wir verwenden FirstSpirit 5.2.1002

Mit freundlichem Gruß

Thorben Hischke

1 Solution

Accepted Solutions
thischke
Returning Observer

Nach einigen Wühlen in der Tiefe der API habe ich folgende Möglichkeit per Plugin-Erweiterung gefunden:

public class StartWorkflowInMediaManagement implements MediaManagementItemsPlugin  {

     // ...

     @Override

     public Collection<? extends MediaManagementItem> getItems() {

          return Collections.singletonList(new StartWorkflowExecutableInlineEditItemMedia(_context, _workflowUid));

     }

     private static class StartWorkflowExecutableInlineEditItemMedia implements ExecutableMediaManagementItem {

          // ...

          @Override

          public void execute(MediaManagementContext arg0) {

               // TODO Auto-generated method stub

          }

          @Override

          public boolean isEnabled(MediaManagementContext arg0) {

               return true;

          }

          @Override

          public boolean isVisible(MediaManagementContext arg0) {

               return true;

          }

     }

}

Es bleibt mir aber ein Rätsel, warum ich das programmatisch per Plugin-Erweiterung entwickeln muss. Von einem CMS hätte ich erwartet, dass ich die entwickelten Workflows per Konfiguration im ContentCreator benutzen kann. Habe ich da noch etwas übersehen?

Mit freundlichem Gruß

Thorben Hischke

View solution in original post

0 Kudos
5 Replies
thischke
Returning Observer

Nach einigen Wühlen in der Tiefe der API habe ich folgende Möglichkeit per Plugin-Erweiterung gefunden:

public class StartWorkflowInMediaManagement implements MediaManagementItemsPlugin  {

     // ...

     @Override

     public Collection<? extends MediaManagementItem> getItems() {

          return Collections.singletonList(new StartWorkflowExecutableInlineEditItemMedia(_context, _workflowUid));

     }

     private static class StartWorkflowExecutableInlineEditItemMedia implements ExecutableMediaManagementItem {

          // ...

          @Override

          public void execute(MediaManagementContext arg0) {

               // TODO Auto-generated method stub

          }

          @Override

          public boolean isEnabled(MediaManagementContext arg0) {

               return true;

          }

          @Override

          public boolean isVisible(MediaManagementContext arg0) {

               return true;

          }

     }

}

Es bleibt mir aber ein Rätsel, warum ich das programmatisch per Plugin-Erweiterung entwickeln muss. Von einem CMS hätte ich erwartet, dass ich die entwickelten Workflows per Konfiguration im ContentCreator benutzen kann. Habe ich da noch etwas übersehen?

Mit freundlichem Gruß

Thorben Hischke

0 Kudos
mikula
Crownpeak employee

Hi Thorben, bist du mit dem Plugin weiter gekommen? Konntest du dein pdf swapping umsetzten?

0 Kudos
thischke
Returning Observer

Hallo Martin,

ja, mit dem Plugin bin ich weiter gekommen. Damit gebe ich dem Redakteur genau dort die Möglichkeit, den entsprechenden Workflow zu starten, wo er mit dem PDF arbeitet ... und zwar in der Medienverwaltung.

Gruß

Thorben

0 Kudos
dmaass
I'm new here

Weis jemand wie man es schafft bei der Lösung von Thorben Hischke den Workflow nicht nur programmatisch durchzuführen, sondern auch die dazugehörigen Fenster angezeigt bekomme? Oder zumindest einen Dialog/RequestOperation anzeigen lassen kann?

Ich bekomme wenn ich die showActionDialog -Methode des WorkflowAgent.WorkflowProcessContext aufrufe immer eine UnsupportedOperationException("workflow in headless mode - no action dialog supported"). Das liegt wohl am Context den ich innerhalb der Medienverwaltung zur Verfügung habe.

Mit Hilfe von diesem Context kann ich außerdem auch kein RequestOperation-Objekt bekommen, das ist durch agent.getOperation(RequestOperation.TYPE) automatisch null.

Gruß

Dennis

0 Kudos
thischke
Returning Observer

Das Problem ist mittlerweile eingekreist und als Bug von e-Spirit identifiziert worden. Folgender Code sollte korrekt funktionieren und einen Workflow antriggern können, inkl. Dialog:

@Override

public void execute(MediaManagementContext mediaManagementContext) {

  ...

  IDProvider element = mediaManagementContext.getElement();

  WorkflowAgent agent = mediaManagementContext.requestSpecialist(WorkflowAgent.TYPE);

  WorkflowProcessContext process = agent.startWorkflow(_workflow, element);

...

}

0 Kudos