Zum Hauptinhalt gehen

Let a Workflow-Script start a Schedule-Task

Kommentare

10 Kommentare

  • Zendesk API User
    Author: fehr - 3/14/2013 15:36

    Weltklasse! Genau dies benötige ich für eine PoC Präsentation nächste Woche, werde es gleich mal ausprobieren :smileyhappy:

    Vielen Dank und weiter so mit diesen How-Tos, diese sind sehr hilfreich!

    Viele Grüße

         Markus

    0
  • Zendesk API User
    Author: fehr - 3/14/2013 16:25

    Hallo,

    in meinem Use-Case müsste ich den Standard-Workflow "Datensatz freigeben" um die automatische Generierung erweitern.

    Dieser sieht aber etwas anders aus, denn er endet direkt mit dem Freigabezustand.

    Wie kann ich diesen Workflow so erweitern, dass

    a) erst der Datensatz freigegeben wird

    b) der Generierungsjob läuft?

    Das Skript "finalRelease" einzubinden scheint hier nicht ganz zu passen, da es auf Seiten ausgelegt zu sein scheint.

    Vielen Dank

         Markus

    0
  • Zendesk API User
    Author: MichaelaReydt - 3/15/2013 7:56

    Hallo Markus,

    das sollte genauso funktionieren.

    Ich hab es jetzt nicht ausprobiert. Aber wenn du zwischen die Schritte "Freigabe anfordern" und "Objekt freigegeben" bzw. "Freigabe prüfen" und "Objekt freigegeben" eine neuen Status und eine neue Aktivität (siehe auf dem Screenshot... entsprechend benannt) einfügst, der Aktivität das im Blogposting beschriebene Skript hinzufügst und die Aktivität automatisch ablaufen lässt, dann sollte das deine Frage beanworten. (Die Namensgebung der Transitionen ist dann zwar nicht mehr so schön, aber das lässt sich ja anpassen.)

    Das Skript musst du natürlich von Hand anlegen. Es handelt sich dabei NICHT um ein bereits vorhandenes WF-Skript, wie "finalRelease".

    LG Michaela

    0
  • Zendesk API User
    Author: fehr - 3/15/2013 10:03

    Hallo Michaela,

    vielen Dank für deinen Vorschlag!

    Dieser Workflow läuft zwar sauber durch, allerdings stimmt die logische Reihenfolge noch nicht. In diesem Fall wird erst generiert und dann erst freigegeben. Damit wird gerade die Änderung, für die der WF gestartet wurde, nicht bei der Generierung berücksichtigt.

    Wie könnte man das Verhalten elegant umdrehen?

    Das Häkchen "freigeben" lässt sich ja nur am Status vom Typ "Ende" setzen, so dass über diesen Weg keine weitere Generierung über den WF möglich ist.

    Vielen Dank

         Markus

    0
  • Zendesk API User
    Author: MichaelaReydt - 3/15/2013 15:52

    Hallo Markus,

    so ins Blaue vermutet, würde ich dann zusätzlich noch eine weitere Aktivität + Skript und einen weiteren Status hinzufügen. Ob das die schönste und eleganteste Lösung ist, kann ich dir allerdings nicht sagen.

    An dieser Stelle würdest du jetzt in diesem Bsp noch das Skript "releaseentity" benötigen, dass dann den Datensatz freigibt (also das Äquivalent zu "finalrelease" für Seiten).

    LG Michaela

    0
  • Zendesk API User
    Author: fehr - 3/15/2013 16:01

    Hallo Michaela,

    ja, das war auch meine Vermutung!

    Ich nehme an, dieses Skript "releaseentity" liegt noch nicht irgendwo vor, so dass ich es einfach übernehmen kann?

    Zum selber schreiben fehlen mir leider die Skills :smileywink:

    Viele Grüße

         Markus

    0
  • Zendesk API User
    Author: MichaelaReydt - 3/19/2013 8:43

    Hallo Markus,

    taaadaa :smileywink:

    ************************************************************************************************

    //!Beanshell

    import de.espirit.firstspirit.access.store.contentstore.ContentWorkflowable;

     

    content2 = context.getStoreElement();

    workflowable = context.getWorkflowable();

    entity = ((ContentWorkflowable) workflowable).getEntity();

    content2.release(entity);

    context.doTransition("triggerGeneration");

    ************************************************************************************************

    Den Dank für das Skript bitte an Rouven richten. :smileyhappy:

    Der zugehörige WF sieht so aus:

    LG Michaela

    0
  • Zendesk API User
    Author: fehr - 3/19/2013 9:49

    Hallo Michaela,

    besten Dank - jetzt funktioniert es wie gewünscht!!!

    Viele Grüße

         Markus

    0
  • Zendesk API User
    Author: Sebastian1 - 5/22/2013 10:19

    Hallo Michaela,

    zunächst vielen Dank für die Blog-Beiträge. Die sind echt wertvoll, wenn man in die Modul-Entwicklung einsteigt.

    Vielleicht kannst du mir an dieser Stelle auch bei einem Problem helfen, dass thematisch dem hier nahe kommt. Ich habe eine Workflow script (via executable class), dass einen generate-Task startet. Davor öffnet das Workflow script noch eine GUI (hinterlegt im Formular-Reiter des scripts) und verlangt eine Eingabe via CMS_INPUT_TEXT. Der generate-Task führt dann eine Teilgenerierung einer bestimmten XML-Datei durch. Nun soll die Eingabe aus dem Textfeld in die XML-Datei generiert werden. Ich weiß nur nicht genau wie ich die Information aus dem Textfeld an den Generate-Task übergeben kann und dann darauf im XML-Template zugreife. Geht das überhaupt?

    Ich hatte dazu zwei Ideen, aber ich weiß nicht genau, ob das so umsetzbar ist.

    1. Beim auslesen des Textfeldwertes schreibe ich diesen in irgendeine "Session", die ich dann via Template-Script im XML-Template wieder auslese ($CMS_RENDER(script:'gettextfieldinput')$)

    2. Ich setze vor der Ausführung des generate-Tasks, an der Task-Instanz eine Variable mit dem Wert des Textfeldes. Dann schreibe ich die irgendwie ins Template ($CMS_VALUE('textfieldinput')$).

    Oder habe ich evtl. eine viel einfachere Möglichkeit übersehen?

    Viele Grüße,

    Sebastian

    0
  • Zendesk API User
    Author: MichaelaReydt - 6/12/2013 10:03

    Hallo Sebastian,

    im Tab "Erweitert" einer Generierung lassen sich Variablen anlegen, denen ein Wert zugewiesen werden kann.

    Die Übergabe einer Benutzereingabe durch das Skript an den Generierungstask ließe sich über diese Variablen realisieren, indem das Skript auf diese Variablen zugreift und ihnen die Eingaben des Benutzer zuweist, bevor die Generierung gestartet wird.

    Ich vermute, dass dies Deiner zweiten Idee entspricht.

    Ich hoffe, ich konnte Dir weiterhelfen. Solltest Du weitere Fragen haben, bitte ich Dich, diese im Developerbereich zu stellen, um hier eine Vermischung unterschiedlicher Thematiken zu vermeiden. :smileyhappy:

    Viele Grüße

    Michaela

    0

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.