The following table lists the XML and properties files used to configure FileNet P8 Workplace. Some files must be modified manually, whereas others can be changed through the Workplace UI. For each file in the list, a link is included to a related configuration topic.
NOTE After modifying a Workplace configuration file, it must be reloaded for the new settings to take affect. In most cases, you can simply reload the file from Workplace. For some modified files, however, you must restart the Application Engine.
Configuration File | Description |
---|---|
Actions.xml | Defines actions that can be performed on objects accessible through the Workplace application. Actions are available from a context menu on the list views and from a document's Information page. An administrator can modify existing actions, or, with developer assistance, add new actions. See Customizing Actions on an Object. |
bootstrap.properties | Defines Bootstrap values for Workplace. These can be updated through the Bootstrap page in Site Preferences. See Bootstrap Preferences. |
ClassFilter.xml | Excludes classes from displaying in the Workplace Add and Checkin wizards. Exclusions are defined on a per object store basis for each object type (document, folder, custom object and so on). See Excluding Classes from User Selection. |
ConfigurableLabels.xml | Configures common Workplace UI labels, including system property names. An administrator can customize the default FileNet-provided labels on a per-locale basis, eliminating the need to update resource bundles. See Customizing UI Labels. |
containericons.properties | For container types, associates mime types with icons displayed in Workplace. Container icons are mainly displayed on the navigation page in front of the folder path, in the folder list, or any other list that contains a folder icon. See Customizing Icons. |
content_redir.properties | Configures redirections to custom or third-party applications based on content object types when the user attempts to open a file from inside Workplace. See content_redir.properties File. |
customobjecticons.properties | Associates Workplace UI images to different types of custom objects. By default, there is one image associated with custom objects. An administrator can create any number of custom object types and associate a distinctive image for each type. See Mapping Images to Custom Object Types. |
download_redir.properties | Configures redirections for downloads. See download_redir.properties File. |
help_map.properties | Maps context-sensitive help files to Workplace Java™Server Pages (JSP) pages. New HTML Help pages can be hooked into custom-developed Workplace modules. See Using Context-Sensitive Help Features. |
icons.properties | For content types, associates mime types with icons displayed in Workplace. See Customizing Icons. |
InfoPages.xml | Registers custom Information pages. See Plugging In an Information Page or Properties View. |
Integration.xml | Sets up commands for integrating custom applications with Workplace. See the Workplace Application Engine UI Service Guide. |
p8controller.xml | Configures the out-of-the-box Web Application Toolkit controller. As a subclass of this base controller, the Workplace controller is also configured with p8controller.xml. See ConfigurableController Preferences. |
PagingConfiguration.xml | Configures several paging-related options that appear in the tree view control and in list view presentations. See Configuring Paging. |
PolicyProcessors.xml | Registers form processors (document or workflow). To override the default behavior of the out-of-the-box form processors, a developer would implement a new custom processor and register it in PolicyProcessors.xml. See Customizing FileNet P8 eForms Processor Components. |
PrimaryViews.xml | Registers primary views in Workplace. Primary views
are the links such as Browse, Search, and so on that appear to
the left, at the top, and/or bottom of Workplace. An
administrator can change the order of the views, hide or
show views, and restrict access to views. See
Primary Views Preferences.
A developer can create a custom primary view and register it in PrimaryViews.xml. See Plugging in a Primary View. |
PropertiesPage.xml | Registers custom Property views in Information pages. See Plugging In an Information Page or Properties View. |
SimpleSearch.xml | Configures the search option checkboxes in the Simple Search page. See Customizing Workplace Search Options. |
SitePreferencesPrimaryViews.xml | Configure the primary views for site preference settings displayed in the Workplace Site Preferences Tool. Administrators can specify primary views for site preference settings, organize views into labeled groups, and provide labels for different locales. In addition, developers can create custom primary views for site preference settings using the Web Application Toolkit, which may also be further configured through the descriptor file. For more information, see Customizing Primary Views for Site Preferences. |
SystemPropertiesView.xml | Defines the system properties per object store that will be exposed in the Workplace UI. For various object types, an administrator can select the properties to show in the UI. This file is modified by the Workplace application through the "Object Stores" view of the Site Preferences page. See System Properties View Settings. |
WcmApiConfig.properties | Configures the Content Java API. An administrator would modify this file to change the Content Engine that Workplace accesses or the type of credentials protection used. See WcmApiConfig.properties File. |
web.xml | Defines low-level configuration settings, servlets, and MIME mappings for Workplace. See Setting Up a New Application: Step 4 - Modify Web.xml. The MIME mappings in the file are used as overrides by the upload handler included in the toolkit. If a user sends a document that has an extension that matches one of the MIME mappings, then its corresponding MIME type is used, regardless of the mime type sent from the browser. Extensions currently defined are .doc, .xls, .ppt and .svg. See Document Upload: Customizing MIME Mappings. |
Workplace looks up UI strings in property resource bundles based on the client locale passed in the request. The purpose of the label element in Workplace XML configuration files is to override UI strings in the resource bundles. As shown in the following XML snippet, this element allows you to set resource strings for multiple locales. The capability to set multilingual strings in the XML spares you the effort of modifying strings in the resource bundles.
<object key="searchOptionGroup">
<label key="label" localizationKey="server.SimpleSearch_xml.useTheseSearchOptions">
<resource>Use these search options:</resource>
<resource locale="en_US">Use these search options:</resource>
<resource locale="fr_FR">employez ces options pour faire une recherche:</resource>
</label>
...
NOTE FileNet P8 4.0 introduces the use of XLIFF flies to augment existing resource bundle files. XLIFF files support the display of localized user-authored names in Workplace and other Toolkit-based applications. Workplace indirectly uses XLIFF files by exposing the “Preferred Locale” user preference and passing the browser locale to the web application to ensure that the correct language-specific XLIFF file is loaded. If available, localized user-defined name strings are retrieved from the XLIFF file by the Process Engine server and are employed by rosters, queues, milestones, steps, workflows, and various other fields. Conversely, Workplace directly uses resource bundle files, while Process Engine does not. For more information, see the new section Working with Locale Resources: XLIFF Files.
Given a particular client locale(s) in the request, Workplace uses the following order of precedence to look up a resource string:
If a resource bundle does not exist for one or more of the locales in the header, Workplace attempts to find a locale match in the XML, again in the order specified by the browser locale header. If there is no match, Workplace defaults to the English string that is set in the resource element for which no locale is specified. In the above XML, Workplace would use the string "Use these search options:".
If no match is found, Workplace uses the value of the localizationKey attribute to retrieve the label from the resource bundle. Given the XML above, if the client locale were "es-us" (Spanish American), then Workplace would use the "server.SimpleSearch_xml.useTheseSearchOptions" value to look up the label in a Spanish American resource bundle.
<object key="configurableLabels" version="4.0.0">
<label key="objectStore" localizationKey="server.ConfigurableLabels_xml.ObjectStore">
<resource>Object Store</resource>
<resource locale="en_US">Library</resource>
<resource locale="fr_FR">Bibliothèque</resource>
</label>
NOTE Full multilingual support requires resource bundles for all of the languages of your users. Do not rely solely on the Workplace XML locale support; otherwise, the Workplace UI will display a mixture of different language strings.
<object key="configurableLabels" version="4.0.0">
<label key="objectStore" localizationKey="server.ConfigurableLabels_xml.ObjectStore">
<resource>Object Store</resource>
<resource locale="en_US">Library</resource>
<resource locale="fr_FR">Bibliothèque</resource>
</label>
<object key="configurableLabels" version="4.0.0">
<label key="objectStore" localizationKey="server.ConfigurableLabels_xml.ObjectStore">
<resource>Object Store</resource>
<resource locale="en_US">Library</resource>
</label>
<object key="configurableLabels" version="4.0.0">
<label key="objectStore" localizationKey="server.ConfigurableLabels_xml.ObjectStore">
<resource>Object Store</resource>
<resource locale="en_US">Library</resource>
</label>
For programming-related information on localization support in Workplace, see Using Localization Resources.
For the following configuration files, you can reload modified settings from Workplace (as opposed to restarting the Application Engine):
To reload settings:
NOTE Changes to the following configuration files require that you restart the Application Engine: web.xml, content_redir.properties, and download_redir.properties. For Workplace behavior related to changing access role settings, see Access Roles Preferences.
The following table describes the directory structure of FileNet P8 Workplace.
Directory | Contents |
---|---|
Authentication | Cryptography key files. |
Config/AE | User-configurable files. |
lib2 | Third-party Jars. |
Router | Batch file that launches the Process Task Manager. |
Workplace | Core event JSP pages. |
Workplace Subdirectory | Contents |
./css | Cascading Style Sheets used to format HTML pages. |
./author, ./eprocess, ./is, ./operations, ./portlets, ./properties, ./utils, ./wizards |
These directories contain event JSP pages. |
./download | Downloads for application integration and FileNet P8 Workplace applets. |
./FnJavaV1Files/* | Applet for viewing scanned images. |
./images/* | Images used in HTML pages. |
./js | Client-side JavaScript files. |
./Ui-inf/jsp/* | UI JSP pages and UI module JSP pages. |
./Web-inf | Includes Java class files, XSLT stylesheets, and configuration files. |
Workplace/WEB-INF Subdirectory | Contents |
./jsp | A JSP header file referenced as an include by the UI JSP files. |
./lib | JAR files for FileNet P8 Workplace, Toolkit, and related systems. |
./upload | Holds client uploads temporarily in route to Content Engine. |
./xml/* | Site and user preference configuration files. |
./xsl/* | XSLT stylesheets for rendering XML to HTML. |
The FileNet P8 Workplace application makes heavy use of containment, where a UI module encapsulates one or more children UI modules. The encapsulating module sets up the parent/child relationship, typically by calling a base method like addChild(...), addPanel(...), or addModule(...). A child module typically performs event handling and presentation of a standard graphic element on a Workplace page, like a banner bar, toolbar, path view, or menu tree.
This topic illustrates containment in a Workplace information property page and a wizard page. Note that this is a conceptual overview; it does not detail the containment implementation. Most Workplace pages are built from page layouts, multi-panels, or both. Page layouts organize UI modules in user-defined page regions, like top, middle, and bottom. Multi-panels provide paging UIs, as in property pages or wizards. For details on these and other core features leveraged by Workplace, see Base UI Modules.
Information property pages provide details about stored objects. An information module serves as a container class for multiple information-page modules, each of which renders output for a specific information page. The information module uses the addPanel(...) method to contain the child information-page modules. Information modules subclass WcmInfoModule. WcmInfoModule uses the addChild(...) method to contain multiple UI modules that render graphic elements in the Workplace application (banner bar, path, tree view, footer, instruction box, title bar, and so on).
In the following screenshot, the information module is WcmObjectInfo. WcmObjectInfo adds information-page modules with the addPanel(...) method. The information-page module is WcmPropertiesInfoPage.
WcmObjectInfo subclasses WcmInfoModule, which contains the modules that render the remaining graphic elements. In WcmInfoModule.initialize( ), TabsLayoutTitle, PathView, WcmTextLinksBar, WcmTreeView, WcmPageFooterLinksBar, and WcmFooter are added as children.
As indicated by the addPanel(...) call in the above screen shot, the information page uses the multi-panel classes to manage and render individual property pages. The current property page is Properties, rendered by WcmPropertiesInfoPage.
In the screen shot below, the other property pages that can be displayed in the Information page are System Properties, Security, Links, and History, rendered by the information-page modules WcmGeneralPropsInfoPage, WcmSecurityInfoPage, LinksInfoPage, and HistoryInfoPage, respectively. Information-page modules implement the methods defined in WcmViewPanelInterface and/or WcmPanelValidationInterface. These implemented methods are called by WcmMultiPanelViewModule, a base multi-panel UI module in Web Application Toolkit. The information module, WcmObjectInfo, inherits from WcmMultiPanelViewModule.
Wizard pages guide a user through a sequence of steps to accomplish a task. A wizard module serves as a container class for multiple wizard-page modules, each of which renders output for a specific wizard page. The wizard module uses the addPanel(...) method to contain the child wizard-page modules. Wizard modules subclass WcmWizardModule. WcmWizardModule uses the addChild(...) method to contain multiple UI modules that render graphic elements in the Workplace application (banner bar, tree view, footer, title bar, and so on).
In the following screenshot, the wizard module is WcmAddFolderWizard, which adds wizard-page modules with the addPanel(...) method. The wizard-page module is WcmPropertiesWizardPage, which handles the "Set Properties" step.
WcmAddFolderWizard subclasses WcmWizardModule, which contains the modules that render the remaining graphic elements. In WcmWizardModule.initialize( ), WcmTreeView, WcmLayoutTitleBar, WcmSummaryModule, WcmPageFooterLinksBar, and WcmFooter are added as children.
As indicated by the addPanel(...) call in the above screen shot, the wizard page uses the multi-panel classes to manage and render individual wizard-step pages. The current wizard-step page is "Set Properties", rendered by WcmPropertiesWizardPage.
In the screen shot below, the other wizard-step page that can be displayed in the wizard page is Set Security, rendered by WcmSecurityWizardPage. Wizard-step modules implement the methods defined in WcmSequencePanelInterface and WcmPanelValidationInterface. These implemented methods are called by WcmMultiPanelSequenceModule, a base multi-panel UI module in Web Application Toolkit. The wizard module, WcmAddFolderWizard, indirectly derives from WcmMultiPanelSequenceModule.
An external application that calls a Workplace component must typically pass label-encoded parameters in the URL. For example, calls to the Application Engine UI Service require label-encoded parameters. Whereas Java clients can simply call a Workplace utility method to return label-encoded strings, a non-Java client must perform its own label encoding.
The following listing shows a C# method that returns a label-encoded string. It is based on the logic in the com.filenet.wcm.toolkit.util.WcmEncodingUtil.encodeLabel(
)
Java method. (The Workplace source code is available upon request.)
//C# method
private string encodeLabel(string str)
{
int LAST_6_BITS_MASK = 0x003F;
char ESCAPE_CHARACTER = '.';
char[] BASE_64_DIGITS = "_ABCDEFGHIJKLMNOPQRSTUVWXYZabcde.fghijklmnopqrstuvwxyz0123456789".ToCharArray();
if (str == null)
return null;
int len = str.Length;
StringBuilder sb = new StringBuilder(len);
for (int i = 0; i < len; i++)
{
char ch = Convert.ToChar(str.Substring(i, 1));
if ('a' <= ch && ch <= 'z') // 'a'..'z'
sb.Append(ch);
else if ('A' <= ch && ch <= 'Z') // 'A'..'Z'
sb.Append(ch);
else if ('0' <= ch && ch <= '9') // '0'..'9'
sb.Append(ch);
else if (ch == '*' || ch == '-' || ch == '_')
sb.Append(ch);
else
{
sb.Append(ESCAPE_CHARACTER);
sb.Append(BASE_64_DIGITS[ch >> 12 ]);
sb.Append(BASE_64_DIGITS[ch >> 6 & LAST_6_BITS_MASK]);
sb.Append(BASE_64_DIGITS[ch & LAST_6_BITS_MASK]);
}
}
return sb.ToString();
}