Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Klaas am 14.11.13 - 14:14:18

Titel: GetEnvironmentValue liest keine Werte aus.
Beitrag von: Klaas am 14.11.13 - 14:14:18
Hallo, ich finde in folgenden Code nicht den Fehler. Den Wert setzen kann ich, den Wert auslesen nicht.
Wie man sieht habe ich jede erdenkliche Möglichkeit getestet.
Wenn ich die Formel aus der Noteshilfe kopiere und die TimeZone abfrage, wird mir ein Wert zurück gegeben.
Code
	Dim session			As New NotesSession
	Dim ws 				As New NotesUiWorkspace
	Dim doc				As NotesDocument
	Dim Dummy2 			As Variant
	Dim i					As Integer
	
	Dim zoneNumber 		As Variant
	Dim zone 				As String
	
	Call session.SetEnvironmentVar("ArtikelauskunftCurrPersonalnummer","Test")
	zoneNumber = session.GetEnvironmentValue("ArtikelauskunftCurrPersonalnummer")
	zoneNumber = session.GetEnvironmentValue("$ArtikelauskunftCurrPersonalnummer", False)
	zoneNumber = session.GetEnvironmentValue("ArtikelauskunftCurrPersonalnummer", True)
	zoneNumber = session.GetEnvironmentValue("$ArtikelauskunftCurrPersonalnummer", True)
	zone = Cstr(session.GetEnvironmentValue("ArtikelauskunftCurrPersonalnummer", False))
	zone = Cstr(session.GetEnvironmentValue("$ArtikelauskunftCurrPersonalnummer", False))
	zone = Cstr(session.GetEnvironmentValue("ArtikelauskunftCurrPersonalnummer", True))
	zone = Cstr(session.GetEnvironmentValue("$ArtikelauskunftCurrPersonalnummer", True))


Vielen Dank für die Hilfe.
Titel: Re: GetEnvironmentValue liest keine Werte aus.
Beitrag von: Klafu am 14.11.13 - 14:31:30
Kommt denn eine Fehlermeldung? Was meint der Debugger dazu?

Hast du die verschiedenen Zeilen beim Testen immer wierder Auskommentiert? Nicht das dir am Anfang der richtige Wert gesetzt wurde, dann aber von einem anderen GetEnvironmentValue wieder gelöscht wurde.

Chris
Titel: Re: GetEnvironmentValue liest keine Werte aus.
Beitrag von: Peter Klett am 14.11.13 - 14:47:14
Laut Hilfe ist GetEnvironmentValue zur Rückgabe nummerischer Ini-Variabler. Da "Test" nicht wirklich nummerisch ist, bekommst Du wohl nichts zurück.

Versuch mal GetEnvironmentString, dann wird das klappen ...
Titel: Re: GetEnvironmentValue liest keine Werte aus.
Beitrag von: umi am 14.11.13 - 14:57:01
Moin

SetEnvironmentVar("Variable","Test",true)
-> notes.ini Eintrag wird "Variable=Test"
SetEnvironmentVar("Variable","Test",false)
-> notes.ini Eintrag wird "$Variable=Test"

Auslesen in beiden Fällen mit
getEinvironmentString("Variable",true)
oder
getEinvironmentString("Variable",false)

Titel: Re: GetEnvironmentValue liest keine Werte aus.
Beitrag von: Tode am 14.11.13 - 16:12:20
Urs hat die Ursache erkannt: Mit dem "$" hast Du als Programmierer NIX zu tun. Notes schreibt das rein, wenn Du SYSTEM=False setzt, und liest es automatisch mit...

Du greifst IMMER auf den Namen OHNE $ zu...
Titel: Re: GetEnvironmentValue liest keine Werte aus.
Beitrag von: Peter Klett am 14.11.13 - 16:35:25
Nein Tode, Du irrst. Klaas hat alle möglichen Kombinationen ausprobiert, mit und ohne $, dann hätte wenigstens eine funktionieren müssen, wenn das $ die Ursache gewesen wäre.

Also habe ich nun ein praktisches Beispiel erstellt:

Code
Sub Initialize
	Dim session As New NotesSession
	Call session.SetEnvironmentVar("ArtikelauskunftCurrPersonalnummer","Test")
	MsgBox session.GetEnvironmentValue ("ArtikelauskunftCurrPersonalnummer")
	MsgBox session.GetEnvironmentString ("ArtikelauskunftCurrPersonalnummer")
	Call session.SetEnvironmentVar("ArtikelauskunftCurrPersonalnummer","")	
End Sub

Die erste Msgbox gibt nichts aus, die zweite "Test". Es liegt definitiv am GetEnvironmentValue, das nur den nummerischen Wert der Variablen zurückliefert. GetEnvironmentString ist die korrekte Funktion.

EDIT: Natürlich hast Du Recht, dass man mit dem $ nichts zu tun hat, aber es war hier nicht die Ursache, da irrst Du. So war es gemeint ;)
Titel: Re: GetEnvironmentValue liest keine Werte aus.
Beitrag von: Tode am 14.11.13 - 18:05:56
Gut. Danke für die Zusammenfassung!
Titel: Re: GetEnvironmentValue liest keine Werte aus.
Beitrag von: Klaas am 15.11.13 - 08:13:49
Hallo, vielen Dank.

Also ich fange mal oben an. Der Debugger gibt keine Fehlermeldung aus.
Ich habe die Syntax immer durch den Debugger laufen lassen, deshalb war es kein Problem das ich eine Variable so oft befüllt habe.

Ich habe nun den Vorschlag mit "GetEnvironmentString" getestet und es geht.:
Code
zoneNumber = session.GetEnvironmentString("ArtikelauskunftCurrPersonalnummer")

Ich freue mich jetzt und kann beruhigt ins Wocheende gehen.