I updated my LocationDocument LotusScript class again for Location type (Local Area Network, No connection etc.) and for mail server name. It makes it really easy to quickly get at location document information from script.
See the original post for usage.
'/** ' * LotusScript class for interacting with location documents ' * in the personal name and address book. ' */ Public Class LocationDocument 'declarations Private pSession As NotesSession Private pDb As NotesDatabase Private pDoc As NotesDocument '/** ' * Constructor ' */ Public Sub New(get_location As String) 'declarations Dim viewNab As NotesView Dim nn As NotesName Dim ini_location As String Dim location As String Dim comma As Integer 'get session Set Me.pSession = New NotesSession() If get_location = "" Then 'get the location from notes.ini ini_location = Me.pSession.GetEnvironmentString("Location", True) 'parse out the location name if none specifed in the constructor comma = Instr(1, ini_location, ",") location = Mid$(ini_location, 1, comma-1) Else 'use supplied location name location = get_location End If 'abbreviate the name Set nn = New NotesName(location) location = nn.Abbreviated 'get database and view Set Me.pDb = Me.pSession.GetDatabase("", "names.nsf") Set viewNab = Me.pDb.GetView("Locations") 'lookup location document Set Me.pDoc = viewNab.GetDocumentByKey(location, True) If Me.pDoc Is Nothing Then Error 9999, "Location document not found in names.nsf" End If End Sub '/** ' * Saves. ' */ Public Sub Save() Call Me.pDoc.Save(False, False) End Sub '/** ' * Property to get the backend document. ' */ Public Property Get Document As NotesDocument Set Document = Me.pDoc End Property '/** ' * Property to get the e-mail address. ' */ Public Property Get EmailAddress As String EmailAddress = Me.pDoc.GetItemValue("ImailAddress")(0) End Property '/** ' * Returns the name of the directory server. ' */ Public Property Get DirectoryServer As NotesName If Me.LocationType = "3" Then Set DirectoryServer = Nothing Else Dim nn As New NotesName(Me.pDoc.GetItemValue("DirectoryServer")(0)) Set DirectoryServer = nn End If End Property '/** ' * Sets the name of the directory server. ' */ Public Property Set DirectoryServer As NotesName Call Me.pDoc.ReplaceItemValue("DirectoryServer", DirectoryServer.Canonical) End Property '/** ' * Returns the name of the Sametime server. ' */ Public Property Get SametimeServer As NotesName If Me.LocationType = "3" Then Set SametimeServer = Nothing Else Set SametimeServer = New NotesName(Me.pDoc.GetItemValue("SametimeServer")(0)) End If End Property '/** ' * Sets the name of the Sametime server. ' */ Public Property Set SametimeServer As NotesName Call Me.pDoc.ReplaceItemValue("SametimeServer", SametimeServer.Canonical) End Property '/** ' * Returns the name of the mail server. ' */ Public Property Get MailServer As NotesName If Me.LocationType = "3" Then Set MailServer = Nothing Else Set MailServer = New NotesName(Me.pDoc.GetItemValue("MailServer")(0)) End If End Property '/** ' * Sets the name of the mail server. ' */ Public Property Set MailServer As NotesName Call Me.pDoc.ReplaceItemValue("MailServer", MailServer.Canonical) End Property '/** ' * Returns the location type. ' *
' * Local Area Network = "0" ' * Notes Direct Dialup = "1" ' * Network Dialup = "4" ' * Custom = "2" ' * No connection = "3" ' */ Public Property Get LocationType As String LocationType = Me.pDoc.GetItemValue("LocationType")(0) End Property End Class