<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Ajith Prabhakar's Weblog</title>
	<atom:link href="http://ajithp.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ajithp.com</link>
	<description>A beginner's guide to Documentum</description>
	<lastBuildDate>Sun, 13 Nov 2011 16:34:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ajithp.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Ajith Prabhakar's Weblog</title>
		<link>http://ajithp.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ajithp.com/osd.xml" title="Ajith Prabhakar&#039;s Weblog" />
	<atom:link rel='hub' href='http://ajithp.com/?pushpress=hub'/>
		<item>
		<title>Introducing Java Code Generator 1.0 A Utility to generate Java Beans from Documentum Objects</title>
		<link>http://ajithp.com/2009/09/07/introducing-java-code-genarator-beta-a-utility-to-genarate-java-beans-from-documentum-objects/</link>
		<comments>http://ajithp.com/2009/09/07/introducing-java-code-genarator-beta-a-utility-to-genarate-java-beans-from-documentum-objects/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 14:44:00 +0000</pubDate>
		<dc:creator>Ajith Prabhakar</dc:creator>
				<category><![CDATA[Content Server]]></category>
		<category><![CDATA[DFC]]></category>
		<category><![CDATA[DFS]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[Genaral]]></category>
		<category><![CDATA[Ajith]]></category>
		<category><![CDATA[Ajith Prabhakar]]></category>
		<category><![CDATA[DFS Application]]></category>
		<category><![CDATA[DFS beta tool]]></category>
		<category><![CDATA[Dfs tool]]></category>
		<category><![CDATA[Java beans from Documentum Object types]]></category>
		<category><![CDATA[Java Code Genarator]]></category>
		<category><![CDATA[JCGenerator]]></category>

		<guid isPermaLink="false">http://ajithprabhakar.wordpress.com/?p=174</guid>
		<description><![CDATA[Java Code Generator generates Java classes from Documentum Object types. Few bullet points about what what this utility does Generates Java Classes from the Documentum Object types All non-inherited Attributes will be member variables of the Generated Java Class Array of the Object type for Repeated Attributes. Class name by default will be capitalized name [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=174&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Java Code Generator generates Java classes from Documentum Object types. Few bullet points about what what this utility does</p>
<ul>
<li>Generates Java Classes from the Documentum Object types </li>
<li>All non-inherited Attributes will be member variables of the Generated Java Class </li>
<li>Array of the Object type for Repeated Attributes. </li>
<li>Class name by default will be capitalized name of the underlying Documentum object type </li>
<li>Option to prefix and suffix class name </li>
<li>Option to specify the Package name </li>
<li>Supports DFS Annotation </li>
</ul>
<p>After a couple of Beta versions finally I am glad to announce the The Java code Generator. Thanks a lot for all who tried this and send the valuable feedbacks to me. I tried to incorporate most of the suggestions and fix many of the bugs in this version</p>
<p><strong><em>&#160;<a href="http://ajithprabhakar.files.wordpress.com/2009/09/images1.jpg"><img title="images" style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" height="17" alt="images" src="http://ajithprabhakar.files.wordpress.com/2009/09/images_thumb1.jpg?w=35&#038;h=17" width="35" border="0" /></a> I have added a new DFC version of this tool to the download page.</em></strong> </p>
<p><a href="http://ajithprabhakar.wordpress.com/downloads/" target="_self">Click here to Go to Downloads page</a></p>
<br />Posted in Content Server, DFC, DFS, Documentum, Genaral Tagged: Ajith, Ajith Prabhakar, Content Server, DFS, DFS Application, DFS beta tool, Dfs tool, Java beans from Documentum Object types, Java Code Genarator, JCGenerator <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajithprabhakar.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajithprabhakar.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajithprabhakar.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajithprabhakar.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajithprabhakar.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajithprabhakar.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajithprabhakar.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajithprabhakar.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajithprabhakar.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajithprabhakar.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajithprabhakar.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajithprabhakar.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajithprabhakar.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajithprabhakar.wordpress.com/174/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=174&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajithp.com/2009/09/07/introducing-java-code-genarator-beta-a-utility-to-genarate-java-beans-from-documentum-objects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/707c6ebad685a84903ae7a7d0d2cd07b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ajit</media:title>
		</media:content>

		<media:content url="http://ajithprabhakar.files.wordpress.com/2009/09/images_thumb1.jpg" medium="image">
			<media:title type="html">images</media:title>
		</media:content>
	</item>
		<item>
		<title>Service Based Objects (SBO&#8217;s) in Documentum</title>
		<link>http://ajithp.com/2009/07/20/service-based-objects-sbos-in-documentum/</link>
		<comments>http://ajithp.com/2009/07/20/service-based-objects-sbos-in-documentum/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 23:30:00 +0000</pubDate>
		<dc:creator>Ajith Prabhakar</dc:creator>
				<category><![CDATA[BOF]]></category>
		<category><![CDATA[DFC]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[Ajith]]></category>
		<category><![CDATA[Ajith Prabhakar]]></category>
		<category><![CDATA[Ajiths Notes]]></category>
		<category><![CDATA[Business Object Framework]]></category>
		<category><![CDATA[Composer]]></category>
		<category><![CDATA[Content Management]]></category>
		<category><![CDATA[D6]]></category>
		<category><![CDATA[D6.5]]></category>
		<category><![CDATA[Docuentum Foundation Classes]]></category>
		<category><![CDATA[Documentum Business Object Framework]]></category>
		<category><![CDATA[Documentum Composer]]></category>
		<category><![CDATA[Jar Definition]]></category>
		<category><![CDATA[Module]]></category>
		<category><![CDATA[SBO]]></category>
		<category><![CDATA[SBO Example]]></category>
		<category><![CDATA[SBO Tutorial]]></category>
		<category><![CDATA[Service Based Object]]></category>
		<category><![CDATA[TBO]]></category>

		<guid isPermaLink="false">http://ajithprabhakar.wordpress.com/?p=253</guid>
		<description><![CDATA[Documentum Business Object Framework which was introduced from Documentum 5.3 plays a key role in most of the current Documentum implementations.&#160; Service based Object is one of the important member of Documentum BOF family.&#160; Lets try to see what makes Service Based Objects very popular and how can you implement it. What is a SBO [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=253&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Documentum Business Object Framework which was introduced from Documentum 5.3 plays a key role in most of the current Documentum implementations.&#160; Service based Object is one of the important member of Documentum BOF family.&#160; Lets try to see what makes Service Based Objects very popular and how can you implement it.</p>
<h4>What is a SBO</h4>
<p>In simple terms SBO in Documentum can be compared to session beans of J2EE environment.&#160; SBO enable the developers to concentrate just on the business logic and all the other aspects will be managed for you by the server. This reduces the application code significantly and reduces lots of complexities. The biggest advantage of a BOF that its deployed in a central repository. The repository maintains this module and DFC ensures that he latest version of the code is delivered to the client automatically.</p>
<p>Service Based Objects are repository and object type in-depended that means the Same SBO can be used&#160; by multiple Documentum repositories and can It can retrieve and do operations on different object types. SBO’s can also access external resources for example a Mail server or a LDAP server. Prior to the introduction of Documentum Foundation Services SBO’s were commonly used exposed to expose documentum web services.</p>
<p>An SBO can call another SBO or by any Type based Objects. (Type Based Objects (TBO) are a different kind of Business Object types which I will explain in a different study note)</p>
<p>A very simple to understand example for a SBO implementation would be a Zip code Validator. Multiple object types might have Zip code across multiple repositories.&#160; So if this functionality is exposed as a SBO it can be used by the custom application irrespective of Object types and repositories. This Validator SBO can be used even by different TBO’s for validations.</p>
<p>Here are some bullet points about SBO’s for easy remembering</p>
<ul>
<li>SBO’s are part of Documentum Business Object framework </li>
<li>SBO’s are not associated with any repositories </li>
<li>SBO’s are not associated with any Documentum object types. </li>
<li>SBO information is stored in repositories designated as Global Registry. </li>
<li>SBO’s are stored in /System/Modules/SBO/&lt;sbo_name&gt; folder of repository. &lt;sbo_name&gt; is the name of SBO. </li>
<li>Each folder in /System/Modules/SBO/ corresponds to a individual SBO </li>
</ul>
<h4>How to implement a SBO using Composer</h4>
<p>The steps to create a SBO are these.</p>
<p>1) Create a interface that extends <span style="font-size:xx-small;"><strong>IDfService</strong> </span>define your business method    <br />2) Create the implementation class implement write your business logic, This class should extend <span style="font-size:xx-small;"><strong>DfService</strong></span> and implement the interface defined in Step 1    <br />3) Create a jar file for the created Interface and another jar for the implementation class then create Jar Definitions    <br />4) Create a SBO Module and Deploy your Documentum Archive using Documentum Composer (Application builder for older versions)</p>
<p>Lets see these steps with an Example SBO Zip Code Setter, I am not covering the steps using application builder here. The screenshots and the notes will give you an insight about how to use Documentum Composer to implement a Service Based Object in Documentum version 6 or above.</p>
<h5>Step 1 : Create an interface and define your Business method</h5>
<p>The first step is to create a interface which will define the business functionality. This interface should extend <span style="font-size:xx-small;"><strong>IDfService</strong> </span>interface. Client application will use this interface to instantiate the SBO.</p>
<p>Click <strong>New –&gt; Interface</strong> in Documentum Composer. Click on the Add button of Extended Interfaces and search for IDfService. Select IDfService and click OK</p>
<p><a href="http://ajithprabhakar.files.wordpress.com/2009/07/image15.png"><img title="image" style="display:inline;border-width:0;" height="484" alt="image" src="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb14.png?w=486&#038;h=484" width="486" border="0" /></a></p>
<p>Now Add the Business method ValidateZipCode() to interface. The code should look like the following.</p>
<pre style="font-size:11px;width:100%;"><span style="color:#0000ff;">package</span> com.ajithp.studynotes.sbo;</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"><span style="color:#0000ff;">import</span> com.documentum.fc.client.IDfService;</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"><span style="color:#0000ff;">import</span> com.documentum.fc.client.IDfSysObject;</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"><span style="color:#0000ff;">import</span> com.documentum.fc.common.DfException;</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"><span style="color:#0000ff;">public</span> <span style="color:#0000ff;">interface</span> IZipValidatorSBO <span style="color:#0000ff;">extends</span> IDfService {</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"> <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> validateZipCode (IDfSysObject obj, String zipCode, String repository)<span style="color:#0000ff;">throws</span> DfException;</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">}</pre>
<h5>Step 2 : Create the implementation class</h5>
<p>All the Service Based Object implementation classes should extend from <span style="font-size:xx-small;"><strong>DfService</strong></span> class and implement the Interface created in the first step.&#160; <strong><em>DfService class is an abstract class There are few methods which were abstract in 5.3 and has provided with a default implementation in 6.0 and later</em></strong></p>
<table cellspacing="0" cellpadding="2" width="600" border="1">
<tbody>
<tr>
<td valign="top" align="center" width="133"><strong>Method Name</strong></td>
<td valign="top" align="center" width="114"><strong>Returns</strong></td>
<td valign="top" align="center" width="351"><strong>More information</strong></td>
</tr>
<tr>
<td valign="top" width="133">getVendorString()</td>
<td valign="top" align="center" width="114">String</td>
<td valign="top" width="351">This method’s default implementation returns a empty String. Override to make changes to it.</td>
</tr>
<tr>
<td valign="top" width="133">getVersion()</td>
<td valign="top" align="center" width="114">String</td>
<td valign="top" width="351">This method returns a version which is not right, Override this method to return Major.minor version.</td>
</tr>
<tr>
<td valign="top" width="133">isCompatible()</td>
<td valign="top" align="center" width="114">boolean</td>
<td valign="top" width="351">The default implementation returns true if the version is an exact match</td>
</tr>
</tbody>
</table>
<p>Lets see some other important methods of DfService Class before we move further.</p>
<table cellspacing="0" cellpadding="2" width="600" border="1">
<tbody>
<tr>
<td valign="top" align="center" width="137"><strong>Method Name</strong></td>
<td valign="top" align="center" width="110"><strong>Returns</strong></td>
<td valign="top" align="center" width="351"><strong>More information</strong></td>
</tr>
<tr>
<td valign="top" width="137">getName()</td>
<td valign="top" align="center" width="110">String</td>
<td valign="top" width="351">This returns the fully qualified logical name of the service interface</td>
</tr>
<tr>
<td valign="top" width="137">getSession()</td>
<td valign="top" align="center" width="110">IDfSession</td>
<td valign="top" width="351">This method returns IDfsession Object for the docbase name which is passed as argument to this method. You have to make sure that you call releaseSession() after you are done with the operation that involves session.</td>
</tr>
<tr>
<td valign="top" width="137">releaseSession()</td>
<td valign="top" align="center" width="110">&#160;</td>
<td valign="top" width="351">Releases the handle to the session reference passed to this method.</td>
</tr>
<tr>
<td valign="top" width="137">getSessionManager()</td>
<td valign="top" align="center" width="110">IDfSessionManager</td>
<td valign="top" width="351">Returns the session manager.</td>
</tr>
</tbody>
</table>
<p><strong>Managing repository sessions in SBO</strong> As We saw the the previous table its always good practice to release the repository session as soon as you are done with its use. So the ideal way to do this should be like this.</p>
<pre style="font-size:12px;width:100%;"><span style="color:#008000;">// Get the session </span></pre>
<p>
  </p>
<pre style="font-size:12px;width:100%;">IDfSession session = getSession(repoNam);</pre>
<p>
  </p>
<pre style="font-size:12px;width:100%;"><span style="color:#0000ff;">try</span> {</pre>
<p>
  </p>
<pre style="font-size:12px;width:100%;"><span style="color:#008000;">// do the operation with session</span></pre>
<p>
  </p>
<pre style="font-size:12px;width:100%;">} <span style="color:#0000ff;">catch</span> (Exception e){</pre>
<p>
  </p>
<pre style="font-size:12px;width:100%;"><span style="color:#008000;">// Process the exception </span></pre>
<p>
  </p>
<pre style="font-size:12px;width:100%;">}<span style="color:#0000ff;">finally</span> {</pre>
<p>
  </p>
<pre style="font-size:12px;width:100%;"><span style="color:#008000;">// release the session </span></pre>
<p>
  </p>
<pre style="font-size:12px;width:100%;">releaseSession(session)</pre>
<p>
  </p>
<pre style="font-size:12px;width:100%;">}</pre>
<p><strong>Transactions in SBO</strong></p>
<p>Another important thing is to know is&#160; how to handle transactions in SBO. Note that only session manager transactions can be used in a SBO. System will throw an Exception when a session based transaction used within a SBO.</p>
<p><strong>beginTransaction()</strong> will start a new Transaction and use <strong>commitTransaction()</strong> to commit it or <strong>abortTransaction()</strong> to abort a transaction.&#160; Always ensure that you are not&#160; beginning a transaction where another transaction is active. You can use <strong>isTransactionActive()</strong> to find out whether a transaction is active or not.</p>
<p>Another important point is if your SBO doesn&#8217;t start a transaction don&#8217;t commit it or abort it in the SBO Code instead if you want to abort the transaction use <strong>setTransactionRollbackOnly()</strong> method.</p>
<p><strong>Other important points </strong></p>
<p>1) Since SBO’s are repository independed do not hard code the repository names in the methods. Either pass the repository name as method parameter or have it as a variable in SBO and use a setter method to populate it after instantiating</p>
<p>2) Always try to make SBO’s stateless (Its a pain to manage state full SBO’s ).</p>
<p>3) Don’t reuse SBO, Always create a new instance before a operation.</p>
<p>Now lets see how to code our ZipSetterSBO</p>
<p>Click on <strong>New –&gt; Class</strong>, Click on the Browse button of Superclass and Search and Select DfService and in the Interfaces search for the Interface created in the previous step and Click OK. Also select the option <em>Inherited Abstract Methods</em> in Which method stubs would you like to create.</p>
<p><a href="http://ajithprabhakar.files.wordpress.com/2009/07/image16.png"><img title="image" style="display:inline;border-width:0;" height="484" alt="image" src="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb15.png?w=409&#038;h=484" width="409" border="0" /></a></p>
<p>I had Overriden method getVersion() for the illustration purpose. See the code sample for the inline comments.</p>
<pre style="font-size:11px;width:100%;"><span style="color:#0000ff;">package</span> com.ajithp.studynotes.sbo.impl;</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"><span style="color:#0000ff;">import</span> com.ajithp.studynotes.sbo.IZipValidatorSBO;</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"><span style="color:#0000ff;">import</span> com.documentum.fc.client.DfService;</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"><span style="color:#0000ff;">import</span> com.documentum.fc.client.IDfSession;</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"><span style="color:#0000ff;">import</span> com.documentum.fc.client.IDfSysObject;</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"><span style="color:#0000ff;">import</span> com.documentum.fc.common.DfException;</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"><span style="color:#0000ff;">public</span> <span style="color:#0000ff;">class</span> ZipValidator <span style="color:#0000ff;">extends</span> DfService <span style="color:#0000ff;">implements</span> IZipValidatorSBO {</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"><span style="color:#0000ff;">public</span> <span style="color:#0000ff;">static</span> <span style="color:#0000ff;">final</span> String versionString = &quot;<span style="color:#8b0000;">1.0</span>&quot;;</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"><span style="color:#008000;">// overriding the default </span></pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"><span style="color:#0000ff;">public</span> String getVersion() {</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"><span style="color:#0000ff;">return</span> versionString ;</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">  }</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"><span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> validateZipCode (IDfSysObject obj, String zipCode, String repository) <span style="color:#0000ff;">throws</span> DfException {</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">     IDfSession session = getSession(repository);</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">     <span style="color:#0000ff;">try</span> {</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">     <span style="color:#0000ff;">if</span> (isValidUSZipcode(zipCode)){</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">         obj.setString(&quot;<span style="color:#8b0000;">zipcode</span>&quot;,zipCode);</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">         obj.save();</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"> }</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">     } <span style="color:#0000ff;">catch</span> (Exception e){</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"> <span style="color:#008000;">/* Assuming that transaction is handled outside the code and this says DFC to abort the transaction
</span></pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">  in case of any error */</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"> getSessionManager().setTransactionRollbackOnly();</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"> <span style="color:#0000ff;">throw</span> <span style="color:#0000ff;">new</span> DfException();</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">     } <span style="color:#0000ff;">finally</span> {</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"> releaseSession(session);</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">    }</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">  }</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"><span style="color:#0000ff;">private</span> <span style="color:#0000ff;">boolean</span> isValidUSZipcode(String zipCode){</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"><span style="color:#008000;">// implement your logic to validate zipcode. </span></pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"><span style="color:#008000;">// or even call a external webservice to do that </span></pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"> <span style="color:#008000;">// returning true for all zip codes</span></pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;"> <span style="color:#0000ff;">return</span> <span style="color:#0000ff;">true</span>;</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">  }</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">}</pre>
<h5>Step 3 : Generate Jar files and Create Jar Definitions</h5>
<p>The next&#160; step in SBO creation is to create Jar files which will hold the interface and the implementation classes. These jar files are required to deploy your SBO.</p>
<p>Use Composers/Eclipse Create Jar option or command line jar command to create the jar file</p>
<p><a href="http://ajithprabhakar.files.wordpress.com/2009/07/image17.png"><img title="image" style="display:inline;border-width:0;" height="484" alt="image" src="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb16.png?w=547&#038;h=484" width="547" border="0" /></a>&#160;<img title="image" style="display:inline;border-width:0;" height="480" alt="image" src="http://ajithprabhakar.files.wordpress.com/2009/07/image18.png?w=410&#038;h=480" width="410" border="0" /></p>
<p><a href="http://ajithprabhakar.files.wordpress.com/2009/07/image19.png"><img title="image" style="display:inline;border-width:0;" height="484" alt="image" src="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb17.png?w=431&#038;h=484" width="431" border="0" /></a></p>
<p>Selecting the sbo package to create the interface jar</p>
<p><a href="http://ajithprabhakar.files.wordpress.com/2009/07/image20.png"><img title="image" style="display:inline;border-width:0;" height="484" alt="image" src="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb18.png?w=425&#038;h=484" width="425" border="0" /></a></p>
<p>Selecting the com.ajithp.studynotes.sbo.impl for implementation.</p>
<p>Look at the Composers Export Jar screenshots for Interface and implementation (Refer Eclipse Documentation for more details). I think the figures posted above are self explanatory.</p>
<p>The Command line to create a Jar file is <strong>jar cf &lt;name_of_jar&gt;</strong> Please look at the Java Documentation for more details on switches and options&#160; of Jar command.</p>
<p>The creation of Jar Definitions are new step added in Composer.</p>
<p>1) In Composer change the perspective to Documentum Artifacts Click <strong>New –&gt; Other –&gt; Documentum Artifacts –&gt; Jar Definition </strong></p>
<p><a href="http://ajithprabhakar.files.wordpress.com/2009/07/image21.png"><img title="image" style="display:inline;border-width:0;" height="484" alt="image" src="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb19.png?w=484&#038;h=484" width="484" border="0" /></a></p>
<p>2) Click Next&#160; and Enter the name of for the Jar Definition and click Finish<a><img title="image" style="display:inline;border-width:0;" height="484" alt="image" src="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb20.png?w=484&#038;h=484" width="484" border="0" /></a></p>
<p>3) Select Type as <strong>Interface</strong> if the jar has only interface , <strong>Implementation</strong> if the jar has only implementation of interface or <strong>Interface and Implementation</strong> if the single jar file has both interface and implementation. click on the Browse button and browse to the jar created in the last step.</p>
<p>In Our case create two Jar Definitions The first one with type as Interface pointing to Jar Created for SBO and second one with type Implementation pointing to the implementation jar</p>
<p><a href="http://ajithprabhakar.files.wordpress.com/2009/07/untitled1.jpg"><img title="untitled" style="display:inline;border-width:0;" height="176" alt="untitled" src="http://ajithprabhakar.files.wordpress.com/2009/07/untitled_thumb1.jpg?w=644&#038;h=176" width="644" border="0" /></a></p>
<p>Name the Interface jar def as zipcodevalidator and the implementation jardef as zipcodevalidatorimpl</p>
<h5>Step 4 : Create a Module and Deploy the SBO</h5>
<p>In Composer change the perspective to Documentum Artifacts then Click <strong>New –&gt; Other –&gt; Documentum Artifacts –&gt; Module </strong></p>
<p><a href="http://ajithprabhakar.files.wordpress.com/2009/07/image23.png"><img title="image" style="display:inline;border-width:0;" height="484" alt="image" src="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb21.png?w=482&#038;h=484" width="482" border="0" /></a></p>
<p>Give a valid name and leave the default folder and Click Finish<a><img title="image" style="display:inline;border-width:0;" height="484" alt="image" src="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb22.png?w=484&#038;h=484" width="484" border="0" /></a></p>
<p>In the Module edit window select SBO from the dropdown</p>
<p><a href="http://ajithprabhakar.files.wordpress.com/2009/07/image10.png"><img title="image" style="display:inline;border-width:0;" height="254" alt="image" src="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb9.png?w=644&#038;h=254" width="644" border="0" /></a></p>
<p>Now Click on Add Section of Implementation Jars of Core Jars. A new pop up window will appear which will have list of all the Jar definitions set to Type Implementation and Interface and Implementation. Select the one you wanted to use for ZipCodeValidatorSBO that is ZipCodeValidatorImpl.</p>
<p><a href="http://ajithprabhakar.files.wordpress.com/2009/07/image11.png"><img title="image" style="display:inline;border-width:0;" height="457" alt="image" src="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb10.png?w=644&#038;h=457" width="644" border="0" /></a></p>
<p>Click on the Select Button near pointing to Class name and Select the implementation class. In this case ZipValidator</p>
<p><a href="http://ajithprabhakar.files.wordpress.com/2009/07/image12.png"><img title="image" style="display:inline;border-width:0;" height="465" alt="image" src="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb11.png?w=644&#038;h=465" width="644" border="0" /></a></p>
<p>Now Click on Add Section of Interface Jars of Core Jars. A new pop up window will appear which will have list of all the Jar definitions set to Type Interfaces and Interface and Implementation. Select the one you wanted to use for ZipCodeValidatorSBO that is ZipCodeValidator.</p>
<p><a href="http://ajithprabhakar.files.wordpress.com/2009/07/image13.png"><img title="image" style="display:inline;border-width:0;" height="393" alt="image" src="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb12.png?w=644&#038;h=393" width="644" border="0" /></a></p>
<p>For more details of other options refer to Documentum Composer Manual. Save the Module.</p>
<p>Now right click on the project and install the Documentum project</p>
<p><a href="http://ajithprabhakar.files.wordpress.com/2009/07/image25.png"><img title="image" style="display:inline;border-width:0;" height="484" alt="image" src="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb23.png?w=269&#038;h=484" width="269" border="0" /></a></p>
<p>Click on the Login button after logged in Click on Finish to start the installation. </p>
<p><a href="http://ajithprabhakar.files.wordpress.com/2009/07/image26.png"><img title="image" style="display:inline;border-width:0;" height="484" alt="image" src="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb24.png?w=340&#038;h=484" width="340" border="0" /></a></p>
<p>&#160;</p>
<p>Look at the Documentum composer documentation to know more about the Installation options.</p>
<h4>How to use SBO from a Client Application</h4>
<p>follow the below steps to instantiate a SBO from a client application.</p>
<p>1) Get the Local client</p>
<p>2) Create a login info and populate the login credentials.</p>
<p>3) Create a <strong>IDfSessionManager</strong> object</p>
<p>4) Use the <strong>newService ()</strong> from the Client Object to create a SBO instance</p>
<pre style="font-size:11px;width:100%;"><span style="color:#008000;">// create client</span></pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">  IDfClient myClient = DfClient.getLocalClient();</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">  <span style="color:#008000;">// create login info</span></pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">  IDfLoginInfo myLoginInfo = <span style="color:#0000ff;">new</span> DfLoginInfo();</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">  myLoginInfo.setUser(&quot;<span style="color:#8b0000;">user</span>&quot;);</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">  myLoginInfo.setPassword(&quot;<span style="color:#8b0000;">pwd</span>&quot;);</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">  <span style="color:#008000;">// create session manager</span></pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">  IDfSessionManager mySessionManager = myClient.newSessionManager();</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">  mySessionManager.setIdentity(&quot;<span style="color:#8b0000;">repositoryName</span>&quot;, myLoginInfo);</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">  <span style="color:#008000;">// instantiate the SBO</span></pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">  IZipValidatorSBO zipValidator = (IZipValidatorSBO) myClient.newService( IZipValidatorSBO.<span style="color:#0000ff;">class</span>.getName(), mySessionManager);</pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">  <span style="color:#008000;">// call the SBO service</span></pre>
<p>
  </p>
<pre style="font-size:11px;width:100%;">  zipValidator.validateZipCode(obj, zipCode, &quot;<span style="color:#8b0000;">repositoryName</span>&quot;);&#160;&#160;&#160; </pre>
<p><a href="http://ajithprabhakar.files.wordpress.com/2009/07/sbo.pdf">Download this Study Note (PDF)</a></p>
<br />Posted in BOF, DFC, Documentum Tagged: Ajith, Ajith Prabhakar, Ajiths Notes, BOF, Business Object Framework, Composer, Content Management, D6, D6.5, DFC, Docuentum Foundation Classes, Documentum, Documentum Business Object Framework, Documentum Composer, Jar Definition, Module, SBO, SBO Example, SBO Tutorial, Service Based Object, TBO <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajithprabhakar.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajithprabhakar.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajithprabhakar.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajithprabhakar.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajithprabhakar.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajithprabhakar.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajithprabhakar.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajithprabhakar.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajithprabhakar.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajithprabhakar.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajithprabhakar.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajithprabhakar.wordpress.com/253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajithprabhakar.wordpress.com/253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajithprabhakar.wordpress.com/253/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=253&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajithp.com/2009/07/20/service-based-objects-sbos-in-documentum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/707c6ebad685a84903ae7a7d0d2cd07b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ajit</media:title>
		</media:content>

		<media:content url="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb14.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb15.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb16.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://ajithprabhakar.files.wordpress.com/2009/07/image18.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb17.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb18.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb19.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb20.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://ajithprabhakar.files.wordpress.com/2009/07/untitled_thumb1.jpg" medium="image">
			<media:title type="html">untitled</media:title>
		</media:content>

		<media:content url="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb21.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb22.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb9.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb10.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb11.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb12.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb23.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://ajithprabhakar.files.wordpress.com/2009/07/image_thumb24.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Using Java reflection to reduce Code and Development time in DFS</title>
		<link>http://ajithp.com/2009/03/11/using-java-reflection-to-reduce-code-and-development-time-in-dfs/</link>
		<comments>http://ajithp.com/2009/03/11/using-java-reflection-to-reduce-code-and-development-time-in-dfs/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 23:06:00 +0000</pubDate>
		<dc:creator>Ajith Prabhakar</dc:creator>
				<category><![CDATA[DFS]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[Ajith]]></category>
		<category><![CDATA[Ajith Prabhakar]]></category>
		<category><![CDATA[Ajiths Notes]]></category>
		<category><![CDATA[Content Server]]></category>
		<category><![CDATA[D6]]></category>
		<category><![CDATA[DFC]]></category>
		<category><![CDATA[DFS Tutorial]]></category>
		<category><![CDATA[Documentum Content Server]]></category>
		<category><![CDATA[Documentum Foundation Services]]></category>
		<category><![CDATA[Documentum Foundation Services Tutorial]]></category>
		<category><![CDATA[documentum study notes]]></category>
		<category><![CDATA[documentum tutorial]]></category>
		<category><![CDATA[Documentum Tutorials]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java Reflection]]></category>

		<guid isPermaLink="false">http://ajithprabhakar.wordpress.com/?p=220</guid>
		<description><![CDATA[Java reflections is one of the most powerful API’s of Java Language, this can be used to reduce code significantly. Most of the Current Enterprise application consists of different layers and they uses Value objects to transfer data from one layer to another. Inefficient way of using getters and setters of the attributes of Value [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=220&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Java reflections is one of the most powerful API’s of Java Language, this can be used to reduce code significantly. </p>
<p><font size="1">Most of the Current Enterprise application consists of different layers and they</font><font size="1"> uses Value objects to transfer data from one layer to another. Inefficient way of using getters and setters of the attributes of Value objects can increase code and development time of application. Effective use of reflection can reduce code and development time significantly. </font></p>
<p><font size="1">So lets take a Scenario,&#160; I have a Object type MyObjectType extending from dm_document with 50 additional attributes, so dm_document as of Documentum 6.5 has 86 attributes adding additional 50 attributes that means we have 139 attributes for this object type. Consider a standard Web Application using DFS behind which needs to manipulate (add or edit) instances of this object type, The Service needs to add all these attributes to the <strong><em><font face="Courier">PropertySet</font>&#160; </em></strong>of the </font><font face="Courier"><strong><em>DataObject</em></strong></font> representing that instance. Then need to call the appropriate service. </p>
<p><font size="1"></font></p>
<p><font size="1">Considering that the bean instance name of MyObjectType is myObjectBean the Standard code will&#160; be something like this </font></p>
<pre></pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">          ObjectIdentity objIdentity = <span style="color:#0000ff;">new</span> ObjectIdentity(&quot;<span style="color:#8b0000;">myRepository</span>&quot;);
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">          DataObject dataObject = <span style="color:#0000ff;">new</span> DataObject(objIdentity, &quot;<span style="color:#8b0000;">dm_document</span>&quot;);
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">          PropertySet properties = dataObject.getProperties();
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">          properties.set(&quot;<span style="color:#8b0000;">object_name</span>&quot;, myObjectBean.getObject_Name());
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">          properties.set(&quot;<span style="color:#8b0000;">title</span>&quot;, myObjectBean.getTitle());</pre>
<pre></pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">

          ………

         objectService.create(<span style="color:#0000ff;">new</span> DataPackage(dataObject), operationOptions);
</pre>
<p>&#160;</p>
<p>In the above code you have to explicitly set individual attributes for the object , the more the number of attributes the more complex and messy code. </p>
<p>Take another Example, where you have to retrieve an Object information and pass it over to the UI layer. </p>
<pre></pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"> myObjectBean.setObject_name(properties.get(&quot;<span style="color:#8b0000;">object_name</span>&quot;).getValueAsString());
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"> myObjectBean.setTitle(properties.get(&quot;<span style="color:#8b0000;">title</span>&quot;).getValueAsString());
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"> myObjectBean.setMy_Custom_Property(properties.get(&quot;<span style="color:#8b0000;">my_custom_property</span>&quot;).getValueAsString());</pre>
<p>This operation can be more complex if you decide to use match the Data Type of your bean with the Object type. </p>
<p>&#160;</p>
<p>So what is the best approach to reduce this complexity? the answer is effective use of reflection API. </p>
<p>Lets take a step to step approach to handle this issue. </p>
<h5>&#160;</h5>
<p>To understand this better consider the below as the attributes of mycustomobjecttype </p>
<p>&#160;</p>
<table cellspacing="0" cellpadding="2" width="400" border="0">
<tbody>
<tr>
<td valign="top" width="200">Attribute Name</td>
<td valign="top" width="200">Attribute Type</td>
</tr>
<tr>
<td valign="top" width="200">first_name</td>
<td valign="top" width="200">String</td>
</tr>
<tr>
<td valign="top" width="200">last_name</td>
<td valign="top" width="200">String</td>
</tr>
<tr>
<td valign="top" width="200">age</td>
<td valign="top" width="200">integer</td>
</tr>
<tr>
<td valign="top" width="200">date_purchased</td>
<td valign="top" width="200">time</td>
</tr>
<tr>
<td valign="top" width="200">amount_due</td>
<td valign="top" width="200">double </td>
</tr>
<tr>
<td valign="top" width="200">local_buyer</td>
<td valign="top" width="200">boolean</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<h4>Java Bean</h4>
<p>Create a Java Bean that matches the Object Type </p>
<pre></pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"><span style="color:#0000ff;">public</span> <span style="color:#0000ff;">class</span> Mycustomobjecttype {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">protected</span> String first_name ;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">protected</span> String last_name  ;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">protected</span> <span style="color:#0000ff;">int</span> age;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">protected</span> Date date_purchased  ;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">protected</span> <span style="color:#0000ff;">double</span> amount_due  ;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">protected</span> <span style="color:#0000ff;">boolean</span> local_buyer ;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">int</span> getAge() {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    <span style="color:#0000ff;">return</span> age;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> setAge(<span style="color:#0000ff;">int</span> age) {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    <span style="color:#0000ff;">this</span>.age = age;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">double</span> getAmount_due() {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    <span style="color:#0000ff;">return</span> amount_due;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> setAmount_due(<span style="color:#0000ff;">double</span> amount_due) {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    <span style="color:#0000ff;">this</span>.amount_due = amount_due;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">public</span> Date getDate_purchased() {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    <span style="color:#0000ff;">return</span> date_purchased;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> setDate_purchased(Date date_purchased) {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    <span style="color:#0000ff;">this</span>.date_purchased = date_purchased;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">public</span> String getFirst_name() {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    <span style="color:#0000ff;">return</span> first_name;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> setFirst_name(String first_name) {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    <span style="color:#0000ff;">this</span>.first_name = first_name;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">public</span> String getLast_name() {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    <span style="color:#0000ff;">return</span> last_name;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> setLast_name(String last_name) {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    <span style="color:#0000ff;">this</span>.last_name = last_name;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">boolean</span> isLocal_buyer() {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    <span style="color:#0000ff;">return</span> local_buyer;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> setLocal_buyer(<span style="color:#0000ff;">boolean</span> local_buyer) {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    <span style="color:#0000ff;">this</span>.local_buyer = local_buyer;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">}</pre>
<pre>&#160;</pre>
<h4>Getting the Values from PropertySet (Loading Java Bean)</h4>
<p>……</p>
<pre></pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">List&lt;DataObject&gt; dataObjectList = dataPackage.getDataObjects();
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">DataObject dObject = dataObjectList.get(0);
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">Mycustomobjecttype myCustomObject = <span style="color:#0000ff;">new</span> Mycustomobjecttype();
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">populateBeanFromPropertySet(dObject.getProperties(),myCustomObject);</pre>
<p>……</p>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"><span style="color:#008000;">// See the Reflection in Action here </span></pre>
<pre></pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"><span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> populateBeanFromPropertySet(PropertySet propertySet, Object bean)
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">throws</span> Exception {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"></pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">BeanInfo beaninformation;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">beaninformation = Introspector.getBeanInfo(bean.getClass());
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  PropertyDescriptor[] sourceDescriptors = beaninformation.getPropertyDescriptors();
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">for</span> (PropertyDescriptor descriptor : sourceDescriptors) {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"></pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    Object result = <span style="color:#0000ff;">null</span>;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    String name = descriptor.getName();
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    <span style="color:#0000ff;">if</span> (!name.equals(&quot;<span style="color:#8b0000;">class</span>&quot;)) {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">      <span style="color:#0000ff;">if</span> (propertySet.get(name) != <span style="color:#0000ff;">null</span>) {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">        <span style="color:#0000ff;">if</span> (descriptor.getPropertyType().getName().equals(
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">            &quot;<span style="color:#8b0000;">int</span>&quot;)) {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">          result = <span style="color:#0000ff;">new</span> Integer(propertySet.get(name)
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">              .getValueAsString());
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">        } <span style="color:#0000ff;">else</span> <span style="color:#0000ff;">if</span> (descriptor.getPropertyType().getName().equals(&quot;<span style="color:#8b0000;">double</span>&quot;)) {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">          result = <span style="color:#0000ff;">new</span> Double(propertySet.get(name).getValueAsString());
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"></pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">        } <span style="color:#0000ff;">else</span> <span style="color:#0000ff;">if</span> (descriptor.getPropertyType().getName().equals(&quot;<span style="color:#8b0000;">boolean</span>&quot;)) {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">          result = <span style="color:#0000ff;">new</span> Boolean(propertySet.get(name).getValueAsString());
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"></pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">        } <span style="color:#0000ff;">else</span> <span style="color:#0000ff;">if</span> (descriptor.getPropertyType().getName().equals(&quot;<span style="color:#8b0000;">java.util.Date</span>&quot;)) {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">          DateProperty dat = (DateProperty)propertySet.get(name);
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">          result = dat.getValue();
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">        }<span style="color:#0000ff;">else</span> {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">          <span style="color:#008000;">// none of the other possible types, so assume it as String</span>
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">          result = propertySet.get(name).getValueAsString();
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">        }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">        <span style="color:#0000ff;">if</span> (result != <span style="color:#0000ff;">null</span>)
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">          descriptor.getWriteMethod().invoke(bean, result);
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">      }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    </pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">}
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  </pre>
<h4>Setting Values to Property Set</h4>
<p>&#160;</p>
<pre></pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"><span style="color:#0000ff;">public</span> DataPackage createContentLessObject(Mycustomobjecttype myCustomType) <span style="color:#0000ff;">throws</span> Exception {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">ObjectIdentity objectIdentity = <span style="color:#0000ff;">new</span> ObjectIdentity(&quot;<span style="color:#8b0000;">testRepositoryName</span>&quot;);
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">DataObject dataObject = <span style="color:#0000ff;">new</span> DataObject(objectIdentity, myCustomType.getClass().getName());
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"></pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">PropertySet properties = populateProperties(myCustomType);
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">properties.set(&quot;<span style="color:#8b0000;">object_name</span>&quot;,myCustomType.getFirst_name()+myCustomType.getLast_name() );
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">dataObject.setProperties(properties);
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"></pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">DataPackage dataPackage = <span style="color:#0000ff;">new</span> DataPackage(dataObject);
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">OperationOptions operationOptions = <span style="color:#0000ff;">new</span> OperationOptions();
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"></pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"><span style="color:#0000ff;">return</span> objectService.create(dataPackage, operationOptions);
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"></pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">}</pre>
<p>&#160;</p>
<pre></pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"><span style="color:#008000;">// Reflection in Action  </span>
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"><span style="color:#0000ff;">public</span> PropertySet populateProperties(Object bean)<span style="color:#0000ff;">throws</span> Exception {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">BeanInfo beaninfo;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">PropertySet myPropertyset = <span style="color:#0000ff;">new</span> PropertySet();
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  beaninfo = Introspector.getBeanInfo(bean.getClass());
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  PropertyDescriptor[] sourceDescriptors = beaninfo
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">      .getPropertyDescriptors();
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">for</span> (PropertyDescriptor descriptor : sourceDescriptors) {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    String propertyName = descriptor.getName();
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    <span style="color:#0000ff;">if</span> (!propertyName.equals(&quot;<span style="color:#8b0000;">class</span>&quot;)) {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">        <span style="color:#008000;">// dont set read only attributes if any</span>
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">        <span style="color:#008000;">// example r_object_id </span>
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">      <span style="color:#0000ff;">if</span> (!propertyName.startsWith(&quot;<span style="color:#8b0000;">r</span>&quot;)) {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">        Object value = descriptor.getReadMethod().invoke(bean);
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">        <span style="color:#0000ff;">if</span> (value != <span style="color:#0000ff;">null</span>) {
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">          myPropertyset.set(propertyName, value);
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">        }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"></pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">      }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"></pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">    }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;"></pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  }
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">  <span style="color:#0000ff;">return</span> myPropertyset;
</pre>
<pre style="font-size:12px;width:100%;font-family:consolas,&#39;background-color:#ffffff;margin:0;">}</pre>
</p>
<div class="wlWriterEditableSmartContent" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:af2ae2fe-0fd4-4778-a041-4d90d6a07b0e" style="display:inline;float:none;margin:0;padding:0;">
<p> <a href="http://ajithprabhakar.files.wordpress.com/2009/03/dfs-reflection.pdf" target="_blank">Download this Note PDF</a></p>
</div>
<br />Posted in DFS, Documentum Tagged: Ajith, Ajith Prabhakar, Ajiths Notes, Content Server, D6, DFC, DFS, DFS Tutorial, Documentum, Documentum Content Server, Documentum Foundation Services, Documentum Foundation Services Tutorial, documentum study notes, documentum tutorial, Documentum Tutorials, Java, Java Reflection <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajithprabhakar.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajithprabhakar.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajithprabhakar.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajithprabhakar.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajithprabhakar.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajithprabhakar.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajithprabhakar.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajithprabhakar.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajithprabhakar.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajithprabhakar.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajithprabhakar.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajithprabhakar.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajithprabhakar.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajithprabhakar.wordpress.com/220/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=220&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajithp.com/2009/03/11/using-java-reflection-to-reduce-code-and-development-time-in-dfs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/707c6ebad685a84903ae7a7d0d2cd07b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ajit</media:title>
		</media:content>
	</item>
		<item>
		<title>Chaining of Custom Services in DFS</title>
		<link>http://ajithp.com/2009/01/25/chaining-of-custom-services-in-dfs/</link>
		<comments>http://ajithp.com/2009/01/25/chaining-of-custom-services-in-dfs/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 23:34:24 +0000</pubDate>
		<dc:creator>Ajith Prabhakar</dc:creator>
				<category><![CDATA[DFS]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[Ajith]]></category>
		<category><![CDATA[Ajith Prabhakar]]></category>
		<category><![CDATA[Ajiths Notes]]></category>
		<category><![CDATA[DFS Build Issues]]></category>
		<category><![CDATA[DFS Tutorial]]></category>
		<category><![CDATA[Documentum Foundation Services]]></category>
		<category><![CDATA[documentum study notes]]></category>
		<category><![CDATA[documentum tutorial]]></category>

		<guid isPermaLink="false">http://ajithprabhakar.wordpress.com/?p=146</guid>
		<description><![CDATA[  There is an interesting drawback in Documentum Foundation Services Version 6.5, Issue: When you chain custom services and try to build the Services the build fails lets see a Scenario from the DFS sample code itself @DfsPojoService(targetNamespace = &#8220;http://common.samples.services.emc.com&#8221;, requiresAuthentication = true ) public class HelloWorldService { public String sayHello(String name) { ServiceFactory serviceFactory [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=146&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="Sect">
<p align="left"> </p>
<p align="left">
<p align="left">There is an interesting drawback in Documentum Foundation Services Version 6.5,</p>
<p align="left">
<p align="left">Issue:</p>
<p align="left">
<p align="left">When you chain custom services and try to build the Services the build fails lets see a Scenario from the DFS sample code itself</p>
<p align="left">
<p align="left"><span style="color:#7c0053;"><strong></strong></span></p>
<p align="left">
<p align="left"><span style="color:#626262;">@DfsPojoService</span><span style="color:#000000;">(targetNamespace = </span><span style="color:#2900ff;">&#8220;http://common.samples.services.emc.com&#8221;</span><span style="color:#000000;">, requiresAuthentication = </span><span style="color:#7c0053;"><strong>true</strong></span></p>
<p align="left"><span style="color:#000000;">) </span><span style="color:#7c0053;"><strong>public</strong> </span><span style="color:#7c0053;"><strong>class</strong> HelloWorldService </span></p>
<p align="left">{</p>
<p align="left"><span style="color:#7c0053;"><strong>public</strong> String sayHello(String name) </span></p>
<p align="left">{</p>
<p align="left">
<p align="left">ServiceFactory serviceFactory = ServiceFactory.<em>getInstance</em>();</p>
<p align="left">IServiceContext context = ContextFactory.<em>getInstance</em>().getContext();</p>
<p align="left"><span style="color:#7c0053;"><strong>try</strong> { </span></p>
<p align="left">IAcmeCustomService secondService = serviceFactory.getService(IAcmeCustomService.<span style="color:#7c0053;"><strong>class</strong>, context); </span></p>
<p align="left">secondService.testExceptionHandling();</p>
<p align="left">} <span style="color:#7c0053;"><strong>catch</strong> (ServiceInvocationException e) { </span></p>
<p align="left">
<p align="left">e.printStackTrace();</p>
<p align="left">} <span style="color:#7c0053;"><strong>catch</strong> (CustomException e) { </span></p>
<p align="left">
<p align="left">e.printStackTrace();</p>
<p align="left">} <span style="color:#7c0053;"><strong>catch</strong> (ServiceException e) { </span></p>
<p align="left">
<p align="left">e.printStackTrace();</p>
<p align="left">}</p>
<p align="left"><span style="color:#7c0053;"><strong>return</strong> </span><span style="color:#2900ff;">&#8220;Hello &#8220;</span><span style="color:#000000;"> + name; </span></p>
<p align="left">
<p align="left">}</p>
<p align="left">}</p>
<p align="left">
<p align="left">Here in the sample code of DFS I am chaining the services, Here everything looks fine and when you now you build this service during the genarateArtifacts ant task the Build will fail with a will get a ClassNotFound compiler error at</p>
<p align="left">
<p align="left"><strong>IAcmeCustomService</strong> secondService = serviceFactory.getService(<strong>IAcmeCustomService.<span style="color:#7c0053;">class</span></strong>, context);</p>
<p align="left">
<p align="left">
<p align="left">What happens here is when the build does the initial clean up all the generated Client interfaces are deleted and DFS currently not checking for any dependencies.</p>
<p align="left">
<p align="left">Let me take the example of dfs-build.xml that’s the part of CoreDocumentumProject in composer</p>
<p align="left"><span style="color:#000080;">&lt;generateArtifacts</span><span style="color:#000000;"> </span><span style="color:#000080;">serviceModel=</span><span style="color:#008000;">&#8220;${gen.src.dir}/${context.root}-${module.name}-service-model.xml&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">destdir=</span><span style="color:#008000;">&#8220;${gen.src.dir}/&#8221;</span><span style="color:#000080;">&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;src</span><span style="color:#000000;"> </span><span style="color:#000080;">location=</span><span style="color:#008000;">&#8220;${src.dir}&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">/&gt;</span><span style="color:#000000;"> </span></p>
<p align="left">
<p align="left"><span style="color:#000080;">&lt;classpath&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;path</span><span style="color:#000000;"> </span><span style="color:#000080;">refid=</span><span style="color:#008000;">&#8220;projectclasspath.path&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">/&gt;</span><span style="color:#000000;"> </span></p>
<p align="left">
<p align="left"><span style="color:#000080;">&lt;/classpath&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;/generateArtifacts&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;/target&gt; </span></p>
<p align="left"> </p>
<p align="left">
<p align="left">In this we cannot set any exclusion path in <span style="color:#000080;">&lt;src</span><span style="color:#000000;"> </span><span style="color:#000080;">location=</span><span style="color:#008000;">&#8220;${src.dir}&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">/&gt; </span></p>
<p align="left"><span style="color:#000000;">Simply because it even if you provide &lt;fileset/&gt; or &lt;direst/&gt; with pattern set its not recognizing it. </span></p>
<p align="left">
<p align="left">I had raised a support case with EMC and they told me that this is not currently supported!!!! And they will add this as a feature request</p>
<p align="left">This means we cannot Chain Custom Services unless EMC fix this or we do a semi manual workaround to overcome this issue.</p>
<p align="left">
<p align="left">
<p align="left"><strong></strong></p>
<p align="left">
<p align="left">
<h3><strong>The Work-around that I found</strong></h3>
</p>
<p align="left">
<p align="left">
<p align="left">Follow these steps to overcome this issue</p>
<p align="left">
<p align="left">
<p align="left">
<p align="left"><strong>Step 1,</strong></p>
<p align="left">
<p align="left">Identify the Services those will call the custom services, and create a new source directory for it in composer, here I am calling them as depended_src and move the services that calls the custom services to there, the depended src should be in a separate path than the webservices- src</p>
<p align="left">
<p align="left"><img class="alignnone size-full wp-image-148" title="src-img1" src="http://ajithprabhakar.files.wordpress.com/2009/01/src-img1.gif?w=218&#038;h=247" alt="src-img1" width="218" height="247" /></p>
<p align="left">
<p align="left"><strong>Step 2</strong></p>
<p align="left">
<p align="left">1) Now Edit the Build file and add these two properties</p>
<p align="left"> </p>
<p align="left">&lt;property<span style="color:#000000;"> </span><span style="color:#000080;">name=</span><span style="color:#008000;">&#8220;my.core.services.classes&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">value=</span><span style="color:#008000;">&#8220;${service.projectdir}/Web Services/bin/classes&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">/&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"> </p>
<p align="left">&lt;property<span style="color:#000000;"> </span><span style="color:#000080;">name=</span><span style="color:#008000;">&#8220;dep.src.dir&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">value=</span><span style="color:#008000;">&#8220;${service.projectdir}/depended_src&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">/&gt;</span><span style="color:#000000;"> </span></p>
<p align="left">
<p align="left">The dep.src.dir should point to the depended src location mentioned in step 1</p>
<p align="left">
<p align="left">2) Create an additional target for generatemodel and generate artifacts</p>
<p align="left">
<p align="left"><span style="color:#000080;">&lt;target</span><span style="color:#000000;"> </span><span style="color:#000080;">name=</span><span style="color:#008000;">&#8220;generateDependencies&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">depends=</span><span style="color:#008000;">&#8220;generate&#8221;</span><span style="color:#000080;">&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;echo</span><span style="color:#000000;"> </span><span style="color:#000080;">message=</span><span style="color:#008000;">&#8220;Calling generateDependencies&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">/&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;generateModel</span><span style="color:#000000;"> </span><span style="color:#000080;">contextRoot=</span><span style="color:#008000;">&#8220;${context.root}&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">moduleName=</span><span style="color:#008000;">&#8220;${module.name}&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">destdir=</span><span style="color:#008000;">&#8220;${gen.src.dir}/&#8221;</span><span style="color:#000080;">&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;services&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;fileset</span><span style="color:#000000;"> </span><span style="color:#000080;">dir=</span><span style="color:#008000;">&#8220;${dep.src.dir}&#8221;</span><span style="color:#000080;">&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;include</span><span style="color:#000000;"> </span><span style="color:#000080;">name=</span><span style="color:#008000;">&#8220;**/*.java&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">/&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;/fileset&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;/services&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;classpath&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;pathelement</span><span style="color:#000000;"> </span><span style="color:#000080;">location=</span><span style="color:#008000;">&#8220;${my.core.services.classes}&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">/&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;path</span><span style="color:#000000;"> </span><span style="color:#000080;">refid=</span><span style="color:#008000;">&#8220;projectclasspath.path&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">/&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;/classpath&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;/generateModel&gt;</span><span style="color:#000000;"> </span></p>
<p align="left">
<p align="left"><span style="color:#000080;">&lt;generateArtifacts</span><span style="color:#000000;"> </span><span style="color:#000080;">serviceModel=</span><span style="color:#008000;">&#8220;${gen.src.dir}/${context.root}-${module.name}-service-model.xml&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">destdir=</span><span style="color:#008000;">&#8220;${gen.src.dir}/&#8221;</span><span style="color:#000080;">&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;src</span><span style="color:#000000;"> </span><span style="color:#000080;">location=</span><span style="color:#008000;">&#8220;${dep.src.dir}&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">/&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;classpath&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;pathelement</span><span style="color:#000000;"> </span><span style="color:#000080;">location=</span><span style="color:#008000;">&#8220;${my.core.services.classes}&#8221;</span><span style="color:#000080;">/&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;path</span><span style="color:#000000;"> </span><span style="color:#000080;">refid=</span><span style="color:#008000;">&#8220;projectclasspath.path&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">/&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;/classpath&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;/generateArtifacts&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#800000;">&lt;!&#8211; signal build is done &#8211;&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#800000;">&lt;!&#8211; used by DFSBuilder.java &#8211;&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;copy</span><span style="color:#000000;"> </span><span style="color:#000080;">todir=</span><span style="color:#008000;">&#8220;${src.dir}/../&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">file=</span><span style="color:#008000;">&#8220;${basedir}/dfs-builddone.flag&#8221;</span><span style="color:#000000;"> </span><span style="color:#000080;">/&gt;</span><span style="color:#000000;"> </span></p>
<p align="left"><span style="color:#000080;">&lt;/target&gt;</span><span style="color:#000000;"> </span></p>
<p align="left">
<p align="left">
<p align="left">
<p align="left">3) Now edit dfs-build.properteis and add the following property</p>
<p align="left">
<p align="left">service.projectdir= &lt;absolute path to the project&gt;</p>
<p align="left">
<p align="left">
<p align="left"><strong>Step 3</strong></p>
<p align="left">
<p align="justify">1) Run the generate task,</p>
<p align="justify">
<p align="left">2) Copy all the service entries from (between &lt;module&gt; and &lt;/module&gt;&lt;<span style="color:#0000ff;">context-root&gt;-&lt;module-name&gt;-service-model.xml </span><span style="color:#000000;">you can find this in &lt;project_dir&gt;\Web Services\bin\gen-src folder </span></p>
<p align="left">
<p align="left">3) Now run the generateDependencies task that was created on Step 2</p>
<p align="left">
<p align="left">4) Now Edit &lt;<span style="color:#0000ff;">context-root&gt;-&lt;module-name&gt;-service-model.xml </span><span style="color:#000000;">and add the copied services to this file </span></p>
<p align="left">
<p align="left">5) If you want to create the jar files now you can call the package task after this.</p>
<p align="left">
<p align="left">
<p align="left">
<p align="left">This should help you to chain custom services , and if you found any alternate ways please comment.</p>
<p align="left">
<p align="left">
<p align="left">
<p align="left">
<p align="left">
<p align="left">
<p align="left">
<p align="left">
<p align="left"> </p>
</div>
<br />Posted in DFS, Documentum Tagged: Ajith, Ajith Prabhakar, Ajiths Notes, DFS, DFS Build Issues, DFS Tutorial, Documentum Foundation Services, documentum study notes, documentum tutorial <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajithprabhakar.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajithprabhakar.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajithprabhakar.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajithprabhakar.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajithprabhakar.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajithprabhakar.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajithprabhakar.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajithprabhakar.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajithprabhakar.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajithprabhakar.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajithprabhakar.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajithprabhakar.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajithprabhakar.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajithprabhakar.wordpress.com/146/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=146&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajithp.com/2009/01/25/chaining-of-custom-services-in-dfs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/707c6ebad685a84903ae7a7d0d2cd07b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ajit</media:title>
		</media:content>

		<media:content url="http://ajithprabhakar.files.wordpress.com/2009/01/src-img1.gif" medium="image">
			<media:title type="html">src-img1</media:title>
		</media:content>
	</item>
		<item>
		<title>Data Dictionary in Documentum</title>
		<link>http://ajithp.com/2008/10/14/data-dictionary-in-documentum/</link>
		<comments>http://ajithp.com/2008/10/14/data-dictionary-in-documentum/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 14:12:38 +0000</pubDate>
		<dc:creator>Ajith Prabhakar</dc:creator>
				<category><![CDATA[Content Server]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[Genaral]]></category>
		<category><![CDATA[Ajith]]></category>
		<category><![CDATA[Ajith Prabhakar]]></category>
		<category><![CDATA[Data Dictionary]]></category>
		<category><![CDATA[dmi_dd_attr_info]]></category>
		<category><![CDATA[dmi_dd_common_info]]></category>
		<category><![CDATA[dmi_dd_type_info]]></category>
		<category><![CDATA[Documentum Data Dictionary]]></category>
		<category><![CDATA[documentum tutorial]]></category>

		<guid isPermaLink="false">http://ajithprabhakar.wordpress.com/?p=100</guid>
		<description><![CDATA[As you all know Documentum is all about Objects and its attributes, Have you ever wondered where Documentum is storing information about its Object types and its attributes? To get the answer for this question you should know more about Data Dictionary in Documentum. Let me walk you through some of the important aspects of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=100&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="MsoBodyText">As you all know Documentum is all about Objects and its attributes, Have you ever wondered where Documentum is storing information about its Object types and its attributes?</p>
<p class="MsoBodyText">To get the answer for this question you should know more about Data Dictionary in Documentum. Let me walk you through some of the important aspects of Data Dictionary in this study note.<span>  </span></p>
<h3><span>What is the use of Data Dictionary</span></h3>
<p class="MsoBodyText">The following is a partial collection of the information about an Object type that will be stored by Data Dictionary <em>Attribute label, help and other information (Localized), Default Attribute values, Value Assistance, Value Mapping, Constrains, and Default lifecycle of that object type</em>. A Documentum client application can leverage this information to build the Presentation layer for that Object type and also provide some business rule enforcements.</p>
<p class="MsoBodyText"> </p>
<p class="MsoBodyText">Another interesting point about Data Dictionary is that it supports multiple locales, which means you can have multiple locale configured for each object type. Each locale represents a geographical region.</p>
<p class="MsoBodyText">Imagine an Organization that has offices in Paris, Spain and US , The Data Dictionary allows you to store each<span>  </span>Attribute label information in all three languages and<span>  </span>the Client application (e.g. : WebTop , or a Custom UI) can fetch for the specific labels in the language of that region and display it to the user.</p>
<p class="MsoBodyText"><strong>More about Data Dictionary</strong></p>
<p class="MsoBodyText">Let’s see some of the useful features of Data Dictionary here, above I mentioned some of the information that you can store in the Data Dictionary, lets see some of these in detail for a better understanding. First we will see all UI related and then we will see some business rules and functionalities that you can enforce through data dictionary</p>
<p class="MsoBodyText"> </p>
<p class="MsoBodyText"><strong>UI Related</strong></p>
<p class="MsoBodyText"><strong><span>1) Default Values for Attributes</span></strong></p>
<p class="MsoBodyText">During the Creation of an Object type or upon its modification you can specify the default value of that Attribute, which means if no value for that attribute has been specified by the user this default value will be set as the attribute value</p>
<p class="MsoBodyText"><strong>2) Value Assistance</strong></p>
<p class="MsoBodyText">Value assistance is used to provide user with a drop down list of possible values for that attribute. This can be even conditional, means upon selected criteria the values in the value assistance can be changed (Conditional Value Assistance)</p>
<p class="MsoBodyText">Another important point about Value assistance is the values used for Value Assistance can be a fixed list or based out of a DQL query that runs dynamically.</p>
<p class="MsoBodyText"><strong>3) Value Mapping</strong></p>
<p class="MsoBodyText">Value mapping is another useful feature where a value can be mapped for another, this works as a Key Value pair, for an example consider this list used for Value mapping New Jersey &#8211; NJ, New York &#8211; NY, and New Hampshire &#8211; NH.</p>
<p class="MsoBodyText">This option provides a possibility of user being displayed with the Complete State name in the UI and Value stored will be just the state code.</p>
<p class="MsoBodyText"><strong>4) Internationalization of Various Texts</strong></p>
<p class="MsoBodyText">If you look at the WebTop or Any Documentum UI application (Not necessarily a custom build User Interface) you can see there are lot of information like labels, error messages, help information etc, these text bits can be stored for different locales in the Data Dictionary. Different locale means different languages. So this helps to build a single UI for a global application and support multiple languages.</p>
<p class="MsoBodyText"> </p>
<p class="MsoBodyText"><strong>Business Rule and Functionality</strong></p>
<p class="MsoBodyText"><strong><span>1) Lifecycles for an object type.</span></strong></p>
<p class="MsoBodyText">During the Creation or modification of an object type you can specify a lifecycle as the default lifecycle of an object type. This eliminates the pain of searching for a lifecycle name or its ID to attach it to the newly created object; User can do it by using keyword <strong>default</strong> at the time of attaching a new Object instance to a life cycle.<span>  </span><br />
But the <em>important point to note here is just by specifying a default lifecycle a object will not be attached to its default lifecycle</em>. The Creator or the application has to specifically attach that object to the lifecycle. <span> </span>
</p>
<p class="MsoBodyText"><strong>2) Constrains</strong></p>
<p class="MsoBodyText">You can do validation of a property by adding constrains to it. The possible types of constrains are the following. <em>Important point to note here is Content server does not enforce these constrains even though you define in Data Dictionary</em>. Typically the Client application should read these constrains and enforces it. <span> </span>You can also specify the localized error messages in for the validation error in the Data Dictionary. </p>
<p class="MsoBodyText" style="padding-left:30px;"><strong><em>a) Primary key</em> </strong><br />
Primary key should be added in combination with not- null constrain. Primary keys are inherited. One or more attributes can make primary key but only single value properties can be a part of it. One object type can have only one primary key definition, (But can have more if it inherit primary key from its super type). Primary key constraints can be either the object type level or the property level. If the key has more than one participating properties it should be defined at type level. If the key is a single property then it’s a good idea to define it at property level.</p>
<p class="MsoBodyText" style="padding-left:30px;"><strong><em>b) Unique Key<br />
<span style="font-style:normal;font-weight:normal;">Unique key constraint is used to enforce a property or combination of properties for which all the object of that type should have unique value. The key can be a combination of one or more</span></em></strong>
</p>
<p class="MsoBodyText" style="padding-left:30px;">single-valued properties or one or more repeating properties which is defined in that object type itself (Not Inherited).Another important point is the key for Unique constraint cannot be a combination of single-valued and repeating properties. These are inherited too.</p>
<p class="MsoBodyText" style="padding-left:30px;"><em><strong>c) Foreign key</strong><br />
<span style="font-style:normal;font-weight:normal;">Foreign key constraint identifies relationship between one or more properties for one object type and one or more properties in another. The number and data types of the properties in each set of properties must match. Foreign key constraints can be at object type level or at the property level. It should be defined at type level If the key has two or more participating properties. Also both object types must be set in the same repository, and corresponding parent and child Properties should be of same data type.</span></em></p>
<p class="MsoBodyText" style="padding-left:30px;"><em><strong>d) Not Null</strong><br />
<span style="font-style:normal;font-weight:normal;">A NOT NULL constraint sets on a property that will not allow having a null value. It can be defined only at the property level and only for single properties</span></em></p>
<p class="MsoBodyText" style="padding-left:30px;"><strong><em>e) Check<br />
<span style="font-style:normal;font-weight:normal;">Check constraints are used for validating data. An expression or script can be provided in the constraint’s definition that the client application can run to validate a given property’s value. This can be on Object level or Attribute level</span></em></strong>
</p>
<p class="MsoBodyText" style="padding-left:30px;"> </p>
<h3><span>How is Data Dictionary modified</span></h3>
<p class="MsoBodyText2">Data Dictionary modification can be either adding a new Object type information or can be modifying existing Object type information.</p>
<p class="MsoBodyText2">For adding a new Object type and its any of the above mentioned details can be done by either calling CREATE TYPE DQL Script, or by creating a new type<span>  </span>in a new or Existing DAR and deploying it.</p>
<p class="MsoBodyText2">Modifying the Existing Object type information can be done by editing type information in the doc app or DAR or by calling Alter type DQL script.</p>
<p class="MsoBodyText2">Please note that DAR or Documentum Archive is applicable only for repositories those are running on Documentum 6 or higher</p>
<p class="MsoBodyText2"> </p>
<h3><span>Data Dictionary Publishing Job</span></h3>
<p class="MsoBodyText">When you update the Data Dictionary it in essence updates the internal object types and you need to run Data Dictionary Publishing job. This job is responsible for creating the necessary dmi_dd_attr_info , dmi_dd_type_info<span>  </span>and dmi_dd_common_info objects. You can configure and run this job from Documentum Administrator.</p>
<p class="MsoBodyText"> </p>
<h3><span>What makes a Data Dictionary </span></h3>
<p class="MsoBodyText">I had mentioned three object types that are getting created when the Data Dictionary publishing job publishes the Data Dictionary information. Lets see those objects briefly here <span> </span></p>
<p class="MsoBodyText" style="padding-left:30px;"><strong>dmi_dd_common_info<br />
<span style="font-weight:normal;">This object type contains information about an object type or an attribute that are common. <span>All the objects of this type will have r_object_id starting with <strong>68</strong>.</span></span></strong></p>
<p class="MsoBodyText" style="padding-left:30px;"><strong>dmi_dd_type_info<br />
<span style="font-weight:normal;">This is a sub type of <strong><em>dmi_dd_common_info</em></strong>. This object type contains information about an object type. <span>(which has already been published to the data dictionary) All the objects of this type will have r_object_id starting with <strong>69</strong>.</span></span></strong></p>
<p class="MsoBodyText" style="padding-left:30px;"><strong>dmi_dd_attr_info<br />
<span style="font-weight:normal;">This is a sub type of <strong><em>dmi_dd_common_info</em></strong>. <span>This object type has <span> </span>information about a property (which is already published to the data dictionary) All the objects of this type will have<span>  </span>r_object_id starting with <strong>6a</strong>.</span></span></strong>
</p>
<p class="MsoBodyText">You would have noticed that all these object type starts with keyword <strong><em>dmi </em></strong>this means we cannot create or modify this object type, Only Data Dictionary publishing job can modify or create this type. </p>
<p class="MsoBodyText"><a href="http://ajithprabhakar.files.wordpress.com/2008/10/data-dictionary-in-documentum.pdf">Download this Study Note (PDF)</a></p>
<br />Posted in Content Server, Documentum, Genaral Tagged: Ajith, Ajith Prabhakar, Data Dictionary, dmi_dd_attr_info, dmi_dd_common_info, dmi_dd_type_info, Documentum, Documentum Data Dictionary, documentum tutorial <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajithprabhakar.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajithprabhakar.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajithprabhakar.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajithprabhakar.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajithprabhakar.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajithprabhakar.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajithprabhakar.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajithprabhakar.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajithprabhakar.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajithprabhakar.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajithprabhakar.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajithprabhakar.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajithprabhakar.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajithprabhakar.wordpress.com/100/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=100&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajithp.com/2008/10/14/data-dictionary-in-documentum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/707c6ebad685a84903ae7a7d0d2cd07b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ajit</media:title>
		</media:content>
	</item>
		<item>
		<title>Aliases and Alias sets in Documentum</title>
		<link>http://ajithp.com/2008/08/22/aliases-and-alias-sets-in-documentum/</link>
		<comments>http://ajithp.com/2008/08/22/aliases-and-alias-sets-in-documentum/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 19:20:20 +0000</pubDate>
		<dc:creator>Ajith Prabhakar</dc:creator>
				<category><![CDATA[Documentum]]></category>
		<category><![CDATA[Genaral]]></category>
		<category><![CDATA[Ajith]]></category>
		<category><![CDATA[Ajith Prabhakar]]></category>
		<category><![CDATA[Alias]]></category>
		<category><![CDATA[Alias Sets]]></category>
		<category><![CDATA[alias_category]]></category>
		<category><![CDATA[alias_set_id]]></category>
		<category><![CDATA[Content Server]]></category>
		<category><![CDATA[dm_aliase_set]]></category>
		<category><![CDATA[documentum study notes]]></category>
		<category><![CDATA[documentum tutorial]]></category>
		<category><![CDATA[IDfSysObject]]></category>
		<category><![CDATA[R_alias_set_id]]></category>

		<guid isPermaLink="false">http://ajithprabhakar.wordpress.com/?p=87</guid>
		<description><![CDATA[  In Simple words Aliases are placeholders that can hold any of the following 1)      A User or a Group Name 2)      Folder information Alias is a key value pair where key is the alias name and value is the actual value.   Alias Sets are the Collection of Aliases (Which has alias names and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=87&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h1 style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"> </span></span></h1>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">In Simple words <strong>Aliases</strong> are placeholders that can hold any of the following </span></p>
<p class="MsoBodyText" style="text-indent:-.25in;margin:0 0 0 39pt;"><span style="font-size:x-small;font-family:Tahoma;">1)</span><span style="font-family:&quot;">      </span><span style="font-size:x-small;font-family:Tahoma;">A User or a Group Name </span></p>
<p class="MsoBodyText" style="text-indent:-.25in;margin:0 0 0 39pt;"><span style="font-size:x-small;font-family:Tahoma;">2)</span><span style="font-family:&quot;">      </span><span style="font-size:x-small;font-family:Tahoma;">Folder information</span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">Alias is a key value pair where key is the alias name and value is the actual value. </span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"> </span></span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"><strong>Alias Sets</strong> are the Collection of Aliases (Which has alias names and its values)</span></span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"> </span></span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">Typical uses of Aliases </span></p>
<p class="MsoBodyText" style="text-indent:-.25in;margin:0 0 0 .5in;"><span style="font-size:x-small;font-family:Tahoma;">1)</span><span style="font-family:&quot;">      </span><span style="font-size:x-small;font-family:Tahoma;">Dynamically Resolve task performers in a Workflow </span></p>
<p class="MsoBodyText" style="text-indent:-.25in;margin:0 0 0 .5in;"><span style="font-size:x-small;font-family:Tahoma;">2)</span><span style="font-family:&quot;">      </span><span style="font-size:x-small;font-family:Tahoma;">Set up ACL, ACL Domain and Owner name in a Sys Object or its sub types.</span></p>
<p class="MsoBodyText" style="text-indent:-.25in;margin:0 0 0 .5in;"><span style="font-size:x-small;font-family:Tahoma;">3)</span><span style="font-family:&quot;">      </span><span style="font-size:x-small;font-family:Tahoma;">Dynamically link or unlink an object of Sys object or its subtype with a Folder path </span></p>
<p class="MsoBodyText" style="text-indent:-.25in;margin:0 0 0 .5in;"><span style="font-size:x-small;font-family:Tahoma;">4)</span><span style="font-family:&quot;">      </span><span style="font-size:x-small;font-family:Tahoma;">Also used in Template ACL’s (I will explain more about Template ACL in another study note soon) </span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"> </span></span></p>
<p class="MsoBodyText" style="margin:0;"><strong><span style="font-size:11pt;"><span style="font-family:Tahoma;">Internals of an Alias and Alias sets</span></span></strong></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;">Documentum uses an Object type named <strong><em>dm_aliase_set</em></strong> to store the aliases and its values. All the objects of this type will have a r_object_id starting with <strong>“66”</strong></span></span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;">Lets see the attributes of this object type<span>  </span></span></span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"> </span></span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"> </span></span></p>
<table style="margin-left:.2in;border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="background:#cccccc;width:99.15pt;border:black .75pt solid;padding:0 5.4pt;" width="132" valign="top">
<p class="MsoBodyText" style="margin:0;"><strong><span style="font-size:x-small;"><span style="font-family:Tahoma;">Name</span></span></strong></p>
</td>
<td style="border-right:black .75pt solid;border-top:black .75pt solid;background:#cccccc;border-left:#d4d0c8;width:125.85pt;border-bottom:black .75pt solid;padding:0 5.4pt;" width="168" valign="top">
<p class="MsoBodyText" style="margin:0;"><strong><span style="font-size:x-small;"><span style="font-family:Tahoma;">Info</span></span></strong></p>
</td>
<td style="border-right:black .75pt solid;border-top:black .75pt solid;background:#cccccc;border-left:#d4d0c8;width:2.5in;border-bottom:black .75pt solid;padding:0 5.4pt;" colspan="2" width="240" valign="top">
<p class="MsoBodyText" style="margin:0;"><strong><span style="font-size:x-small;"><span style="font-family:Tahoma;">Description </span></span></strong></p>
</td>
</tr>
<tr style="height:46.5pt;">
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:black .75pt solid;width:99.15pt;border-bottom:black .75pt solid;height:46.5pt;background-color:transparent;padding:0 5.4pt;" rowspan="9" width="132" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">alias_category</span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:125.85pt;border-bottom:black .75pt solid;height:46.5pt;background-color:transparent;padding:0 5.4pt;" rowspan="9" width="168" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">Integer (Repeating)</span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:2.5in;border-bottom:black .75pt solid;height:46.5pt;background-color:transparent;padding:0 5.4pt;" colspan="2" width="240" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">This defines the category of the aliases value in the corresponding index.<span>   </span>These are the possible values and its corresponding categories</span></p>
</td>
</tr>
<tr style="height:13.5pt;">
<td style="border-right:black .75pt solid;border-top:#d4d0c8;background:#b3b3b3;border-left:#d4d0c8;width:.5in;border-bottom:black .75pt solid;height:13.5pt;padding:0 5.4pt;" width="48" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">Value </span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;background:#b3b3b3;border-left:#d4d0c8;width:2in;border-bottom:black .75pt solid;height:13.5pt;padding:0 5.4pt;" width="192" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">Category</span></p>
</td>
</tr>
<tr style="height:13.5pt;">
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:.5in;border-bottom:black .75pt solid;height:13.5pt;background-color:transparent;padding:0 5.4pt;" width="48">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Tahoma;">0</span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:2in;border-bottom:black .75pt solid;height:13.5pt;background-color:transparent;padding:0 5.4pt;" width="192" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">Unknown</span></p>
</td>
</tr>
<tr style="height:13.5pt;">
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:.5in;border-bottom:black .75pt solid;height:13.5pt;background-color:transparent;padding:0 5.4pt;" width="48">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Tahoma;">1</span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:2in;border-bottom:black .75pt solid;height:13.5pt;background-color:transparent;padding:0 5.4pt;" width="192" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">User</span></p>
</td>
</tr>
<tr style="height:13.5pt;">
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:.5in;border-bottom:black .75pt solid;height:13.5pt;background-color:transparent;padding:0 5.4pt;" width="48">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Tahoma;">2</span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:2in;border-bottom:black .75pt solid;height:13.5pt;background-color:transparent;padding:0 5.4pt;" width="192" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">Group</span></p>
</td>
</tr>
<tr style="height:13.5pt;">
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:.5in;border-bottom:black .75pt solid;height:13.5pt;background-color:transparent;padding:0 5.4pt;" width="48">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Tahoma;">3</span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:2in;border-bottom:black .75pt solid;height:13.5pt;background-color:transparent;padding:0 5.4pt;" width="192" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">User or Group</span></p>
</td>
</tr>
<tr style="height:13.5pt;">
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:.5in;border-bottom:black .75pt solid;height:13.5pt;background-color:transparent;padding:0 5.4pt;" width="48">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Tahoma;">4</span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:2in;border-bottom:black .75pt solid;height:13.5pt;background-color:transparent;padding:0 5.4pt;" width="192" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">Path of Cabinet</span></p>
</td>
</tr>
<tr style="height:13.5pt;">
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:.5in;border-bottom:black .75pt solid;height:13.5pt;background-color:transparent;padding:0 5.4pt;" width="48">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Tahoma;">5</span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:2in;border-bottom:black .75pt solid;height:13.5pt;background-color:transparent;padding:0 5.4pt;" width="192" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">Path of Folder</span></p>
</td>
</tr>
<tr style="height:13.5pt;">
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:.5in;border-bottom:black .75pt solid;height:13.5pt;background-color:transparent;padding:0 5.4pt;" width="48">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Tahoma;">6</span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:2in;border-bottom:black .75pt solid;height:13.5pt;background-color:transparent;padding:0 5.4pt;" width="192" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">Name of ACL</span></p>
</td>
</tr>
<tr>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:black .75pt solid;width:99.15pt;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" width="132" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">alias_description</span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:125.85pt;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" width="168" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">String (255) (Repeating)</span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:2.5in;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" colspan="2" width="240" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">This defines the option description for individual alias values that correspond to the index in alias names.</span></p>
</td>
</tr>
<tr>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:black .75pt solid;width:99.15pt;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" width="132" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">alias_names </span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:125.85pt;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" width="168" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">String (32) (Repeating)</span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:2.5in;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" colspan="2" width="240" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">The name of alias for the corresponding index in the alias values. (This Sting cannot have (<strong>.</strong>))</span></p>
</td>
</tr>
<tr>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:black .75pt solid;width:99.15pt;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" width="132" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">alias_usr_ category</span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:125.85pt;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" width="168" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">Integer (Repeating)</span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:2.5in;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" colspan="2" width="240" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">Placeholder for defining user defined categories for alias values.</span></p>
</td>
</tr>
<tr>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:black .75pt solid;width:99.15pt;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" width="132" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">alias_value</span><span style="font-size:10pt;font-family:Tahoma;"><span>                       </span></span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:125.85pt;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" width="168" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">String (255) (Repeating)</span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:2.5in;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" colspan="2" width="240" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">The corresponding values for the Aliases defined the corresponding index in the alias names]</span></p>
</td>
</tr>
<tr>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:black .75pt solid;width:99.15pt;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" width="132" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">object_name</span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:125.85pt;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" width="168" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">String (32) (Single)</span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:2.5in;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" colspan="2" width="240" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">Name of the Alias set </span></p>
<ul style="margin-top:0;" type="square">
<li class="MsoNormal"><span style="font-size:10pt;font-family:Tahoma;">Has to be Unique among the alias sets in repository </span></li>
</ul>
</td>
</tr>
<tr>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:black .75pt solid;width:99.15pt;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" width="132" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">object_description </span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:125.85pt;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" width="168" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">String (128 ) (Single)</span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:2.5in;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" colspan="2" width="240" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">Description of the alias sets</span></p>
</td>
</tr>
<tr>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:black .75pt solid;width:99.15pt;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" width="132" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">owner_name </span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:125.85pt;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" width="168" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">String (32) (Single)</span></p>
</td>
<td style="border-right:black .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:2.5in;border-bottom:black .75pt solid;background-color:transparent;padding:0 5.4pt;" colspan="2" width="240" valign="top">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Tahoma;">The name of the user who owns this alias sets. </span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"> </span></span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">So now you have seen what makes a dm_alias_set object, now lets clarify how an Alias is defined within an Alias set. </span></p>
<p class="MsoBodyText" style="margin:0;"><strong><em><span style="font-size:x-small;font-family:Tahoma;">Alias_names stores the name of the Alias and Alias_value stores the corresponding value for the Alias and it’s stored as repeatable attribute. Means value of an index position defines an Alias Category, Alias Name and Alias Value</span></em></strong></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"> </span></span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:x-small;">In an example of an Alias </span><strong><em><span style="font-size:9pt;">manager = John Smith</span></em></strong><span style="font-size:x-small;"> the index of listing </span><strong><em><span style="font-size:9pt;">manager</span></em></strong><span style="font-size:9pt;"> </span><span style="font-size:x-small;">in attribute alias_name and index of listing </span><strong><em><span style="font-size:9pt;">John Smith</span></em></strong><span style="font-size:x-small;"> in attribute alias_value will be same </span></span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"> </span></span></p>
<p class="MsoBodyText" style="margin:0;"><strong><span style="font-size:11pt;"><span style="font-family:Tahoma;">Alias Reference and Scope of Alias</span></span></strong></p>
<p class="MsoBodyText" style="margin:0;"><strong><span style="font-size:11pt;"><span style="font-family:Tahoma;"> </span></span></strong></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">Alias is referenced used <strong>%alias_name</strong> </span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;">Referencing an Alias can also include Object_name of <strong>Alias Set</strong>; in that case the reference will be <strong>%alias_set_object_name.alias_name</strong></span></span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"> </span></span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;">So if the alias is referenced with the Alias set names (<strong>%alias_set_object_name.alias_name</strong></span></span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">) Server finds the Alias set by name and picks up the Alias name and resolve its Alias value, this is pretty much a straightforward job for the server to do.</span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"> </span></span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">But where the Alias name is referred without Alias set name the Server searches for the Alias in some specific scopes, This Order and location where the search is made for alias depends upon where that alias is referenced.</span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"> </span></span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">The following table describes few important Scopes, underlying object type and attribute of that object that helps server to identify the alias set to resolve the alias names. </span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"> </span></span></p>
<table style="border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="border-right:windowtext .75pt solid;border-top:windowtext 1pt solid;background:silver;border-left:windowtext 1pt solid;width:1.2in;border-bottom:windowtext .75pt solid;padding:0 5.4pt;" width="115" valign="top">
<p class="MsoBodyText" style="margin:0;"><strong><span style="font-size:x-small;"><span style="font-family:Tahoma;">Scope</span></span></strong></p>
</td>
<td style="border-right:windowtext .75pt solid;border-top:windowtext 1pt solid;background:silver;border-left:#d4d0c8;width:135pt;border-bottom:windowtext .75pt solid;padding:0 5.4pt;" width="180" valign="top">
<p class="MsoBodyText" style="margin:0;"><strong><span style="font-size:x-small;"><span style="font-family:Tahoma;">Object type</span></span></strong></p>
</td>
<td style="border-right:windowtext .75pt solid;border-top:windowtext 1pt solid;background:silver;border-left:#d4d0c8;width:110.7pt;border-bottom:windowtext .75pt solid;padding:0 5.4pt;" width="148" valign="top">
<p class="MsoBodyText" style="margin:0;"><strong><span style="font-size:x-small;"><span style="font-family:Tahoma;">Attribute</span></span></strong></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:windowtext 1pt solid;background:silver;border-left:#d4d0c8;width:110.7pt;border-bottom:windowtext .75pt solid;padding:0 5.4pt;" width="148" valign="top">
<p class="MsoBodyText" style="margin:0;"><strong><span style="font-size:x-small;"><span style="font-family:Tahoma;">Notes</span></span></strong></p>
</td>
</tr>
<tr>
<td style="border-right:windowtext .75pt solid;border-top:#d4d0c8;border-left:windowtext 1pt solid;width:1.2in;border-bottom:windowtext .75pt solid;background-color:transparent;padding:0 5.4pt;" width="115" valign="top">
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">User</span></p>
</td>
<td style="border-right:windowtext .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:135pt;border-bottom:windowtext .75pt solid;background-color:transparent;padding:0 5.4pt;" width="180" valign="top">
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">dm_user</span></p>
</td>
<td style="border-right:windowtext .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:110.7pt;border-bottom:windowtext .75pt solid;background-color:transparent;padding:0 5.4pt;" width="148" valign="top">
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">alias_set_id</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:110.7pt;border-bottom:windowtext .75pt solid;background-color:transparent;padding:0 5.4pt;" width="148" valign="top">
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">Server user alias_set_id property of the user who has done the action that resulted in alias resolution.</span></p>
</td>
</tr>
<tr>
<td style="border-right:windowtext .75pt solid;border-top:#d4d0c8;border-left:windowtext 1pt solid;width:1.2in;border-bottom:windowtext .75pt solid;background-color:transparent;padding:0 5.4pt;" width="115" valign="top">
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">Group</span></p>
</td>
<td style="border-right:windowtext .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:135pt;border-bottom:windowtext .75pt solid;background-color:transparent;padding:0 5.4pt;" width="180" valign="top">
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">Dm_group</span></p>
</td>
<td style="border-right:windowtext .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:110.7pt;border-bottom:windowtext .75pt solid;background-color:transparent;padding:0 5.4pt;" width="148" valign="top">
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">alias_set_id</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:110.7pt;border-bottom:windowtext .75pt solid;background-color:transparent;padding:0 5.4pt;" width="148" valign="top">
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">Default group of the user who performed the action</span></p>
</td>
</tr>
<tr>
<td style="border-right:windowtext .75pt solid;border-top:#d4d0c8;border-left:windowtext 1pt solid;width:1.2in;border-bottom:windowtext .75pt solid;background-color:transparent;padding:0 5.4pt;" width="115" valign="top">
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">Lifecycle</span></p>
</td>
<td style="border-right:windowtext .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:135pt;border-bottom:windowtext .75pt solid;background-color:transparent;padding:0 5.4pt;" width="180" valign="top">
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">Dm_sysobject</span></p>
</td>
<td style="border-right:windowtext .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:110.7pt;border-bottom:windowtext .75pt solid;background-color:transparent;padding:0 5.4pt;" width="148" valign="top">
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">R_alias_set_id</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:110.7pt;border-bottom:windowtext .75pt solid;background-color:transparent;padding:0 5.4pt;" width="148" valign="top">
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">R_alias_set_id is set by the server when the object is attached to a lifecycle.</span></p>
</td>
</tr>
<tr>
<td style="border-right:windowtext .75pt solid;border-top:#d4d0c8;border-left:windowtext 1pt solid;width:1.2in;border-bottom:windowtext 1pt solid;background-color:transparent;padding:0 5.4pt;" width="115" valign="top">
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">Server Configuration</span></p>
</td>
<td style="border-right:windowtext .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:135pt;border-bottom:windowtext 1pt solid;background-color:transparent;padding:0 5.4pt;" width="180" valign="top">
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">Dm_server_config</span></p>
</td>
<td style="border-right:windowtext .75pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:110.7pt;border-bottom:windowtext 1pt solid;background-color:transparent;padding:0 5.4pt;" width="148" valign="top">
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">Alias_set_id</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:110.7pt;border-bottom:windowtext 1pt solid;background-color:transparent;padding:0 5.4pt;" width="148" valign="top">
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;">This alias set object represents the alias set thats used as the default system-level </span></span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">Alias set.</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoBodyText" style="margin:0;"><strong><span style="font-size:11pt;"><span style="font-family:Tahoma;"> </span></span></strong></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ajithprabhakar.wordpress.com/87/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ajithprabhakar.wordpress.com/87/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajithprabhakar.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajithprabhakar.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajithprabhakar.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajithprabhakar.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajithprabhakar.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajithprabhakar.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajithprabhakar.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajithprabhakar.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajithprabhakar.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajithprabhakar.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajithprabhakar.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajithprabhakar.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajithprabhakar.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajithprabhakar.wordpress.com/87/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=87&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajithp.com/2008/08/22/aliases-and-alias-sets-in-documentum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/707c6ebad685a84903ae7a7d0d2cd07b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ajit</media:title>
		</media:content>
	</item>
		<item>
		<title>Documentum Object types Naming Convention</title>
		<link>http://ajithp.com/2008/07/01/documentum-object-types-naming-convention/</link>
		<comments>http://ajithp.com/2008/07/01/documentum-object-types-naming-convention/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 18:27:19 +0000</pubDate>
		<dc:creator>Ajith Prabhakar</dc:creator>
				<category><![CDATA[Content Server]]></category>
		<category><![CDATA[Genaral]]></category>
		<category><![CDATA[Ajith]]></category>
		<category><![CDATA[Ajith Prabhakar]]></category>
		<category><![CDATA[caching object types]]></category>
		<category><![CDATA[dm]]></category>
		<category><![CDATA[dmc]]></category>
		<category><![CDATA[dmi]]></category>
		<category><![CDATA[dmr]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[Documentum Naming Convention]]></category>
		<category><![CDATA[Documentum Object types Naming Convention]]></category>
		<category><![CDATA[why dm]]></category>
		<category><![CDATA[why dmc]]></category>

		<guid isPermaLink="false">http://ajithprabhakar.wordpress.com/?p=75</guid>
		<description><![CDATA[All Out of the box Documentum object types follows the following naming convention All object types that are commonly used and visible to users starts with letters dm (Example dm_document, dm_sysobject, dm_user ) All Object types that are dynamically cached (means changes to it is visible to applications and users) starts with letters dmc  (Example [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=75&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>All Out of the box Documentum object types follows the following naming convention</p>
<ul>
<li>All object types that are commonly used and visible to users starts with letters <strong>dm</strong> (Example dm_document, dm_sysobject, dm_user )</li>
<li>All Object types that are dynamically cached (means changes to it is visible to applications and users) starts with letters <strong>dmc</strong>  (Example dmc_completed_workitem dmc_jar dmc_java_library )</li>
<li>All object types that read only will start with letters dmr There are only object types that starts with letters <strong>dmr</strong> they are  dmr_content and dmr_containment</li>
<li>All Object types that are internally used by Content server starts with the letters <strong>dmi</strong> (Example dmi_package, dmi_queue_item, dmi_session)</li>
</ul>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ajithprabhakar.wordpress.com/75/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ajithprabhakar.wordpress.com/75/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajithprabhakar.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajithprabhakar.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajithprabhakar.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajithprabhakar.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajithprabhakar.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajithprabhakar.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajithprabhakar.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajithprabhakar.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajithprabhakar.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajithprabhakar.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajithprabhakar.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajithprabhakar.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajithprabhakar.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajithprabhakar.wordpress.com/75/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=75&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajithp.com/2008/07/01/documentum-object-types-naming-convention/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/707c6ebad685a84903ae7a7d0d2cd07b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ajit</media:title>
		</media:content>
	</item>
		<item>
		<title>Immutable Objects in Documentum</title>
		<link>http://ajithp.com/2008/07/01/immutable-objects-in-documentum/</link>
		<comments>http://ajithp.com/2008/07/01/immutable-objects-in-documentum/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 17:22:44 +0000</pubDate>
		<dc:creator>Ajith Prabhakar</dc:creator>
				<category><![CDATA[Documentum]]></category>
		<category><![CDATA[Content Server]]></category>
		<category><![CDATA[Genaral]]></category>
		<category><![CDATA[Ajith]]></category>
		<category><![CDATA[Ajith Prabhakar]]></category>
		<category><![CDATA[Documentum Object Types]]></category>
		<category><![CDATA[dm_sysobject]]></category>
		<category><![CDATA[Immutable Objects]]></category>
		<category><![CDATA[Virtual Document]]></category>
		<category><![CDATA[r_immutable_flag]]></category>
		<category><![CDATA[r_frzn_assembly_cnt]]></category>
		<category><![CDATA[r_frozen_flag]]></category>
		<category><![CDATA[Freezing and Unfreezing]]></category>
		<category><![CDATA[Freeze]]></category>
		<category><![CDATA[Unfreeze]]></category>

		<guid isPermaLink="false">http://ajithprabhakar.wordpress.com/?p=72</guid>
		<description><![CDATA[Immutable objects are those objects, which cannot be changed. That means (most of the) properties or contents of these objects cannot be edited.  I had discussed few points about immutability on my notes about Virtual Documents. Lets see some other aspects of Immutability here.  Now lets see how can we make an object immutable and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=72&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Immutable objects are those objects, which cannot be changed. That means (most of the) properties or contents of these objects cannot be edited.  I had discussed few points about immutability on <a href="http://ajithprabhakar.wordpress.com/2008/02/20/virtual-documents-in-documentum/" target="_blank">my notes about Virtual Documents</a>. Lets see some other aspects of Immutability here.</p>
<p> Now lets see how can we make an object immutable and what are the exception to it</p>
<ol>
<li><strong>Versioning an Object</strong> (Sys object or any sub type of Sys object)<br />
When an Object is versioned (made a new version by check in) the old version of the versioned object becomes immutable</li>
<li><strong>Branching an Object </strong><br />
When you branch an Object the parent of the new Branched object becomes Immutable.<em>In both the cases mentioned above Immutability of an object is controlled by an attribute with Boolean value called <strong>r_immutable_flag</strong>, which is part of <strong>dm_sysobject . </strong></em><em>Content server sets the r_immutable_flag to true on the old version of the object in both these cases.</em><br />
 </li>
<li><strong>Retention Policy</strong><br />
If the Object is governed by a retention policy that makes its immutable then also the r_immutable_flag to true making the Object immutable.</li>
<li><strong>Freezing a Document by calling freeze()<br />
</strong>Freeze method is used to explicitly set a object as immutable. When you call freeze method it sets <strong>r_immutable_flag</strong> to true and also sets <strong>r_frozen_flag</strong> to true.<br />
Setting <strong>r_frozen_flag</strong> to true indicates that freeze method is called on that object. In other words <strong><em>r_frozen_flag</em></strong><em> is set to true only if freeze method is called on that object, not by versioning branching etc</em>.<br />
<strong>Unfreezing a Document<br />
Unfreeze </strong>method sets the value of r_frozen_flag to false and also r_immutable_flag to false and hence makes that object mutable again<strong></strong></li>
</ol>
<p style="padding-left:30px;"><strong>Freezing and Unfreezing a Virtual Document<br />
</strong>If you chose to freeze an associated snapshot in a Virtual Document, the <strong>r_has_frzn_assembly</strong> attribute is also set to TRUE on that Virtual Document object.
</p>
<p style="padding-left:30px;">When you freeze a snapshot <strong>r_immutable_flag</strong> attributes for each component in the snapshot is set to true and also value of <strong>r_frzn_assembly_cnt</strong> is incremented. The <strong>r_frzn_assembly</strong> count attribute contains a count of the number of frozen snapshots that contain this component.</p>
<p style="padding-left:30px;">If value of <strong>r_frzn_assembly_cnt </strong>is greater than zero, you cannot delete or modify the object.</p>
<p style="padding-left:30px;">Calling a Freeze method to freeze a snapshot automatically freezes the document with which the snapshot is associated. To freeze only the snapshot and not the document, first execute a Freeze method and include the argument to freeze the snapshot then execute an Unfreeze method to unfreeze only the document<strong>.</strong></p>
<h3>Exceptions</h3>
<p>Even though if an Objects is set to immutable there are some attributes of that object that can be changed, lets see what all are those attributes are</p>
<p> These are the attributes that content server can change on a immutable Objects</p>
<ul>
<li>a_archive </li>
<li>i_isdeleted </li>
<li>i_reference_cnt </li>
<li>i_vstamp</li>
<li>r_access_date </li>
<li>r_alias_set_id </li>
<li>r_current_state</li>
<li>r_resume_stat</li>
<li>r_frozen_flag</li>
<li>r_frzn_assembly_cnt</li>
<li>r_immutable_flag</li>
<li>r_policy_id</li>
</ul>
<p>There are few attributes that an application or a DQL can change on a Frozen Object</p>
<ul>
<li>i_folder_id</li>
<li>a_special_app</li>
<li>a_compound_architecture</li>
<li>a_full_text</li>
<li>a_storage_type</li>
<li>Version label (r_version_label) Symbolic labels only</li>
<li>acl_domain</li>
<li>acl_name</li>
<li>owner_name</li>
<li>group_name</li>
<li>owner_permit</li>
<li>group_permit</li>
<li>world_permit</li>
</ul>
<p>Changing i_folder_id means you can link or unlink a Frozen document with any folders or cabinets)</p>
<p> <strong><a href="http://ajithprabhakar.files.wordpress.com/2008/07/immutable-objects-effects-of-freeze-and-unfreeze.pdf">Download this Study Note (PDF)</a></strong></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ajithprabhakar.wordpress.com/72/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ajithprabhakar.wordpress.com/72/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajithprabhakar.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajithprabhakar.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajithprabhakar.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajithprabhakar.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajithprabhakar.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajithprabhakar.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajithprabhakar.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajithprabhakar.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajithprabhakar.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajithprabhakar.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajithprabhakar.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajithprabhakar.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajithprabhakar.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajithprabhakar.wordpress.com/72/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=72&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajithp.com/2008/07/01/immutable-objects-in-documentum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/707c6ebad685a84903ae7a7d0d2cd07b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ajit</media:title>
		</media:content>
	</item>
		<item>
		<title>Difference between Super User and Sysadmin</title>
		<link>http://ajithp.com/2008/06/23/difference-between-super-user-and-sysadmin/</link>
		<comments>http://ajithp.com/2008/06/23/difference-between-super-user-and-sysadmin/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 17:42:12 +0000</pubDate>
		<dc:creator>Ajith Prabhakar</dc:creator>
				<category><![CDATA[Admin]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[Genaral]]></category>
		<category><![CDATA[Ajith]]></category>
		<category><![CDATA[Ajith Prabhakar]]></category>
		<category><![CDATA[Content Server]]></category>
		<category><![CDATA[documentum study notes]]></category>
		<category><![CDATA[documentum superuser]]></category>
		<category><![CDATA[documentum sysadmin]]></category>
		<category><![CDATA[Documentum turorials]]></category>
		<category><![CDATA[Documentum User privilages]]></category>
		<category><![CDATA[Superuser]]></category>
		<category><![CDATA[Sysadmin]]></category>

		<guid isPermaLink="false">http://ajithprabhakar.wordpress.com/?p=64</guid>
		<description><![CDATA[Most of the budding Documentum developers get confused about the differences between a Super User and a Sysadmin. Though I had mentioned these points on my Documentum Security notes PDF file, I feel this needs a separate entry here. So just listing few important privileges of Sysadmin and Super User here. This list is not [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=64&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Most of the budding Documentum developers get confused about the differences between a Super User and a Sysadmin. Though I had mentioned these points on my <a title="More on Documentum Security" href="http://ajithprabhakar.wordpress.com/2007/11/01/more-on-documentum-security/" target="_blank">Documentum Security notes PDF file</a>, I feel this needs a separate entry here. So just listing few important privileges of Sysadmin and Super User here. This list is not exhaustive but I guess I have most of it here, if you feel that I missed some important please feel free to add it as a comment.</p>
<p><strong>Sysadmin</strong></p>
<ul class="unIndentedList">
<li>Create, alter, and drop users and groups</li>
<li>Create, modify, and delete system-level ACLs</li>
<li>Grant and revoke Create Type, Create Cabinet, and Create Group privileges</li>
<li>Create types, cabinets, and printers</li>
<li>Manipulate workflows or work items, regardless of ownership</li>
<li>Manage any object&#8217;s lifecycle</li>
<li>Set the a_full_text attribute</li>
</ul>
<p> <strong><em>The Sysadmin privilege does not override object-level permissions</em></strong></p>
<p><strong> Super User</strong></p>
<ul class="unIndentedList">
<li>Perform all the functions of a user with Sysadmin privileges</li>
<li>Unlock objects in the repository</li>
<li>Modify or drop another user&#8217;s user-defined object type</li>
<li>Create subtypes that have no supertype</li>
<li>Register and unregister another user&#8217;s tables</li>
<li>Select from any underlying RDBMS table regardless of whether it is registered or not</li>
<li>Modify or remove another user&#8217;s groups or private ACLs</li>
<li>Create, modify, or remove system ACLs</li>
<li>Grant and revoke Superuser and Sysadmin privileges</li>
<li>Grant and revoke extended privileges</li>
<li>View audit trail entries</li>
</ul>
<p><a href="http://ajithprabhakar.files.wordpress.com/2008/06/difference-between-super-user-and-sysadmin.pdf"><strong>Download this Study Note (PDF) </strong></a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ajithprabhakar.wordpress.com/64/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ajithprabhakar.wordpress.com/64/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajithprabhakar.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajithprabhakar.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajithprabhakar.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajithprabhakar.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajithprabhakar.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajithprabhakar.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajithprabhakar.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajithprabhakar.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajithprabhakar.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajithprabhakar.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajithprabhakar.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajithprabhakar.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajithprabhakar.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajithprabhakar.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=64&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajithp.com/2008/06/23/difference-between-super-user-and-sysadmin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/707c6ebad685a84903ae7a7d0d2cd07b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ajit</media:title>
		</media:content>
	</item>
		<item>
		<title>Federation in Documentum</title>
		<link>http://ajithp.com/2008/06/17/federation-in-documentum/</link>
		<comments>http://ajithp.com/2008/06/17/federation-in-documentum/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 17:30:54 +0000</pubDate>
		<dc:creator>Ajith Prabhakar</dc:creator>
				<category><![CDATA[Content Server]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[Genaral]]></category>
		<category><![CDATA[Ajith]]></category>
		<category><![CDATA[Ajith Prabhakar]]></category>
		<category><![CDATA[Ajiths Notes]]></category>
		<category><![CDATA[Distributed Environment]]></category>
		<category><![CDATA[Distributed Models]]></category>
		<category><![CDATA[Documentum Notes]]></category>
		<category><![CDATA[documentum study notes]]></category>
		<category><![CDATA[documentum tutorial]]></category>
		<category><![CDATA[Federation]]></category>
		<category><![CDATA[Federation in Documentum]]></category>
		<category><![CDATA[Governing repository]]></category>
		<category><![CDATA[member repositories]]></category>

		<guid isPermaLink="false">http://ajithprabhakar.wordpress.com/?p=62</guid>
		<description><![CDATA[Federation is one among the most common distributed Documentum model. This means multiple Documentum repositories run as a federation. There will be a Governing repository and multiple member repositories in this model. Lets try to find out more about Federation   Take this typical scenario A Major Pharmaceutical Company ABC Corporation has multiple research centers [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=62&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">Federation is one among the most common distributed Documentum model. This means multiple Documentum repositories run as a federation. There will be a <strong>Governing repository</strong> and multiple <strong>member repositories </strong>in this model. Lets try to find out more about Federation </span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"> </span></span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">Take this typical scenario A Major Pharmaceutical Company ABC Corporation has multiple research centers and production plants across the glob and they have multiple Documentum repositories used for storing various information. A user logged into a corporate application needs to fetch documents from these various repositories in a Single session. Each repository in this scenario should have same set of users, groups and ACL for this architecture to work, manually managing these kind of scenario is trouble some and error prone. </span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"> </span></span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">Now lets see what a federation can do to make it less complex. </span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;font-family:Tahoma;">As I mentioned above Federations consists of Governing and Member repositories all the changes that has been made to global users and groups and external ACLS in the governing repository are automatically reproduced in the member Repository.</span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"> </span></span></p>
<p class="MsoBodyText" style="margin:0;"><strong><span style="font-size:x-small;"><span style="font-family:Tahoma;">Requirements for Federation </span></span></strong></p>
<p class="MsoBodyText" style="text-indent:-.25in;margin:0 0 0 .5in;"><span style="font-family:Symbol;"><span style="font-size:x-small;">·</span><span style="font:7pt;">         </span></span><span style="font-size:x-small;font-family:Tahoma;">Object types definition should be same in the all participating repositories. </span></p>
<p class="MsoBodyText" style="text-indent:-.25in;margin:0 0 0 .5in;"><span style="font-family:Symbol;"><span style="font-size:x-small;">·</span><span style="font:7pt;">         </span></span><span style="font-size:x-small;font-family:Tahoma;">User and group definition should be same in all participating repositories. </span></p>
<p class="MsoBodyText" style="text-indent:-.25in;margin:0 0 0 .5in;"><span style="font-family:Symbol;"><span style="font-size:x-small;">·</span><span style="font:7pt;">         </span></span><span style="font-size:x-small;font-family:Tahoma;">The server on which governing repository runs must project to the connection brokers at the servers where member repository runs</span></p>
<p class="MsoBodyText" style="text-indent:-.25in;margin:0 0 0 .5in;"><span style="font-family:Symbol;"><span style="font-size:x-small;">·</span><span style="font:7pt;">         </span></span><span style="font-size:x-small;font-family:Tahoma;">The server on which member repositories runs must project to the connection brokers at the servers where governing repository runs</span></p>
<p class="MsoBodyText" style="text-indent:-.25in;margin:0 0 0 .5in;"><span style="font-family:Symbol;"><span style="font-size:x-small;">·</span><span style="font:7pt;">         </span></span><span style="font-size:x-small;font-family:Tahoma;">If any of the participating Content Servers are with trusted server licenses Either<br />
The servers should be configured to listen on both secure and native port or<br />
The secure connection default for clients allows the clients to request a connection on a native or secure port</span>
</p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"> </span></span></p>
<p class="MsoBodyText" style="margin:0;"><strong><span style="font-size:x-small;"><span style="font-family:Tahoma;">Few Bullet points about Federation</span></span></strong></p>
<p class="MsoBodyText" style="text-indent:-.25in;margin:0 0 0 .5in;"><span style="font-family:Symbol;"><span style="font-size:x-small;">·</span><span style="font:7pt;">         </span></span><span style="font-size:x-small;font-family:Tahoma;">Any alteration done to any of the object type will not be automatically pushed to the participating repositories</span></p>
<p class="MsoBodyText" style="text-indent:-.25in;margin:0 0 0 .5in;"><span style="font-family:Symbol;"><span style="font-size:x-small;">·</span><span style="font:7pt;">         </span></span><span style="font-size:x-small;font-family:Tahoma;">Only users or groups marked as Global while creating them will be pushed / synchronized with participating repositories </span></p>
<p class="MsoBodyText" style="text-indent:-.25in;margin:0 0 0 .5in;"><span style="font-family:Symbol;"><span style="font-size:x-small;">·</span><span style="font:7pt;">         </span></span><span style="font-size:x-small;font-family:Tahoma;">The users those are part of any object types that are extended from dm_user will not automatically pushed. This will happen only if you specify this type in the Federation configuration. </span></p>
<p class="MsoBodyText" style="text-indent:-.25in;margin:0 0 0 .5in;"><span style="font-family:Symbol;"><span style="font-size:x-small;">·</span><span style="font:7pt;">         </span></span><span style="font-size:x-small;font-family:Tahoma;">Each repositories can be part of a single federation</span></p>
<p class="MsoBodyText" style="text-indent:-.25in;margin:0 0 0 .5in;"><span style="font-family:Symbol;"><span style="font-size:x-small;">·</span><span style="font:7pt;">         </span></span><span style="font-size:x-small;font-family:Tahoma;">A federation may contain different Content Server versions </span></p>
<p class="MsoBodyText" style="text-indent:-.25in;margin:0 0 0 .5in;"><span style="font-family:Symbol;"><span style="font-size:x-small;">·</span><span style="font:7pt;">         </span></span><span style="font-size:x-small;font-family:Tahoma;">A federation may contain a mix of trusted and non-trusted Content Servers.</span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"> </span></span></p>
<p class="MsoBodyText" style="margin:0;"><span style="font-size:x-small;"><span style="font-family:Tahoma;"> <a href="http://ajithprabhakar.files.wordpress.com/2008/06/federation-in-documentum.pdf"><strong>Download this Study Note (PDF)</strong></a></span></span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ajithprabhakar.wordpress.com/62/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ajithprabhakar.wordpress.com/62/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajithprabhakar.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajithprabhakar.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajithprabhakar.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajithprabhakar.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajithprabhakar.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajithprabhakar.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajithprabhakar.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajithprabhakar.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajithprabhakar.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajithprabhakar.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajithprabhakar.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajithprabhakar.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajithprabhakar.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajithprabhakar.wordpress.com/62/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajithp.com&amp;blog=1869333&amp;post=62&amp;subd=ajithprabhakar&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajithp.com/2008/06/17/federation-in-documentum/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/707c6ebad685a84903ae7a7d0d2cd07b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ajit</media:title>
		</media:content>
	</item>
	</channel>
</rss>
