Jump to content

Variable löschen?


Stefan Fuchs

Recommended Posts

  • Most Valued User

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


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


  • Most Valued User

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


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


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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and have taken note of our Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.