Workflow-Programmierung
Programmieren von CM-Skripten
Wie Sie in den vorherigen Abschnitten gesehen haben, können ConSol-Workflows über die grafische Benutzeroberfläche des Process Designers ziemlich einfach eingerichtet werden. Um "echte Intelligenz" in die Workflows zu bringen, müssen Sie allerdings programmieren, d. h. ConSol CM-Workflow-Skripte schreiben, die in den Workflow-Aktivitäten und Bedingungen verwendet werden.
ConSol CM-Skripte werden in Groovy geschrieben. Sie sollten also zumindest ein Grundwissen dieser Programmiersprache haben. Da der Groovy-Code auf einer Java Virtual Machine ausgeführt wird, können Sie auch Java-Code schreiben. Wenn Sie also Java- oder Groovy-Entwickler sind, können Sie einfach lernen, mithilfe der ConSol CM-Groovy-API komplizierte Workflows zu erstellen.
Bitte wenden Sie sich an den CM-Vertrieb, wenn Sie an dem von ConSol angebotenen Groovy-Training Groovy in a Nutshell interessiert sind.
Im vorliegenden Handbuch verwenden wir Java-Stil und Groovy-Stil. Sie können entscheiden, welchem Stil Sie folgen möchten.
Wichtiger Hinweis für CM-Systeme, die von einer Version vor CM 6.11 auf die Version 6.11 oder höher aktualisiert werden
In ConSol CM-Version 6.11 wurden die Datenbank und daher auch die API deutlich verändert. Dadurch sind eine große Anzahl an Klassen und Methoden „deprecated“. Wenn Sie ein System auf Version 6.11 aktualisieren, müssen Sie diese Klassen und Methoden durch die neuen ersetzen. Fragen Sie Ihren ConSol CM-Consultant nach der API-Dokumentation Ihrer CM-Version! Alle Änderungen sind in den CM 6.11 Release Notes dokumentiert.
Programmierung im Java- vs. Groovy-Stil
Wie oben erwähnt, müssen Sie für ConSol CM-Skripte Groovy verwenden. Der gleiche Inhalt kann möglicherweise auf unterschiedliche Art ausgedrückt oder programmiert werden. Die folgenden Abschnitte enthalten einige Hinweise und Beispiele für die Arbeit mit der Groovy-API.
Auslassen von Getter-Methoden in Groovy
Die meisten Groovy-Objekte haben mehrere Getter-Methoden, mit denen Werte aus Objektattributen abgerufen werden. Sie können entweder die vollständigen Getter-Methoden oder die Kurzform verwenden. Siehe auch folgende Beispiele für Workflow-Skripte.
Anwendungsfall | Java-gemäße Syntax (Langform) | Groovy-Syntax (Kurzform) |
---|---|---|
Ticketthema abrufen | String mysubject = ticket.getSubject() | def mysubject = ticket.subject |
Bearbeiter des Tickets abrufen | Engineer myeng = ticket.getEngineer() | def myeng = ticket.engineer |
Hauptkontakt des Tickets abrufen | Unit mymaincontact = ticket.getMainContact() | def mymaincontact = ticket.mainContact |
Wert eines bestimmten Ticketfeldes aus dem Ticket abrufen | String myprio = ticket.get("helpdesk_fields", "prio") | def myprio = ticket.get("helpdesk_fields.prio") |
Unit-Typ des Hauptkontakts abrufen |
Unit mycustomer = workflowApi.getPrimaryContact() UnitDefinition myunitdef = mycustomer.getDefinition() UnitDefinitionType mydeftype = myunitdef.getType() |
def mycustomer = workflowApi.primaryContact def myunitdef = mycustomer.definition def mydeftype = mycustomer.definition.type |
Der Zugriff auf Ticketfelder kann nicht abgekürzt werden, da es für diese Felder keine getter-Methoden gibt. Details über die Arbeit mit Daten aus Ticketfeldern finden Sie im Abschnitt Arbeiten mit Datenfeldern.
Auslassen von Setter-Methoden in Groovy
Die meisten Groovy-Objekte haben mehrere Setter-Methoden, mit denen Werte für Objektattribute gesetzt werden. Sie können entweder die vollständigen Setter-Methoden oder die Kurzform verwenden. Siehe auch folgendes Beispiel für Workflow-Skripte.
Anwendungsfall | Java-gemäße Syntax (Langform) | Groovy-Syntax (Kurzform) |
---|---|---|
Ticketthema setzen | ticket.setSubject("asd") | ticket.subject = "asd" |
CM API-Dokumentation
Für die ConSol CM-API steht eine Groovy API Doc zur Verfügung. Fragen Sie Ihren ConSol CM-Consultant oder -Vertriebsmitarbeiter nach der entsprechenden .jar-Datei.
Abbildung 126: ConSol CM Groovy API Doc
CM-Skripttypen in Workflows
In ConSol CM-Workflows werden Skripte in folgenden Kontexten verwendet:
- Als Aktivitätsskript für eine Aktivität.
- Als Bedingungsskript für eine Aktivität, das true oder false zurückgeben muss.
- Als Skript für einen Entscheidungsknoten, das true oder false zurückgeben muss.
- Als Skript für einen Event-Trigger, das ausgeführt werden muss, bevor der Trigger feuert.
- Als Skript für einen Zeit-Trigger,
- das ausgeführt wird, wenn der Zeit-Trigger initialisiert wird, d. h. wenn das Ticket in den Bereich wandert, an dem der Zeit-Trigger hängt.
- das ausgeführt wird, wenn der Zeit-Trigger feuert, d. h. wenn die definierte Zeit abgelaufen ist.
- Als Skript für Endknoten.
- Als Skript für Einsprung- und Aussprungknoten.
- Als Bedingungsskripte für ACFs, die true oder false zurückgeben müssen.
- Als Initialisierungsskripte für ACFs.
Eine Erklärung über das Einfügen dieser Skripte finden Sie in den entsprechenden Abschnitten dieses Handbuchs.
Zusammenspiel von Skripten
Für jedes Workflow-Skript können Sie auswählen, ob der Code direkt im Workflow ausgeführt werden soll, oder ob das Skript im Admin Tool im Abschnitt Skripte gespeichert werden soll und aus dem Workflow-Skript aufgerufen werden soll. Siehe Abschnitt Speichern von Skripten.
Skripte in ConSol CM im Allgemeinen
Denken Sie daran, dass die Konfiguration und Programmierung mit dem Process Designer nur die "Hälfte der Intelligenz" Ihres ConSol CM-Systems darstellt. Viele Konfigurationen und Skripte werden im Admin Tool verwaltet. Informationen zu den Skripten finden Sie im Abschnitt über die Admin-Tool-Skripte des ConSol CM Administratorhandbuchs.