Zusammenfassung:
Ab der SwyxWare v4.00 ist es möglich eigenen Skript Code in den Grafischen Skript Editor (GSE) einzufügen. Die Funktionalität des GSE steht Ihnen nur zur Verfügung, wenn Sie das Option Pack - Extended Call Routing lizensiert haben.
Dieser Artikel beschreibt wie man ein einfaches Anruf Logging in einer Datenbank (z.B. MS Access) implementiert.
Weitere Artikel dieser Serie:
- Eigener VBScript Code - Call Logging in Textdatei
- Eigener VBScript Code - Anruferüberprüfung in Datenbank
- Eigener VBScript Code - Auf Feiertag überprüfen
Information:
Installation der Beispielregeln
Laden Sie alle Beispielregeln über den unten angegebenen Link herunter und kopieren Sie die Datein in das Verzeichnis
c:\gse_demo
Um die Datei LogDB.rse in den Call Routing Manager (CRM) bzw. Grafischen Skript Editor (GSE) zu laden, gehen Sie bitte wie folgt vor:
- Starten Sie den Call Routing Manager.
- Klicken Sie auf Neu...
- Wählen Sie den Grafischen Skript Editor und klicken Sie auf Ok.
- Öffnen Sie das Menü Datei | Impotieren... im GSE.
- Wählen Sie die Datei LogDB.rse. Die Regel wird nun importiert und sieht wie folgt aus:
Grafischer Skript Editor
- Speichern Sie die Regel über das Menü Datei | Speichern.
- Schliessen Sie den GSE.
- Aktivieren Sie die neue Regel durch Verschieben in die rechte Liste im CRM.
Call Routing Manager
Wie das Skript funktioniert
Eigener Skriptcode kann nur in dem Regel Start Block hinzugefügt werden. Alle Konstanten, Variablen und Funktionen die Sie hier definieren stehen Ihnen in allen Blöcken dieses Skriptes zur Verfügung, z.B. im Auswerten Block. Bitte beachten Sie, dass der GSE dem finalen Skript das VBScript Statement option explicit hinzufügt. Dies hat zur Folge, dass Sie alle Variablen innerhalb des Skriptes vor der Benutzung definieren müssen.
Eigenschaften - Regel Start
Wie Sie in diesem Beispiel sehen können, wird innerhalb des Regel Start Blocks eine Funktion definiert, welche später innerhalb eines Variable setzen aufgerufen wird. Dies ist ein kleiner Trick: es ist in diesem Beispiel nicht unbedingt nötig, eine Variable zu setzen, jedoch ist dies ein guter Ort um eine Funktion aufzurufen.
Eigenschaften - Insert Call into DB
Die Funktion InsertCallIntoDB öffnet eine Verbindung zu einer Datenbank und fügt eine neuen Datensatz in die Tabelle call_logging ein. Und so sieht der Skriptcode aus:
- ' CursorTypeEnum Values
- Const adOpenForwardOnly = 0
- Const adOpenKeyset = 1
- Const adOpenDynamic = 2
- Const adOpenStatic = 3
- ' LockTypeEnum Values
- Const adLockReadOnly = 1
- Const adLockPessimistic = 2
- Const adLockOptimistic = 3
- Const adLockBatchOptimistic = 4
- ' CommandTypeEnum Values
- Const adCmdUnknown = &H8
- Const adCmdText = &H1
- Const adCmdTable = &H2
- Const adCmdStoredProc = &H4
- Function InsertCallIntoDB( ByVal callerID)
- Dim sDsn
- sDsn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
- "Data Source=c:\gse_demo\demo.mdb"
- ' open connection to database
- Dim db
- db = CreateObject("ADODB.Connection")
- db.Open(sDsn)
- ' open recordset
- Dim rs
- rs = CreateObject("ADODB.Recordset")
- rs.Open("call_logging", db, adOpenKeyset, _
- adLockOptimistic, adCmdTable)
- ' create new record
- rs.AddNew()
- rs("callerid") = callerID
- rs("date") = now
- rs.Update()
- rs.Close()
- rs = Nothing
- db.Close()
- db = Nothing
- End Function
Nachdem Sie diese Regel aktiviert haben werden alle ankommenden Rufe in der Datenbank protokolliert. Bitte beachten Sie, dass wir die Regel über den Aufgang Regel übersprungen verlassen. Dies ermöglicht es uns im Anschluss noch weitere Regeln in unserem Callrouting auszuführen.
Hinweise
- Alle Callrouting Skripte, und somit auch der eigene Skript Code, werden unter dem SwyxWare Service Accountausgeführt. Achten Sie also bitte darauf, dass dieser Account die nötigen Rechte hat, die Datei/Datenbank an dem gewünschten Ort zu bearbeiten.
- In diesem Beispiel wird eine MS Access Datenbank verwendet. Für Demonstrationszwecke ist diese durchaus geeignet, nicht jedoch für Produktionsumgebungen! Verwenden Sie in einer Produktionsumgebung ausschliesslich vollwertige Datenbank wie z.B. den MS SQL Server!
-
Das Skript in diesem Beispiel enthält um es übersichtlich zu halten, keine Fehlerbehandlung. Das heisst, wenn z.B. bei dem Zugriff auf die Datei/Datenbank ein Fehler auftritt, wird dieser nicht abgefangen, sondern führt statt dessen dazu, dass das Skript beendet wird, und der Ruf verloren geht. Sollten Sie das Server Tracing für SvrScript auf Info3 gesetzt haben, so wird die originale Fehlermeldung der Microsoft Script Engine dort protokolliert.
Um eine eigene Fehlerbehandlung einzufügen müssen Sie zunächst die Standard-Fehlerbehandlung der Script Engine ausschalten:
On Error Resume Next
Diese Zeile fügen Sie am Besten als erste Zeile in Ihren Funktionen einen. Nun muss nach jedem Aufruf der Potentiell zu einem Fehler führen kann, eine Fehlerabfrage erfolgen:' Open connection to Database db.Open sDsn If Err <> 0 then 'do something, e.g.: FunctionName = False Exit Function End If -
Neben der in diesem Beispiel gezeigten, sogenannten DSN-less Connection zur Datenbank kann natürlich jede beliebige Datenbank über ODBC angesprochen werden, sofern eine entsprechende ODBC Datenquelle auf dem SwyxServer Rechner konfiguriert wurde. Die nötigen Äderungen im Skript beschränkten sich auf eine einzige Zeile. Anstelle von
sDsn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:\gse_demo\demo.mdb"
ist lediglich der Name der ODBC Datenquelle anzugeben
sDsn = "dsn=MyDatabase"
Sollte die Datenbank eine Anmeldung erfordern, so können die Zugangsdaten ebenfalls in diesem sogenannten Connection String angegeben werden:
sDsn = "dsn=MyDatabase;uid=MyName;pwd=MyPassword"
Weitere Beispiele finden Sie über den unter den Referenzen angegebenen Link.
Referenzen:
- Eigener VBScript Code - Auf Feiertag überprüfen
kb2285-Bank_Holiday_Check.zip
Dieser Swyx Forum Wiki Artikel dokumentiert die im GSE eingebauten Funktionen.
- Swyx Forum - GSE build in functions
https://www.swyx-forum.com/forum/151-gse-build-in-functions/
Dieser Swyx Forum Wiki Artikel dokumentiert die SwyxServer Script API.
- Swyx Forum - Server Script API
https://www.swyx-forum.com/forum/150-server-script-api/
Dieser Swyx Forum Wiki Artikel dokumentiert alle in VBScript vorhandenen Funktionen.
- Swyx Forum - VBScript functions
https://www.swyx-forum.com/forum/152-vbscript-build-in-functions/
Informationen anderer Anbieter, die in diesem Artikel zur Verfügung gestellt werden, sollen bei der Suche nach technischen Informationen helfen. Die Inhalte können ohne weitere Ankündigung geändert werden. Swyx garantiert nicht für die Güte von Inhalten anderer Anbieter, noch ist Swyx für diese verantwortlich.
- Eigener VBScript Code - Auf Feiertag überprüfen
Kommentare
0 Kommentare
Zu diesem Beitrag können keine Kommentare hinterlassen werden.