Skripte
Einführung in Skripte in ConSol CM
Skripte liefern die Logik für die in ConSol CM modellierten Prozesse. Sie definieren das Verhalten des Systems in verschiedenen Bereichen, beispielsweise E-Mails, Aktionen, Widgets oder Workflows.
ConSol CM hat eine umfassende API, die Methoden zur Verfügung stellt, mit denen ConSol CM-Objekte abgerufen und geändert werden können. Die meisten Skripte werden in Groovy geschrieben, einer objektorientierten Programmiersprache, die mit Java kompatibel ist. Für Skripte, die Widgets und Feldvisualisierungen im Web Client implementieren, können Sie JavaScript verwenden.
Skripte, die im Workflow verwendet werden, können entweder auf der Seite Skripte oder direkt im Workflow gespeichert werden, siehe Verwalten von Workflow-Skripten. Alle anderen Skripte werden auf der Seite Skripte gespeichert.
Verfügbare Einstellungen für Skripte
Ein Skript hat folgende Einstellungen:
- Name: Dies ist der Name, über den das Skript referenziert wird.
- Typ: Der Typ bestimmt den Zweck des Skripts. Bei der Erstellung eines neuen Skripts wird die Vorlage für den ausgewählten Typ automatisch in den Quellcode eingefügt. Zusätzlich werden die Skripte an den Stellen, an denen sie referenziert werden, nach dem passenden Typ gefiltert.
- Letzte Änderung: Dies ist das Datum, an dem das Skript zuletzt geändert wurde.
- Letzte Ausführung: Dies ist das Datum, an dem das Skript zuletzt ausgeführt wurde.
Skripttypen
Es sind folgende Skripttypen verfügbar:
- Abhängige sortierte Liste: Definiert hierarchische Datenstrukturen für Datenfelder. Wird der Datenfeldgruppe zugewiesen. Siehe Skripte für abhängige sortierte Listen.
- Bedingung für Aktionsformular: Bestimmt, ob ein Aktionsformular für eine Kontakt-, Ressourcen- oder Suche-Aktion angezeigt wird. Wird der Aktion zugewiesen. Siehe TODO.
- Bedingung für Webformular: Bestimmt, ob ein Client auf ein Webformular zugreifen kann. Wird dem Webformular zugewiesen. Siehe TODO
- Duplizieren: Ändert die Werte, mit denen ein durch Duplizieren eines Vorgangs neu erstellter Vorgang automatisch vorbefüllt wird. Wird der Queue zugewiesen. Siehe Duplizieren-Skripte.
- E-Mail: Verwaltet ein- und ausgehende E-Mails. Einige E-Mail-Skripte sind Teil der Lieferung von ConSol CM. Wird der Queue zugewiesen. Siehe E-Mail-Skripte.
- Feldvisualisierung: Konfiguriert die Visualisierung von Datenfeldern. Wird dem Datenfeld zugewiesen. Siehe Feldvisualisierungsskripte.
- Integration: Implementiert Services, die die Webhook-Schnittstelle von ConSol CM nutzen. Siehe TODO
- In Workflow eingebettet: Skript, das an einem Workflow-Element hängt. Siehe Verwalten von Workflow-Skripten.
- Kalenderintegration: Liefert Verbindungsinformationen für die Integration von Microsoft Exchange-Kalendern. Wird in der Seitenanpassung des Kalenderabschnitts referenziert. Siehe TODO.
- Kontaktaktion: Implementiert eine Kundenaktion. Wird der Aktion zugewiesen. Siehe Aktionsskripte.
- Kontaktbedingung: Bestimmt, ob eine Kundenaktion verfügbar ist. Wird der Aktion zugewiesen. Siehe Aktionsskripte.
- News: Konfiguriert die News-Funktion. Wird dem Widget in der Seitenanpassung (Nutzung im Web Client) oder in der Portalkonfiguration (Nutzung in CM/Track) zugewiesen. Siehe News-Skripte.
- Relationsgraph: Konfiguriert die Graphendarstellung der Relationen im Relationsabschnitt des Web Clients. Wird in der Seitenanpassung des Abschnitts referenziert. Siehe TODO.
- Ressourcenaktion: Implementiert eine Ressourcenaktion. Wird der Aktion zugewiesen. Siehe Aktionsskripte.
- Ressourcenbedingung: Bestimmt, ob eine Ressourcenaktion verfügbar ist. Wird der Aktion zugewiesen. Siehe Aktionsskripte.
- Seitenanpassung: Liefert Einstellungen für die Seitenanpassung. Wird im Abschnitt der Seitenanpassung referenziert. Der Skripttyp Widget kann statt dieses Typs verwendet werden. Verwenden Sie den Typ Seitenanpassung für die Skripte, die in den Bereichen und Typen der Seitenanpassung referenziert werden, und den Skripttyp Widget für die Skripte, in denen Dashboard-Widgets implementiert werden. So können Sie die Skripte einfach auseinanderhalten. Siehe TODO.
- Seitenvisualisierung: Konfiguriert die Visualisierung einer Seite. Wird dem Seitentyp in der Seitenanpassung zugewiesen. Siehe Seitenvisualisierungsskripte.
- Standardwerte: Befüllt Datenfelder bei der Erstellung eines neuen Vorgangs. Wird der Queue zugewiesen. Siehe Standardwerte-Skripte.
- Suche-Aktion für Kontakte: Implementiert eine Aktion für eine Detailsuche nach Kontakten. Wird der Aktion zugewiesen. Siehe Aktionsskripte.
- Suche-Aktion für Ressourcen: Implementiert eine Aktion für eine Detailsuche nach Ressourcen. Wird der Aktion zugewiesen. Siehe Aktionsskripte.
- Suche-Aktion für Vorgänge: Implementiert eine Aktion für eine Detailsuche nach Vorgängen. Wird der Aktion zugewiesen. Siehe Aktionsskripte.
- Suche-Bedingung für Kontakte: Bestimmt, ob eine Aktion für eine Detailsuche nach Kontakten verfügbar ist. Wird der Aktion zugewiesen. Siehe Aktionsskripte.
- Suche-Bedingung für Ressourcen: Bestimmt, ob eine Aktion für eine Detailsuche nach Ressourcen verfügbar ist. Wird der Aktion zugewiesen. Siehe Aktionsskripte.
- Suche-Bedingung für Vorgänge: Bestimmt, ob eine Aktion für eine Detailsuche nach Vorgängen verfügbar ist. Wird der Aktion zugewiesen. Siehe Aktionsskripte.
- Systemdokumentation: Konfiguriert den Export der Systemkonfiguration. Siehe Systemdokumentationsskripte.
- Task: Implementiert Tasks, die beliebigen Code im System ausführen können. Siehe TODO.
- Text-Autovervollständigung: Definiert skriptbasierte Autocomplete-Listen für Datenfelder. Wird dem Datenfeld zugewiesen. Siehe Text-Autovervollständigungsskripte.
- Vorbelegung für Aktionsformular: Befüllt Datenfelder in einem Aktionsformular. Wird der Aktion zugewiesen. Siehe TODO.
- Widget: Implementiert Widgets, die auf einem Dashboard angezeigt werden können. Wird im Abschnitt der Seitenanpassung referenziert. Der Skripttyp Seitenanpassung kann statt dieses Typs verwendet werden. Verwenden Sie den Typ Seitenanpassung für die Skripte, die in den Bereichen und Typen der Seitenanpassung referenziert werden, und den Skripttyp Widget für die Skripte, in denen Dashboard-Widgets implementiert werden. So können Sie die Skripte einfach auseinanderhalten. Siehe Widget-Skripte.
- Widget-Visualisierung: Implementiert generische Widgets, die jeglichen HTML-Inhalt anzeigen können. Wird dem Widget in der Seitenanpassung (Nutzung im Web Client) oder in der Portalkonfiguration (Nutzung in CM/Track) zugewiesen. Siehe Widget-Visualisierungsskripte.
- Workflow: Skripte, die in Workflows referenziert werden. Siehe Workflow-Skripte.
Grundlegende Aufgaben
Suchen nach Skripten
Die Liste der Skripte wird direkt nach dem Öffnen der Seite Skripte der Web Admin Suite angezeigt. Sie können die Liste filtern, um ein Skript leichter zu finden:
- Textsuche: Geben Sie Text in das Feld Suchen ein und wählen Sie Im Namen, um im Namen der Skripte zu suchen, oder Im Inhalt, um im Quellcode der Skripte zu suchen.
- Skripttyp: Wählen Sie den Skripttyp in der Drop-down-Liste Alle Typen außer eingebettete aus, um nur Skripte eines bestimmten Typs anzuzeigen.
- Änderungsdatum: Sortieren Sie die Skripte nach der letzten Änderung, um vor Kurzem geänderte Skripte oben in der Liste anzuzeigen.
- Ausführungsdatum: Sortieren Sie die Skripte nach der letzten Ausführung, um vor Kurzem ausgeführte Skripte oben in der Liste anzuzeigen.
- Ungespeicherte Änderungen: Wählen Sie Nur geänderte in der Drop-down-Liste Alle Typen außer eingebettete aus, um nur Skripte anzuzeigen, die ungespeicherte Änderungen haben.
- Verwendung: Wählen Sie In Verwendung oder Keine bekannte Verwendung in der Dropdown-Liste Alle Verwendungen aus, um nur Skripte mit oder ohne Verwendung anzuzeigen.
Sie können Skripte, die Sie häufig verwenden, als Favoriten markieren, indem Sie neben dem Skriptnamen auf das Sternchen klicken. Danach können Sie die Favoriten an den Tabellenanfang bewegen, indem Sie auf das Icon in der Tabellenkopfzeile klicken. Wenn das Icon aktiviert ist, werden die Favoriten immer oben in der Tabelle angezeigt, auch dann, wenn das Skript nicht zu den anwendeten Filtern im Suchfeld oder zum ausgewählten Skripttyp passt.
Arbeiten mit Skripten
Sie können für Skripte folgende Aktionen ausführen:
- Neues Skript erstellen: Klicken Sie über der Liste der Skripte auf den Button Neues Skript. Wählen Sie den Skripttyp und geben Sie einen eindeutigen Namen für das Skript ein. Siehe Verfügbare Einstellungen für Skripte. Über den Ablegebereich können Sie Skriptinhalt aus einer Datei importieren. Wenn das neue Skript einem vorhandenen Skript ähnelt, können Sie eine Kopie des Skriptes erstellen, indem Sie auf das Icon Duplizieren klicken.
- Skriptnamen oder -typ bearbeiten: Klicken Sie auf das Icon Bearbeiten, um den Typ oder den Namen eines Skripts zu ändern.
- Quellcode eines Skripts bearbeiten: Klicken Sie auf die Zeile eines Skripts, um den Quellcode zu öffnen. Der Quellcode kann direkt bearbeitet werden. Details zu Usability-Funktionen finden Sie in Verwenden der Funktionen des Skripteditors. Die folgenden Aktionen gelten für das Skript als Ganzes:
- Änderungen speichern: Speichern Sie Ihre Änderungen. Sie können die Aktion Alle Änderungen speichern wählen, um alle geänderten Skripte, die durch einen pinken Namen und ein Sternchen gekennzeichnet sind, gleichzeitig zu speichern.
- Änderungen verwerfen: Machen Sie Ihre Änderungen rückgängig.
- Importieren: Ersetzen Sie das Skript durch den Inhalt einer Datei.
- Exportieren: Speichern Sie das Skript in eine Datei.
- Skript löschen: Sie können ein Skript löschen, indem Sie auf das Icon Löschen klicken. Wenn das Skript schon in Verwendung ist, beispielsweise weil es einer Aktion zugewiesen ist, wird eine Fehlermeldung angezeigt und Sie können das Skript nicht löschen.
Erweiterte Aufgaben
Verwenden der 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
-
Vollbild: Öffnen Sie den Vollbildmodus, sodass das gesamte Fenster den Quellcode zeigt. Klicken Sie auf Zurück, um den Vollbildmodus zu verlassen.
-
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
Sie können das aktuelle, noch nicht gespeicherte Skript mit der zuletzt gespeicherten Version des Skriptes vergleichen, indem Sie auf den Button Mit letzter gespeicherter Version vergleichen klicken. Die Änderungen werden in einer Ansicht mit beiden Skripten nebeneinander hervorgehoben.
Sie können auf den Button Verwendung klicken, um zu sehen, wo ein Skript verwendet wird. Im Popup-Fenster sind die Stellen aufgeführt, an denen das Skript referenziert wird, und Sie können über die Links zu den referenzierenden Objekten springen.
Wenn jemand anderes das Skript, an dem Sie gerade arbeiten, speichert, wird eine rote Warnung über dem Editor angezeigt, und Sie können Ihre Änderungen mit der neusten Serverversion des Skriptes vergleichen.
Verwenden von Spezialaktionen
Je nach Skripttyp wird in der linken oberen Ecke des Skripteditors ein zusätzlicher Button mit einer Spezialaktion angezeigt. Aktuell sind Spezialaktionen für folgende Skripttypen verfügbar:
-
Integration: Öffnet die Konfigurationsseite des Webhooks, zu dem das Skript gehört. Siehe TODO Webhooks.
-
Task: Erzeugt einen Task mit dem aktuellen Task-Skript und führt ihn aus. Siehe TODO Tasks.
hinweisAuf Entwicklungssystemen (System-Property
cmas-core-shared
,system.flavour
aufdev
gesetzt) können Sie ein Task direkt über das Inline-Icon Task ausführen in der Zeile des Task-Skriptes starten.
Verwalten von Workflow-Skripten
Zur Verwendung von Skripten im Workflow können Sie die Skripte entweder direkt im Workflow speichern oder ein auf der Seite Skripte gespeichertes Skript aus dem Workflow referenzieren. Im Workflow gespeicherte Skripte können auf der Seite Skripte angezeigt und durchsucht werden, indem Sie im Typfilter die Option In Workflow eingebettet auswählen.
Bei eingebetteten Skripten wird nur die installierte Version des Skriptes angezeigt, d. h. wenn das Skript in einer gespeicherten, aber noch nicht installierten Workflow-Version geändert wurde, wird der Skriptinhalt, der zur zuletzt installierten Version angezeigt.
Vorteile vom Speichern von Workflow-Skripten auf der Seite Skripte:
- Sie können dasselbe Skript an mehreren Stellen verwenden, z. B. in unterschiedlichen Aktivitäten oder Workflows.
- Sie können das Skript ändern, ohne den Workflow installieren zu müssen, da die Änderungen auf der Seite Skripte sofort nach dem Speichern wirksam werden.
Vorteile vom Speichern von Workflow-Skripten im Workflow:
- Sie müssen nicht zwischen den Seiten wechseln, wenn Sie an einem Workflow arbeiten.
- Die Skripte sind versioniert, d. h. jede Workflow-Version enthält das mit dieser Version installierte Skript.
Wenn der Entwicklungsmodus, siehe TODO Deployment-Modus, auf der Seite Workflows ausgewählt ist, können Sie auf der Seite Skripte auch die Skripte editieren, die nur im Workflow gespeichert sind. Die Änderungen werden sofort wirksam und es gibt keine Versionierung.
Gehen Sie folgendermaßen vor, um ein Workflow-Skript auf der Seite Skripte zu speichern:
- Erstellen Sie ein Skript des Typs Workflow auf der Seite Skripte.
- Referenzieren Sie das Skript an der gewünschten Stelle im Workflow.
Optional können Sie Parameter an das Skript übergeben, beispielsweise den Vorgang oder Hauptkontakt:
scriptExecutionService.execute("myscript.groovy")
Über die Variabledef params = [ "myticket": workflowApi.ticket ]
scriptExecutionService.execute("myscript.groovy", params)myticket
kann das Skript danach auf den Vorgang zugreifen. Alternativ können Sie den Vorgang mit Methoden des ObjektsworkflowApi
direkt im Skript abrufen.
Weitere Informationen über eingebettete Skripte finden Sie auf der Seite des jeweiligen Workflow-Elements, siehe TODO Workflows.