Profile forms

Profile forms are used to create special one-per-system or one-per-key documents that can be used to store configuration and other information. You create and access a profile document with @Command([EditProfileDocument]), @GetProfileField, @SetProfileField, the LotusScript® method NotesDatabase GetProfileDocument, or NotesUIWorkspace EditProfile. The document is created upon first access.

Profile documents are special in several ways:

  • They do not appear in views and are only accessible through formulas and scripts as mentioned previously.
  • They replicate even if there's a replication selection formula that doesn't select them.
  • They are cached in the memory of the client for best performance. Users do not see change until they exit and reopen the client.
  • Web servers also cache them, and may cache multiple copies for multiple server threads. It may take awhile for a Web application to reflect a change to a profile document.

Due to the caching, profile documents should not be used where their contents change often. In particular, do not use them for sequential numbering.

You specify a profile document with one or two values: a name and an optional key. If a key is not specified, the profile is per-system, that is, shared by all users. The following types of information are often stored in such documents:

  • Lists of keyword values, so that they can be updated without having to change the database design.
  • Replica IDs or filepaths of other databases that this database needs to locate. This supports the ability to design groups of databases that refer to each other, but whose design is maintained through a set of templates (so that you can easily create a similar group of databases for another department or customer).
  • Email addresses to be notified in case of problems.
  • Default values for certain fields, including rich text fields (for example, a blank table that will be copied into a rich text field for a user to fill in).

If a key is specified, it is typically the value of @UserName. Such a document is called a personal profile document. These are useful for storing:

  • Personal settings that customize the user's experience, such as a list of teams.
  • A list of recently entered values for a particular field, to provide type-ahead assistance to users filling out forms.
  • Personal preferences, for example, whether users have clicked a "do not show me this message" checkbox for a particular messsage.

Caching is not ordinarily an issue for personal profiles in client applications. The user reading the profile is typically the same user who updated it, so the cache is up to date.

A profile form is a regular form. The term describes how the form is used: to view and edit profile documents.