Questions & Answers

SOLVED
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

Type a product name