The IBM® FileNet® BPF Table tab plug-in functionality is part of the more general plug-in functionality described in BPF Tab Plug-in Interface. See that topic for background information. This topic is devoted to the Table tab plug-in exclusively.
The Table tab permits multi-value and multi-column case data to be displayed and manipulated. The various elements of the user interface such as column fields, column widths, etc., are configurable.
After creating a custom tab, you must register it, setting its location and configuration in BPF Metastore. Once you register the tab, you can expose it on the Inbaskets as required.
Currently, BFP Explorer does not allow registering new or modifying parameters of the existing tabs. New plug-in tab registration or modification of the existing tab need to be done directly in BPF Metastore using SQL or Oracle client. The tab URL handler is registered in the TAB table, TAB_CONTENT column. The Tab Plug-in Interface supports absolute and relative paths to the tab page. The following table describes the URL formats supported.
URL Type | Identifier | Description |
---|---|---|
Absolute |
Value starts with http:// or https:// |
A fully-qualified URL of the page to which the Table tab plug-in interface redirects after the command executes. The tab code must handle the command information passed in the URL. The following example shows a sample URL using an absolute path.
|
Relative to BPF root |
Value starts with the / |
A relative URL of the page to which the Table tab plug-in interface redirects after the command executes.This URL is relative to the root of the web application. The tab code must handle the command information passed in the URL.
|
Relative to tool root |
None of the above |
A relative URL of the page to which the Table tab plug-in interface redirects after the command executes.This URL is relative to the root of the tab plug-in folder (/plug-in/tabs/{tab_name}). The tab code must handle the command information passed in the URL.
|
The following table describes the parameters required for the Table tab plug-in.
Note that some parameters must be URL-encoded with the Java™ API method URLEncoder.encode
.
Parameter | Value | Required/Optional | Description | Requires Encoding |
---|---|---|---|---|
Bp8CaseID | {CFNAME} | required | Bp8CaseID field name. The {CFNAME} macro will
be substituted with Bp8CaseID field value during runtime. |
no |
layout | layout name | required |
This parameter identifies the layout name from the |
no |
TabName | {TABNAME} | required |
This parameter identifies the tab name. |
no |
Inbasket |
{IID} | required |
This parameter identifies the Inbasket ID. |
no |
_showatt | 1 or 0 | optional |
This attribute controls attachments list display behavior.
NOTE If the attachments list is disabled on the application or Inbasket level, this setting will be ignored. |
no |
_cache | 1 or 0 | optional |
This attribute controls tab loading behavior.
|
no |
The Table tab plug-in exposes a JavaScript™ interface enabling developers to further customize the user interface presentation and behaviors. For example, developers can add script that responds to a row click within the Table tab or perform line data validation or lookup when user is changing the field value. All JavaScript events are defined and exposed via the TableTabEventHandler.js, which is deployed in the bpf/plugins/custom folder. Refer to the TableTabEventHandler.js.template file provided with this release for the detailed events description.
This section outlines the general steps you would take to create a new Table tab plug-in.
The main steps are as follows:
Define a custom object class for each Table tab. Each row in the table represents an instance of this class that has been associated with the current Bp8Case object. The layout configuration XML indirectly associates each table column with a custom object property (see Configure Layout below).
The various custom object classes are expected to have a parent class, and this parent class is expected to inherit from the Bp8Object class. The following properties need to be exposed on the base parent class:
layout.xml
as described below.Configure the security permissions for each custom object class that you define:
The security level determines the actions that users can perform on instances of the custom object class in the BPF Web application. If the security level is set to Full control, the user has has both read and write permission to a custom object class and can view, add, and delete the table objects. If the security level is set to View only, the user has read permission and can only view the table objects.
Define the various fields/columns that are to be in the table using BPF Explorer. Go to Case Fields Configuration > Application Fields. Right-click on New..Application Field. These fields are referenced by the layout configuration XML (see Configure Layout below).
The tab table configuration layout is specified in /plugins/tabs/table/layout.xm
l
.
This xml has the following schema:
Tag / Attribute | Parent Element | Example | Purpose |
---|---|---|---|
<TableLayouts> |
None |
|
Required. Root element |
<Layout> |
<TableLayouts> |
|
Defines a grid layout. |
Name |
<Layout ...> |
<Layout Name='GRID1' ...> |
Required. Name of the grid layout. This name is used as the ConfigSection parameter for the main JSP page for the table tab plug-in (see URL Parameters Overview above). The name is case-sensitive. |
ObjectClassName |
<Layout ...> |
<Layout ObjectClassName='Class1' ...> |
Required. Name of custom class for this table (see Configure Content Engine Objects above). |
LinkObjectName |
<Layout ...> |
<Layout LinkObjectName='BPFTableTabSample_Bp8Case' |
Required. Name of the abstract parent class for the ObjectClassName. |
<Field> |
<Layout> |
|
Optional. Defines a field/column for the table. |
Name |
<Field ...> |
<Field Name='Field1' ...> |
Required. Expected to uniquely identify field in the context of this layout. |
CaseField |
<Field ...> |
<Field CaseField='CaseField1' ...> |
Optional. Associates this field/column with a case field (see Configure BPF Case Fields above). If this attribute is missing this field is considered a calculated field, and only a placeholder is added to the HTML. Otherwise the case field name is used to retrieve the column attributes, such as data type, title, column width, pick list information, etc., and also the link to the custom object property name. |
Visible |
<Field ...> |
<Field Visible='yes' ...> |
Optional. Valid values are: 1 and 0. Default value is: 1. Determines if the field/column is visible or not. If not the column data is still transferred to the client browser for possible use in calculated fields. |
Writable |
<Field ...> |
<Field Writable='yes' ...> |
Optional. Valid values are: 1 and 0. Default value is: 1. Determines if the field is writable. Calculated fields must be read-only. |
Title |
<Field ...> |
<Field Title='Column1' ...> |
Optional. Default value: Field name. Column display name for this field. |
DataType |
<Field ...> |
<Field DataType='7' ...> |
Required if no CaseField. Data type code must be specified if this is a calculated field. The data type codes are as follows: 1 - STRING, 2 - NUMERIC, 3 - DATE, 6 - BOOLEAN, 7 - MONEY |
<Button> |
<Layout> |
<Button ...>addRow();</Button> |
Optional. Defines a button for this layout. The content is a JavaScript function call. There are three pre-defined functions: addRow(), removeRow(), and Save(). Other custom functions can be defined in ..\plugins\custom\TableTabEventHandler.js. |
Title |
<Button ...> |
<Button Title='New' ...> |
Required. Defines the button's display text. |
HideIfReadOnly |
<Button ...> |
<Button HideIfReadOnly='yes' ...> |
Optional. Valid values are: 1and 0. Default value is: 0. Determines if the button should be hidden when the tab is displayed as read-only. |
A sample Table tab plug-in configuration is deployed as part of this release.
Sample File | Comment |
---|---|
../plugins/tabs/table/TableTabSample_ce.xml |
Look at the BPFTableTabSample class. But
note that it is not necessary to import this xml file into CE separately using
Enterprise Manager if you are using the Case Management Sample Application.
The information it contains also exists in the ce_cm.xml
manifest that is imported as part of installing the Case Management Sample Application.
This ../plugins/tabs/table/TableTabSample_ce.xml file is provided simply
for reference. |
../plugins/tabs/table/layout.xml |
Layout for BPFTableTabSample class |