Most Valued User Stefan Fuchs Posted June 3, 2021 Most Valued User #1 Share Posted June 3, 2021 Hallo, ich habe gerade ein Problem bei einem Kunden mit dem Feiertagsskript. Der Kunde hat zwei Standorte Berlin und München und somit unterschiedliche Regionale Feiertage. Einfach gedacht habe ich das Feiertagsskript einfach dupliziert. Also beide Zentralen Rufnummern liegen bei einem User. Skript prüft Feiertage für München im Startblock prüft dann ob Ruf Zentrale München ist. Wenn wahr wird die Ansage gespielt. Wenn falsch übersprungen. Funktioniert auch alles soweit. Nur sobald ich aus der übersprungenen Regel in die nächste Regel komme prüft er das gleiche für Berlin. Leider bekomme ich aber dann in der Ereignisanzeige einen Kompilierungsfehler: A callrouting script has been terminated or could not be executed due to a script error. Script: callrouting.vbs (User, XXX, XXX) Error: Kompilierungsfehler in Microsoft VBScript, Name erneut definiert, 800a0411 Ist es möglich nach der ersten Regel alles auf null zu setzen um die Variablennamen neu definieren zu können? Also Skriptblock vor Regel übersprungen? Oder muss ich neue Variablen definieren? Danke vorab. Link to comment Share on other sites More sharing options...
Tom Wellige Posted June 3, 2021 #2 Share Posted June 3, 2021 Alle Call Routing Skripte eines Benutzers werden unter der Haube zu einem grossen Skript zusammen gebaut. Wenn Du in einem Skript eine Variable im Start Block definierst, ist diese anschliessend in ALLEN Skripten des Benutzers verfügbar. Die Position der Regel im Call Routing Manager spielt dabei keine Rolle. Variablen können nicht wieder entfernt werden, aber Du kannst sie einfach weiter/wieder verwenden. Ich würde vorschlagen, dass Du alle Variablen/Funktionen die Du in mehreren Call Routing Skripten des Benutzers verwendest, in einer eigenen Regel definierst. Die Regel verlässt Du gleich wieder über den Regel übersprungen Ausgang, positionierst sie an Postion 1 im Call Routing Manager und nennst sie z.B. "Library (nicht deaktivieren!)". Link to comment Share on other sites More sharing options...
Most Valued User Stefan Fuchs Posted June 4, 2021 Author Most Valued User #3 Share Posted June 4, 2021 Hallo Tom, danke für die Antwort. Also wenn ich in zwei fast identischen VBScripts die gleichen Variablen nutze darf ich im zweiten kein Dim mehr nutzen? Könnte dies also auskommentieren? Oder nach deinem Vorschlag die Library Regel erstellen und dann in beiden Scripts rausnehmen? ' FileOpen iomode Values Const fsoForReading = 1 Const fsoForWriting = 2 Const fsoForAppending = 8 Dim wsh, fso, file Dim sDir, sFile, sLine Dim bBack, nPos Function IstFeiertag ( vDate ) bBack = False sFile = "C:\XXX\Scripte\Feiertage\Feiertage-BY.txt" ' Create FileSystemObejct Set fso = CreateObject("Scripting.FileSystemObject") ' Open text file Set file = fso.OpenTextFile(sFile, fsoForReading) do while (not (file.AtEndOfStream)) and (not bBack) sLine = file.ReadLine if IsDate(sLine) then if DateDiff("d", vDate, CDate(sLine)) = 0 then bBack = True end if loop file.Close Set file = Nothing Set fso = Nothing IstFeiertag = bBack End Function Function IstWeihnachten ( vDate ) bBack = False sFile = "C:\XXX\Scripte\Feiertage\Weihnachten.txt" ' Create FileSystemObejct Set fso = CreateObject("Scripting.FileSystemObject") ' Open text file Set file = fso.OpenTextFile(sFile, fsoForReading) do while (not (file.AtEndOfStream)) and (not bBack) sLine = file.ReadLine if IsDate(sLine) then if DateDiff("d", vDate, CDate(sLine)) = 0 then bBack = True end if loop file.Close Set file = Nothing Set fso = Nothing IstWeihnachten = bBack End Function Link to comment Share on other sites More sharing options...
Tom Wellige Posted June 4, 2021 #4 Share Posted June 4, 2021 Ich würde letzteres machen. Eine doppelte Deklaration (und damit verbunden Fehlermeldungen) hast Du nicht nur bei "Dim", sondern auch bei "Const" und Funktionsdeklarationen. Das einzige was Microsoft, bzw. VBScript ohne zu meckern akzeptiert ist, wenn Du eine Variable und eine Funktion mit dem gleichen Namen hast. In diesem Fall wird VBScript immer die Funktion verwenden und niemals die Variable. Das führt dann garantiert zu Problemen in der Funktion des Skriptes, aber nicht mehr zu direkten Laufzeitfehlermeldungen. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now