Co-Authored by @Harisha Paildar
A Virtual Table is a search extension mechanism within the Content Platform Engine (CPE). It allows developers to use custom code to define a dynamic table that represents a subset of rows from the logical table of an underlying object class. The virtual table can also include computed or custom columns to represent additional metadata or derived attributes associated with the underlying objects. Once defined, the virtual table behaves like a standard class table, enabling users to perform queries, searches, and retrieval operations in the same way as with the base object class.
You can create a virtual table by defining a virtual table definition that references an implemented virtual table handler.
The handler specifies the virtual table’s name using the format:
namespace::name
This fully qualified name must be used in search expressions to reference the virtual table. Note that the virtual table name and the virtual table definition name do not have to be identical; this feature is implemented as part of release 5.7.0.
Step-by-Step Instructions
Accessing the Virtual Table Definition Wizard
- Navigate to the Object Store
- In the domain navigation pane, locate and select your target object store.
Access the Virtual Table Definitions Section
- In the object store navigation pane, expand:
- Event, Actions, Processes
- Then select the Virtual Table Definitions folder.
Launch the Creation Wizard
- On the Virtual Table Definitions tab, click the New button.
Wizard Configuration Options
Once in the wizard, you'll be able to configure the following:
- Display Name: A user-friendly name for your virtual table
- Description: Optional text describing the purpose of the virtual table

Choose the class that you want to associate with this virtual table definition.

Configuring the Virtual Table Handler
Specify whether the virtual table handler is implemented as a Java™ component or a JavaScript component.

- If you select JavaScript:
- Click Next to open the Virtual Table Script Editor.
- Review and edit the existing script as needed.
- Update the getTableName() function to return the table name in the format namespace::name.
- Use unique namespace::name values to define multiple virtual table handlers within the same implementation.
- Save your changes before continuing to the next step.

- If you select Class:
- Example: com.filenet.engine.retrieve.virtual.CBRVirtualTableHandler
- Enter the fully qualified name of the primary Java class that implements the virtual table handler.
- If the class is part of a package, include the package name in the class path.
To configure the code module containing the Java implementation:
- Select Configure Code Module before clicking Next.
- If you do not select this option, ensure that the required Java class or JAR file:
- Is deployed on the Content Platform Engine (CPE) application server, and
- It is included in the application server class path.


Provide custom properties during the wizard-based creation of the Virtual Table Handler

Complete the wizard on Finish
