Documentum Interview Questions
Documentum Interview Questions
Q. What is Documentum?
Documentum is enterprise content management software that provides management of content and attributes such as check-in, check-out, workflow and version management. Documentum provides management capabilities for all types of content including business documents, images, video, e-mail, Web pages, fixed content, XML-tagged documents, etc. The core of Documentum is a repository in which the content is stored securely under compliance rules.
Documentum also provides a suite of services which include document management, collaboration, search, content classification, input management, business process management (BPM), customer communication management, Web content management, digital asset management, forms processing, information rights management, compliance and archiving etc.
Q. What is a content server?
Content Server is the foundation of Documentum’s content management system. It is a multi-featured product that provides access to the data and content files that constitute a docbase. It stores content files, their indexes and properties in the docbase. So it controls the access to the docbase. It controls the user’s access to objects in the repository by providing ACL. It is the core functionality that allows users to create, capture, manage, deliver and archive enterprise content.
Q. What is a docbase?
The place where the information about a document is stored is called as Docbase. It’s the combination of the operating system (file system) and the database. The actual file (content) is stored in the file system and the information or attributes of the document are stored in Data base.
Q. What is DFC?
DFC – Documentum Foundation Classes.
This is an object-oriented application programming interface (API) and framework for accessing, customizing and extending Documentum functionalities, implemented as a set of Java interfaces and implementation classes.
Q. What do you understand by WDK?
WDK – Web Development Kit
It is a developer’s toolkit that facilitates the development of complex web based applications that connect to Documentum content repositories and Documentum content server. It contains large library of reusable components and controls to perform common Documentum management functionalities.
Q. What is a docbroker/Connection broker?
Connection broker primarily know as docbroker provides repository connection information to the client application. Before installing a WDK application, one needs to obtain the names of the connection brokers to which the appropriate repositories project and the port numbers on which the connection brokers listen. The connection brokers used by WDK applications are defined in the dmcl.ini file on the application server host.
Q. Explain how content server and docbase communicate with the database?
Documentum Content Server requires a properly configured database. The database tables store attribute values for each object in the repository.
Documentum provides a single repository for content and metadata. It uses an extensible object-oriented model to store content and metadata in the repository. Everything in a repository is stored as objects. To retrieve metadata, Document Query Language (DQL) is used. DQL is a superset of SQL that provides a single, unified query language for all the objects managed by Content Server. The repository owner (database user) account is the account used by Content Server to connect to the RDBMS.
Q. What is a DocApp?
A DocApp is nothing but a packaging unit for Documentum objects. DocApps are used to package various elements for customization (such as custom Object Types, Lifecycles, etc.) so that they can be ported from one repository to another easily. Using Documentum Application Builder (DAB) you can create and package all your objects within a DocApp. A DocApp archive is a portable representation of a DocApp in a file on the file system. DocApps simplify developing and redeploying applications.
Q. What is the significance of connection pooling in Documentum?
Connection pooling is an optional feature of Content Server that allows a primary repository session to be recycled and used by more than one user. Implementing connection pooling provides performance benefits for applications that execute frequent connections and disconnections for multiple users. When connection pooling is enabled in the DMCL, primary repository sessions are not closed when a user disconnects. Instead, they are held in a connection pool created by the DMCL. When another user requests a connection to the repository, the user is authenticated and given the free connection. When a user disconnects or a new user assumes ownership of a primary repository session, all sub-connections open in that session is closed.
Q. Do you know how Documentum manages the passwords?
Documentum supports a variety of options for implementing user authentication:
1) In-line password: A user can be authenticated using an encrypted password that is stored in the user_password attribute of the user object.
2) LDAP directory server: If you use LDAP directory server, you have the following options:
Authenticate against the directory server directly, using a secure or a non-secure connection
Authenticate using an LDAP-enabled dm_check_password program
3) Custom password checking program: One can create a custom password checking program and set up the servers to call that program for user authentication. This option is particularly useful if you want to use Windows domain authentication for UNIX users.
4) Authentication plug-in: Documentum provides authentication plug-in which supports Single Sign-On and strong authentication. (Strong authentication is the use of authentication tokens such as smart cards or biometrics.)
Q. How can applications use Documentum?
Custom applications can be developed using DFC (Documentum Foundation Classes) or WDK (Web Development Kit). DFC exposes Content Server API while WDK offers a framework and model for building a web application.
However, there are numerous aspects and options when developing a custom application using Documentum. Custom workflows can model business processes and lifecycles can encapsulate business rules around documents. SBO’s (Service-based Business Objects) and TBO’s (Type-based Business Objects) can encapsulate business logic.
Documentum capabilities can also be encapsulated in Web Services opening up a vast array of possibilities. D6 (Documentum 6.0) offers DFS (Documentum Foundation Services) which includes some core services as well as tools for developing web services for Documentum. Then there are standard interfaces such as FTP and JDBC, which allow a Documentum repository to be accessed using these protocols. Specialized connectors and portlets offer additional alternatives. PIA (Primary Interlope Assembly) allows access from .NET platform
Q. What’s the difference between a component and a container?
A component is composed of one or more JSP pages, supporting behaviour classes and an XML configuration file.
A container is a specialized component. Many components share common UI and state. For example, dialogs have a title, content area, and a button panel. Containers provide these common layout and state for multiple components.
Components can be used within more than one container, inheriting their UI and state from the container.
Q. What are a component’s main features?
A component consists of
1) A component definition within a XML file that defines the following elements:
Unique <component Id>. The optional component inheritance from a parent component definition is specified in the “extends” attribute.
<scope> element which defines the context in which the component definition is applied.
<params> element containing the parameter used in the behaviour class.
<start> element contains all presentation pages.
<class> element specifying the behaviour class
<nlsbundle> element specifies the class that contains externalized strings for the component class and JSP pages. Properties files in the bundle can be localized.
2) JSP pages: Layout is defined in the JSP pages, using HTML and configurable Documentum tags. The definition defined in the <start> element of the definition XML as stated above.
3) Component behaviour class: has the logic of the component. This is defined in the <class> element of the XML file as stated above.
4) String resource file defined in the <nlsbundle> element of the XML configuration
Q. What are the major lifecycle methods of a component in Documentum?
The major lifecycle methods of a component are listed below:
OnInit, onRender, onRenderEnd, onCommitChanges, onOk, onCancel etc.
Q. What do you mean by Documentum object model?
The Documentum object model is used to represent content in the repository. The object model is hierarchical as in an object-oriented programming language. Child objects inherit all attributes and behaviors of the parent object.
Q. Describe the Documentum security model?
OR How many level of ACL does exist?
Access Control lists (ACL) provides the security of Documentum objects. Every sysobject is assigned an ACL which has information about the users and groups access on that object. There are basic 7 different levels of permissions which can be assigned to a user or a group of users for an object. The following are the object level permissions:
|1||None||No access is permitted.|
|2||Browse||The user can look at attribute values but not at associated content|
|3||Read||The user can read content but not update.|
|4||Relate||The user can attach an annotation to the object.|
|5||Version||The user can version the object.|
|Write||The user can write and update the object.|
|7||Delete||The user can delete the object.|
Other than these basic object level permissions we have extended permission levels also in Documentum. The extended permissions are described below:
execute_proc : Allows the user to execute the procedure (if it is a procedure)
change_location: Allows the user to change the location of the document
change_state : Allows the user to change the state of the document using the document lifecycle
change_permit : Allows the user to change the object’s permissions
change_owner : Allows the user to change the owner of the object
Q. List few native DCTM types you have commonly used?
The main native Object types in Documentum are:
Q. What tools can be used to create custom object types?
DAB – Documentum Application Builder
Q. Do you need a container to write a component?
No, a container is not mandatory when writing a component. E.g. in Webtop the “Copy to Clipboard” feature doesn’t have a container.
Q. What is a precondition and what is its importance? When is a precondition executed?
A precondition can be written for an action which determines whether the context is valid for the control or not. Accordingly it will then render an action control as enabled or disabled. They are however optional in action definition. If not mentioned the action will always execute.
Preconditions are called for each item in a list of component. If there are 10 items and 20 applicable actions, 200 preconditions will be executed before the list is rendered. So it can affect application performance if not used correctly.
Q. Describe the version management capabilities of Documentum?
Versioning is an important content management feature of Documentum which helps in managing and tracking multiple versions of a document. The check-in / check-out option provides versioning capability in Documentum. The version label attribute is the heart of the version management system which is used by the content server to label multiple versions of the document. Each label can have an implicit label or a symbolic label. The implicit label is assigned by the server whereas the symbolic label is assigned by the user.
Q. What is the significance of i_chronicle_id?
The i_chronicle_id attribute value is same for all the versions of a document. Each versioned object is assigned a unique “r_object_id” value but “i_chronicle_id” is the one attribute which is same for all versions of a document and binds all versioned objects together.
Q. What are implicit and symbolic labels in Documentum version management?
Implicit Labels: The implicit version label is a numeric label. It is generally assigned by the server and is always stored in the first position of the r_version_label attribute. By default, the first time you save an object, the server sets the implicit version label to 1.0. Each time you check out the object and check it back in, the server creates a new version of the object and increments the implicit versions label (1.1, 1.2, 1.3, and so forth).
Symbolic Labels: A symbolic version label is either system or user-defined. Using symbolic version labels, you can provide labels that are meaningful to your application and work environment. Symbolic labels are stored starting in the second position (r_version_label ) in the r_version_label attribute.
Q. What are renditions?
A rendition is a representation of a document that differs from the original document only in its format or some aspect of the format. It is an alternate copy of a file or an additional file that can be included with an object. For example, it may be a copy of an image in a different format or in a different resolution.
Q. What is app.xml and web.xml?
App.xml: The app.xml is an application configuration file wherein one can configure the application wide behaviour. In Documentum each application layer (webtop, wdk, webcomponent etc…) has an app.xml file. It is made of application elements tag such as for failover, content_transfer, authentications, formats, plug-in, listeners etc. To inherit and override settings in another application layer, the application definition can extend an application definition in another layer.
Web.xml: The web.xml file is a Web Application Deployment Descriptor for a web application. The web.xml file provides configuration and deployment information for the Web components that comprise a Web application. Examples of Web components are servlet parameters, servlet and Java Server Pages (JSP) definitions, and Uniform Resource Locators (URL) mappings.
Q. What is a workflow and how can we create workflows in Documentum?
A workflow is a process that electronically passes documents and instructions from user to user. A workflow automates the process, ensuring that the right file goes to the right people in the right order.
Workflow tools: used to create the workflow definition called the workflow template are:
1) Workflow Manager
2) Business Process Manager
Q. What is a lifecycle and how can we create lifecycles?
A document lifecycle is a sequence of states a file goes through between its creation and expiration. When you create a file, the system assigns a document lifecycle to the file and puts the file into the first state in the lifecycle. Typical lifecycle states include WIP (Work In Progress), indicating a document is in its draft phase, and Staging, indicating a document is complete and ready for approvals.
Q. What is the difference between a workflow and lifecycle?
Lifecycles and workflows are tools for enforcing business rules within Documentum.
A lifecycle is a sequence of a file going between its creation and expiration states. Typical lifecycle states include Draft, Work in Progress, Approved, released etc. Thus the focus of the lifecycle is an object.
A workflow represents a network of activities that electronically passes documents and instructions from user to user. It automates the process ensuring the correct flow of work in a system. For example, an approval workflow can take a document from the author who created the document to an editor for review and lastly a manager for approval. Thus the workflow process may result in changing lifecycle states of the document.
Q. Describe how you would use and leverage third-party data in Documentum?
The third party data from an external table can be accessed from Documentum docbase with the help of Register tables. One can register any external table in Documentum and can thereby access the data residing in it as simply as it is residing in a Documentum docbase. To register an external table in Documentum we use the following DQL:
DQL> “Register table dm_dbo.table_name (columname datatype)”
The above query registers the table in documentum database and as known this will create an object of type “dm_registered”.
Q. Differentiate between role and group?
A group in Documentum is a convenient way of collecting all users with the same permission level. A group can thereby facilitate managing permissions (assigning ACL’s), assigning a task in a group work basket in a workflow, as an owner allowing all members of a group to have ownership for the document. Thus groups are mainly used for Object level permissions.
Roles are mainly used for providing function permissions. They are basically a special type of groups. It is created by setting the group_class attribute to role and the group_name attribute to the role name.
Q. What do you know about UCF?
UCF – Unified Content Facilities
It is a lightweight applet that is responsible for transferring content between the content server, application server and the client machine during operations such as check-in, checkout, import etc. UCF is a Java-based client application that is installed at run-time. Since WDK application uses UCF content transfer it downloads a lightweight applet to the browser when the client uses the Documentum operations for the first time.
Q. What are virtual documents?
A virtual document is a document that contains components or children documents. It is composed of other components, each component being an individual object. The dmr_containtment object stores information about each individual component of a virtual document.
Virtual documents are used mainly for the following scenarios:
1) When there are multiple authors of a document, virtual document creates individual component providing owner, security and other characteristics for the document.
2) Virtual documents are useful in managing multiple file formats For E.g. if there are sub attachments like an excel sheet and a presentation attached to some word document. In this case a virtual document creates three heterogeneous file formats keeping a single logical document.
3) Virtual documents are useful when order of the children matters. By default the ordering depends on adding or removing sequence of the components. But it can also be done manually.
Q. What are the major difference in Documentum 5.3 and Documentum 6.x?
Following are some of the major features introduced in Documentum 6.x which were not present in 5.3
– Webtop performance improved by reducing the amount of refreshes and by making better utilization of the AJAX framework
– Documentum functionality presented as service in 6.x (Documentum Foundation Services i.e. DFS)
– Introducing Documentum Composer – which Supplies an Eclipse-based platform for Documentum tools, allowing you to configure application elements such as workflow templates, lifecycle definitions, security settings, aspects, and object types
– Introduces Aspects – new member in BOF family. Aspects are a mechanism for adding behavior and/or attributes to a Documentum object instance (and not object type) without changing its type definition
– XML Store as the underlying architecture for metadata and Web 2.0 content types in D6
– In the Documentum 6.5 release, the DocApp was migrated to the new Documentum Archive (DAR) format, which is compatible with Eclipse‑based Documentum Composer development tool
– Unification of dfc.properties and dmcl.ini file. The dfc.properties file replaces dmcl.ini file to define behavioural preferences for client and application
– New DFC tracing capabilities and configuration. Tracing is now controlled by entries in dfc.properties rather than log4j file.
Q. Scenario 1
A document named JohnCoverLetter.doc is linked to two folders: /Letters/Candidates/Johnand /HR/Communications. An HR admin uses Webtop to delete the folder/Letters/Candidates/John and chooses to delete all the subfolders and objects. When this operation completes what happens to /HR/Communications/JohnCoverLetter.doc?
A: The document will still be there. The document is only unlinked from /Letters/Candidates/Johnbefore that folder is deleted.