Questions & Answers

alexanderan
I'm new here

Workflow - Element gesperrt per Skript setzen

Hallo zusammen,

wir haben in unserem Projekt einen ohnehin schon komplizierten Workflow. Nun kam die Anforderung auf, bei bestimmten Store Elementen (z.B. bei PageFolder-Objekten) die Workflow-Objekte in den (Zwischen-) Zustรคnden nicht fรผr die Bearbeitung zu sperren. Der Workflow sieht das im Modell vor.

Nun frage ich mich, ob es รผber ein Skript mรถglich ist den Schreibschutz in einem Zustand wรคhrend des Workflows manuell zu setzen/entfernen.

Leider habe ich in der API eine solche Funktionalitรคt auf den ersten Blick nicht entdeckt.

Falls dies nicht mรถglich ist, wรผrde mich interessieren, ob man Transitionen im Workflow auch "hidden" definieren kann. Also so, dass der User diese nicht im Dialog als Schaltflรคche angezeigt bekommt, man die Transition aber รผber ein Skript ansteuern kann.

Fรผr eine Hilfreiche Antwort zu meinen Fragen wรคre ich sehr dankbar.

Viele GrรผรŸe

Andreas

0 Kudos
6 Replies
gockel
Crownpeak employee

Leider habe ich in der API eine solche Funktionalitรคt auf den ersten Blick nicht entdeckt

#setWriteLock(boolean lock)

#getWriteLock()

Falls dies nicht mรถglich ist, wรผrde mich interessieren, ob man Transitionen im Workflow auch "hidden" definieren kann. Also so, dass der User diese nicht im Dialog als Schaltflรคche angezeigt bekommt, man die Transition aber รผber ein Skript ansteuern kann.

Hier kann ich nicht ganz folgen. Entweder es handelt sich um eine automatische Aktivitรคt (mit Skript), dann werden dem Benutzer gar keine Transitionen zum schalten angeboten oder es ist eine manuelle Aktivitรคt, dann erhรคlt der Benutzer immer alle Transitionen zur Auswahl.

Man kรถnnte eine automatische Aktivitรคt erstellen, in deren Skript eine Gui angezeigt wird, wo dem Benutzer weniger Auswahlmรถglichkeiten angeboten werden, als im Modell Transitionen hinterlegt sind.

0 Kudos

Man kรถnnte eine automatische Aktivitรคt erstellen, in deren Skript eine Gui angezeigt wird, wo dem Benutzer weniger Auswahlmรถglichkeiten angeboten werden, als im Modell Transitionen hinterlegt sind.

Innerhalb einer automatischen Aktion habe ich die Mรถglichkeit dem User den Workflow-Dialog รผber workflowScriptContext.showActionDialog() anzuzeigen. Als Rรผckgabewert dieser Methode bekomme ich die Vom User gewรคhlte Transaktion zurรผck.

Mich hรคtte nun interessiert, ob die Mรถglichkeit besteht in diesem Firstspirit-eigenen Dialog die angezeigten Transitionen (Buttons) vorher zu manipulieren, um dem User in bestimmten Fรคllen nicht alle Transitionen anzubieten.

Bei der Definition von Workflows kann ich auch in manuellen Aktionen Skripte anhรคngen. Ich hatte dies so interpretiert, dass die Aktion zwar manuell angetriggert wird, das Skript aber wie auch bei automatischen Aktionen ausgefรผhrt wird. Bitte korrigieren Sie mich, falls ich da nicht richtig liege.#

Automatische Aktionen hingegen werden direkt ausgefรผhrt (ohne User Interaktion) und benรถtigen zwingend ein angehรคngtes Skript um die Transition zu schalten.

#setWriteLock(boolean lock)

#getWriteLock()

Danke fรผr den Hinweis, werde ich ausprobieren

Viele GrรผรŸe,

Andreas Alexander

0 Kudos

Innerhalb einer automatischen Aktion habe ich die Mรถglichkeit dem User den Workflow-Dialog รผber workflowScriptContext.showActionDialog() anzuzeigen. Als Rรผckgabewert dieser Methode bekomme ich die Vom User gewรคhlte Transaktion zurรผck.

Mich hรคtte nun interessiert, ob die Mรถglichkeit besteht in diesem Firstspirit-eigenen Dialog die angezeigten Transitionen (Buttons) vorher zu manipulieren, um dem User in bestimmten Fรคllen nicht alle Transitionen anzubieten.

Ich wollte darauf hinaus innerhalb der Aktion eine individuelle GUI anzuzeigen, z.B. รผber die Formulardefinition des Skriptes, welche dann mit #showGui augerufen wird. Diese Gui kรถnnte ja z.B. aus Radiobuttons bestehen, die die zu schaltenden Transitionen reprรคsentieren und entsprechend reduziert sind.

0 Kudos

Ich wollte darauf hinaus innerhalb der Aktion eine individuelle GUI anzuzeigen, z.B. รผber die Formulardefinition des Skriptes, welche dann mit #showGui augerufen wird. Diese Gui kรถnnte ja z.B. aus Radiobuttons bestehen, die die zu schaltenden Transitionen reprรคsentieren und entsprechend reduziert sind.

Dem entnehme ich, dass die Mรถglichkeit bestimmte Transitionen im Vorfeld auszublenden (oder zu deaktivieren) รผber showGuiDialog() nicht besteht, richtig?

0 Kudos

Noch mal zur Ursprรผnglichen Fragestellung (Betreff) zurรผck:

hier ein konkretes Beispiel:

workflowScreenShot.png

Der Status "Freigabe angefordert" ist ohne Schreibschutz konfiguriert. An die manuelle Aktion "Freigabe anfordern" haben wir ein Skript gehรคngt, welches anhand des zugrundeliegenden StoreElementes entscheidet, ob der folgende Workflow (also der Zustand "Freigabe angefordert") mit oder ohne Schreibschutz ausgefรผhrt werden soll (hier werden also die Methoden get und setWriteLock verwendet).

So wie ich das sehe, wird der Schreibschutz erst bei erreichen des Zustandes gesetzt/entfernt, somit sind die ร„nderungen im Skript setWriteLock nicht wirksam, richtig?

Wie kann ich es nun erreichen, dass รผber das Skript setWriteLock der Schreibschutz fรผr den Zustand "Freigabe angefordert" gesetzt wird? Habe ich die Mรถglichkeit die Eigenschaften des Zustandes nur fรผr diese Instanz des Workflows abzuรคndern, also das Flag fรผr Schreibschutz wรคhrend der Ausfรผhrung des Workflows selbst zu setzten?

Viele GrรผรŸe,

Andreas Alexander

0 Kudos

So wie ich das sehe, wird der Schreibschutz erst bei erreichen des Zustandes gesetzt/entfernt, somit sind die ร„nderungen im Skript setWriteLock nicht wirksam, richtig?

Wie kann ich es nun erreichen, dass รผber das Skript setWriteLock der Schreibschutz fรผr den Zustand "Freigabe angefordert" gesetzt wird? Habe ich die Mรถglichkeit die Eigenschaften des Zustandes nur fรผr diese Instanz des Workflows abzuรคndern, also das Flag fรผr Schreibschutz wรคhrend der Ausfรผhrung des Workflows selbst zu setzten?

Wird der Workflow innerhalb des Skriptes auf "Freigabe angefordet" gesetzt, oder erfolgt das schalten der Transition manuel? Die Methoden setWriteLock und getWriteLock werden auf dem StoreElement ausgefรผhrt und benรถtigen ein save, damit die ร„nderung gespeichert wird. Kรถnnen Sie bitte das Skript anhรคngen?

0 Kudos

Type a product name