<?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/"
	>

<channel>
	<title>Armedia Blog &#187; Documentum</title>
	<atom:link href="http://www.armedia.com/blog/category/enterprise_content_management/documentum/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.armedia.com/blog</link>
	<description></description>
	<lastBuildDate>Thu, 02 Feb 2012 15:53:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Modifying SharePoint Document Content Types and Libraries Using the Client Model</title>
		<link>http://www.armedia.com/blog/2011/09/modifying-sharepoint-document-content-types-and-libraries-using-the-client-model/</link>
		<comments>http://www.armedia.com/blog/2011/09/modifying-sharepoint-document-content-types-and-libraries-using-the-client-model/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 20:09:07 +0000</pubDate>
		<dc:creator>Tim Lisko</dc:creator>
				<category><![CDATA[Data Migration]]></category>
		<category><![CDATA[eRoom]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Visual Studio 2010 - C#]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[data migration]]></category>
		<category><![CDATA[Microsoft Visual Studio]]></category>

		<guid isPermaLink="false">http://www.armedia.com/blog/?p=1860</guid>
		<description><![CDATA[In a current eRoom to SharePoint migration project I wanted to preserve the &#8220;Date Created&#8221;, &#8220;Date Modified&#8221;, &#8220;Edited By&#8221;, and &#8220;Created By&#8221; fields in the eRoom documents. To do this I created a custom content type (in SharePoint 2010) based on the standard &#8220;Document&#8221; content type with four new fields to accept the migrated information. [...]]]></description>
			<content:encoded><![CDATA[<p>In a current eRoom to SharePoint migration project I wanted to preserve the &#8220;Date Created&#8221;, &#8220;Date Modified&#8221;, &#8220;Edited By&#8221;, and &#8220;Created By&#8221; fields in the eRoom documents. To do this I created a custom content type (in SharePoint 2010) based on the standard &#8220;Document&#8221; content type with four new fields to accept the migrated information. I also created a library template that uses this content type as well as the standard &#8220;Document&#8221; content type. I&#8217;ll explain why later in this article.</p>
<p>Once the documents are migrated I need to update the migrated list/library items. What I don&#8217;t want is to keep one set of &#8220;preserved&#8221; fields and another set of SharePoint fields. The SharePoint fields, as you probably guessed, set the author and editor as the individual doing the migration (or impersonated member) and the created and modified dates being the date of migration.</p>
<p>Updating list items is a pretty easy thing to do in SharePoint&#8217;s Client Object Model. The following code accomplishes this task.</p>
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0600FF; font-weight: bold;">foreach</span> <span style="color: #008000;">&#40;</span>SP<span style="color: #008000;">.</span><span style="color: #0000FF;">ListItem</span> item <span style="color: #0600FF; font-weight: bold;">in</span> lstItems<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
<span style="color: #008080; font-style: italic;">//skip items not assigned to the migratedDoc document type</span><br />
<span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">ContentType</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">==</span> migType<span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
row <span style="color: #008000;">=</span> listItems_dtbl<span style="color: #008000;">.</span><span style="color: #0000FF;">NewRow</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
row<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;List&quot;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> list<span style="color: #008000;">.</span><span style="color: #0000FF;">Title</span><span style="color: #008000;">;</span><br />
title <span style="color: #008000;">=</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">!</span>Convert<span style="color: #008000;">.</span><span style="color: #0000FF;">IsDBNull</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;Title&quot;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">?</span> item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;Title&quot;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">:</span> <span style="color: #666666;">&quot;&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>title <span style="color: #008000;">==</span> <span style="color: #666666;">&quot;&quot;</span> <span style="color: #008000;">&amp;&amp;</span> item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;FileLeafRef&quot;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">!=</span> <span style="color: #666666;">&quot;&quot;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span>   <span style="color: #008080; font-style: italic;">//set title if one does not exist</span><br />
title <span style="color: #008000;">=</span> item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;FileLeafRef&quot;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
title <span style="color: #008000;">=</span> title<span style="color: #008000;">.</span><span style="color: #0000FF;">Replace</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;File_x0020_Type&quot;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>, <span style="color: #666666;">&quot;&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
sEditor <span style="color: #008000;">=</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">!</span>Convert<span style="color: #008000;">.</span><span style="color: #0000FF;">IsDBNull</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;eEditor&quot;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">?</span> item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;eEditor&quot;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">:</span> <span style="color: #666666;">&quot;&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
sAuthor <span style="color: #008000;">=</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">!</span>Convert<span style="color: #008000;">.</span><span style="color: #0000FF;">IsDBNull</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;eAuthor&quot;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">?</span> item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;eAuthor&quot;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">:</span> <span style="color: #666666;">&quot;&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
<span style="color: #0600FF; font-weight: bold;">try</span><br />
<span style="color: #008000;">&#123;</span><br />
editor <span style="color: #008000;">=</span> ctx<span style="color: #008000;">.</span><span style="color: #0000FF;">Web</span><span style="color: #008000;">.</span><span style="color: #0000FF;">EnsureUser</span><span style="color: #008000;">&#40;</span>sEditor<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
ctx<span style="color: #008000;">.</span><span style="color: #0000FF;">ExecuteQuery</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<span style="color: #0600FF; font-weight: bold;">catch</span><br />
<span style="color: #008000;">&#123;</span><br />
editor <span style="color: #008000;">=</span> ctx<span style="color: #008000;">.</span><span style="color: #0000FF;">Web</span><span style="color: #008000;">.</span><span style="color: #0000FF;">EnsureUser</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;tlisko&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<span style="color: #0600FF; font-weight: bold;">try</span><br />
<span style="color: #008000;">&#123;</span><br />
author <span style="color: #008000;">=</span> ctx<span style="color: #008000;">.</span><span style="color: #0000FF;">Web</span><span style="color: #008000;">.</span><span style="color: #0000FF;">EnsureUser</span><span style="color: #008000;">&#40;</span>sAuthor<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
ctx<span style="color: #008000;">.</span><span style="color: #0000FF;">ExecuteQuery</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<span style="color: #0600FF; font-weight: bold;">catch</span><br />
<span style="color: #008000;">&#123;</span><br />
author <span style="color: #008000;">=</span> ctx<span style="color: #008000;">.</span><span style="color: #0000FF;">Web</span><span style="color: #008000;">.</span><span style="color: #0000FF;">EnsureUser</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;tlisko&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;Editor&quot;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> editor<span style="color: #008000;">;</span><br />
item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;Author&quot;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> author<span style="color: #008000;">;</span><br />
item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;Modified&quot;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;eModified&quot;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">;</span><br />
item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;Created&quot;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;eCreated&quot;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">;</span><br />
<br />
<span style="color: #008080; font-style: italic;">//remove values</span><br />
item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;eEditor&quot;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">;</span><br />
item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;eAuthor&quot;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">;</span><br />
item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;eCreated&quot;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">;</span><br />
item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;eModified&quot;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">;</span><br />
<br />
item<span style="color: #008000;">&#91;</span><span style="color: #666666;">&quot;ContentTypeId&quot;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> docType<span style="color: #008000;">.</span><span style="color: #0000FF;">Id</span><span style="color: #008000;">;</span><br />
item<span style="color: #008000;">.</span><span style="color: #0000FF;">Update</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span><br />
<span style="color: #0600FF; font-weight: bold;">try</span><br />
<span style="color: #008000;">&#123;</span><br />
ctx<span style="color: #008000;">.</span><span style="color: #0000FF;">ExecuteQuery</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<span style="color: #008000;">&#125;</span></div></div>
<p>&#8220;ctx&#8221; is my ClientContext, though that is probably self-evident. You may also note that I only process items whose content type is my custom content type &#8220;migratedDoc&#8221; which is instantiated as &#8220;migType.&#8221; Only the migrated documents will have this content type.</p>
<p>eRoom documents do not have Titles, so I set a title based on the file name. You can leave Title blank &#8211; it isn&#8217;t a required field. Continuing through the code you will notice that I check that the names of the editor and author exist in the LDAP (ctx.Web.EnsureUser(sAuthor)). The update of the list/library item will fail if you try to use an editor or author that doesn&#8217;t exist.</p>
<p>I don&#8217;t really want to have a custom document library &#8211; the SharePoint default document library is just fine. So to get the result I want I need to reassign all the migrated items to the standard &#8220;Document&#8221; type. List items content types have a Name property. Unfortunately you can&#8217;t change it &#8211; it is read only. What you can change is the ContentTypeId and changing that value changes the content type of the list item. In the code above &#8220;docType&#8221; is local instance of the &#8220;Document&#8221; content type.</p>
<p>I said at the beginning of this article that I would explain why I wanted to keep the &#8220;Document&#8221; content type in addition to the creating a custom content type. The reason is that you can&#8217;t assign a list item to a content type if that content type isn&#8217;t in the list. That&#8217;s also why you can&#8217;t move a document from one SharePoint library to another unless its content type is in the target library as well.</p>
<p>Next I want to remove my custom content type from the list altogether. But to do that, I have to make sure that all those extra fields that are in the custom content type are set to null &#8211; which I do before changing the content type. The order of resetting these fields and reassigning the content type doesn&#8217;t matter. What does matter is that if these extra fields are not set to null, you will be unable to remove the content type from the list.</p>
<p>After processing all the list items I can now remove the custom content type from the list. Easy, two lines of code:</p>
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">migType<span style="color: #008000;">.</span><span style="color: #0000FF;">DeleteObject</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
ctx<span style="color: #008000;">.</span><span style="color: #0000FF;">ExecuteQuery</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></div></div>
<p>But that still doesn&#8217;t remove the custom fields from the list. More code is needed.  Incorporating the delete of the custom content type you have this.</p>
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">migType<span style="color: #008000;">.</span><span style="color: #0000FF;">DeleteObject</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
list<span style="color: #008000;">.</span><span style="color: #0000FF;">Fields</span><span style="color: #008000;">.</span><span style="color: #0000FF;">GetByTitle</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;eCreated&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">DeleteObject</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
list<span style="color: #008000;">.</span><span style="color: #0000FF;">Fields</span><span style="color: #008000;">.</span><span style="color: #0000FF;">GetByTitle</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;eModified&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">DeleteObject</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
list<span style="color: #008000;">.</span><span style="color: #0000FF;">Fields</span><span style="color: #008000;">.</span><span style="color: #0000FF;">GetByTitle</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;eAuthor&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">DeleteObject</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
list<span style="color: #008000;">.</span><span style="color: #0000FF;">Fields</span><span style="color: #008000;">.</span><span style="color: #0000FF;">GetByTitle</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;eEditor&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">DeleteObject</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
ctx<span style="color: #008000;">.</span><span style="color: #0000FF;">ExecuteQuery</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></div></div>
<p>And that&#8217;s it! The library looks like the default document library with only the &#8220;Document&#8221; content type as desired.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armedia.com/blog/2011/09/modifying-sharepoint-document-content-types-and-libraries-using-the-client-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#039;m in eRoom, Get Me Out of Here!</title>
		<link>http://www.armedia.com/blog/2011/07/im-in-eroom-get-me-out-of-here/</link>
		<comments>http://www.armedia.com/blog/2011/07/im-in-eroom-get-me-out-of-here/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 18:26:21 +0000</pubDate>
		<dc:creator>cstephenson</dc:creator>
				<category><![CDATA[Data Migration]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[eRoom]]></category>
		<category><![CDATA[Information Rights Management]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[EMC]]></category>
		<category><![CDATA[ETL]]></category>
		<category><![CDATA[Extract]]></category>
		<category><![CDATA[Load]]></category>
		<category><![CDATA[Miration]]></category>
		<category><![CDATA[Transform]]></category>
		<category><![CDATA[Visual Basic]]></category>

		<guid isPermaLink="false">http://www.armedia.com/blog/?p=448</guid>
		<description><![CDATA[[turns up amplifier, cranks up volume to 11, puts Huey Lewis and the News vinyl on record player....] I start up Visual Studio 6.0 and settle down to some nostalgic programming with Visual Basic (VB) 6.  Ah, college memories come flooding back and strangely not many related to actual study.  I feel like I have [...]]]></description>
			<content:encoded><![CDATA[<p>[<em>turns up amplifier, cranks up volume to 11, puts <a title="Huey Lewis and the News" href="http://www.hueylewis.com/">Huey Lewis and the News</a> vinyl on record player....</em>]<br />
I start up <a title="Visual Studio 6.0" href="http://msdn.microsoft.com/en-us/library/ms950417.aspx">Visual Studio 6.0</a> and settle down to some nostalgic programming with <a title="Visual Basic 6.0" href="http://msdn.microsoft.com/en-us/vbasic/ms788229">Visual Basic </a>(VB) 6.  Ah, college memories come flooding back and strangely not many related to actual study.  I feel like I have stepped back in time &#8211; the processor has worked its speed up to 88 mph and now I am back using VB6.  I also remember learning <a title="Delphi" href="http://delphi.about.com/cs/azindex/a/dhistory_2.htm">Delphi</a> Version 1.0 so that I could *help* a friend do their final year project. Good times.</p>
<p><span id="more-448"></span>A long time ago I posted this <a title="So long, farewell, auf wiedersehen, eRoom" href="http://www.armedia.com/blog/?p=420">blog</a>.  I had not realized it was over a year ago, but I will continue on with more information around the Export.  I chose to use VB6 as it was the easiest way to start working against eRoom&#8217;s API&#8217;s.  John and I discussed whether we should attempt to migrate against the <a title="EMC eRoom" href="http://www.emc.com/products/detail/software2/eroom.htm">eRoom</a> database tables or use its API&#8217;s.  It was decided to go down the path of using the API&#8217;s which should provide more flexibility going forward.  Though I do still like the idea of migrating from the database directly.</p>
<p>The design of the export piece is fairly simplistic.  Start at the top of the eRoom structure and walk each branch outputting all associated metadata into a well formed XML document.  The goal was to have as much data as required to recreate it all again in another eRoom instance.  [Note, we have not actually written a Load module for going into eRoom.]</p>
<p>For the most part, in the code, every object can be treated as an IERUItem.  This helps with creating helper functions as we can simply pass this object type about.  The next important step is to determine the properties that are part of IERUItem by which you can further derive information.  By doing this you open up a host of new goodies to delve into.</p>
<p>For example is this item a container.  To find out check the property isContainer (which is missing from API help document).  A container is a way of grouping other objects together.  Kind of like a folder.  If a room is being exported, first the groups and members are put into the XML, followed by properties relating immediately to the room, then a container element is identified.  The Exporter takes a depth first approach, so a list of all items in the container are identified and the process continues.</p>
<p>One thing to note, a visual debugger is your friend.  The API documentation is good up to a point.  Then you realize that some object properties were left out of the documentation or property values may not be quite what you expected them to be, like properties may not be instantiated if they are not relevant to the object.  Once the gaps are filled in it becomes quite intuitive working through eRoom structures.</p>
<p>Currently, the user can export all of the communities or facilities, or selected rooms.  The design thought running behind this was to be in the position of exporting rooms to the repository of choice.  In other words, if marketing and legal have all their content within the same facility but would like them to be in separate repositories, this can be accommodated.  Actually it can be accommodated in a couple of  ways.  At the export setup, you can export specific rooms to be designated for specific repositories.  All of the necessary metedata will still be exported (i.e. users, groups, etc.) with each room.  The result is multiple export.xml files.  Then at ingestion time, the user would ingest each export.xml and associate it with the appropriate repository.  The other method would be to export all rooms and handle the repository association at ingestion time.</p>
<p>Some thoughts around improving the Exporter Tool is around further investigation into the eRoom XML Query interface.  This opens up more options for different programming languages and different thoughts around the overall export.  Of course, it could open up more gotcha&#8217;s as well <img src='http://www.armedia.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   The next exciting installment around eRoom migration will be around the transformation tool.  Now that we have all this wonderful XML, what do we do with it?  This is were things really start to get interesting as what will the eRoom XML output be transformed into?</p>
<p>So who else has been looking at their eRoom environment wondering when and how they are going to migrate away from their legacy system?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armedia.com/blog/2011/07/im-in-eroom-get-me-out-of-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Think Alfresco from Documentum perspective  –Take 1</title>
		<link>http://www.armedia.com/blog/2010/07/think-alfresco-from-documentum-perspective-%e2%80%93take-1/</link>
		<comments>http://www.armedia.com/blog/2010/07/think-alfresco-from-documentum-perspective-%e2%80%93take-1/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 18:19:07 +0000</pubDate>
		<dc:creator>bsampath</dc:creator>
				<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[Alfresco Development]]></category>
		<category><![CDATA[Aspects]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[Documentum Development]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Enterprise Content Management]]></category>
		<category><![CDATA[Export]]></category>
		<category><![CDATA[Solutions]]></category>
		<category><![CDATA[Web Content Management]]></category>
		<category><![CDATA[Webscripts]]></category>
		<category><![CDATA[aspects]]></category>
		<category><![CDATA[Caliente]]></category>
		<category><![CDATA[deep export]]></category>
		<category><![CDATA[lucene]]></category>
		<category><![CDATA[tomcar]]></category>
		<category><![CDATA[webscripts]]></category>

		<guid isPermaLink="false">http://www.armedia.com/blog/?p=399</guid>
		<description><![CDATA[When you work for a while in the software you get numbed to “technologies have come and gone&#8230;” occasionally though some become commodities and others trend setters. We have seen that with many products like Apache, Tomcat, Lucene, Drupal …etc that have stabilized and matured over the past years with the help of increased development from [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" src="http://armedia.com/blog2/wp-content/uploads/2010/07/OpenSource.gif" alt="Open Source ...&lt;/ins&gt;" width="528" height="308" /></p>
<p><span style="color: #888888;"><span style="color: #000000;">When you work for a while in the software you get numbed to “technologies have come and gone&#8230;” occasionally though some become commodities and others trend setters. We have seen that with many products like </span></span><a href="http://www.apache.org/" target="_blank">Apache</a>, <a href="http://tomcat.apache.org/">Tomcat</a>, <a href="http://lucene.apache.org/" target="_blank">Lucene</a>, <a title="Drupal" href="http://www.drupal.org" target="_blank">Drupal </a><span style="color: #000000;">…etc that have stabilized and matured over the past years with the help of increased development from the open source realm. Wait! Did I mention the word “Open Source” and going to talk about</span><span style="color: #000000;"> the enterprise</span><span style="color: #000000;"> </span><a href="http://en.wikipedia.org/wiki/Content_management_system" target="_blank">content management</a>?</p>
<p><span style="color: #000000;">So without any more ado, we have </span><a href="http://www.alfresco.com/" target="_blank">Alfresco</a>- <span style="color: #888888;"><span style="color: #000000;">catering to a rapidly increasing demand of the enterprise content management solutions which is built over the open source technologies such as</span> </span><a href="http://wiki.alfresco.com/wiki/Alfresco_Repository_Architecture" target="_blank">Spring, Hibernate, and Lucene</a><span style="color: #888888;"> <span style="color: #000000;">platforms. Having done years of Documentum development and several Alfresco projects of late, I think there are some interesting overlaps and differences of approach that I feel would make the developers get adapted quicker.</span></span></p>
<p><span style="color: #000000;">With the</span> <a href="http://wiki.alfresco.com/wiki/Main_Page" target="_blank">wiki</a> <span style="color: #000000;">site overwhelmed with Introduction, API’s, Development, Deployment and the</span><span style="color: #000000;"> </span><a href="http://forums.alfresco.com/en/" target="_blank">Forums</a> <span style="color: #000000;">to answer all the questions regarding the issues faced during the project phase, I am here to talk purely from the developers perspective on what’s the key areas that I happen to witness the difference from the Documentum space.</span></p>
<p><span style="color: #000000;">The road map for my next series of blog is going to cover each of the areas mentioned below in more detailed, code abundant and developer centric approach which will answer the questions:</span></p>
<ul>
<li><em><span style="color: #000000;">Does this feature exist in Documentum or Alfresco or both?</span></em></li>
<li><em><span style="color: #000000;">If yes, how different is the approach?</span></em></li>
</ul>
<p><span style="color: #000000;">So with that preamble, and in no particular order, I give you my list of the key areas I got hands on and learnt how different Alfresco is:</span></p>
<ul>
<li><strong><a href="http://wiki.alfresco.com/wiki/Aspect" target="_blank">Aspects</a></strong></li>
</ul>
<p style="padding-left: 30px;"><span style="color: #000000;">Custom data model is the core for any enterprise content management solution. The use of “Aspects” as its core is the fundamental concept for content modeling in Alfresco. Although in the</span> <a href="http://developer.emc.com/developer/devcenters/ContentManagement/D6/whats_new_in_documentum6.pdf" target="_blank">form D6</a>,<span style="color: #000000;"> </span><span style="color: #000000;">aspects was introduced, how different is the use and approach in Alfresco is something I will take a deep dive in my next blog.</span></p>
<ul>
<li><a href="http://wiki.alfresco.com/wiki/Web_Scripts" target="_blank"><strong>Web Scripts</strong></a></li>
</ul>
<p style="padding-left: 30px;"><span style="color: #000000;">Alfresco Web Scripts brings together the world of content repository and the web. Being a Documentum developer earlier ways of interaction with the repository have been either using DFC API’s or DQL. In Alfresco, Web Scripts provide RESTful access to content within the repository and we can build our own interface using java script. A custom move operation is implemented using the Web Scripts and the comparison of the implementation with the Documentum would be a something to be noted.</span></p>
<ul>
<li><a href="http://www.daeja.com/integrate/integrate-alfresco.asp" target="_blank"><strong>Integration</strong></a></li>
</ul>
<p style="padding-left: 30px;"><span style="color: #000000;">On my last project, we had requirements for the customers to be able to permanently redact</span> <a href="http://en.wikipedia.org/wiki/Personally_identifiable_information" target="_blank">Personally Identifiable Information</a> <span style="color: #000000;">(PII) from existing documents stored in the repository and version the original document upon save. For various reasons, we decided to integrate the 3</span><sup><span style="color: #000000;">rd</span></sup><span style="color: #000000;"> party tool Daeja </span><a href="http://www.daeja.com/" target="_blank">ViewOne</a><span style="color: #000000;"> module to provide this capability. I will discuss the topic as part of this blog series.</span></p>
<p><span style="color: #000000;">I started this series based on my experience implementing Alfresco projects and I invite you to share any of your experiences with any part of the road map wherein you run into interesting twists and turns? Did you drive off the road to get some help? I welcome your feedback as the blog takes its shape. See you all soon in </span><em><span style="color: #000000;">Take 2</span></em><span style="color: #000000;">.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.armedia.com/blog/2010/07/think-alfresco-from-documentum-perspective-%e2%80%93take-1/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Documentum-Composer</title>
		<link>http://www.armedia.com/blog/2010/07/documentum-composer/</link>
		<comments>http://www.armedia.com/blog/2010/07/documentum-composer/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 15:46:02 +0000</pubDate>
		<dc:creator>athimmavajjala</dc:creator>
				<category><![CDATA[Documentum]]></category>
		<category><![CDATA[Documentum Development]]></category>
		<category><![CDATA[Enterprise Content Management]]></category>

		<guid isPermaLink="false">http://www.armedia.com/blog/?p=494</guid>
		<description><![CDATA[It was year 2004, when I was first introduced to EMC Documentum. As I first fired up the DAB IDE, I felt man this IDE is Unintuitive, slow and cryptic. Apart from learning the DFC API’s in Documentum, getting accustomed to DAB itself was an excruciating experience. Finally after three years Documentum Composer came as [...]]]></description>
			<content:encoded><![CDATA[<p>It was year 2004, when I was first introduced to EMC Documentum. As I first fired up the DAB IDE, I felt man this IDE is Unintuitive, slow and cryptic. Apart from learning the DFC API’s in Documentum, getting accustomed to DAB itself was an excruciating experience. Finally after three years Documentum Composer came as a savior.</p>
<p>I liked <a href="http://www.emc.com/products/detail/software/composer.htm" target="_blank">Documentum Composer</a> for 3 main reasons:</p>
<p>1. It has better interface than DAB, and its easy to use providing support for keeping multiple projects open at the same time. You need not checkout and checkin the artifacts every time you make any changes only thing you will be doing is installation of the project.</p>
<p>2. It comes as combined feature of both DAB and DAI where in you create the DAR and install from the same IDE into a repository.</p>
<p>3. Composer is built on the Eclipse platform, and the installation includes a bundled Eclipse environment. One of the benefits of the Eclipse platform is that it offers a number of paradigms that are familiar to developers thus allowing users to identify the issues at the DocApp development level instead of installation level.</p>
<p>Composer helps to develop applications faster and easier by reducing the learning curve through user interface consistency and the familiar standards-based Eclipse tooling framework. Composer can be run in “headless Eclipse mode”, which enables command-line scripting and automation of project installation. This feature provides self-contained, fully automated deployment of projects into a repository, without the need for a previous DFC installation or DMCL client.</p>
<p>One thing that I like about Composer is the ability to install into multiple repositories, assuming they share a connection broker, without restarting and on the other hand ability to work offline. To install the application or migrate the data model a user would use DAI to install the docapp archive into one or more production Docbases, where as with composer you can do both the task in one single place without the need of DAI to deploy.</p>
<p>It is both an artifact project, supporting artifact development, and it is also a DFS project, supporting consumer and service DFS development.</p>
<p>Another feature that I liked about Composer is the ability to deploy java methods as <a href="http://www.bluefishgroup.com/library/2006/practical-guide-to-bof/#head3" target="_blank">BOF</a> module without the need for the user to copy the class files under /dba/java_methods folder in the CS location and to be able to deploy on the java method server without having to bring down the content server. Also when Business Object Framework (BOF) came out in 6.0, DAB was extended to support creation of modules which served as “container” for custom BOF code.  However, you still had to have a java environment to build JAR files that contained BOF code.  In addition, any customizations to WDK/Webtop were not supported in DAB.  The WAR build and deployment process was entirely separate from docapp installation process. Composer is an effort by EMC to come up with a single tool that help developers to Configure Documentum artifacts, Create Business Objects, Build DFS Services, Deploy Documentum applications across multiple repositories.</p>
<p>Once you begin using <a href="http://developer.emc.com/developer/devcenters/ContentManagement/D6/composer/composer.htm" target="_blank">Documentum Composer</a> the benefits are easily evident. To name a few:</p>
<ul>
<li>Developing      applications quickly and easily</li>
<li>Learning      curve is reduced due to the consistency of user interface and familiar      standards of Eclipse tooling framework</li>
</ul>
<p>Personally I consider composer a great gift to the Documentum developer community.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armedia.com/blog/2010/07/documentum-composer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>So long, farewell, auf Wiedersehen, eRoom</title>
		<link>http://www.armedia.com/blog/2010/06/so-long-farewell-auf-wiedersehen-eroom/</link>
		<comments>http://www.armedia.com/blog/2010/06/so-long-farewell-auf-wiedersehen-eroom/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 20:23:41 +0000</pubDate>
		<dc:creator>cstephenson</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Data Migration]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[Enterprise Content Management]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[Centerstage]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Collaboration]]></category>
		<category><![CDATA[EMC]]></category>
		<category><![CDATA[eRoom]]></category>
		<category><![CDATA[ETL]]></category>
		<category><![CDATA[Migrate]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[transformation]]></category>

		<guid isPermaLink="false">http://www.armedia.com/blog/?p=420</guid>
		<description><![CDATA[A simple goal – “export, transform, load” – the destination is a matter of choice. EMC eRoom is going away.  It has been marked as End of Life (EOL) so what next?  EMC Documentum have 2 options: EMC Documentum Collaboration Services; EMC Documentum Centerstage.  Armedia’s immediate goal is to support Collaboration Services, then Centerstage but [...]]]></description>
			<content:encoded><![CDATA[<p>A simple goal – “<a href="http://en.wikipedia.org/wiki/Extract,_transform,_load" target="_blank">export, transform, load</a>” – the destination is a matter of choice.</p>
<p><a href="http://www.emc.com/products/family/eroom-family.htm">EMC eRoom</a> is going away.  It has been marked as End of Life (<a href="http://en.wikipedia.org/wiki/End-of-life_%28product%29">EOL</a>) so what next? <a href="http://www.emc.com/domains/documentum/index.htm"> EMC Documentum</a> have 2 options: EMC Documentum Collaboration Services; <a href="http://www.emc.com/products/detail/software/centerstage.htm">EMC Documentum Centerstage</a>.  Armedia’s immediate goal is to support Collaboration Services, then Centerstage but why stop there?  Why limit a client’s choice.</p>
<p>Armedia&#8217;s eRoom migration story is in 3 acts (and yes, I have been listening to some test pieces that I used to play in my <a href="http://www.downshirebrass.com/">brass banding</a> days &#8211; check out <a href="http://www.philipsparke.com/year_of_the_dragon%20BB.htm">Year of the Dragon</a> by <a href="http://www.philipsparke.com/">Philip Sparke</a>).</p>
<p><span style="text-decoration: underline;">Act I – The Export</span></p>
<p>Getting the content out of eRoom into an understandable format.  Of course, its not just the content, there is  a large quantity of metadata in eRoom as well.  Act I – The Export deals solely with interrogating eRoom and generating a document detailing everything about eRoom.  From communities to Files.  From eRoom Setup to databases – we mean everything.  The result: a well-formed XML document</p>
<p><span style="text-decoration: underline;">Act II – The Transformation</span></p>
<p>As with any classic performance, after the captivating opening, Act II deals with getting to know the characters.  In this case, the transformation gets to know the XML document and gains a deep understanding of the objects held within.  The transformation is responsible for also generating a secondary XML document. This is formed to support the ingestion to a new Content Management System (<a href="http://en.wikipedia.org/wiki/Content_management_system">CMS</a>) and / or Collaboration System.  Currently the supported transformation is for EMC Documentum Collaboration Services.  This can easily be extended due to the flexible architecture of this utility and is simply a case of transforming XML.</p>
<p><span style="text-decoration: underline;">Act III – The Load</span></p>
<p>The closing act is the build up to the dramatic climax which leaves the audience going “WOW!”.  eRoom Migration aims to achieve the same “WOW!”.  Now that the XML has been transformed you can sit back and let the load run automatically.  That’s it.  By using the ingestion engine of <a href="http://www.armedia.com/products/suite/">Caliente!</a> loading all the content and metadata is simple.  Just let eRoom Migration take care of everything for you.  The only thing it does not do is say “WOW!” – we leave that to you.</p>
<p>Over the next few weeks I plan to talk in more detail about the approach taken and dig deeper into the 3 different pieces of the migration effort.  For those eRoom users, what do you see yourselves using in the near future?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armedia.com/blog/2010/06/so-long-farewell-auf-wiedersehen-eroom/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Let there be guitar!</title>
		<link>http://www.armedia.com/blog/2010/05/let-there-be-guitar/</link>
		<comments>http://www.armedia.com/blog/2010/05/let-there-be-guitar/#comments</comments>
		<pubDate>Thu, 27 May 2010 20:53:39 +0000</pubDate>
		<dc:creator>cstephenson</dc:creator>
				<category><![CDATA[Documentum]]></category>
		<category><![CDATA[EMC]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Ligero]]></category>
		<category><![CDATA[MP3]]></category>
		<category><![CDATA[Streaming]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.armedia.com/blog/?p=414</guid>
		<description><![CDATA[What happens when you combine Ligero and EMC Documentum when developers have a spare moment. You get: Rockumentum! The question was thrown out in casual conversation &#8211; &#8220;Hey, do you think we could turn Documentum into a Jukebox?&#8221;. So what else would you do with your million dollar investment? It turns out this was surprisingly [...]]]></description>
			<content:encoded><![CDATA[<p>What happens when you combine <a href="http://www.armedia.com/products/suite/">Ligero</a> and <a href="http://www.emc.com/domains/documentum/index.htm">EMC Documentum</a> when developers have a spare moment. You get:</p>
<p style="text-align: center;"><strong>Rockumentum!<strong> </strong></strong></p>
<p>The question was thrown out in casual conversation &#8211; &#8220;Hey, do you think we could turn <a href="http://www.emc.com/domains/documentum/index.htm">Documentum</a> into a Jukebox?&#8221;. So what else would you do with your million dollar investment? It turns out this was surprisingly easy to do when <a href="http://www.armedia.com/products/suite/">Ligero</a> was put in front of <a href="http://www.emc.com/domains/documentum/index.htm">Documentum</a>.</p>
<p>A small number of <a href="http://en.wikipedia.org/wiki/MP3">mp3</a> files were added to our test repository, the URL was put into the browser and in the immortal words of <a href="http://www.acdc.com/us/home">AC/DC</a> &#8211; LET THERE BE ROCK!</p>
<p>The audio player associated with the .mp3 extension was launched and within mere milliseconds rock music filled the room. Of course this was coupled with a nice pair of <a href="http://www.logitech.com/en- us/speakers_audio/home_pc_speakers/devices/199">LogicTech</a> laptop speakers which provided a surprisingly good sound.</p>
<p>Being the nerds we are, we added a small playlist (.pls) to the repository. This was kept simple and contained purely a list of absolute references to the tunes in the repository. First we gave the playlist url to our audio player and once again we were treated to the sounds of rock music. Awesome dude.</p>
<p>So what next. Well, it would be simple enough to develop a few Liglets* for <a href="http://www.armedia.com/products/suite/">Ligero</a> to build playlists for you. These could return the metadata associated with the tracks. Heck, we could even throw in the Album Art for kicks.  There are lots of things we could do.</p>
<p>For more fun, throw in video and and take advantage of <a href="http://www.w3.org/TR/html5/">HTML5</a>. This could lead to <a href="http://en.wikipedia.org/wiki/Audio_Video_Interleave">.avi</a> and possible video training, but where is the fun in that?</p>
<p>*Liglets: a fun and novel idea around adding scriplets to <a href="http://www.armedia.com/products/suite/">Ligero</a> to assist with rapid development of webpages being served out of <a href="http://www.emc.com/domains/documentum/index.htm">Documentum</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armedia.com/blog/2010/05/let-there-be-guitar/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Destiny&#039;s child</title>
		<link>http://www.armedia.com/blog/2010/02/destinys-child/</link>
		<comments>http://www.armedia.com/blog/2010/02/destinys-child/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 00:26:03 +0000</pubDate>
		<dc:creator>Jim Nasr</dc:creator>
				<category><![CDATA[Content Authoring]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[ECM Industry]]></category>
		<category><![CDATA[Enterprise Content Management]]></category>
		<category><![CDATA[Fatwire]]></category>
		<category><![CDATA[Web Content Management]]></category>
		<category><![CDATA[EMC news]]></category>
		<category><![CDATA[Migration]]></category>
		<category><![CDATA[Web Publisher]]></category>

		<guid isPermaLink="false">http://www.armedia.com/blog/?p=315</guid>
		<description><![CDATA[Impact of EMC's partnership with Fatwire to provide Web Content Management offerings in place of its own existing WCM products]]></description>
			<content:encoded><![CDATA[<p>Suspense builds. Tension unbearable. As the cards turn…it is, of course, Miss Scarlett (the old fishmonger, Mustard, was never cunning enough to pull this off), with the rope in the (WHAT?!) Library… Those of you with fond childhood, or more recent, memories of <a title="JimNasr_blog" href="http://en.wikipedia.org/wiki/Cluedo" target="_blank">Cluedo</a> would have surely related to today’s <a title="JimNasr_blog" href="http://www.emc.com/about/news/press/2010/20100216-02.htm" target="_blank">EMC/Fatwire partnership</a> news. In the worst kept secret category, EMC has effectively chosen to supplant its own Web Content Management (WCM) offerings with Fatwire’s, best in class, offering and in-turn chip in with some DAM going the other way, and, interestingly, <em>only</em> take a minority equity stake at Fatwire.</p>
<p>Solution-wise, this is actually good news for clients…in the longterm: richer functionality, better ease of use, tight focus on WCM, proven winner. Ultimately, WCM to EMC Documentum was the Super G to <a title="JimNasr_blog" href="http://en.wikipedia.org/wiki/Alberto_Tomba" target="_blank">Tomba la Bomba</a>: good, but not quite <a title="JimNasr_blog" href="http://en.wikipedia.org/wiki/Kjetil_Andr%C3%A9_Aamodt" target="_blank">Aamodt-esque</a> (apologies in advance for the indulgence in Winter Olympics rhetoric; seemed appropriate though given the wall to wall TV coverage and the three feet of snow we&#8217;re in here in DC). However, this direction does pose some intriguing questions:</p>
<ul>
<li>How tightly would Fatwire’s product work with EMC Documentum? Whose repository rules when it comes to WCM? Can the repositories truly co-exist merrily (possibly through CMIS)? Emmm…what happened to the whole one repository thing?</li>
<li>What happens to clients’ existing Web Publisher (WP) based solution? Stick with it? Live without it? Migrate to Fatwire? Throw another 3<sup>rd</sup> party tool in the mix? Start from scratch? Chuck the whole thing and Salesforce.com it?</li>
<li>Operationally, who takes the lead, EMC Support or Fatwire? What about overlaps? How about licensing for existing solutions? Functionality vs. Risk?</li>
<li>Technically, what’s the impact? What would the security model look like? How do you migrate?</li>
<li>If the sunsetting of WDK and WP are both inevitable, what’s the recipe to upgrade? What tools and support will EMC provide to ease the process?</li>
</ul>
<p>Of course, this is not an exhaustive list of questions and sharper minds than mine will surely have scripted-answers for them and more. History, though, tells me to tread with caution. Inevitably, enterprise class solutions are burdened with enterprise class complexity (and likely not just because of the technology). Time, budget, people, skills, political battlegrounds, management knowhow and many other factors may well play a part and tint the lens with which you view the questions.</p>
<p>So, where else might destiny’s child poke its nose? Of course, I don’t know for a fact, nor would want to speculate. However, looking at the gaps in the kitbag of some of the larger ECM vendors, I can’t help but wonder whether the next case management, records management, ediscovery, collaboration (read: Sharepoint) or content migration “partnership” announcement is just around the corner.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armedia.com/blog/2010/02/destinys-child/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating CAD Drawings into Documentum</title>
		<link>http://www.armedia.com/blog/2009/12/migrating-cad-drawings-into-documentum/</link>
		<comments>http://www.armedia.com/blog/2009/12/migrating-cad-drawings-into-documentum/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 20:10:10 +0000</pubDate>
		<dc:creator>rrana</dc:creator>
				<category><![CDATA[Data Migration]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[CAD]]></category>
		<category><![CDATA[CADtop]]></category>
		<category><![CDATA[Content Management]]></category>
		<category><![CDATA[dfc]]></category>

		<guid isPermaLink="false">http://www.armedia.com/blog/?p=237</guid>
		<description><![CDATA[Anyone who has ever attempted a data migration knows that there is no such thing as &#8216;a smooth transfer of power&#8217;, as it were. From learning both the legacy system and the new system, business processes, data clean-up, data mapping, deciding between existing tools and creating new ones, there is a lot to keep track [...]]]></description>
			<content:encoded><![CDATA[<p>Anyone who has ever attempted a data migration knows that there is no such thing as &#8216;a smooth transfer of power&#8217;, as it were. From learning both the legacy system and the new system, business processes, data clean-up, data mapping, deciding between existing tools and creating new ones, there is a lot to keep track of to ensure that what you have at the end matches what you started with.</p>
<p>Migrating CAD engineering drawings poses its own set of unique challenges. AutoCAD and MicroStation drawings can internally have references to other drawing files that exist within the content management system (or file system). When moving these files over to a new system, care must be taken to ensure these references are maintained.</p>
<p>Sword <a href="http://www.cadtop.net/" target="_blank">CADtop</a> is a tool that provides users access to CAD drawings that are stored in a Documentum repository directly from within AutoCAD or MicroStation. It gives the user the ability to check in/out drawings, browse, search, view documents and attach reference drawings that exist in the docbase. CADtop maintains reference information by updating the links within the drawing and storing this information in a registered table.</p>
<p>CADtop also provides an import tool that can be used to migrate documents into the Documentum system. It handles importing of documents of multiple types, such as .pdfs, .docs, .tifs, etc. along with the drawing formats, .dwg and .dgn. It is a very simple to use command line tool, but it has its limitations. It can only handle importing up to around 5000 files at a time. However, this can be overcome by creating a batch script to automate the copying of sets of files to a temporary directory and running the import tool.</p>
<p>The import tool uses an XML configuration file to determine the object type, folder path to import from and cabinet/folder to import to. However, those are the only properties you can set. The import tool has no way to attach meta-data from a database to content files being imported. A way around this is to make sure each file has a unique name, then import the files, then using a DFC script, update the properties of all the objects in the docbase from an XML file (for example). This works well as long as all the filenames are unique in the first place, or not drawings with references. If filenames are not unique, then you would have to rename the files, which means the filenames will no longer match the drawing’s internal reference links.</p>
<p>The import tool provides you with a switch that lets you run it in attach reference mode. This allows you to pass an Excel file which consists of a table of parent object IDs, child object IDs and reference filenames, so that you can resolve references within drawing files after they’ve been imported into the docbase. Thereby allowing you to use a tool such as <a href="http://armedia.com/products/suite/">Caliente</a> (Shameless Plug™) to import the drawings into Documentum and update the properties. Then create the Excel file with all the references and run the CADtop import tool to attach them.</p>
<p>The end result will be that when you open one of these drawings through AutoCAD, CADtop will automatically pull out all the references from the Documentum repository and display them, just as in the legacy system.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armedia.com/blog/2009/12/migrating-cad-drawings-into-documentum/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>High Volume Server (Part 2)</title>
		<link>http://www.armedia.com/blog/2009/11/high-volume-server-part-2/</link>
		<comments>http://www.armedia.com/blog/2009/11/high-volume-server-part-2/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 13:39:03 +0000</pubDate>
		<dc:creator>dselvakumar</dc:creator>
				<category><![CDATA[Content Server]]></category>
		<category><![CDATA[Documentum]]></category>

		<guid isPermaLink="false">http://www.armedia.com/blog/?p=218</guid>
		<description><![CDATA[HVS (Part 2) Data Partitioning Before we delve into Data Partitioning, here’s a review of some fundamental database concepts. In terms of this article the focus will be on Oracle as the database. Fundamental Database (ORACLE) concepts: A Table: (i) Stores structured data (ii) is a database object housed in a segment. A normal table [...]]]></description>
			<content:encoded><![CDATA[<p>HVS (Part 2) Data Partitioning</p>
<p>Before we delve into Data Partitioning, here’s a review of some fundamental database concepts. In terms of this article the focus will be on Oracle as the database.</p>
<p>Fundamental Database (ORACLE) concepts:<br />
A Table:<br />
(i) Stores structured data<br />
(ii) is a database object housed in a segment.<br />
A normal table (i.e. non-partitioned) is exactly one segment. A partitioned table will be made up of as many segments as it has partitions.</p>
<p>A Tablespace:<br />
(i) is a logical container for segments<br />
(ii) may be empty but it will most likely hold one or more segments<br />
(iii) may be made up of one or more data files.</p>
<p>A Data file:<br />
(i) is the physical operating system (OS) disk file that stores data. All data in an Oracle database ends up in a data file that is part of a file system configured by the OS or as a raw device managed by Oracle</p>
<p>A Data Block: is Oracle manages the storage space in the data files of a database in units called data blocks.</p>
<p>A Segment: is made up of extents and is the logical container for an object in an Oracle database</p>
<p>An Extent: is a set of contiguous data blocks</p>
<p>Data Partitioning (as it relates to the HVS)<br />
Data Partitioning, in a nutshell, decomposes a database object (indexes, tables) into smaller more manageable pieces called partitions. The goal of data partitioning is to reduce the amount of data read for a particular SQL operation so that the overall response time is reduced. The data is organized using a partition key which is essentially a set of columns that determines in which partition a given row of objects will reside. It is important to note that the underlying database must also be partition enabled (which Oracle has been for quite a while). HVS uses i_partition as the partition key and HVS does Range partitioning, i.e., each partition is specified by the value of its partition key (i_partition). When using HVS, a SysObject, all its associated content objects, any local ACLs being referenced by the SysObject, and so on, will be assigned to the partition designation of the SysObject. For a LWSO, if the i_partition is NOT explicitly set, it will by default, be in the same partition as the parent, thus sharing the same i_partition id. Partition pruning is essentially directing a query to a subset of partitions rather than the entire table.</p>
<p>Data Partitioning leads to improved manageability (storage of data files on different physical drives), improved availability (partition independence) and optimized queries (using partition pruning).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armedia.com/blog/2009/11/high-volume-server-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>To D6 or &quot;Deep 6&quot;</title>
		<link>http://www.armedia.com/blog/2009/10/to-d6-or-deep-6/</link>
		<comments>http://www.armedia.com/blog/2009/10/to-d6-or-deep-6/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 12:44:02 +0000</pubDate>
		<dc:creator>bhunton</dc:creator>
				<category><![CDATA[Documentum]]></category>
		<category><![CDATA[ACS]]></category>
		<category><![CDATA[BOF]]></category>
		<category><![CDATA[Content Management]]></category>
		<category><![CDATA[D5]]></category>
		<category><![CDATA[D6]]></category>
		<category><![CDATA[D6.5]]></category>
		<category><![CDATA[dfc]]></category>
		<category><![CDATA[DFS]]></category>
		<category><![CDATA[ECM]]></category>
		<category><![CDATA[EMC]]></category>
		<category><![CDATA[EMC CMA]]></category>
		<category><![CDATA[UCF]]></category>

		<guid isPermaLink="false">http://www.armedia.com/blog/2009/10/to-d6-or-deep-6/</guid>
		<description><![CDATA[Most of us in IT can think of many things we would rather do than upgrade systems and software; for example, maybe take a nice trip to the dentist, or perhaps volunteer as the test subject in an IRS agent, audit training class. If you finally have your Documentum 5.3 environment rolling along with good [...]]]></description>
			<content:encoded><![CDATA[<p>Most of us in IT can think of many things we would rather do than upgrade systems and software; for example, maybe take a nice trip to the dentist, or perhaps volunteer as the test subject in an IRS agent, audit training class.</p>
<p>If you finally have your Documentum 5.3 environment rolling along with good performance, then you probably don’t want to think about an upgrade, even though your current installation has been out of normal EMC support for a year. You may find yourself in Hamlet’s shoes, asking yourself whether to “Deep 6” the upgrade or to “take arms against a sea of trouble” and go for it. Wow! That really ravages the Soliloquy but you get my meaning.</p>
<p>I have been technically involved in Documentum upgrades since version 2. None have been trivial. EDMS 98 to 4i was tough because of the major changes in architecture. In 4i to 5, you had new WDK based clients, and the classes moved from dmcl to DFC. Web services were introduced. EBS still worked but it was in the gray area of support. What has happened to your custom Documentum applications? Did you have to build an interop so dmcl could still work in the new DFC world? Did you rewrite them? Maybe now is the time.</p>
<p>Fulltext Indexing switched from Verity to FAST. If you had millions of indexed content objects in Verity, you had to make a decision whether to blow the index away and start completely over, or to migrate it. Is your migration still running? Did you choose the mode unwisely? Oh, you use NAS instead of SAN? Ouch!</p>
<p>RightSite 4i went away too, leaving EMC customers with tens of thousands of broken anonymous links to repository content that required tedious labor to convert. Some of them have purchased Armedia’s Ligero which provides an easy solution to the problem of converting legacy RightSite links, as well as providing a very nice web content publishing/caching application.</p>
<p>The beat goes on, and we are well into the D6 product life cycle. The upgrade from Documentum 5 to 6 presents major challenges even in simple installations. Significant changes were introduced with version 5 that have come to fruition in D6. If you have a relatively simple Documentum installation, under version 5 you could probably ignore the global registry, ACS and BOF, even DFC properties up to a point. In D6 you have to pay close attention to them, because they are fully integrated. Their configuration can greatly affect your performance.</p>
<p>Then there is the move away from the simplicity of Tomcat, toWebLogic, to JBoss for the method server and ACS. How’s your heap? Then there are the new Documentum Archive (DAR) installations that replace the Docapp Installer. Then there is UCF, and, and…</p>
<p>And if all that is not enough to make your head spin like Linda Blair’s, there’s the sheer mass of the new installation binaries that must be downloaded from EMC then heaved to your host server. Do you have the additional storage and database space to handle it? Did I tell you that you need to go through repository sizing estimates again? Did I tell you that when it comes time to do the migration and upgrades you need to build into your schedule significantly more time to complete.</p>
<p>Your time is up! Documentum 6 is well beyond first ship date. It provides great features, functions, and flexibility. It is a suite of over 100 products and features designed for medium to very large enterprises. You need experienced architects, engineers, and integrators to design and build your system and to plan your upgrade. You need Armedia to get you through it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armedia.com/blog/2009/10/to-d6-or-deep-6/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

