Die Erstellung und anschließende Freigabe von ALG-Clientfiltern erfolgt im Modus „Bearbeitung“ des Projektes im Administration-Center auf der Seite „Adressenzuweisung“. Erstellt wird ein ALG-Clientfilter mit Hilfe eines speziellen Editors. Er ist in der linken Tabellenansicht „Abarbeitungsliste“ über einen neuen Toolbutton („zusätzlichen Clientfilter definieren“) erreichbar.
Hinweis: Die Screenshots stammen von einer älteren Version von WINcontact.
Hinweis: Die Screenshots stammen von einer älteren Version von WINcontact.
Dieses Beispiel-Filterskript führt im Client zu folgendem Dialogfenster:
Mit Hilfe dieses Editors können sehr leicht beliebige Filterdialoge zusammengestellt und unter einem eindeutigen Namen in der WINcontact-Datenbank abgespeichert werden. Das geschieht auf die Weise, dass man auf der linken Seite Parameter (oder ganze, bereits vordefinierte Parameterblöcke) auswählt und anschließend in das Parameterfenster übernimmt. Ungleiche Parameter (ausschlaggebend ist dabei der Feldname und nicht der Bezeichner) werden im Filter „und“-verknüpft, während gleiche Parameter (Felder) immer mit dem logischen Operator „oder“ verknüpft werden (im obigen Beispiel sind das die beiden Felder ASTATUS1). Als Vorgaben können u. a. Wortlisten, Ergebnisse von SQL-Abfragen, aber auch Datums-, Zahlen- und PLZ-Bereiche Verwendung finden. Auch „selbstlernende“ Klappboxen für Parameter sind möglich, in dem man als Vorgabe lediglich ein „Sternchen“ („*“) einträgt. In diesem Fall werden alle in dem entsprechenden Feld der betreffenden Datenbanktabelle enthaltenen Werte je einmal in die Vorgabeliste geschrieben (entspricht SELECT DISTINCT {Feldname} FROM {Fragenkatalogtabelle} ORDER BY {Feldname}). Jeder später neu hinzu gekommene Eintrag wird (soweit er vorher noch nicht vorhanden war) automatisch in der Vorgabeliste ergänzt.
Hinweis
Auf der rechten Seite, dem Parameterteil, werden alle Parameter gesammelt und können dort umbenannt, umsortiert und mit Vorgabelisten versehen werden. Im „Hintergrund“ entsteht dabei ein Filterskript, der auf der entsprechend benannten Seite eingesehen und auch per Hand editiert werden kann. Die Funktionen dafür finden sie im Kontextmenü.
Zum Abschluß noch folgender wichtiger Hinweis: Jeder Filter, der im Mandanten (d.h. projektübergreifend) oder im aktuellen Projekt Verwendung finden soll, muss
- unter einem eindeutigen Namen gespeichert und
- explizit freigegeben werden.
Die dafür notwendigen Funktionen befinden sich in der Toolbar des Editors.
Vorgabewerte und Vorgabelisten-Syntax
Jedes Parameterfeld kann mit Vorgaben ausgestattet werden. Sie sind Bestandteil des Filterskriptes und können entweder direkt in das Skript oder – besser – über das Vorgabe-eingabefenster auf der Parameterseite des Editors (Kontextmenü des zuvor ausgewählten Parameters) eingegeben werden. Die Syntax hängt dabei vom Datentyp des entsprechenden Parameters ab.
a) für alle Datentypen
optional steht am Anfang der Operator, andernfalls wird immer "=" verwendet
b) Zeichenketten (strings)
* | alle bereits in dem entsprechenden Feld verwendete Werte als Auswahlliste |
a,b,c,d,e | feste Werte in einer Auswahlliste |
SELECT {FELDNAME} FROM {TABELLE} | Ergebnismenge einer SQL-Anweisung als Auswahlliste |
c) Datumsfeld
* | aktuelles Datum |
01.02.2011 | fester Datumswert |
*+50 | Formel (hier heutiges Datum + 50 Tage) |
d) Numerische Felder
1000 | fester Zahlenwert |
e) Postleitzahl
02763 | fester Wert |
f) ja / nein keine festen Vorgaben möglich
g) Datums-, Zahlen- und PLZ-Bereiche
Um Bereiche (die durch jeweils zwei Felder repräsentiert werden) mit Vorgaben zu füllen, muß zwischen den einzelnen Vorgaben ein Komma gesetzt werden:
Datum | *+1,*+14 | Morgiges Datum im Feld1, Morgen+13 Tage in Feld2 |
PLZ | 02,03 | PLZ-Bereich von 02xxx-03xxx |
Zahl | 50,150 | Zahlen zwischen 50 und 150 |
Beispiel für einen Filterskript mit Vorgabewerten
{MANDANT}..ADRESSEN...LAND|LKZ|D,A,CH
{MANDANT}..ADRESSEN...PLZ|Postleitzahl|
{MANDANT}..ADRESSEN...ORT|Ort|*
{MANDANT}..ADRESSEN...STRASSE|Straße|
{PROJEKT}..ALG...LAST_STATUS|Kontaktstatus|*
{PROJEKT}..ALG...LAST_DATUM|Letzter Kontakt|
{MANDANT}..ADRESSEN...ASTATUS1|1.Statusfeld|SELECT DISTINCT ASTATUS2 FROM ADRESSEN
Speichern des Filterskripts und Freigabe für das Clientprogramm
Jeder Clientfilter kann unter einem eigenen Namen in der WINcontact – Datenbank gespeichert werden. Er ist dann anschließend in der Auswahlliste der Skript-Klappbox verfügbar und kann daraus auch wieder in den Editor geladen werden. Außerdem lässt er sich nach der Freigabe für das aktuelle Projekt unter diesem Namen vom Callagenten im Clientprogramm verwenden.
Damit ein oder mehrere Filter im aktuellen Projekt im Clientprogramm verwendet werden können, müssen sie zuvor freigegeben werden. Dazu dient der Freigabedialog im ALG-Filterskripteditor. Seine Funktionsweise ist im Wesentlichen selbsterklärend:
Entwurf komplexer Filterskripte
Für die meisten praktischen Anwendungen dürften die unter „Favoriten“ aufgelisteten Parameter und Parameterblöcke ausreichen. Für spezielle Zwecke können aber im Prinzip alle in WINcontact verfügbaren Felder von Tabellen, die über eine ADRESSEN_ID mit der Tabelle ADRESSEN im Mandanten eindeutig verknüpft sind, verwendet werden.
Dazu gehören u. a. alle Zusatztabellen sowie die Abarbeitungslisten, die Kontakthistorien und die Fragenkataloge aller im Mandant vorhandener Projekte.
Auf der Seite „Skript“ kann auch direkt eine SQL-Anweisung, die eine Liste von gültigen ADRESSENID’s zurückliefert, als „Filter“ eingegeben werden. Da in diesem Fall der Callagent keine Parameter mit Werten belegen muss, spricht man von einem „parameterlosen Filterskript“. Denkbare Anwendungsfälle gibt es dafür sehr viele, z. B.:
- Nur Adressen ziehen, für die es in den Stammdaten keine E-Mailadresse gibt
- Nur Adressen ziehen, deren Telefonnummern nicht auf einer externen Telefonnummernliste stehen (z. B. eine vom Kunden erworbene Robinsonliste)
- Nur Adressen ziehen, die in einem anderen Projekt von einem ganz bestimmten Callagenten bearbeitet worden sind
Folgende, betont einfach gehaltene Abfrage realisiert einen Filter, der nur Berliner Adressen „durchlässt“. Wird er vom Callagenten ausgewählt, kann sein Clientprogramm nur noch Adressen aus Berlin ziehen.
WHERE ORT='Berlin'
Wichtig ist nur, dass die Abfrage eine Liste von gültigen ADRESSENID’s zurückliefert. Ansonsten kann die SELECT-Anweisung beliebig komplex sein (z. B. Joins über eine Vielzahl von Tabellen).
Keine Kommentare:
Kommentar veröffentlichen