Archive

Today I want to share on kVisia, a product that provides the core functionality to automate, control and deliver an organization’s engineering and enterprise business processes to the desktop or Web. It holds the business rules, executes the XML configurations, builds the business forms, and implements the lifecycles that automate an organization’s business processes.

I think the only Prerequisites that you need to know is , Basic concept of client-server applications and Documentum Architecture.

Let me put it in Content Wise for better understanding with a bit of background of what’s there , what’s missing and how this can be achieved.

Abstract

Today the current era is defined by the terms like data, information, knowledge, wisdom etc. and in this electronic world the difficulty to manage data in abundance has begotten many technologies and one of them is the Documentum.

Documentum is nothing other than a Content Management Tool but its vastness and its ability to cater to almost all sorts of data types available are so rich in itself that these days it is widely used. If we undo the Documentum technically then it gives an edge over the Relational Database Management System by not storing only the Meta data but also storing the content in its native format.

kVisia blends with Documentum to bolster the level and depth of automation which can be achieved by the Documentum alone and this is what this document discusses in detail.

Introduction

kVisia comes of McLaren Software Limited and users need to have a license before using it. McLaren is ISO 9001 certified and it has been accredited Independent Software Vendor for Documentum and FileNet. It has got 360+ customers worldwide and it operates from UK, USA and Switzerland.

In fact kVisia is an Enterprise Engineer product that encapsulates best practices and domain expertise. This is a user configurable application consisting of XML files managed by repository and standardized on a single ECM platform. It is also believed to be powered by Documentum.

For better understanding of the kVisia we can go through the following questions and answers that will help one to identify the need.

How does it help me?

Very quickly configure the user interface and deliver it to the Desktop and Web users.

Is it easy to change?

Very easy, configuration files are stored in the Docbase in XML format.

Configurable interface using objects and tables.

Do the configuration files allow me to control inputs?

Very complex business rules can be enforced via the XML files.

Validations at creation, promotion and check in.

kVisia suite

kVisia suite consists of following three components:

McLaren Studio

McLaren_Core DocApp

McLaren_Foundation DocApp

3.1 McLaren Studio

McLaren Studio provides a user-friendly desktop application that allows users to create and edit XML configuration files that will conform to the rules of the Document Type Definition (DTD).

An XML (eXtensible Markup Language) configuration file is a structured file consisting of many elements. Elements are ordered into a tree structure or hierarchy. Elements may have parent or child elements, and may also contain attributes. An element without a parent element is the highest in a tree structure and is called a root element. Not all of the elements will have child elements.

The structure of a valid XML file is defined in a DTD (Document Type Definition) file. The DTD contains the rules that apply to each XML configuration file; these include the definitions of parent and child elements, element attributes, and how each element can be used

The appearance and behaviour of user dialogs can be modified without the need to change programme code simply by changing settings in the appropriate XML configuration file. A definition of the appearance and behaviour of a dialog is referred to as a “configuration”. A common need, however, is to display different configurations under different circumstances. For example, members of different groups may need to fill in different properties on documents, and the document’s properties may change as it moves from state to state in a lifecycle. The definition of such a scenario is referred to as a “mapping”. When you do not want to differentiate functionality between different groups, lifecycles and states, there is a value called {default} that will apply to all circumstances.

The Actions for which dialogs can be defined using an XML configuration file are:

New

When the user issues the New command, a customized dialog can be displayed. Commonly deployed features include automatic document numbering, interactive project allocation and any additional attributes (optional or mandatory), which may be required to be stored for the document.

Properties

A customized Properties dialog can be displayed. Fields can be made editable or read-only as required.

Import

When the user performs an import, a customized dialog can be displayed which may typically employ features similar to those used in the New dialog.

Copy

When the user performs a copy and paste action, a customized dialog can be displayed which may typically employ features similar to those used in the New dialog.

QuickFind

For each document type, a search dialog referred to as QuickFind can be defined and viewed by the user in the Docbase through the McLaren menu. The attributes that can be searched on are configurable and search options such as Between, Greater Than, Containing, etc., can be specified.

3.2 McLaren_Core DocApp

Having installed kVisia you get two sets of Docapps in the Docbase, one is the McLaren_core and the other one is McLaren_foundation. The McLaren_core Docapp is available to the user of a Documentum repository. It is always suggested that one should have the overview of the additional functionality as a result of the deployment of the kVisia before configuring the product to suit the business need.

As the name suggests McLaren_core Docapp provides the basic functionality like New, Import, Properties, Copy, QuickSearch etc to be configured. As discussed above, we use the XML configuration tool McLaren Studio to configure it.

For each Object Type used in the repository, an XML Configuration File can be created and configured to define the appearance and behavior of the various dialogs for documents of that Object Type. The definition of the appearance and behavior of a dialog is referred to as a configuration, and different configurations can be displayed in different circumstances.

3.3 McLaren_Foundation DocApp

The McLaren_foundation installation enables you to deploy a pre-configured implementation of the Core technology which transforms it into a user application specifically adapted to the engineering environment, providing a ready-for-use engineering repository. It deals with the following configurations:

User Roles that is associated with Menu Systems and User Dialogs that are adapted to those roles.

Object Types for documents and folders.

XML Configuration Files that define the content, appearance and behavior of the New, Copy, Properties, Import and QuickFind dialogs for the supplied Object Types in accordance with the current user’s User Role and the document’s lifecycle and state, including pre-configured, automatically generated document numbering.

Check in dialogs which are specifically adapted for each supplied type of engineering document.

Automated document revision numbering that reflects common design practice. Revision numbers start at 0 and the first issued version is 1, the second 2, the third 3, etc. When a document is checked in for the first time, a numeric value is assigned and incremented each time it is checked in.

Traditional – VB (Desktop) Vs kVisia(Desktop & Web)

Following Comparison lets you know how much flexibility kVisia provides and how much time and effort it saves.

Traditional – VB (Desktop)

kVisia (Desktop and Web)

Ø Obtain VB source code.

Ø Open VBP.

Ø Edit GUI.

Ø Add code to populate list.

Ø Add validation rules.

Ø Save source code.

Ø Compile DLL.

Ø Create CAB file.

Ø Open DocApp in Composer

Ø Edit the component ACX and

replace CAB file.

Ø Check DocApp back in.

Ø Not available until next user login.

Ø Check out XML.

Ø Edit XML kVisia Studio.

Ø Add XML tag.

Ø Specify properties.

Ø Save and Check back in.

Ø Change available immediately (no logout required).

Benefits

Easy to manage development process as applications are configured via XML using Studio

Fast route from innovation to user acceptance

Shorter time from design through to development

Shorter time to deploy to the business users

Reduces development costs

Future upgrades are minimised

Simple deployment and at a local level of control

Speeds up implementation process through rapid configuration

Hope you like the post, Feel free to post your comments and I will reply back to any queries that you have.

eContentServer is Documentum’s core server technology that stores content files, their indexes and properties in a repository called a Docbase. Information is stored as objects.

What is Repository?

A repository is where persistent objects managed by Content Server are stored. A repository stores the object metadata and sometimes content. A Documentum installation can have multiple repositories. Each repository is uniquely identified by a repository ID.

What is Docbase?

Docbase is a secure repository for storing information. Each Docbase stores two kinds of information: Content, Properties. Docbase is a repository.

What is Content?

Content can be a text, graphics, sound, or video that makes up the document. Content files are stored in a protected directory structure in the server host’s file system.

What is Metadata?

The attribute values saved in the repository are called metadata which is stored in a relational database tables. Properties (also known as metadata) are descriptive characteristics, such as a document’s creation date, creator, most recent editor, versions, format, and status in a lifecycle.

Who is a client?

A client is an end user, application, or process that uses Content Server to access the repository. Documentum provides two basic client interfaces that allow end users to access repositories:

• Desktop (older versions are called Desktop Client)

• Webtop

What is the connection broker or the DocBroker?

A naming server for the documentum content server that provides connection informations to the client session.

Documentum Products and Tools

This is contained in the Docbase data structure and is accessed in WDK via the DFC services interface.

View:

The component JSP pages implement the view layer of the application. These JSP pages use both behavioral and data-bound tag libraries, which are defined in separate classes allowing a clean separation of presentation from application logic.

Controller:

The controller aspects of the WDK are implemented in two different places the component dispatcher servlet, which marshals requests between components and the implementation of the tag libraries and components in separate classes.

What is Docbasic?

Docbasic is a powerful, easy-to-use programming language that Documentum provides.

What is the usage of Documentum Application Builder (DAB)?

An integrated development environment for creating infrastructure objects for content management applications such as custom document object types, workflows, and document lifecycles.

It is the standard web-based library services client for Documentum that is built with WDK 5

What is the usage of LDAP directory server?

An LDAP directory server is a third-party product that provides a single place for maintenance of some or all users and groups in your enterprise.

What is Menu System Designer?

Menu System Designer helps to customize Documentum Desktop menu items, including objects on the Menu Bar, on the Context Menus and toolbar buttons on the Toolbar. You can add, remove, copy, move, and modify menus and buttons using the Menu System Designer.

What are the two interactive utilities available to communicate with the content server?

IAPI and IDQL

Documentum Basic Concepts

What is an object ID?

Each object stored in the repository is identified by a unique identified called object ID.

How Documentum object are named?

Dm_ visible to users and applications.

Dmi_ represents object types that are used internally by Documentum Content Server and client products.

Dmr_ represents object types that are generally read only.

What are Persistence object types?

Objects stored in the repository and persist across sessions. The definitions of persistent object types are stored in the repository as objects of type dm_type and dmi_type_info.

What are Non-Persistence object types?

Objects types created at runtime. Examples: objects and query result objects are not persistent.

Which is the client initialization file?

DMCL

What does Proximity values indicate?

It represents the server’s distance from the DocBrokers.

What is the usage of max_connection_per_session?

The maximum number of connections in a single repository session can be set using this variable

What is Concurrent session?

Number of connection that can be made to content server.

Which are the two API’s that gives user applications full access to content server?

DFC and DMCL

What is DMCL?

The DMCL (Documentum Client Library) Manages the communication between the client and the eContentServer. It contains a library of API calls that are used by the client for execution on the eContentServer

What is Documentum Foundation Class (DFC)?

A set of Java classes that make essentially all EDM server functionality available to client programs through a published set of interfaces. DFC provides an object-oriented framework for accessing the capabilities of Content Server.

What is Documentum Query Language (DQL)?

DQL is a superset of the ANSI SQL that provides a single, unified query language for all the objects managed by Content Server.

Which execution is faster DQL or DMCL?

Creating or updating an object using DQL is faster than DMCL because DQL uses one statement to create or modify and then save the object where DMCL need to issue several methods(create the object, set its attributes and then save the object) to do the same.

What is Business Objects Framework (BOF)?

Documentum BOF provides a framework and a methodology to develop reusable business logic components called Business Objects. This framework is built into DFC and accessible from applications written using DFC.

What is Federation?

A Docbase federation is a set of two or more Docbases that are bound together to facilitate the management of a multi-Docbase distributed configuration. One Docbase in the set is the governing Docbase. The remaining Docbases are member Docbases.

Internationalization is the process of enabling the translation of a program without modification of its executable code. An internationalized program supports user interfaces (UI) and user input in multiple languages.

Internationalization is referred as I18N, which represents the first and last letters of the word “Internationalization” and the 18 characters in between.

What is Localization?

Localization is the translation of user interface and message elements into multiple languages.

All visible text in WDK server pages has been externalized to simple text resource files which can then be translated into other languages

Localization is referred as L10N, which represents the first and last characters and 10 characters between them.

What is transformation?

A transformation is the automated rendering of content from one look or format to another.

What is DocApp?

A DocApp is a virtual document that collects together all the elements of a custom application. It can consist of:

• Object types

• Document lifecycles

• Workflows

• Permission set templates

• Alias sets

• Executable elements

• Data dictionary information

• Repository objects, such as queries or folder hierarchies

What is DocApp Archive?

A DocApp archive is a portable representation of a DocApp, stored as a file on the file system. It can be created with Application Builder and installed using Documentum DocApp Installer.

Whether DocApps get dumped during the repository dump?

DocApps wont get dumped.

What is cabinet?

Cabinets provide the highest level of organization. Every document and folder must reside in a cabinet.

What is a Folder?

Documents and other objects are stored inside folders or directly inside cabinets. Folders can be placed inside cabinets or other folders.

Who is a User?

A user is typically an individual person. To access objects in a repository, a person must be represented by a dm_user object in the repository. Repository users have two states, active and inactive. An active user can connect to the repository and work. An inactive user is not allowed to connect to the repository.

What are the two types of User Privileges?

User Privileges are basic and extended.

Basic privileges: operations that a user can perform on SysObjects in the repository.

Extended privileges: define the security-related operations the user can perform.

What are the user Basic and Extended Permission Sets?

Basic:

Extended:

What is object level permission?

Access permissions assigned to every SysObject in the repository.

What are the Object level Basic and Extended Permission Sets?

Basic:

Extended:

What is Unicode Encoding?

Unicode encodings are designed to be capable of rendering every known language character. Unicode is represented by several encodings, including UTF-8, UTF-16, and UCS-2.

What encoding does WDK supports?

WDK supports UTF-8.

Workflow and Lifecycle

What is Workflow?

Workflows are a collection of tasks with associated documents that are passed to users or groups in a particular order.

What is a Task?

Tasks are items sent to a user that require the user to perform some action.

Process that controls the lifecycle (creating, editing, approving and retiring) of the document. Lifecycle consists of a linear sequence of lifecycle states.

What is Document lifecycle state?

A point in the life cycle of a document characterized by a set of properties, security, ownership, location. Each state has associated entry criteria and actions that must be Performed before an object can enter the state.

What are the actions involved in the Life cycle state?

Promote

Demote

Suspend and

Resume

Which method handles the lifecycle movement?

Movement from one state to another is handled by the dm_bp_transition_java and dm_bp_transition methods.

dm_bp_transition_java method is used for Java-based lifecycles.

dm_bp_transition method is used for Docbasic-based lifecycles.

What is workflow reporting?

Workflow Reporting is a program designed for managing the workflows in a Docbase and reporting key information about the workflows. It gives you the ability to view all workflows in a Docbase, view all aspects of workflow instances, display and modify alias set values, perform basic maintenance and administrative functions on workflows, contact workflow performers via email, and save and print workflow information.

What is an Activity in the workflow?

Activities represent the tasks that comprise the business process.

How the activities in the workflow are connected?

A link connects two activities in a workflow through their ports.

What are the object types involved in the Workflow execution?

• dm_workflow

• dmi_workitem

• dmi_package

• dmi_queue_item

• dmi_wf_timer

What is an Attachment?

Attachments are objects that users attach to a running workflow

What is a manual activity?

Manual activity represents a task performed by an actual person or members of a group.

What is an automatic activity?

Automatic activity represents a task whose work is performed, on behalf of a user, by a script.

What is workflow Agent?

Workflow agent is the Content Server facility that controls the execution of automatic activities.

What does Extension mean?

Extension allows the activity’s performer to identify a second performer for the activity after he or she completes the activity for the first time.

What is a Transition rule?

Defined set of conditions that must be met for an activity before subsequent activities commence.

Document Version and Virtual Documents

What is a Version Tree?

A version tree refers to an original document and all of its versions. The tree begins with the original object and contains all versions of the object derived from the original.

What is Implicit Version Label?

Implicit version label is a numeric label assigned by the server and is always stored in the first position of the r_version_label attribute (r_version_label[0]).

What is Symbolic Version Label?

Symbolic version label is either system- or user-defined and are stored in the second position (r_version_label[1]) in the r_version_label attribute.

Which label is assigned automatically by the server?

Symbolic label CURRENT is the only symbolic label that the server can assign to a document automatically.

What is branching?

Branching takes place automatically when you check out and then check back in an older version of a document because the subsequent linear versions of the document already exist and the server cannot overwrite a previously existing version.

What is Annotations?

Annotations are comments that a user attaches to a document

What is a Locator object?

Locator object is the shortcut to an object in a Docbase that contain only the location of the target object. Double-clicking a locator object takes you to the target object.

What are Simple documents?

Simple document is a document with one or more primary content. Primary content associated with a document is represented by a content object in the repository.

What are Virtual documents?

Virtual documents are a hierarchical structure of component documents that can be published as a single document.

What are compound documents?

Compound documents are sets of document on your local disk that are referenced to one another or linked using Object Linking and Embedding (OLE).

Can compound documents be included in the virtual documents?

Yes.

What is binding?

Attaching a specific version of a component to a virtual document is referred to as binding.

Which are the objects types used by virtual documents?

Two object types to store information about virtual documents:

• Containment object type

• Assembly object type

What are containment objects?

Containment objects contain information about the components of a virtual document.

What are assembly objects?

Assembly objects make up snapshots. A snapshot is a record of a virtual document at a particular time. It records the exact components of the virtual document at the time the snapshot was created. Each assembly object in a snapshot represents one component of the virtual document

What is freeze?

Act of locking an assembly so that no one can change any components to the structure of the assembly

When a binding can be broken?

A binding is broken if Virtual Document Manager cannot find the version of a component specified by the component’s binding rule.

Event Tracking and Search

What are the security tools used to track the operations in the repository?

Auditing and tracing

What is Auditing?

Auditing is the process of recording the occurrence of system and application events in the repository.

What is Rendition?

Rendition is a representation of a document that differs from the original document only in its format.

What are registered table?

Registered table is an external database table that Documentum knows about and can query on that.

What is an event?

Events are specific actions on specific documents, folders, cabinets, or other objects.

What is an execution agent?

Execution agents are the server processes that are capable of executing methods/jobs. Three execution agents are available:

Consistency checking is the process that ensures that cached data accessed by a client is current and consistent with the data in the repository.

What is an Event Notification?

An item in the inbox that notifies when an event occurs.

What is a scheduled transition?

Transition from one state to another at a pre-defined date and time.

What is a Smart List?

Smart List is a Docbase query that can be saved in the Docbase for future use. Creating Smart Lists enables you to execute saved searches of the Docbase without having to retype all the search criteria.

What is Full-text index?

Full text index enables a document to be searched based on words in the document.

What is Verity Query?

A query constructed using the Verity Query language, which enables you to perform complex Docbase searches.

What is Command State Flag in Desktop Client?

The circumstances under which a menu item is enabled on a menu.

What is persistent query cache?

Persistent query cache is created on a client machine the first time Documentum Desktop is used. Once the cache is created the user will see an improvement in performance because subsequent calls to the server are performed based on the already queried cache.

What is cache coherency job?

This job verifies whether the query cache on the client machine should be invalidated. A cache coherency job is setup to run every 12 hours on the server.

This Post explains how the concept of relationships and virtual documents can be used to relate objects in Documentum using Documentum Foundation Classes (DFC).

Definitions:

Relationship: A relationship implies a connection between two objects. When an object is related to another object then we can define which object is the parent object or the child object or if they are equal. Relationships are system-defined as well as user-defined. In the BOK, we confine our self to user-defined relationships.

Virtual Document: In Documentum, a document which holds other documents i.e. a document which acts as a container is called as a virtual document. A virtual document can contain other virtual documents. The document which acts as a container is called the parent document while the documents which are contained in parent document are called as child documents.

Overview on relationship:

Two built-in object types dm_relation and dm_relation_type are to be used to create relations between any two objects. The dm_relation_type object defines the behavior of the relation. The dm_relation object identifies the dm_relation_type object and the two objects between which the relation needs to be created. Pictorially it can be shown as:

Figure-1

The dm_relation_type object has following attributes:

child_parent_label: It defines the child to parent feature of the relation.

parent_child_label: It defines the parent to child feature of the relation.

description: It gives the general description of the relation.

parent_type: It defines the type of objects that will act as parents.

child_type: It defines the type of objects that will act as child.

direction_kind: It defines the nature of relationships between the objects. The expected values are:

a) 1 – Parent to Child

b) 2 – Child to Parent

c) 3 – Objects are at equal level

7. integrity_kind: It specifies the type of referential integrity used when either of the two related objects has to be deleted. The expected values are:

a) 0 – Any of the two related objects can be deleted.

b) 1 – As long as the relation exists, neither of the related objects can be deleted.

c) 2 – If one of the related objects gets deleted, other one also gets deleted.

relation_name: Specifies a name for the relation

security_type: It indicates the type of security to be used for the relation object. The valid values are:

a) SYSTEM: If this value is used, then super-user privileges are required for creating, deleting or modifying the relationships pertaining to this dm_relation_type object.

b) PARENT: In this case, the ACL for the relation is inherited from the parent object in the relation and RELATE permission is required to create, modify, or drop the relation. The exception to this is if the parent object is not a subtype of dm_sysobject, then no security will be enforced.

c) CHILD: In this case, the ACL for the relation is inherited from the child object in the relation and RELATE permission is required to create, modify, or drop the relation. The exception to this is if the child object is not a subtype of dm_sysobject, then no security will be enforced.

d) NONE – In this case, no security is applied. All users can create, modify or delete this kind of relationship.

The dm_relation object has following attributes:

child_id: It is the r_object_id or i_chronicle_id of the child object in this relation. If i_chronicle_id is used, then ‘child label’ attribute can be used to bind the parent object to a particular version of child.

parent_id: The r_object_id or i_chronicle_id of the parent object in the relations. If the attribute ‘permanent_link’ is set to TRUE then only use the i_chronicle_id of the object.

permanent_link: If every new version of the parent object has to be related with the child object, then the value for this attribute must be set to TRUE and i_chronicle_id should be used in the parent_id attribute. By default the value is FALSE.

relation_name: It specifies the value of relation_name attribute of the dm_relation_type object that defines the type of relationship.

child_label <Optional>: If i_chronicle_id is used in the attribute ‘child_id’, then the label of the version of the child object is to be specified here.

description <Optional>: Specifies the description.

effective_date<Optional>: Not used by the system, a user-defined date. Custom logic could check this date to determine the state of the relationship.

expiration_date<Optional>: Not used by the system, a user-defined date. Custom logic could check this date to determine the state of the relationship.

order_no<Optional>: Not used by the system. Custom logic could use this integer value to order a set of relationships.

Creation of dm_relation_type object using DQL: The query used to create a dm_relation_type object is as follows:

create dm_relation_type object

set child_parent_label = ‘<Child to parent label>’,

set parent_child_label = ‘<Parent to child label>’,

set description = ‘<Description>’,

set parent_type = ‘<Document type>’,

set child_type = ‘<Document type>’,

set direction_kind = <0 or 1 or 2>,

set integrity_kind = <0 or 1 or 2>,

set relation_name = ‘<Name of Relation>’,

set security_type = ‘<SYSTEM or PARENT or CHILD or NONE>’

Creation of dm_relation object using DFC: Following methods which returns an object of type dm_relation can be used to create a dm_relation object.

1. addChildRelative(relationTypeName, childId, childLabel, isPermanent, description): This method has to be invoked on the object which is going to act as Parent in the relation. The parameters it takes are

a) relationTypeName – Name of a valid dm_relation_type object.

b) childId – The r_object_id or i_chronicle_id of the child object of the relation.

c) childLabel – Version label of the child object. If this is ‘null’, the relation will contain no child label.

e) description – Specifies the description for the relation object. If ‘null’, the relation object will not have a description.

2.addParentRelative(relationTypeName, parentId, childLabel, isPermanent, description): This method has to be invoked on the object which is going to act as Child in the relation. It takes the same parameters as the method addChildRelative takes except instead of r_object_id or i_chronicle_id of the child object we pass the r_object_id or i_chronicle_id of the parent object as the parameter parentId.

Note: dm_relation object can be created through DQL also.

Overview on virtual document:

Virtual document provides a way for combining documents in various formats into one consolidated document. For e.g. one word document, one pdf document and one image can be combined to form one virtual document. There is no limitation regarding nesting of documents. One particular version or else all of the versions of a component can be combined with a virtual document. Two object types are used to store information about virtual documents. They are:

Containment Object Type: It stores the information that links a component to a virtual document. Every time a component is added to a virtual document, a containment object is created for that component. The attributes of this object type can be set by the methods AppendPart, InsertPart, UpdatePart.

Assembly Object Type: An assembly object provides a snapshot of a virtual document at a given instance.

Creation of a virtual document using DFC:

A document can be converted to a virtual document by invoking the method setIsVirtualDocument on it. This method sets the r_is_virtual_doc of the document.

Note: Virtual documents can also be created using clients such as Webtop, DA etc as well as through DQL.

Requirement in the project:

Consider there are three main documents A, B and C. Essentially, A, B and C represent different contracts. Consider another set of documents A1, A2, A3, B1, B2, B3, C1, C2 and C3. A1, A2 and A3 are directly related to A, B1, B2 and B2 are directly related to B, C1, C2 and C3 are directly related to C. Also, A is related to B (A is child, B is parent), B is related to C (B is child and C is parent), and C is related to A (C is child and A is parent). The documents being referred here are Documentum documents of a certain system-defined or user-defined document type.

As per the requirements:

For every new version of the documents the existing relations should be valid.

From the document A, we should be able to navigate to A1, A2 and A3 and also to the documents B and C. Similarly for B and C.

Depending on a particular attribute of main documents (A, B and C), there should be dynamic creation or deletion of relationships between contracts.

Resolution of requirement # 1:

Issue encountered:

Documentation says that when a dm_relation object is created with attribute values permanent_link = TRUE and child_label = ‘Current’ then for every new version of parent or child a new instance of the dm_relation object is created and the relation is created between the latest versions of child object and parent object. But on implementation of the same, always the latest version of the parent object was related to child object between which the relation was initially created.

Issue resolution:

To maintain the relation across the current versions of document and for easy navigation from parent to child documents the concept of virtual documents in addition to that of relationship was used.

All the main documents A, B and C were converted to virtual documents. The child documents A1, A2 and A3 were added as children to the newly converted virtual document A. For this the following DFC methods were used in the same order as specified:

asVirtualDocument(lateBindingValue,followRootAssembly): This method is invoked on a virtual document (in this case on A, B and C) and it returns the virtual document representation of the virtual document object on which it is invoked. The parameters it takes are2. getRootNode(): This method is invoked on the virtual document representation of a virtual document. It returns the root node of the virtual document. The root node is essentially the virtual document which is at the topmost hierarchy of virtual document tree. (In our case A, B and C are root nodes)

lateBindingValue – the version label of the virtual document. To meet our requirement the value should be “Current”.

folowRootassembly: If the value is set to TRUE, the assembly specified by the root node will be used as the virtual document.

getRootNode(): This method is invoked on the virtual document representation of a virtual document. It returns the root node of the virtual document. The root node is essentially the virtual document which is at the topmost hierarchy of virtual document tree. (In our case A, B and C are root nodes

addNode(parentNode, insertAfterNode, objectChronId, binding, followAssembly, overrideLateBindingValue): This method is invoked on the root node of a virtual document. This method adds a new node to the virtual document on which it is invoked. The parameters it takes are:

parentNode: The root node.

insertAfterNode: A virtual document node that will immediately precede the new node in the virtual document’s hierarchy. If this parameter is null, the new node is placed as the first child of parentNode.

objectChronId: i_chronicle_id of the document which is to be added as child to the virtual document. (In or case i_chronicle_id of A1, A2, A3, B1, B2, B3, C1, C2 and C3).

binding: The version label of the version of the child document with which we want to bind the child document with the virtual document.

followAssembly: It is set to TRUE if the follow_assembly attribute has to be set to TRUE for the component.

overrideLateBindingValue: It is set to TRUE if the version label identified in binding is to be used to resolve late-bound descendents of this component.

So using the concept of virtual document always the current versions of document are present in the parent virtual document. Thus the current versions of A and A1, A2, A3 are always related. And since A has been converted to virtual document, we can navigate to A1, A2 and A3 by just clicking on A.

Resolution of requirement # 2:

Now using the concept of relationship, a relation was created between A and B, B and C, A and C each. Thus navigation across the different contracts A, B and C was possible. Pictorially this can be shown as:

Figure-2

In the above figure the arrow denotes the relationship between two documents.

Resolution of requirement #3:

Requirement #3 states that there should be dynamic creation or deletion of relations between main documents depending on a particular attribute, say, attr. The value of attr for, let’s say, document A determines to which document, A will act as child. If the value of attr for document A is changed so as to imply that A and B are no longer related, then the relation object existing between A and B should be destroyed. If the new value points toward new document D, then a relation has to be created between A and D.

So the change in value of that particular attribute needs to be intercepted. The interception can be done as follows:

Write a TBO (Type based object) for the document type to which A belongs to.

Note: For details on TBO refer BusinessObjectsDevelopersGuide.pdf provided by Documentum.

In the TBO, override the method setString(attribute name, value of attribute), if the attribute attr is single-valued attribute or appendString(attribute name, value of attribute), if it is multi-valued attribute. These two methods captures all the attributes and their values for a document type. setString captures the single-valued attributes while appendString captures the multi-valued attributes.

In either of the method, compare the old value of attribute attr with the new one. If there’s any change destroy all the existing relations which involves the document A as child. This can be done using the DFC method removeParentRelative(relationTypeName,parentId,childLabel). Invoke this method on A. The parameters it takes are:Now use the method addParentRelative as explained,to relate document D as parent to document A.

relationTypeName – Name of the relation object.

parentId – r_object_id of parent object.

childLabel – version label of child object.

Every time the value is changed for attribute attr and the document is saved, the corresponding TBO is invoked and the above mentioned methods will be executed. Thus dynamic creation or deletion of relations can be achieved.

Conclusion: Thus the concept of relationships and virtual documents can be used together to relate objects in Documentum using Documentum Foundation Classes (DFC).

For faster and better search functionalities EMC has developed a Full Text Index Server which is installed separately with the Content management software to provide an index based search capability. In version 5.2.5 SPx the full text search engine was using Verity which has been now changed to FAST (Fast Search & Transfer) in 5.3 SPx onwards and xPlore replaced further.

In Verity we have to explicitly define the attributes to be indexed, in the content server configuration, whereas one of the salient features of FAST is that by default, all the attributes are indexed along with the content of the document.Since, FAST is no longer tightly coupled with the installation of the content server; one has the option of not installing Index Server. If the Full Text Index server is not installed, simple search will perform a case sensitive database search against object_name, title and subject attributes of dm_sysobject and its subtypes.

This post describes the various components of Index Server and their operations.

1. Software Components

Full-text indexing in a Documentum repository is controlled by three software components:

Content Server, which manages the objects in a repository, generates the events that trigger full-text indexing operations, queries the full-text indexes, and returns query results to client applications.

The index agent, which exports documents from a repository and prepares them for indexing.

The index server, which is a third-party server product that creates and maintains the full-text index for a repository. The index server also receives full-text queries from Content Server and responds to those queries.

2. Set Up Configuration

a) Basic Set Up

The basic indexing model consists of a single index agent and index server supporting a single repository. The index agent and index server may be installed on the Content Server host or on a different host.

b) Consolidated Set Up

In a consolidated deployment, a single index server provides search and indexing services to multiple repositories. The repositories may be in the same Content Server installation or on different hosts. However, all repositories must be of the same Content Server version.

3. Index Server Processes

The index server consists of five groups of processes that have different functions.

a) Document processors

Document processors (also sometimes called procservers) extract indexable content from content files, convert DFTXML to FIXML (a format that is used directly by the indexer), and merge the indexable content with the metadata during the DFTXML conversion process. Document processors are the largest consumer of CPU power in the index server.

b) Indexer

The indexer creates the searchable full-text index from the intermediate FIXML format. It consists of two processes. The frtsobj process interfaces with the document processor and spawns different findex processes as necessary to build the index from FIXML.

c) Query and Results servers

The QR Server (Query and Results Server) is a permanently-running process that accepts queries from Content Server, passes queries to the fsearch processes, and merges the results when there are multiple fsearch processes running.

The index server can run in continuous mode or in a special mode called suspended mode. In suspended mode, FIXML is generated for any updates to the index but not integrated into the index. When the index server is taken out of suspended mode, the index is updated. Running in suspended mode; speeds up the indexing process. Suspended mode should be used when the requirement is to index large volume of documents or to re-index an entire repository.

Navigate to “Matching Engines” tab for details on total no. of documents in all the filestores (if there are multiple repositories) and the no. of documents processed by Index Server. It also provides a link to Index Server log file.

5. How to determine Index Server ports

Using the Index server base port we can determine the ports for various Index Server processes

Index Server admin console: Base Port + 3000

FAST Search console: Base Port + 2100

6. Fulltext indexing queue messages

When a document has been marked and submitted for fulltext indexing, it is queued to the Index Agent/Index Server.

‘’ – The item is available to be picked up by an Index Agent for indexing.

‘acquired’ – The item is being processed. If an Index Agent stops abruptly, a queue item can be left in this state until the Index Agent is restarted or an Administrator clears the queue item.

‘warning’ – The item was indexed with a warning. Often it indicates that the content of the object failed to index but the meta-data was successfully indexed.

The ‘message’ attribute and the Index Agent log will have further details.

‘failed’ – The item failed to index, please refer to the ‘message’ attribute and the Index Agent log for more information.

‘done’ – Successfully indexed the item

7. Index Agent Modes

An index agent may run in one of three operational modes:

normal

In normal mode, the index agent process index queue items and prepares the SysObjects associated with the queue items for indexing. When the index agent successfully submits the object for indexing, the index agent deletes the queue item from the repository. If the object is not submitted successfully, the queue item remains in the repository and the error or warning generated by the attempt to index the object is stored in the queue item.

migration

In migration mode, the index agent processes all SysObjects in a repository sequentially in r_object_id order and prepares them for indexing. A special queue item, the high-water mark queue item, is used to mark the index agent’s progress in the repository.

An index agent in normal mode and an index agent in migration mode cannot simultaneously update the same index.

file

In file mode, a file is used to submit a list of objects IDs to the index agent when a new index is created and index verification determines which objects are missing from the index.

8. Switching modes of Index Agent

At the time of Index Agent set up the wizard gives an option to start the Index Agent under “Normal” or “Migration” mode.

The following steps should be performed to change the Index Agent from one mode to another.

3. Now change the Index Agent mode from Normal to Migration or Migration to Normal as the case may be.

4. Click on OK

5. Start the Index Agent again.

Note:

i) While in Migration mode Index Agent doesn’t appear in DA under Indexing Management tab. On the Index Agent admin screen it will provide the details of the no. of documents processed out of the total no. of documents.

ii) If the Index Agent service is restarted from services console then start the Index Agent from Index Agent Admin console or through DA under Indexing Management tab.

9. Re-configuring Index Agent and FAST

Configuring another IA and FAST to a repository previously configured to work with one IA and FAST doesn’t modify dm_ftengine_config object and IA fails to start displaying error to connect to old FAST machine.

To resolve:

Manually update the dm_ftengine_config object based on the settings from the new machine

1. Go to IAPI and execute the following API –

iapi> retrieve,c,dm_ftengine_config

…

2. Note the object_id retrieved by the above API and use it to execute the following API –

iapi> dump,c,l

…

3. In the dump results note the following param_name, param_value pairs

fds_base_port should match 13000 or the base port number for Index Server Install

fds_config_host should match the host name where the Index Server is installed.

and so on….

4. The param_name/param_value pairs should be changed to match the values for the index server install.

5. Delete the following via dql:

delete dm_ftengine_config object where r_object_id = ‘old_value’

delete dm_ftindex_agent_config object where r_object_id = ‘old_value’

6. Run the index agent configuration program to create new index agent.

10. Relocating fulltext indexes in Index Server

The following steps describe how we can change the location of fulltext indexes

1. Shutdown the Index Agent

2. Shutdown the Index Server

3. Copy the indexes to the target location ( both the fixml and the index directories)

In Windows: %DOCUMENTUM%/fulltext/IndexServer/etc/config_data/RTSearch/ webcluster/rtsearchrc.xml. Change fixmlpath and fsearchdatasetdir to the new path

In Unix: $DOCUMENTUM/fulltext/IndexServer/etc/config_data/RTSearch/webcluster/rtsearchrc.xml. Change fixmlpath and fsearchdatasetdir to the new path

7. Startup IndexServer, Index Agent

11. dm_FTCreateEvents Job

The Create Full-Text Events tool (dm_FTCreateEvents) may be used in two ways:

a) To complete an upgrade by causing any objects missed by the pre-upgrade indexing operations to be indexed.

The job generates events for each index able object added to a repository between the time a new 5.3 or later full-text index is created for a 5.2.5 repository and when the repository is upgraded to 5.3.

This is the out-of-the-box behavior of the job.

b) To generate the events required to re-index an entire 5.3 SP1 or later repository.

Re-indexing the repository does not require deleting the existing index.

Please refer to the screenshot for the configuration of dm_FTCreateEvents Job –

To generate the events required to re-index an entire 5.3 SPx or later repository the -full_reindex argument must be set to TRUE to generate the required events.

The first time the job runs in its default mode, the job determines the last object indexed by an index agent running in migration mode and the date on which that object was indexed. The job searches for objects modified after that date and before the job runs for the first time and generates events for those objects. On its subsequent iterations, the job searches for objects modified after the end of the last iteration and before the beginning of the current iteration.

Before the job is run in a 5.3 SP1 or later repository with argument –full_reindex set to TRUE, you must create a high-water-mark queue item (dmi_queue_item) manually using the API –

create,c,dmi_queue_item

save,c,l

and specify the r_object_id of the queue item as the -high_water_mark_id argument of the dm_FTCreateEvents Job.

In case you get the following error message in the job’s report –

FTCreateEvents was aborted. Error happened while processing job. Error: No high water mark found for qualification:

Verify the -high_water_mark_id attribute and check whether the API was executed after installation or re-installation of the index server to get the required r_object_id argument.

Disable the job if the application is not using Full Text Index Server.

The job can also be de-activated if the following events are registered for ‘dm_fulltext_index_user’

dm_save

dm_destroy

dm_readonlysave

dm_checkin

dm_move_content

Execute the following query to verify the same:

select event from dmi_registry where user_name=’dm_fulltext_index_user’

Note:The instruction above save a Superuser name and password to the file system in a plain text parameter file. For security reasons, you may wish to remove that information from the file after running the FTIntegrity tool. It is recommended that you save the parameter file in a location accessible only to the repository Superuser and installation owner.

To run the index verification tool:

Navigate to %Documentum%\fulltext\IndexServer\bin (Windows) or

To verify both completeness and accuracy, open a command prompt and execute

cobra ftintegrity.py -i ftintegrity.params.txt -m b

To verify completenes only, open a command prompt and execute

cobra ftintegrity.py -i ftintegrity.params.txt -m c

To verify accuracy only and query all indexed objects, open a command prompt and execute

cobra ftintegrity.py -i ftintegrity.params.txt -m a

FT Integrity generates 3 reports

res-comp-common.txt – object id of all documents that are found in both index and repository.

res-comp-dctmonly.txt – object id of documents that are in repository but not indexed

res-comp-fastonly.txt –object id of documents in index but not in repository.

It also generates ftintegrityoutput.txt file which is nothing but the console output generated in the text format.

Today’s global companies produce an enormous amount of content. Web sites and portals are the first avenue to distribute this business information to all major stakeholders. Web content management has become a primary strategy to help organizations communicate more effectively with their key audiences. Ineffective web content management can significantly undermine company messaging, decrease sales, increase staffing requirements, and raise operational costs and risks.

This post briefly discusses the need for web content management and the solution provided by documentum. It also describes how to publish content to a website using Documentum Web Publisher.

Documentum Web content management solution

Documentum provides an enterprise content management approach for managing all unstructured data including documents, web pages, XML, and rich media throughout the organization. Documentum web content management system is built on this underlying architecture to support management and publishing of all unstructured content types. It can drive down costs, simplify the management of multiple sites, and increase productivity for the creation, approval, and publishing of content, ultimately delivering a superior user experience to raise customer satisfaction and revenues.

Key components:

Web Publisher

Web Publisher is a browser-based application that simplifies and automates the creation, review, and publication of web content. It works within Documentum 5, using Documentum Content Server to store and process content. It uses Documentum Site Caching Services (SCS) to publish content to web. Web Publisher manages web content through its entire life: creation, review, approval, publishing and archiving. Web Publisher also includes a full complement of capabilities for global site management, faster web development using templates and presentation files, administration. Web Publisher can be integrated with authoring tools to develop web sites.

Documentum Content Server

Content Server stores content and meta data in a repository called docbase. It provides full set of content management services, including library services (check in and check out), version control, archiving options and process management features such as workflows and lifecycles. It also provides secure access to the content stored in the repository.

Site Caching Services

Documentum Site Caching Services (SCS) publish documents directly from a docbase to a web site. It extends the capabilities of content server. It has two components, source software and target software. The source software has to be installed on content server host and target software on web server. SCS chooses which content to publish and to what location according to the parameters in a publishing configuration. User can create publishing configurations in Documentum Administrator.

Site Deployment Services

Site Deployment Services, retrieves the web site from the Site Caching Services repository and deploys the site to multiple servers or Internet Service Providers.

Content Intelligent Services provides better searching, navigation and personalization for the large amount of web content.

Content Rendition Services

Content Rendition Services automates the conversion of standard desktop document formats into Web-ready formats such as PDF and HTML and stores the renditions in a Documentum repository alongside the original.

This is the portal solution offered by documentum. Web Publisher portlets allow users to participate in fundamental, content-based business processes without leaving their familiar portal environments or learning a new application and include three out-of-the-box portlets that are also fully customizable: My Web Publisher, Submit Content, and Published Content.

My Web Publisher – provides a personalized view, allowing users to easily see vital information such as the number of unread tasks and notifications

Submit Content – displays all Web Publisher templates that an end user is allowed to access and summarizes files that have been created, published, and checked out

Published Content – provides users with a list of documents in an active published state and grouped by category such as announcements, corporate news, or human resources (HR)

eRoom – eRoom is a web based collaboration tool that allows people to work together on content, projects, and processes both within the enterprise and beyond. This may include external entities such as partners, suppliers, customers, and clients.

Inter enterprise workflow services – With Inter enterprise workflow services, documentum workflows can be extended across a company’s firewall to include business partners. It also enables integration of documentum workflows with workflow engines, including EAI and BPM systems as well as with workflows from other enterprise applications.

Publishing Content to a Website

Traditionally web teams or IT departments manage web sites manually. Web teams are overwhelmed with demands to constantly publish new content and ensure higher quality standards while managing hundreds of thousands of web pages across external websites and portals. To overcome these challenges, organizations need to empower business content owners to author and publish content. Providing content templates can help in maintaining brand integrity across all sites. Companies should also ensure that content is reviewed and approved before it is published. Organizations can achieve consistency and quality with out burdening web teams with costly and time intensive manual updates by having a web content management solution. We will see how this can be achieved using documentum as a web content management tool.

Web teams can create web sites using Web Publisher. Web sites created are stored in web cabinets. Web administrator can create groups, which define specific job functions like content authoring, reviewing and add users to these groups. Web developers can design content templates, assign a life cycle and workflow to the template and make it available for use via web using Web Publisher. Life cycle identifies the state of a document. Web Publisher default life cycle has following states: Start, WIP, Staging, Approved and Active.

Start

When content is newly created or newly versioned, Web Publisher places it in the Start state, for initialization purposes, and then immediately promotes it to the WIP state.

WIP (Work In Progress)

Content in draft or review.

Staging

Content that is complete and ready for testing on a staging Web site. By default, Web Publisher does not allow users to modify a file’s content, location or properties if the file has advanced to the Staging state or beyond.

Approved

Content that is approved for the active Web site but has not yet reached its publication date (i.e., effective date).

Active

Content that is on the active Web site.

A workflow defines activities to be performed on content. It defines the users who will perform the set of activities. Workflow can also include automatic tasks, which are performed by the system. For example, an automatic task might promote a file to a new lifecycle state. Using Web Publisher, web teams can create workflow templates, which can be later be reused for any content type.

Content authors can create content based on content templates to which a life cycle or workflow is assigned. The content templates help companies to maintain brand integrity. Review and approval of content can be automated using workflow. Thus enterprises can control what content is created, by whom, and in what manner.

Once the content is approved it has to be published. Content owners can publish content using Web Publisher. For this, a publishing configuration has to be created for the web site. This is done using documentum administrator. User can have separate publishing configurations for different life cycle stages (WIP, Staging and Active stages) for each web cabinet. Each publishing configuration publishes to a separate target location: the WIP and Staging sites are for internal testing; the Active site is the live web site. Users would access the WIP and Staging sites through the Web Publisher preview command or a URL.

If a web site is created in multiple file formats or languages, use the publishing configuration to determine what format or language is published to a given web server. For example, suppose product.htm has three renditions: product.htm, product.xml, and product.wml. User can create two publishing configurations for the site: one that publishes HTML, GIF, and CSS files, and another that publishes WML files (Product.xml is used for development and is not published).

When a publishing configuration is created, SCS automatically creates a publishing job.

SCS publish operation can be initiated when any of the following occur:

When the publishing job’s regular interval occurs.

When a user manually publishes content through the Publish command.

When content is manually or automatically promoted to Staging or Active state. Promotion initiates the publishing operation only if the web site is configured to use synchronous publishing. Manual promotion occurs when a user either promotes content to the next lifecycle state or power promotes content to the Approved lifecycle state. Automatic promotion occurs when Web Publisher promotes content through an automatic workflow task or through the arrival of the content’s effective date. If a web page reaches the approved state after the effective date is met, the page is published the next time the site is updated.

When a user previews content in the WIP or Staging states to see how it will appear on the web. Web Publisher initiates the publishing operation if the content has been modified since the last publishing job ran.

Web Publisher removes web pages from web sites when the pages meet their expiration dates. Steps to create and publish content to a website are given below.

Steps to Create and Publish Content to Website

Log in to Web Publisher as administrator.

Go to Administration->User Management-> Users

Add users to docbase. Refer Web Publisher help for more details.

Add users to content author, content manager, administrator groups

Assign the Client Capability of content author user to contributor.

Assign the Client Capability of content manager user to coordinator.

Assign the Client Capability of administrator to system administrator.

Create a workflow template using workflow manager. User can either use the desktop version of workflow manager or web version that can be accessed from Web Publisher.

Web Publisher provides default workflow templates. For e.g. Submit to Web site, which is a simple workflow, is used to publish content to a web site. When starting this workflow, the content manager specifies an author to work on the content. The task appears in content author’s inbox. Content author modifies the content and forwards it to the manager for review. Web Publisher promotes the content from WIP to Staging prior to review. If the reviewer rejects the task, Web Publisher demotes it to WIP and routes it back to its originator. If a reviewer approves the task, Web Publisher routes the content to an approver and the content is promoted to Approved Stage. Once content is approved it is automatically promoted to Active stage and is published to the website.

To start creation of a workflow template using desktop version of workflow manager

a) Open Workflow Manager.

b) Log in to Workflow Manager as Web Publisher administrator. A Web Publisher administrator should have superuser permissions.

d) Type the target host name. This is the host where the SCS target software is installed.

e) Type the target port for making connections to the target host. The port entered must match the port

specified at the time of installation of SCS (DefaultPort, 2789)

f) Type the target root directory to which user wants to publish the content. To publish web pages to

Apache Tomcat, give this as target directory:

C:\Program Files\Apache Group\Tomcat 4.1\webapps\ROOT

g) Choose the connection type.

h) Click the Advanced tab.

i) Select a new export directory or leave the default unchanged.

j) Type the transfer user name, password, and domain. Enter the transfer authentication domain name that

was provided during SCS target installation. Enter a valid username and password.

k) Click Ok.

17. Log in to Web Publisher as content manager

18. Start the new workflow using Web Publisher

a. Navigate to the content created.

b. Select the checkbox.

c. Go to Tools

d. Select Workflow -> Start

e. Assign a content author and web admin

19. Workflow tasks will appear in user’s inbox

20. User can accept and forward the task to next user or reject it

21. Content is automatically published to web site once it is approved.

I would conclude in writing Documentum provides an enterprise approach to transform online presence and drive ROI. It provides an easy-to-use, browser-based interface that empowers non-technical users to easily create, manage, and publish content for multilingual web sites and portals. This solution is suitable for medium to large size companies.

WDK (web development kit) customizations have been part and parcel of all custom Documentum WebTop applications. The customizations includes copying the WDK components (XMLs, JSPs, custom class etc) into the custom layer. Until version 5.3 SP6 there were no Documentum out of the box features that allowed developers to perform basic customization without having to customize the WDK components manually.

Documentum 6 and above version presented the idea of “Presets”. This versatile out of the box feature in Documentum enable Documentum developers to perform basic WDK customization/configuration with a few clicks of the mouse.

This Post deals with the basics of Documentum presets and demonstrates a sample preset configuration.

Presets

Presets are out of the box feature in Documentum which enable Documentum developers to perform basic WDK customization/configuration with a few clicks of the mouse.Presets are easy to apply rules or configurations that can be created to bring in WDK configurations and setting without having to configure JSP’s pr XML’s manually. Though presets cannot completely replace WDK customizations, they certainly save time when used to make simple and common WDK changes in Documentum WebTop application.

Below an attempt is made to explain the various options available for presets and the way to configure them. Though all the options are being touched upon, for simplicity I am picking up an example preset which I will be using to disable the “FileàNewàDocument” option for all users except administrators.

1. Presets option is available in Documentum WebTop once you have logged in as Documentum administrator. It can be seen in the left browser tree under Administration–>Presets

When clicked on “Presets” the right panel will display the list of Presets if any exists.

Use the menu bar option File–>New–>Preset to configure a new Preset

3. This will pull up a screen with the “Setup” tab pre selected. This screen offers the user with four options as shown below.

4. The four options are as follows

Apply to User/Group/Role: This option enables us to configure a preset for a specific user/group or role. For example to configure a preset which would disable “Fileà NewàDocument” option for all users except the members of “admingroup” group, this would be the option to be selected.

Apply to existing location: This option enables us to configure a preset for a specific location. For example if anyone wants to configure a preset that would enable /disable navigations or menu bar options for a particular folder or cabinet this would be the option to be selected.

Apply to specific type: This option enables us to configure a preset for a specific object type. For example if anyone wants to configure a preset for dm_document( or any custom ) object type alone then this would be the best option.

Apply to specific repository: This option enables us to configure a preset at the repository level. For example if anyone wants to configure a preset which would display only custom object types while creating a new document in WebTop for all users who are logged into a repository (docbase) then this would be the option they have to look into.

5. To continue with the steps, here we would be continuing by using option a mentioned above. Using this we would try to create a preset such that “FileàNewàDocument” option is disabled for all users who are members of “admingroup” group.

6. In the screen shown in step 4 click on “Select…” button for Apply to User/Group/Role: option. A screen as shown below will be pulled up to select the required group. In this example we will be selecting “admingroup”.Filter the required group and select it. Click OK

7. Once the group is selected, the next step would be to move to the “Rules” tab. Provide the “Preset name” and “Description” textbox and then click on Next button to move to “Rules” tab.

8. The “Rules” tab will present us with a screen which allows us to configure various entities with respect to the group we selected.

Note : In this case these entities can be applied for group. As mentioned before (step 5) the same set of entities can be applied for other options, that is the rules can be applied for type, docbase or location as well.

9. The above screen displays the following rules. For each rules there are configurations/actions that can be selected. Most of the options are self explanatory.

a. Permissions

b. Formats

c. Types

d. Groups

e. Workflows

f. Lifecycles

g. Templates

h. Actions

i. Navigation

j. Attributes

10 .Here since we are going to disable the menu item “File–>New–>Document” we will be selecting the option “Actions”

11. When the option action is selected, an “Action Selector” drop down is presented to the user. We have the option to select a particular action and then add them to the “Excluded” list. Here we will be selecting the action “File–>New–>Document”.

12. Click “Finish” .The new preset is created and this will be visible in the Presets list. Refer image below.

13. The comparison between the screen shots taken for “File–>New–>Document” action before and after the preset is created.

Note: As mentioned in the steps above various kinds of Presets can be created. While planning to create presets, one thing to be borne in mind is that if a preset is applied to a group, location, docbase or type, it is not possible to create another preset for the same group, location, docbase or type.

More Details and Limitations of presets

Please refer Documentum WebTop release notes for more details and to know about limitations of presets.

Presets are created as dmc_preset_package objects in Documentum

WebTop presets reside in Documentum under the location given below “Cabinets/Resources/Registry/Presets/Webtop/Preset Packages”

A preset can be queried using the DQL select * from dmc_preset_package where object_name like ‘%<name of preset>%’

Any Points missed please mention it in the comments , will refresh the Post.

Like this:

There has been a lot of Emails floating to me these days regarding Documentum WebPublisher Configuration and Setup. I myself being newbie to WebPublisher could not reply back , so thought of coming back with a research and small Proof-Of-Concept at my end.

Before we start discussing about Documentum WebPublisher (WP) Configuration , here are few of the Pre-Requisites we need to take care:

The following Software / Components have to be installed before the actual services are installed:

Application server (e.g. Tomcat server) into Target Web Server

Database Server (e.g. MS SQL server)

Documentum Content Server

Web Publisher Server Files on Content Server

Web Publisher on target Web Server

Site Caching Service (SCS) Source on Content server

Site Caching Service (SCS) Target on target Web server

Documentum WP helps in Publishing the content from Documentum repositories.

Steps to create & publish the content:

1.Create a workflow template using workflow manager. User can either use the desktop version of workflow manager or web version that can be accessed from Web Publisher.

To start creation of a workflow template using desktop version of workflow manager

a) Open Workflow Manager.

b) Log in to Workflow Manager as Web Publisher administrator. A Web Publisher administrator should have super user permissions.

d) Choose File->Save As and save the workflow with a name that represents the workflow. All workflows must be saved in System->Applications->WebPublisher-><user_defined_workflow_folder>. Create a new folder or save workflows to the Web Publisher root folder.

e) Validate the template.

f) Install the new workflow template

g) Make it available through Web Publisher.

To access workflow manager from Web Publisher, log in to Web Publisher as a Web Publisher administrator.

c. Type the target host name. This is the host where the SCS target software is installed.

d. Type the target port for making connections to the target host. The port entered must match the port specified at the time of installation of SCS (DefaultPort , 2789)

e. Type the target root directory to which user wants to publish the content. To publish web pages to Apache Tomcat, give this as target directory:

C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\ROOT

f. Choose the connection type.

g. Click the Advanced tab. Select a new export directory or leave the default unchanged.

h. Type the transfer user name, password, and domain. Enter the transfer authentication domain name that was provided during SCS target installation. Enter a valid username and password. Click Ok.

10. If the content that is created is not in a web-safe format, then convert it into web-ready format. This is done

a. Login to WP as administrator and go to the Administration -> Web Publisher Admin -> Settings -> File Formats and define the file formats as “Web formats”, they will then be recognized as Web-safe formats.

b. Set a_special_app field of that content equal to “2” by update statement in DQL.

DQL query—

Update dm_document OBJECT SET a_special_app=’2’ where r_object_id=’<object id of the content which you want to publish>’

11. Log in to Web Publisher as Administrator.

12. Start the new workflow using Web Publisher.

13. Navigate to the content created.

14. Select the checkbox

15. Go to Tools

16. Select Workflow -> Start

17. Assign a content author and web admin as administrator.

18. Workflow tasks will appear in user’s inbox.

19. User can accept and forward the task to next user or reject it.

20. In Documentum Administrator, browse to the respective site configuration created. Select it and can then goto tools tab ->Publish. Content is automatically published once it is approved.

Could not compress the article further , appreciate your patience, Hope the Post is useful and clarifies all the doubts as to How to Configure WP.

ARBITRARY

In addition to reliability, here are 5 reasons why WordPress is the best platform for any
online business:

1. Free. If you have never heard about open source software, you might be wondering why something as great as WordPress is free. WordPress is free because it has been developed by a worldwide community of developers, who do it as a hobby and because they love the open source spirit. Not only WordPress itself is free but also most of its themes and plugins are free, which means that you can create a really rocking site for free.
2. Easy to use. Ease of use is another reason why WordPress is a great choice for an online platform. This means that someone with little experience will be able to deal with WordPress with no or just a little help from the pros.
3. Secure. As far as online business is concerned, security is of the greatest importance. If your platform is insecure, this is a threat to everything you do and you just can’t afford to go for an insecure platform. Fortunately, in regards to security, WordPress tops the list. It is true that there is no unhackable software and nobody can guarantee you that even with the most stringent security measures your WordPress site will never be hacked but it does make a difference whether you install a security fortress or an easy target for a beginner hacker.
4. Highly customizable. You will certainly want your online platform to have a unique look. With WordPress this is easy to achieve. There are thousands of themes you can choose from and thousands of plugins to add in order to get exactly the functionality you need. If you are a web designer and/or web developer, you can also use existing themes and plugins and modify them exactly to your liking. Not many other CMS offer such customization freedom!
5. Great community. Last, but not least, another reason why WordPress is such a great online platform is its community. The forums at WordPress.org and the other WordPress-related sites contain tons of threads about everything WordPress-related. Additionally, almost always when you are stuck with a problem and ask for help, knowledgeable and skillful WordPress gurus rush to your help. The WordPress community is simply great and you should experience it yourself.

WordPress is a top CMS. It is easy to start using, yet it is powerful and you can build your site exactly the way you dreamed it. If you have never tried WordPress, get it today and try it out. Just don’t forget to browse through wordpress hosting guides to see which WordPress hosts that are worth dealing with and which aren’t. WordPress is reliable and secure but a poor web host is more than it can stand, so don’t take any chances.

EMAIL SUBSCRIPTION

Enter your email address to subscribe to this blog and receive notifications of new posts by email.