Appendixes

Workplace Configuration Files

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.

Lookup Precedence for Locale Resources

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:

  1. Searching in the order specified by the browser locale header, Workplace attempts to find a matching resource bundle.

    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:".

  2. If the resource bundle does exist for the client locale, Workplace looks for an override value in the XML. That is, Workplace looks for a resource element with a matching locale attribute value.

    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.

  3. If an override value does exist in the XML, Workplace uses that value.

Sample Lookup Scenario 1

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.

Sample Lookup Scenario 2

Sample Lookup Scenario 3

Sample Lookup Scenario 4

For programming-related information on localization support in Workplace, see Using Localization Resources.

Reloading Workplace Configuration Files

For the following configuration files, you can reload modified settings from Workplace (as opposed to restarting the Application Engine):

To reload settings:

  1. Sign into Workplace as a user who is a member of the Application Engine Administrators group.
  2. Click Admin.
  3. Click Site Preferences.
  4. Click Refresh.
  5. From the Refresh page, click Reload configuration files.
  6. Click Exit.

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.

Directory Structure

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.

UI Module Containment

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 Page

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.

WcmInfoModule containment

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.

Panel in information page

Wizard Page

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.

WcmWizardModule containment

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.

Sequence panel in Wizard

C# Label Encoding Method

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();
}