As most of the developer notice , Lotus Notes having lots of formula and functions which are not documented in help file. Some of them we can find by some source , but who knows how many are still hidden.
Long time back one of my Lotus admin colleague had requirement to find out number of files shared over Lotus sametime chat.Fortunately She was able to catch one guy from IBM, He was employed at IBM. He had given some java files and instruction document, which was suppose to use inside IBM only. Along with that He told , I can't assure you whether it will work for you or not . Since we don't support this tool. I tried the code with Lotus Sametime but unfortunately didn't work.
Anyways, It was just an event which make me realize there are certain things which could be use only by IBM. Lets see some of the undocumented and rarely use formula/functions of Notes.

@GetMembers(List; Pos [, number])

E.g; @GetMembers(list;1) REM { list:= "A":"B" }

It returns "A"

@Text(@Now; "*")

It creates new replica ID.

@DbBuildVersion

Returns build number , For R8 it returns "322"

@LocationGetInfo ([Home Server])
@LocationGetInfo([CatalogServer])
@LocationGetInfo([SametimeServer])
@LocationGetInfo([NamePreference])
@LocationGetInfo([MailProtocol])
@LocationGetInfo([WebRetriever])
@LocationGetInfo([BookmarksFileName])
@LocationGetInfo([InternetMailAddress])
@LocationGetInfo([AreaCode])

@LocationGetInfo([UNID])

All of the above provides information from the current work environment

NoPersist option in SetProfileField / GetProfileField:
@SetProfileField([NoPersist];"Value to store";@Username) @ SetProfileField ([NoPersist], "Value to store"; @ UserName)


This is a neat flag used to set variables in a virtual profile document - it doesn't really exist. This is a neat flag used to set variables in a virtual profile document - it does not really exist. It's kind of like an environment variable, except instead of writing to Notes.ini, you're writing to a temporary client session cache. It's kind of like an environment variable, except instead of writing to notes.ini, you're writing to a temporary cache client session. This only works in the UI between windows in the same database for the life of the current session. This only works in the UI between windows in the same database for the life of the current session. Each database has its own NoPersist cache on the Notes client, so unlike environment variables, this will only work in the same database. Each database has its own cache NoPersist on the Notes client, so unlike environment variables, this will only work in the same database.

@DbCommand("Domino";["LoadAddressListByIndex" | "LoadAddressListByName"];"names.nsf"; txtTargetField; strMax; [strIndex | strKey])

If entries in the registry are available:
@RegQueryValue("HKEY_LOCAL_MACHINE"; "SOFTWARE\\Network Associates\\TVD\\Shared Components\\VirusScan Engine\\4.0.xx\\"; "szDatVersion") @ RegQueryValue ( "HKEY_LOCAL_MACHINE", "SOFTWARE \ \ Network Associates \ \ TVD \ \ Shared Components \ \ VirusScan Engine \ \ 4.0.xx \ \"; "szDatVersion")



Undocumented LotusScript



Dim s As New NotesSession
Dim db As NotesDatabase
Set db = s.CurrentDatabase
If (db Is Nothing) Then
Exit Sub
End If
Dim flds As Variant, x As Integer, fldList As String
flds = db.GetFields(False)
For x = 0 To Ubound(flds)
fldList = fldList + flds(x) + Chr(13)
Next x
Msgbox fldList, 0, db.Title + " fields"



Dim s As New NotesSession
Dim idom As String, ihost As String, win As Variant, cr As String
cr = Chr(13)
idom = "Internet Domain: " + s.InternetDomainName
ihost = "Internet Host: " + s.InternetHostName
Set win = s.GetWin32Domain
Msgbox idom + cr + ihost + cr + "Win32 Domain: " + win.ServerName, 0, "Message"
Call s.Close()



Dim uiw As New NotesUIWorkspace
Call uiw.AddDatabaseToPortfolio()
Call uiw.AddBookmark("Hello")




@ AddBusyTime(|text; text; date) @ AddBusyTime (| text, text, date)
@ FindFreeTime(|text; text; date; number) @ FindFreeTime (| text, text, date, number)
@ MailConfirmPreference
@ MailFoldersPreference
@ LocationGetOSTZ
@ LocationGetTZ (| variant)
@ LocationGetTZ
@ CharSetInfo ([character])
@ CharSetInfo ([Encoding])
@ CharSetInfo ([DefaultCharset])
@ Admin Perform Action (| date, [variant])
@ Admin Create Request (| date, [variant]) DeleteUser DeleteGroup DeleteServer
@ URLSubmit(|number)
@ URLSubmit
@ NetAccount([DeleteNTUser])
@ NetAccount([IsNetworkAdmin])
@ FindFreeResource(|text; text; text; text; [variant]) InGMT InLocalTime
@ DbUnreadCount(|text)
@ OpenCalendar(|date; [variant]) Group Individual
@ X509Certificates(|date; text; [variant])deleteX509Cert
@ MailFilterAddToFolder (| text)
@ AccountGetInfo(|text; text)
@ AdminDelegateMailFile(|number; text; text; text; text; text; text; text; text; text; text; text; text; text; text; text; text)
@ BitAnd (| [number])
@ BitOr (| [number])
@ BitXor (| [number])
@ BitNot (| number)
@ BitShift (| number; number)
@ GetMembers (| variant; number; number)
@ UpdateViewDesign (| text)
@ ExpandNameList (| text, text)
@ CRLList (| [keyword]; fieldname; at home; max return)
IssuedBy
ThisUpdate
ThisNext
RevokedDate
RevokedSerialNumber
@ DbAdminServer
@ IsDbPrimaryAB
@ IsSoftDeleteEnabled
@ GetSoftDeleteExpireTime
@ SetSoftDeleteExpireTime (| number)
@ CertBlobPack (| blob item name; blob type; prefix; number)
@ CertBlobUnpack (| blob item name; blob type; prefix; number)
@ IsXACLEnabled
@ Mail Stop Processing Filter
@ CRL(|[Export]; fileName)
@ RecoverIDFile (| [keyword]; backupfilename; recoveredfilename; Newpassword)
@ WhichFolders
@ ShowParentPreview
@ ManageECL (| server: database)

4 Responses to "Interesting undocumented Formulas"

  1. gravatar Tim Says:

    You can add:
    @LocationGetInfo([UNID]) to the list

  2. gravatar Rishi Says:

    Thanks Tim :) , Added !

  3. gravatar David Jeyachandran Says:

    Thanks Rishi! That's great. I've just tried a couple of them.

  4. gravatar Jim Fricker Says:

    So Rishi, did you compile this list yourself, or did you copy it from here?
    http://news4notes.com/web/dokumente/notes_undocumented_formula.html
    If so, I think you should reference your sources.

Leave a Reply

preload preload preload