Saving and Publishing Outlook Forms
When you design a custom form in Outlook 2003 or earlier versions, you have three choices for saving it:
File | Save -- This saves the item (i.e. the data record) and in an Outlook folder. If the form is a one-off (see below), it will be embedded in the item. This is generally a bad thing.
File | Save As -- This saves the form as an Outlook template .oft file. Use this technique to back up your published forms and save simple message templates.
Tools | Forms | Publish Form -- This puts the form in the forms library you indicate, making it available for the creation of new items. Only published forms run code.
In Outlook 2007, access the Save and Save As commands by clicking the Office button. The Publish Form command is on the Developer tab in the ribbon.
Unless you publish a form, the form won't run code, might not display your custom layout if the form has custom fields, and will display a prompt to the user if the form includes any ActiveX controls that don't ship with Outlook.
When you publish a form, you store it as a hidden item. These hidden forms constitute Outlook's forms libraries. There are three types of Outlook forms libraries. The first two exist as hidden folders that you cannot see in the Outlook folder list, only in the dialogs related to custom forms:
||Forms for enterprise-wide use|
||Forms for your personal use|
||Forms for use with a particular folder, often a public folder|
Users will also see a Standard or Application Forms library. This is the built-in library of Outlook forms. You cannot publish custom forms to it. Outlook 2007 users may also see a Form Regions library if any replacement form regions are installed on the machine.
Message forms must be published to the Organizational Forms or Personal Forms library, not to a folder library. Forms for use with items in a folder are usually published to the folder. See:
If you create a form, publish it to the Personal Forms library, and then later make modifications and publish it to the Organizational Forms library, you still have the copy in the Personal Forms library. Outlook always looks in Personal Forms first, so it will find the old copy, rather than the newer one in Organizational Forms. You should use the Forms Manager to remove the old copy from the Personal Forms library. From the main Outlook menu, choose Tools | Options | Other | Advanced Options | Custom Forms | Manage Forms.
Creating an Organizational Forms Library
Microsoft Exchange Server supports a centralized forms library -- Organizational Forms.
For Exchange 2000 and 2003, see XADM: How to Create Organizational Forms Library in Exchange. To change permissions on the Exchange 2000 Organization al Forms library, in the Exchange System Manager program, under Folders, right-click Public Folders, and choose Show System Folders. You should then be able to bring up the properties for the EFORMS REGISTRY\Organization Forms folder and set the Client Permissions on the Permissions tab. To publish a form, you'll need at least the right to create items. Granting Author permission will let key users add new forms and also modify and delete the ones they've added.
To add an Organizational Forms library to Exchange 2007, public folder support must be installed. See How to create an Organizational Forms Library in Exchange 2007.
You can't publish forms to the Organizational Forms library unless the systems administrator grants you permission.
Publishing forms to a public folder also involves permissions. You must be the owner of a folder to publish forms to that folder.
A user can always publish to the Personal Forms library, which is a hidden folder in the user's default information store, which can be an Exchange Server mailbox or a Personal Folders .pst file.
Running Published Forms
Users can run forms and templates several ways:
Choose Tools | Forms | Choose Form. The user can choose from both saved .oft file templates and published forms.
For forms published in folders, choose the form name from the Actions menu.
For forms designated the default for a folder, click the New button for the folder
See To launch a custom Outlook form for methods that involve adding a toolbar button or programming code.
If code on a received message or a saved item doesn't run, it probably means that the form is "one-offed." This is a condition in which the form definition is saved with the item. Such an item has lost the connection with its published form. Other symptoms for one-off form items are an increase in the size of the item, loss of the custom icon for the item, and reversion of the MessageClass value to the default for that type of item. For example, if an item created with a form published as IPM.Contact.MyContact one-offs, its MessageClass will revert to IPM.Contact. Also, if the form has an ActiveX control that is not among those included with Outlook, users will get an error message when the form tries to load that control.
A good practice is to set up your form so that it will notify users of any one-off situation:
- Use a label control on a custom page to display warning text such as, "This form is not fully functional. You must first publish it using the Tools | Forms | Publish Form command. If you have already published it, contact firstname.lastname@example.org for additional instructions."
- Hide each page of the form except the custom page with the warning text.
- Include script in the form's Item_Open event handler to show all of the actual working pages and hide the warning page using the Inspector.ShowFormPage and .HideFormPage methods.
A form set up in this fashion will look normal if it is running properly and show the warning page if it one-offs.
Causes of One-off Forms
Checking the Send form definition with item box on the (Properties) page of the form will definitely produce a one-off item. Other causes of one-off form items usually are related to changing the form design in code. See:
If you forward a published custom message form whose Forward action is set to the IPM.Note form, the resulting item will include the form definition of the custom form, but will be one-offed. The solution is to edit the Forward action on the (Actions) tab to point to the published custom message form instead of IPM.Note.
Cleaning up One-off Items
To clean up existing one-off items, use CDO 1.21, Outlook Redemption, or Extended MAPI to remove MAPI property tags that are responsible for the one-off behavior, as shown in Stephen Griffin's article and in the CleanUpItems sample. Then, set the Type property (CDO's equivalent of MessageClass in the Outlook object model) to your published custom form.