Archive for the ‘Architect’ Category

Documentum vs FileNet P8, underlying DB table management

July 23, 2011

It’s been a while since working with FileNet P8 (v4.5), and I have observed very interesting differences regarding how to manage underlying DB tables from Documentum and FileNet P8.

In Documentum, each type would usually have two DB tables created to record single and repeating attributes, <object type name>_s for single attributes and <object type name>_r for repeating ones. Many types are sub-types of dm_sysobject. In order to get all the attributes defined for a particular type that was sub-types of others, many pair of  xxx_s and xxx_r tables need to be consulted.

In FileNet, Document (one of several main Document classes) is acting like dm_sysobject in Documentum as the main super class. Document and all its sub-Document classes share ONE DB table, DOCVERSION. All the attributes of Document and its sub classes are defined as columns in DOCVERSION.  The custom column name from DOCVERION is in the format of U<xxx>_<property name>, where <xxx> is a hexadecimal representation string of  the sequential number of the attribute, <property name> is the property name given to the particular Document class.

Based on the above observation, here are some interesting topics regarding the underlying DB for FileNet:

– What if different Document Classes have same attribute defined? How the column is defined in DOCVERSION?

If Document Class A has attrA defined with one type of Property, say String,  and Document Class B also has AttrA defined by with a different type of Property, say Integer, what the system would treat the attributes, AttrA for Document Class A and B?

– How the Document Class inheritance relationship is defined?

– How are the versions of the same record defined and implemented?

Documentum system employed a complicated schema to define and create the underlying DB tables to support object type definition, which results in many tables for a system. However, FileNet P8 only uses one table to hold almost all the data, when retrieving the properties with Content Engine (CE) API, many subtle procedures are needed to locate the proper record and column from the table, DocVersion.

If you want to know more about the comparison between FileNet and Documentum, here are some wonderful discussions:

Filenet P8 vs. Documentum, a comparison
[Update 4/14/2012 — The above link was broken. In case you want to check, here is a cached version from diigo.com]

Documentum and FileNet – users and groups