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:
Suche-Aktionen werden im Admin Tool definiert. Je nach Typ der Suche-Aktion müssen Sie zur Implementierung zwei oder drei Schritte ausführen.
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.
Abbildung 344: ConSol CM Admin Tool - Definieren einer neuen Suche-Aktion für Tickets
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.
Abbildung 345: ConSol CM Admin Tool - Definieren einer Suche-Aktion für Ressourcen
Abbildung 346: ConSol CM Admin Tool - Zuweisen einer Suche-Aktion zu einem Ressourcentyp
Abbildung 347: ConSol CM Web Client - Suche-Aktion für Ressourcen, 1
Abbildung 348: ConSol CM Web Client - Suche-Aktion für Ressourcen, 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.
Abbildung 349: ConSol CM Admin Tool - Definieren einer Suche-Aktion für Units
Abbildung 350: ConSol CM Admin Tool - Definieren einer Suche-Bedingung
Abbildung 351: ConSol CM Admin Tool - Zuweisen einer Suche-Aktion zu einem Kontaktobjekt innerhalb einer Kundengruppe
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
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
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.
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.
Code-Beispiel 52: Negatives Feedback
Abbildung 356: ConSol CM Web Client - Fehlermeldung nach Suche-Aktion