Montag, 10. Dezember 2018

Schwellwertskripte - Funktion und Einsatz

Einsatz von Schwellwertskripten

In WINcontact versteht man unter Schwellwerten bestimmte, vom Supervisor oder Administrator festgelegte projektabhängige Kenngrößen, deren Überschreitung zu einer automatischen Benachrichtigung von Call-Center-Mitarbeitern über das interne Messagesystem führt.  Man kann mit ihrer Hilfe beispielsweise bestimmte, auf ein Projekt bezogene Steuerungsaufgaben erledigen, in dem man die dafür zuständigen Mitarbeiter darüber informiert.  Dazu ein Beispiel. Manchmal möchte ein Auftraggeber nur eine ganz bestimmte Anzahl (z. B. 1000) von Nettokontakten im Call-Center bestellen. In solch einem Fall wäre es natürlich nützlich, dass in dem Augenblick, wenn genau diese Anzahl erreicht wird, alle am entsprechenden Projekt arbeitenden Callagenten automatisch über diesen Sachverhalt informiert werden. Sie können sich dann abmelden (wenn das nicht schon vom  Schwellwertskript selbst erledigt wird) und sich anschließend einem anderen Projekt zuwenden.
  • Weitere Anwendungsfälle sind z. B. Benachrichtigungen wenn
  • die Anzahl der noch freien Adressen in der ALG einen Grenzwert unterschreitet und der Administrator / Supervisor unbedingt neue Adressen der Abarbeitungsliste zuweisen muss
  • ein bestimmter Prozentsatz aller in der ALG vorhandenen Adressen erledigt ist
  • die Zahl der an einem Tag bearbeiteten Adressen einen bestimmten Wert übersteigt
Da das Kriterium auch durch eine SQL-Anweisung vorgegeben werden kann, lassen sich die Schwellwertbedingungen sehr flexibel  den jeweils notwendigen Anforderungen anpassen. Für die Zukunft ist auch das Auslösen von Events geplant, was die Einsatzmöglichkeiten dieser Technik weiter erhöhen wird. 
Wie funktionieren Schwellwertskripte?
Intern ist ein Schwellwertskript – wie bereits erwähnt -  nichts weiter als eine spezielle SQL-Anweisung, die in einem gewissen Zeitregime ausgeführt wird und die entweder eine „Ja“ oder „Nein“-Antwort zurückgibt.  „Ja“ bedeutet dabei, dass der in dieser Anweisung definierte Schwellwert erreicht bzw.  je nach logischem Vergleichsoperator über- oder unterschritten ist. Als Reaktion darauf wird automatisch eine Mitteilung über das WINcontact –Messagesystem an den an dieser Information interessierten Personenkreis abgesetzt. Außerdem muß man noch wissen, dass um den SQL-Server nicht über Gebühr zu belasten eine Schwellwertabfrage nur einmal pro Minute ausgeführt wird, d. h. die Zeitauflösung liegt bei einer Minute. Deshalb wird als Vergleichsoperator auch kein „=“, sondern nur „=“  und „=“ angeboten. Es können aber pro Projekt durchaus mehrere Schwellwerte aktiv sein.
Schwellwertskript-Editor
Zur Entwicklung und Aktivierung von Schwellwertskripten wird im Administration-Center im Kontextmenü eines Projektes im Projektbaum der Schwellwertskript-Editor angeboten.  Er besitzt folgenden Aufbau:
Eingetragen als Beispiel ist der Skript „Abmeldeskript 1000 Nettokontakte erreicht“. Er führt dazu, dass beim Überschreiten der 1000-Netto-Kontakte-Grenze alle am Projekt beteiligten Callagenten nach Schließen ihres letzten Kontaktes vom Projekt automatisch abgemeldet werden.
Schauen wir uns jetzt einmal diesen Editor etwas genauer an. Im oberen Teil befindet sich der Bereich, in dem die einzelnen Bestandteile des Skriptes, die seine Funktionsweise definieren, erstellt werden können. Das sind im Einzelnen:
  • Name des Skriptes
  • Betreff und Text der Nachricht, die gesendet werden soll
  • Der bzw. die Nachrichtenempfänger (nur in WINcontact registrierte Mitarbeiter)
  • SQL-Skript für die Schwellwertabfrage. Darf nur 1  ("ja") oder  0  ("nein") zurückliefern.
  • Spezielle Optionen
Der SQL-Skript kann entweder über den in der Maske enthaltenen Wizard oder, wenn dessen Funktionalität nicht ausreicht, direkt in den auf einem weiteren Tab liegenden SQL-Editor eingetragen werden (wobei die Konvention, dass die Abfrage nur „0“ oder „1“ zurückliefern darf, eingehalten werden muss).
Fertige Skripte werden im unteren Teil tabellarisch aufgelistet. Damit sie auch ausgeführt werden, muss die Eigenschaft „Aktiv“ auf „Wahr“ gesetzt sein. Die entsprechende Funktion dafür finden  Sie im Kontextmenü des Listfensters soweit das entsprechende Skript ausgewählt ist.
Erstellen eines Skripts mit dem Wizard
Standardskripte lassen sich schnell mit dem im Schwellwerteditor eingebauten Wizard erstellen. Er befindet sich im Fensterbereich „Schwellwert“ und besteht aus zwei durch logische Operatoren verknüpfte Auswahlkriterien, die aus Klappboxen ausgewählt werden können.
Diese Kriterien sind:
Kriterium 1:
  • Anzahl der Adressen im Projekt
  • Anzahl der erledigten Adressen im Projekt
  • Anzahl der nichterledigten freigegebenen Adressen im Projekt
  • Anzahl der freigegebenen Adressen ohne Kontakt im Projekt
  • Anzahl der Adressen im Projekt mit Status Anwahlversuch
  • Anzahl der Netto-Kontakte im Projekt
  • Anzahl der Adressen im Projekt
Kriterium 2:
  • Anzahl der Adressen im Projekt
  • Anzahl der erledigten Adressen im Projekt
  • Anzahl der nichterledigten freigegebenen Adressen im Projekt
  • Anzahl der freigegebenen Adressen ohne Kontakt im Projekt
  • Anzahl der Adressen im Projekt mit Status Anwahlversuch
  • Anzahl der Netto-Kontakte im Projekt
  • Anzahl der Adressen im Projekt
  • -------------------------------------------------------------
  • Fester Vergleichswert
Der Schwellwert ergibt sich durch eine (sinnvolle) Verknüpfung der beiden Kriterien durch einen der logischen Operatoren  >=, =;, <=, <>; . Wenn die Bedingung erfüllt ist, wird der Schwellwert „ausgelöst“ und die dazugehörige Nachricht (Betreff und Text) an die aus der Klappbox ausgewählten Empfänger  (gesammelt in der darunter liegenden Listbox) abgesetzt. Wenn gewünscht, kann diese interne Message auch noch mit einem der beiden Optionen
  • Alle Agenten automatisch aus Projekt abmelden
  • Projekt sperren
ergänzt werden.
SQL-Anweisungen als Schwellwertskript
Mit dem Wizard lassen sich nur einige wenige Standardbedingungen verknüpfen. In der Praxis werden aber meist ganz spezielle und oft vom bearbeiteten Projekt selbst abhängige Schwellwertbedingungen benötigt. Solche können prinzipiell im Bereich „Schwellwert“ (Tab „SQL“)  selbst entwickelt werden (es empfiehlt sich aber – besonders bei komplexeren Aufgabenstellungen – den SQL-Skript im SQL-Manager anzulegen und ihn nach dem Test über die Zwischenablage genau hier einzufügen).
Ein Schwellwertskript, formuliert in SQL, hat prinzipiell folgenden Aufbau:
IF {Bedingung} SELECT 1 ELSE SELECT 0
d. h. wenn die Bedingung erfüllt ist, wird der Wert 1, ansonsten der Wert 0 zurückgegeben. Eine derartige  Bedingung kann auf vielfältige Art und Weise formuliert werden. Dazu folgende Möglichkeiten:
1. Vergleich mit einem festen Wert
Beispiel:
 ((SELECT COUNT (*) FROM ALGKONT WHERE NETTO=1)>=500)
Der linke Teil des Vergleichs liefert die Anzahl der in der Kontakttabelle registrierten Nettokontakte zurück. Diese Zahl wird über den Operator ">=" mit der Zahl 500 verglichen. Sobald die Zahl der Netto-Kontakte 500 erreicht, ergibt die IF-Anweisung "1".
2. Vergleich mit einem Wert aus einer SQL-Abfrage
Sie können auch das (numerische) Ergebnis zweier SELECT-Abfragen miteinander vergleichen:
 (({Erste "SELECT COUNT (*)"-Abfrage}) Vergleichsoperator {Zweite "SELECT COUNT(*)"-Abfrage})
Beispiel:
 ((SELECT COUNT (*) FROM ALGKONT WHERE NETTO=1)
=
((SELECT COUNT (*) FROM ALGKONT WHERE BRUTTO=1)*0.2))
Der Schwellwert wird erreicht, sobald die Anzahl der Netto-Kontakte 20% der Bruttokontakte beträgt oder übersteigt.
In den SQL-Anweisungen können auch Relativbezüge auf Tabellen in Form der Variablen
{PR}  (entspricht im SQL-Manager {PROJEKT}
{MA}  (entspricht im SQL-Manager {MANDANT}
verwendet werden. Das ist besonders dann zu beachten, wenn die Abfragen im SQL-Manager entwickelt und erst danach in den Schwellwertskripteditor übernommen werden. Auf diese Weise lassen sich dann leicht wiederverwendbare Schwellwertskripte erstellen, die auch in anderen Projekten und Mandanten funktionieren. 
Dazu folgendes Beispiel:
Der Supervisor soll benachrichtigt werden, sobald 1000 Nettokontakte generiert sind
Kriterium1:          Anzahl der Netto-Kontakte
Vergleichsoperator:   =
Kriterium2:          fester Vergleichswert  [1000]
Skript:
IF ((SELECT COUNT(*) FROM {PR}..ALGKont 
WHERE NETTO=1)=(1000)) 
SELECT 1 ELSE SELECT 0
Mit dem Button „Test“ im Schwellwertskripteditor können Sie jeweils erfahren, welchen Wert (1 oder 0) der gerade im Editor befindliche Skript zurückgibt. Damit läßt sich leicht überprüfen, ob die SQL-Anweisung zumindest syntaxmäßig richtig ist.
Nach der hier beschriebenen Methode können im Prinzip beliebig komplexe Schwellwertabfragen formuliert werden. Trotzdem sind folgende Punkte zu beachten:
  1. Schwellwertabfragen werden permanent jede Minute einmal auf dem SQL-Server ausgeführt. Um die Serverlast zu vermindern, sollten die Abfragen möglichst wenig den SQL-Server belasten (der ja noch einige wichtigere Dinge zu tun hat). 
  2. Schwellwerte werden nur abgefragt, wenn mindestens ein Agent im vom Schwellwert betroffenen Projekt angemeldet ist.
Aus diesen Gründen sollten Schwellwerte im Call-Center nicht allzu extensiv eingesetzt werden.

Keine Kommentare:

Kommentar veröffentlichen