Skripte im Workflow
Skripte werden dazu verwendet, automatische Aktionen auszuführen und das Verhalten des Workflows anzupassen. Es gibt zwei grundlegende Skripttypen:
- Sichtbarkeitsskripte werden ausgeführt, um die Verfügbarkeit der Aktivität zu steuern.
- Reguläre Skripte werden ausgeführt, wenn eine bestimmte Aktion ausgeführt wird oder ein bestimmtes Ereignis eintritt.
Einige Elemente und Adornments haben zusätzlich Skripte für bestimmte Zwecke, wie zum Beispiel das Entscheidungsskript, das festlegt, welchen Ausgang ein Vorgang nimmt, wenn er durch einen Entscheidungsknoten läuft.
Sie können Skripte auf zwei Arten verwalten:
- Verwenden von eingebetteten Skripten: Eingebettete Skripte stehen direkt im Workflow-Editor zur Verfügung, d. h. Sie öffnen den Skripteditor für das gewünschte Element, schreiben den Inhalt des Skripts und speichern das Skript.
- Verwenden von Skripten des Typs Workflow: Workflow-Skripte werden auf der Seite Skripte der Web Admin Suite gespeichert, siehe Skripte des Typs Workflow. Sie können in einem eingebetteten Skript referenziert werden, d. h. Sie erstellen ein eingebettetes Skript, das ein Workflow-Skript ausführt:
scriptExecutionService.execute("myscript.groovy")
Die folgende Tabelle zeigt einen Vergleich der beiden Arten:
Art | Beschreibung | Vorteile | Nachteile |
---|---|---|---|
Eingebettetes Skript | Der gesamte Inhalt des Skripts steht im Workflow-Editor zur Verfügung. |
|
|
Workflow-Skript | Das Skript wird als Skript des Typs Workflow auf der Seite Skripte gespeichert. Das eingebettete Skript referenziert dieses Workflow-Skript. |
|
|
Skripte werden in Groovy geschrieben. Da der Groovy-Code auf einer Java Virtual Machine ausgeführt wird, können Sie auch Java-Code schreiben. Mit Groovy-Code können Sie dynamische Typisierung verwenden und getter- und setter-Methoden auslassen, wodurch die Syntax kürzer wird. Die folgende Tabelle zeigt Beispiele für die Unterschiede zwischen Groovy und Java:
Ziel | Groovy | Java |
---|---|---|
Thema eines Vorgangs abrufen | def mysubject = ticket.subject | String mysubject = ticket.getSubject(); |
Hauptkontakt eines Vorgangs abrufen | def mymaincontact = ticket.mainContact | Unit mymaincontact = ticket.getMainContact(); |
Wert eines bestimmten Vorgangsfeldes aus einem Vorgang abrufen | def myprio = ticket.get("helpdesk_fields.prio") | String myprio = ticket.get("helpdesk_fields", "prio"); |
Thema eines Vorgangs setzen | ticket.subject = "asd" | ticket.setSubject("asd"); |
ConSol CM-API-Methoden
Die ConSol CM-API stellt verschiedene Convenience-Schnittstellen und -Methoden zur Verfügung, die den Zugriff auf häufig verwendete Objekte erleichtern. Die meisten dieser Convenience-Schnittstellen gehören zum Paket com.consol.cmas.common.service
und dessen Unterpaketen.
Die implementierende Instanz der Schnittstelle ist immer verfügbar, indem Sie den Anfangsbuchstaben im Klassennamen, der ein Großbuchstabe ist, durch einen Kleinbuchstaben ersetzen. Verwenden Sie z. B. engineerService
, wenn Sie Methoden der Schnittstelle EngineerService
aufrufen möchten. Die einzige Ausnahme zu dieser Regel bildet die Klasse WorkflowContextService
, deren Objekt workflowApi
viele nützliche Methoden bietet.
Weitere Informationen zu den verfügbaren Klassen und Methoden finden Sie in der ConSol CM-API-Dokumentation.
Funktionen des Skripteditors
Der Skripteditor bietet die folgenden Funktionen:
-
Texthervorhebung: Sie können auf ein Wort doppelklicken oder Text markieren, um alle Vorkommen im Skript hervorzuheben.
-
Syntax-Hervorhebung: Der Editor verwendet Syntax-Hervorhebung für Groovy.
-
Code-Vervollständigung: Sobald Sie einen Punkt tippen, werden Methoden für das aktuelle Objekt vorgeschlagen. Tippen Sie weiter, um die Ergebnisse einzuschränken. Es werden nur Methoden für explizit deklarierte Variablen angezeigt.
tippSie können STRG + LEERTASTE drücken, um Vorschläge für Service-Klassen anzuzeigen.
Wenn Sie in Ihrem Skript mit Code wie
def utilityScript = scriptExecutionService.execute("utilityScript")
oderdef utilityScript = workflowApi.runScript("utilityScript")
ein anderes Skript aufrufen, werden die öffentlichen Methoden, die in der obersten Ebene des Utility-Skripts definiert sind, vorgeschlagen, wenn SieutilityScript
gefolgt von einem Punkt eingeben. Das Utility-Skript muss den Aufrufreturn this
enthalten. -
Code-Prüfung: Die Ergebnisse der Code-Prüfung werden unterhalb des Quellcodes angezeigt. Es gibt drei Arten:
- Keine Prüfung: Die Code-Prüfungsfunktion ist ausgeschaltet.
- Einfache Prüfung: Es wird eine einfache Code-Prüfung durchgeführt.
- Strenge Prüfung: Es wird eine detailliertere Code-Prüfung durchgeführt, die auch überprüft, ob die aufgerufenen Methoden für das Objekt existieren.
-
Liste der Methoden und Variablen: Sie können auf das Icon Navigator anzeigen klicken, um auf der rechten Seite einen Bereich zu öffnen, der eine Liste der im Haupt-Scope des Skriptes definierten Methoden und globalen Variablen enthält. Klicken Sie auf eine Methode oder Variable, um im Skript zur entsprechenden Definition zu springen.
-
Referenzierte Skripte: Skripte, die von einem Skript aufgerufen werden, sind unterstrichen. Sie können ein Skript öffnen, indem Sie auf den Skriptnamen klicken.
-
Code-Fragmente: Sie können auf Code-Fragmente in Ihre Skripte einfügen, indem Sie die Option >> Code-Fragment einsetzen aus den Autocomplete-Vorschlägen auswählen, in der Symbolleiste auf den Button Code-Fragment einsetzen klicken oder die Tastenkombination STRG + J verwenden. Es sind folgende Code-Fragmente verfügbar:
- Skriptgeneratoren: Code für E-Mail- oder Suche-Skripte auf Basis der in einem Modalfenster vorgenommenen Einstellungen generieren und einfügen
- Datenfelder: Vorgangs-, Kontakt- und Ressourcenfelddaten abrufen und setzen, technischen und lokalisierten Wert von Feldern des Typs enum abrufen, über Listenfelder iterieren, Zeilen zu Listenfeldern hinzufügen
- Bezeichnungen: Bezeichnung mit oder ohne Lokalisierung einfügen
- Queues: Queue einfügen
- Skripte: Skript ausführen
- System-Properties: System-Property einfügen
- Templates: Template mit oder ohne Lokalisierung einfügen
Das Fenster Code-Fragmente enthält ein Suchfeld, über das Sie das gewünschte Code-Fragment suchen können. Sie können z. B. nach einem Kontaktfeld suchen, um die verfügbaren Fragmente anzuzeigen. Sie können weitere Filter anwenden, indem Sie den Objekttyp gefolgt von einem Doppelpunkt in das Suchfeld eingeben:
label
: sucht nach Bezeichnungenproperty
: sucht nach System-Propertiesqueue
: sucht nach Queuesresource
: sucht nach Ressourcenfeldernscript
: sucht nach Skriptentemplate
: sucht nach Templatesticket
: sucht nach Vorgangsfeldernunit
: sucht nach Kontaktfeldern
-
Text umbrechen: Wenn eine Textzeile den verfügbaren Platz überschreitet, können Sie entweder den Text umbrechen oder einen Scroll-Balken anzeigen.
-
Tastenkombinationen: Es gibt Tastenkombinationen für häufige Tätigkeiten. Beispiele:
- Speichern: STRG + S
- Rückgängig machen: STRG + Z
- Suchen: STRG + F
- Code-Snippet einfügen: STRG + J
- Autovervollständigung: STRG + Leertaste
- Zu Zeile springen: STRG + L
- Zum referenziertem Skript springen: STRG + Klick
- Vorschau des referenzierten Skripts öffnen: STRG + ALT + Klick
- Vorschau des Skript-Templates anzeigen: ALT + T
- Code formatieren: ALT + F