Action Framework - Suche-Aktionen

Einführung in Suche-Aktionen

Es ist möglich, Aktionen für Suchergebnisse zu definieren. Diese Aktionen werden so ähnlich dargestellt wie Workflow-Aktivitäten. Sie beziehen sich auf die Ergebnislisten mit:

Suche-Aktionen werden für den gesamten Satz an Suchergebnissen ausgeführt. Sie können Suche-Aktionen konfigurieren, um den ConSol CM-Bearbeitern verschiedene Massenaktionen anzubieten, z. B. Zuweisen aller Tickets in der Ergebnisliste zum aktuellen Bearbeiter (siehe folgende Abbildung), Senden einer bestimmten E-Mail an alle Kunden in der Ergebnisliste, oder Erstellen eines Wartungstickets für alle PCs (Ressourcen) in der Ergebnisliste.

Abbildung 342: ConSol CM Web Client - Suche-Aktionen für Tickets

Eine Suche-Aktion (Suchergebnis-Aktion) wird im Web Client nur angezeigt, wenn

Jede Suche-Aktion wird auf Grundlage von Admin-Tool-Skripten der folgenden Skripttypen implementiert.

Beachten Sie, dass Suche-Aktionen für folgende Mengen durchgeführt werden können:

a) nur für den momentan angezeigten Teil der Ergebnisliste, z. B. für 20 von 100 Ergebnissen

ODER

b) für die gesamte Ergebnisliste, z. B. alle 100 Ergebnisse

Das Verhalten der Suche-Aktion hängt von Folgendem ab:

Konfigurieren von Suche-Aktionen mit dem Admin Tool

Suche-Aktionen werden im Admin Tool definiert. Je nach Typ der Suche-Aktion müssen Sie zur Implementierung zwei oder drei Schritte ausführen.

Für die Implementierung einer Suche-Aktion für Tickets durchzuführende Schritte

  1. Definieren und schreiben Sie das Admin-Tool-Skript
  2. Abbildung 343: ConSol CM Admin Tool - Skript für Ticket Suche-Aktion

    Beispielskript

    // Assign all tickets in the result list to the current engineer

    import com.consol.cmas.core.server.service.action.PostActionType

    import com.consol.cmas.common.model.ticket.Ticket

     

    def engineer = engineerService.getCurrent();

    tickets.each { ticket ->

    ticket.setEngineer(engineer);

    };

    return actionScriptResultFactory.getPostAction("success", "cmweb.search.assigned").withRefreshContent();

    Code-Beispiel 47: Suche-Aktionsskript für Tickets

    Eine detaillierte Erklärung über das Schreiben von Skripten für das ConSol CM Action Framework finden Sie in Skripte für das Action Framework.

  3. Definieren Sie die Suche-Aktion im Navigationselement Suche-Aktionen der Navigationsgruppe Tickets. Dabei wird das Ausführungsskript für die Suche-Aktion zugewiesen. Optional wird auch ein Bedingungsskript zugewiesen. Sie können den lokalisierten Begriff für die Ticketaktion über den Button Lokalisieren eingeben. Eine detaillierte Beschreibung des Lokalisierungsmechanismus finden Sie im Abschnitt Lokalisierung von Objekten allgemein, Typ 1.

    Abbildung 344: ConSol CM Admin Tool - Definieren einer neuen Suche-Aktion für Tickets

Für die Implementierung einer Suche-Aktion für Ressourcen durchzuführende Schritte

  1. Definieren und schreiben Sie das Admin-Tool-Skript
  2. Beispielskript, mit dem das nächste Wartungsdatum aller gefundenen HP-Drucker auf ein Datum in zwei Wochen gesetzt wird:

    // Schedule maintenance date for all selected HP printers to a date in two weeks from today

     

    import groovy.time.TimeCategory

    import com.consol.cmas.core.server.service.action.PostActionType

     

    println 'RUNNING Search action resources script!'

     

    def now = new Date()

     

    use(TimeCategory) {

    nextMaintenanceDate = now + 2.weeks

    }

     

    resources.each { res ->

    res.setFieldValue("HP_Printer_Fields_basic", "NextMaintenanceDate", nextMaintenanceDate)

    }

     

    return actionScriptResultFactory.getPostAction(PostActionType.SUCCESS, "cmweb.search.assigned").withRefreshContent();

    Code-Beispiel 48: Suche-Aktionsskript für Ressourcen

    Eine detaillierte Erklärung über das Schreiben von Skripten für das ConSol CM Action Framework finden Sie in Skripte für das Action Framework.

  3. Definieren Sie die Suche-Aktion im Navigationselement Aktionen der Navigationsgruppe Ressourcen. Dabei wird das Ausführungsskript für die Suche-Aktion zugewiesen. Optional wird auch ein Bedingungsskript zugewiesen. Sie können den lokalisierten Begriff für die Ressourcenaktion über den Button Lokalisieren eingeben. Eine detaillierte Beschreibung des Lokalisierungsmechanismus finden Sie im Abschnitt Lokalisierung von Objekten allgemein, Typ 1.
  4. Abbildung 345: ConSol CM Admin Tool - Definieren einer Suche-Aktion für Ressourcen

  5. Weisen Sie die Aktion einem oder mehreren Ressourcentypen zu (Navigationsgruppe Ressourcen, Navigationselement Datenmodelle, Tab Suche-Aktionen jedes einzelnen Ressourcentyps).

    Abbildung 346: ConSol CM Admin Tool - Zuweisen einer Suche-Aktion zu einem Ressourcentyp

  6. Überprüfen Sie im Web Client, dass die Aktion funktioniert.

    Abbildung 347: ConSol CM Web Client - Suche-Aktion für Ressourcen, 1

    Abbildung 348: ConSol CM Web Client - Suche-Aktion für Ressourcen, 2

Für die Implementierung einer Suche-Aktion für Datenobjekte (= Units = Kunden) durchzuführende Schritte

  1. Definieren und schreiben Sie das Admin-Tool-Skript
  2. Beispiel für ein Aktionsskript, mit dem für jeden Kontakt in der Ergebnisliste ein Ticket erstellt wird:

    // For all contacts in the result set, a new ticket in the queue Service Desk will be created

    import com.consol.cmas.core.server.service.action.PostActionType

    import com.consol.cmas.common.model.ticket.Ticket

    import com.consol.cmas.common.model.customfield.Unit

    import com.consol.cmas.common.model.resource.*

    import com.consol.cmas.common.service.resource.*

    import com.consol.cmas.common.model.ticket.Queue

    import com.consol.cmas.common.model.resource.meta.*

    import com.consol.cmas.core.server.service.action.*

    import groovy.time.TimeCategory

     

    println 'Search Result Action Script CreateAnSDTicketForAllSelectedContacts STARTED ... '

    // deadline is a required field in Service Desk tickets!

    def now = new Date()

    def deadline

    use(TimeCategory) {

    deadline = now + 2.weeks

    }

     

    Queue qu = queueService.getByName("ServiceDesk")

    units.each{ cont ->

    def cont_name = cont.customer_name

    println 'Customer name is now : ' + cont_name

    Ticket newtic = new Ticket()

    newtic.setQueue(qu)

    newtic.set("serviceDesk_fields.desiredDeadline", deadline)

    newtic.setSubject("New Ticket due to Search Result for customer" + cont_name)

    newtic.set("helpdesk_standard.priority","low")

    ticketService.createWithUnit(newtic,cont)

    println 'New Ticket created for customer ' + cont_name

    }

    return actionScriptResultFactory.getPostAction("success", "cmweb.search.assigned").withRefreshContent();

    Code-Beispiel 49: Suche-Aktionsskript für Units

    Stellen Sie sicher, dass ...

    Beispiel für ein Bedingungsskript, mit dem die Suche-Aktion nur angezeigt wird, wenn die Liste mehr als fünf Einträge enthält.

    if (units.size() >= 5){

    return true

    } else {

    return false

    }

    Code-Beispiel 50: Suche-Bedingungsskript für Units

    Eine detaillierte Erklärung über das Schreiben von Skripten für das ConSol CM Action Framework finden Sie in Skripte für das Action Framework.

  3. Definieren Sie die Suche-Aktion im Navigationselement Aktionen der Navigationsgruppe Kunden. Dabei wird das Ausführungsskript für die Suche-Aktion zugewiesen. Optional wird auch ein Bedingungsskript zugewiesen. Sie können den lokalisierten Begriff für die Kundenaktion über den Button Lokalisieren eingeben. Eine detaillierte Beschreibung des Lokalisierungsmechanismus finden Sie im Abschnitt Lokalisierung von Objekten allgemein, Typ 1.

    Abbildung 349: ConSol CM Admin Tool - Definieren einer Suche-Aktion für Units

  4. Fügen Sie das Bedingungsskript hinzu.
  5. Abbildung 350: ConSol CM Admin Tool - Definieren einer Suche-Bedingung

  6. Weisen Sie die Aktion einer oder mehreren Kundengruppen zu (Navigationsgruppe Kunden, Navigationselement Kundengruppen, Tab Suche-Aktionen jeder einzelnen Kundengruppe). Weisen Sie die Aktionen den Kontakten (Kontakt-Suche-Aktionen) und/oder Firmen (Firmen-Suche-Aktionen) dieser Kundengruppe zu.
    Beachten Sie, dass in der Tabelle sowohl die Aktions- als auch die Bedingungsskripte angeboten werden.

    Abbildung 351: ConSol CM Admin Tool - Zuweisen einer Suche-Aktion zu einem Kontaktobjekt innerhalb einer Kundengruppe

  7. Überprüfen Sie im Web Client, dass die Aktion funktioniert.

    Abbildung 352: ConSol CM Web Client - Suche-Aktion für Units (hier: Kontakte), 1

    Abbildung 353: ConSol CM Web Client - Suche-Aktion für Units (hier: Kontakte), 2

    Abbildung 354: ConSol CM Web Client - Suche-Aktion für Units (hier: Kontakte), 3

Tipps und Tricks für Admin-Tool-Skripte mit Suche-Aktionen

Implizit verfügbare Objekte in Admin-Tool-Skripten für Suche-Aktionen

Einige Objekte sind implizit in Admin-Tool-Skripten verfügbar, d. h. Sie müssen weder bestimmte Groovy-Klassen importieren, noch das Objekt der Klasse instanziieren.

Implizit (ohne expliziten Import oder Instanziierung) verfügbare Objekte in Admin-Tool-Skripten:

Alle Suche-Aktionsskripte

Skripttypen Ticket Suche-Aktion und Ticket Suche-Bedingung

Skripttypen Ressourcen Suche-Aktion und Ressourcen Suche-Bedingung

Skripttypen Datenobjekt Suche-Aktion und Datenobjekt Suche-Bedingung

Der Ergebnissatz in Admin-Tool-Skripten für Suche-Aktionen

Die Suche-Aktion kann für unterschiedliche Interpretationen des Ergebnissatzes ausgeführt werden. Das Verhalten der Suche-Aktion hängt von der Implementierung des Admin-Tool-Skripts ab.

Die Suche-Aktion kann durchgeführt werden:

a) nur für den momentan im Web Client angezeigten Teil der Ergebnisliste, z. B. für 20 von 100 Ergebnissen. Dies hängt also von der vom Bearbeiter ausgewählten Anzahl der Treffer pro Seite und, sofern die Zeilenauswahl aktiviert ist, von den vom Bearbeiter ausgewählten Zeilen ab (siehe Abschnitt Seitenanpassung, enableRowSelection).

Im Admin-Tool-Skript wird dies durch die Liste der implizit verfügbaren Objekte dargestellt, d. h. Ressourcen, Tickets oder Units

ODER

b) für die gesamte Ergebnisliste, z. B. alle 100 Ergebnisse Dies kann durch die Verwendung des Objekts criteria erreicht werden.

Der Rückgabecode in Admin-Tool-Skripten für Suche-Aktionen

Verwenden Sie die allgemeine Feedback-Komponente, um die neuen PostActionTypes zu verarbeiten: SUCCESS und FAILURE.

Beispiel für positives Feedback:

return actionScriptResultFactory.getPostAction(PostActionType.SUCCESS, "cmweb.search.assigned").withRefreshContent();

Code-Beispiel 51: Positives Feedback

Eine detaillierte Erklärung über das Schreiben von Skripten für das ConSol CM Action Framework finden Sie in Skripte für das Action Framework.

Abbildung 355: ConSol CM Web Client - Erfolgsmeldung nach Suche-Aktion

Beispiel für negatives Feedback:

Eine detaillierte Erklärung über das Schreiben von Skripten für das ConSol CM Action Framework finden Sie in Skripte für das Action Framework.

return actionScriptResultFactory.getPostAction(PostActionType.FAILURE, "cmweb.search.assigned").withRefreshContent();

Code-Beispiel 52: Negatives Feedback

Abbildung 356: ConSol CM Web Client - Fehlermeldung nach Suche-Aktion