-
Topic
-
Accessing every entries from the System Address book can be very slow given a sufficiently large number of entries. Other factors may also affect access times, including network infrastructure, loadings, etc. Address Book access can also become slower as more entries are read from the server.
If your solution need to access entries regularly then you can consider to cache entries to local file, perhaps once per day and retrieve from the cache file. You can also consider to save the cache file to Formativ temp folder, the contents of the temp directory are cleared on GroupWise startup and shutdown, so the cache file available for the GroupWise session. See the Formativ Language guide for more information.
The sample code below check the cache file “system-ab-entries.txt” exists in Formativ temp folder, if the file exists then load entries to string list. If the file not exists then read System Address Book entries and add email address to the string list and save the file to temp folder.
Sub Main(Client, GWEvent)
dim oCacheEntries
cacheFilePath = utilities.TempFiles & "system-ab-entries.txt"
set oCacheEntries = Utilities.StringList()
if FileExists(cacheFilePath) then
oCacheEntries.LoadFromFile(cacheFilePath)
else
ReadEntries(oCacheEntries)
oCacheEntries.SaveToFile(cacheFilePath)
end if
msgbox oCacheEntries.count
set oCacheEntries = nothing
End Sub
' Read System address book entries and add email address to stringlist
sub ReadEntries(byref oCacheEntries)
dim oAbEntry
dim oAddressBook
set oAddressBook = GroupWise.account.AddressBooks.item("GroupWise System Address Book")
if oAddressBook is nothing then
exit sub
end if
for each oAbEntry in oAddressBook.AddressBookEntries
oCacheEntries.add(oAbEntry.EmailAddress)
next
set oAddressBook = nothing
set oAbEntry = nothing
end sub
Regards,
Advansys Support
- You must be logged in to reply to this topic.