Zum Glück gibt es für Programmierer regelmäßig Überraschungen wenn sie auf undokumentierte Funktionen stoßen. Diese können einem das Leben sehr erleichtern. Ein gutes Beispiel dafür ist die @Formula @GetMachineInfo
. Beispielsweise war es immer etwas komplizierter die IP Adresse oder den Computernamen in LotusScript zu berrechnen. Dazu gibt es zwei Standard-Tricks. Entweder man nutzt LS2J (LotusScript to execute Java) und berechnet die gewünschten Informationen mit kurzem Java-Code oder man nutzt COM (Component Object Modell) und ein Windows Script Shell Object.
Seit der Version 8.5.3 gibt es aber eine wundervolle @Formula @GetMachineInfo. Damit geht es nun viel einfacher. Die Formel kann uns relativ viele unterschiedliche Informationen über eine Maschine bzw. Rechner zurückgeben. Diese sind die IP Adresse, die MAC Adresse, isLaptop oder isDesktop, IsSingleLogOn, IsMultiUser, HasDesigner, HasAdmin, IsStandard, MachineName, Memory, DiskSpace, EnvVariable und SysEnvVariable. Wenn man die Funktion ausführt, sollte man vorher im Code prüfen, ob man wenigstens schon Version 8.5.3 nutzt (List of IBM Notes Domino Build Numbers).
Wir haben bspw. einen Errorhandler in unseren Datenbanken, der auch die IP Adresse uvm. protokolliert, um Fehler einfach identifizieren zu können. Dort nutzen wir die @Formel so:
If me.sNotesBuildVersion > 389 Then
sMacro = |@GetMachineInfo([IP])|
vEvalReturn = Evaluate(sMacro)
If Not IsEmpty(vEvalReturn) Then
me.varIPAddresses = vEvalReturn
Else
me.varIPAddresses = ""
End If
sMacro = |@GetMachineInfo([MachineName])|
vEvalReturn = Evaluate(sMacro)
If Not IsEmpty(vEvalReturn) Then
me.sMachineName = vEvalReturn(0)
Else
me.sMachineName = ""
End If
Else
varIPAddresses = ""
me.sMachineName = ""
End If