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 mit Hilfe einer Textdatei welche Feiertage definiert eine Feiertags Überprüfungrealisiert.
Hinweis: eine aktualisierte Version dieses Skriptes, welche neben reinen Tagen auch Uhrzeiten und Zeiträume in der Feiertags Definitionsdatei zuläßt, ist auf der öffentlichen Swyx Forum Webseite www.swyx-forum.com erhältlich.
Weitere Artikel dieser Serie:
- Eigener VBScript Code - Call Logging in Textdatei
- Eigener VBScript Code - Call Logging in Datenbank
- Eigener VBScript Code - Anruferüberprüfung in Datenbank
Information:
Installation der Beispielregel
Laden Sie die Beispielregel über den unten angegebenen Link herunter und kopieren Sie die Dateien in das Verzeichnis
c:\gse_demo
Um die Datei BankHoliday.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 BankHoliday.rse. Die Regel wird nun importiert und sieht wie folgt aus:
Graphischer Skript Editor
- Speichern Sie die Regel über das Menü Datei | Speichern.
- Schliessen Sie den GSE.
- Kopieren Sie nun die Datei BankHoliday.txt in das globale Skript Verzeichnis
C:\Programme\SwyxWare\Share\Data\PhoneClient\ScriptsDas Skript erwartet die Datei an diesem Ort, damit alle Benutzer problemlos mit ihren eigenen Skripten darauf zugreifen können. Die Datei enthält die Daten aller gesetzlichen Feiertage in Deutschland die für alle Bundesländer gemeinsam gelten bis Ende 2005. - 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 Variable 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 der Start Regel
Wie Sie in diesem Beispiel sehen können, wird innerhalb des Regel Start Blocks eine Funktion definiert, welche später innerhalb eines Variable auswerten aufgerufen wird.
Eigenschaften des "Auswerten" Blocks
Diese Funktion IsBankHoliday() ermittelt, ob das übergebene Datum in einer Datei BankHoliday.txt definiert ist, und liefert entsprechend Wahr oder Falsch zurück. Und so sieht der Skriptcode aus:
- ' FileOpen iomode Values
- Const fsoForReading = 1
- Const fsoForWriting = 2
- Const fsoForAppending = 8
- ' Bankholiday Filename
- Const sBHFilename = "bankholiday.txt"
- Function IsBankHoliday(ByVal vDate)
- Dim wsh, fso, file
- Dim sDir, sFile, sLine
- Dim bReturn, nPos
- bReturn = False
- ' get share path by extracting it from user folder
- sDir = PBXUser.DataFolder
- nPos = InStrRev(sDir, "\")
- sDir = Left(sDir, nPos - 1)
- nPos = InStrRev(sDir, "\")
- sDir = Left(sDir, nPos)
- ' Build file name.
- sFile = sDir & "Data\PhoneClient\Scripts\" & _
- sBHFilename
- ' Create FileSystemObejct
- fso = CreateObject("Scripting.FileSystemObject")
- ' Open text file
- file = fso.OpenTextFile(sFile, fsoForReading)
- Do While (Not (file.AtEndOfStream)) And (Not bReturn)
- sLine = file.ReadLine
- If IsDate(sLine) Then
- If DateDiff("d", vDate, CDate(sLine)) = 0 Then
- bReturn = True
- End If
- End If
- Loop
- file.Close()
- file = Nothing
- fso = Nothing
- IsBankHoliday = bReturn
- End Function
Nachdem Sie diese Regel aktiviert haben wird bei Anrufen die an einem der definierten Feiertage ankommen ein kurzes "Beep" abgespielt. Dies ist natürlich nur ein Platzhalter an dessen Stelle Sie Ihre gewünschten Blöcke setzen können.
Die Definitions Datei
In der Datei BankHoliday.txt werden die Daten für die Feiertage definiert. Hierzu wird pro Zeile ein Datum geschrieben. Das Datums Format muss den gesetzen regionalen Einstellungen entsprechen. Für Deutschland ist dies in der Regel tt.mm.jjjj.
25.12.200226.12.200201.01.200318.04.200321.04.200301.05.200311.05.200329.05.200309.06.200303.10.200325.12.2003...
Bitte beachten Sie, dass diese Datei alle gesetzlichen Feiertage in Deutschland die für alle Bundeländer gemeinsam gelten enthält.
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.
-
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
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.
Kommentare
0 Kommentare
Zu diesem Beitrag können keine Kommentare hinterlassen werden.