BPF Table tab plug-in

Overview

The 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.

Tab registration

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.

http://rangiroa:7001/bpf/plugins/tabs/table/TableTab.jsp?layout=Securities&TabName={TABNAME}&Inbasket={IID}&Bp8CaseID={CFNAME}

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.

/plugins/tabs/table/TableTab.jsp?layout=Securities&TabName={TABNAME}&Inbasket={IID}&Bp8CaseID={CFNAME}

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.

TableTab.jsp?layout=Securities&TabName={TABNAME}&Inbasket={IID}&Bp8CaseID={CFNAME}

URL parameters overview

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 layout.xml file.

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.

  • _showatt = 0 indicates that the attachments list should not be displayed beneath this tab, even if enabled on the Inbasket.
  • _showatt = 1 or missing indicates that the attachments list should not be displayed beneath this tab, assuming it is enabled on the Inbasket.

If attachments list is disabled on the Inbasket, this setting is ignored.

no
_cache 1 or 0 optional

This attribute controls tab loading behavior.

  • _cache = 1 indicates that tab content is rendered on the first invocation only. All subsequent clicks on the tab name will not reload the tab.
  • _cache = 0 or missing indicates that tab content is rendered on every invocation. Every click on the tab name will reload the tab
no

Table tab plug-in behaviors and interface customization

Accessing data via JavaScript Business Object

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.

Designing Table tab plug-in layout: Overview

This section outlines the general steps you would take to create a new Table tab plug-in.

The main steps are as follows:

Configure Content Engine objects

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:

Configure BPF Case fields

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).

Configure layout

The tab table configuration layout is specified in /plugins/tabs/table/layout.xml. 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.

Table tab plug-in sample

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 FileNet 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