How the Outlook forms cache works
When a user opens an item, Outlook looks at the value of the item's
MessageClass property to determine whether the item should be displayed
with a standard form, a custom form, or (beginning in Outlook 2007), a
form region. If
the item requires a published custom form, Outlook stores a copy
of the form on your local hard disk. The next time you need to use the
form, Outlook checks this forms cache. If the form is in the cache,
Outlook goes to the form's original location to check the form's
Modified timestamp. If a user has modified the form since Outlook cached
it, Outlook opens the form from its original location and updates the
cache with the modified version. If no one has modified the form since
Outlook cached it, Outlook loads the form from the cache, which is
usually much faster than opening it from the original location.
If the required form isn't in the cache, Outlook looks in other
locations, in this order:
- The forms library for the currently displayed folder
- Personal Forms library - in the user's default information
store
- Organization Forms library - on the Exchange server
The location of the forms cache depends on the operating system,
where %username% is the environment variable containing the user's login
name:
- Windows Vista - C:\Users\%username%\AppData\Local\Microsoft\FORMS
- Windows XP - C:\Documents and Settings\%username\Local
Settings\Application Data\Microsoft\FORMS
The cache contains a Frmcache.dat file, which maintains a summary of
cached forms and pointers to the cached files, plus a subfolder for each
cached form.
Error Messages
Error messages such as
- The form required to view this message cannot be
displayed
- Can't create item
often signal corruption related to a custom form—either in the form
itself or in the data file on the client that stores forms cache
information. Exactly what causes forms cache corruption is not known.
If corruption occurs frequently and
clearing the forms cache (see below) does not solve the problem, you can
use the ForceFormReload
registry entry to force Outlook to reload a form from the
original published version when Outlook can't load the form from the
cache. See:
Clearing the Forms Cache
The first step in troubleshooting is to use the command in Outlook to
clear the cache using the Manage Forms dialog (Tools | Options | Other | Advanced
Options | Custom Forms, then click Manage Forms).
If that does not resolve the problem, shut down Outlook and delete
the entire contents of the FORMS folder (for locations, see above).
Notes
The order Outlook uses to look for a form explains a common problem. Suppose
a user publishes a new form in the Personal Forms library. Later, the
user makes changes to the form and publishes the revised form under the same
name but in a different library—Organization Forms. When the user opens
an item that uses the custom form for the first time, Outlook loads the
version in the Personal Forms Library because Outlook checks that
location first, but that version won't include the revisions on the
version the user saved in the Organization Forms Library.
The stumbling block is the copy in the Personal Forms library. The
solution is to delete that copy by using the Manage Forms dialog (Tools
| Options | Other | Advanced Options | Custom Forms, then click
Manage Forms). After you delete that copy, the Organization Forms
copy usually loads fine. If it doesn't, make sure that you're
incrementing the version number on the form's (Properties) page.
You can also try using the form to create a new item. When opening a
previously created item doesn't load the updated form into the cache,
creating a new item sometimes does the job.
|