<?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>Core Content Only &#187; OracleUCM</title>
	<atom:link href="http://corecontentonly.com/category/oracleucm/feed/" rel="self" type="application/rss+xml" />
	<link>http://corecontentonly.com</link>
	<description>ECM, SOA and WebCenter</description>
	<lastBuildDate>Sat, 11 Feb 2012 12:56:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='corecontentonly.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Core Content Only &#187; OracleUCM</title>
		<link>http://corecontentonly.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://corecontentonly.com/osd.xml" title="Core Content Only" />
	<atom:link rel='hub' href='http://corecontentonly.com/?pushpress=hub'/>
		<item>
		<title>Java Filter &#8211; Retrieving a File</title>
		<link>http://corecontentonly.com/2012/01/13/java-filter-retrieving-a-file/</link>
		<comments>http://corecontentonly.com/2012/01/13/java-filter-retrieving-a-file/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 02:26:37 +0000</pubDate>
		<dc:creator>Jonathan Hult</dc:creator>
				<category><![CDATA[OracleUCM]]></category>

		<guid isPermaLink="false">http://corecontentonly.com/?p=689</guid>
		<description><![CDATA[When within a Java Filter, one may need to get the file for a particular revision of a content item. There is a class intradoc.server.DirectoryLocator that is very helpful. From this class, we can obtain the FileStoreProvider. FileStoreProvider fileStoreProvider = DirectoryLocator.m_fileStore; DirectoryLocator has several static methods that can get paths within the filestore to places such [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=689&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When within a Java Filter, one may need to get the file for a particular revision of a content item. There is a class intradoc.server.DirectoryLocator that is very helpful. From this class, we can obtain the FileStoreProvider.</p>
<pre>FileStoreProvider fileStoreProvider = DirectoryLocator.m_fileStore;</pre>
<p>DirectoryLocator has several static methods that can get paths within the filestore to places such as weblayout directory, the vault directory, the temporary directory, the provider directory, etc. It can provide you a String path to almost any directory you want.</p>
<p>IdcFileDescriptor is a class that can provide the pathing to files. From a FileStoreProvider, we can create an IdcFileDescriptor.</p>
<p>IdcFileDescriptor idcFileDescriptor = fileStoreProvider.createDescriptor(binder, null, context);</p>
<p>The first parameter is a DataBinder. This is where the paremeters that are needed to build the path to the file are set. The second parameter is not needed and can be set to null. The third parameter is the ExecutionContext.</p>
<p>The required parameters that need to be in the DataBinder are &#8220;RenditionId&#8221;, &#8220;dDocName&#8221;, &#8220;dDocType&#8221;, &#8220;dRevLabel&#8221;, &#8220;dSecurityGroup&#8221;, &#8220;dDocAccount&#8221;, &#8220;dID&#8221;, and &#8220;dExtension&#8221;. RenditionId should be set to &#8220;primaryFile&#8221; for the primary file and &#8220;web&#8221; for the alternateFile.</p>
<p>Fortunately, a lot of the time most of these required parameters are already in your the original DataBinder. If you are missing some parameters you should be able to make a service call to DOC_INFO to get a ResultSet which contains all of the necessary parameters. You can then dump these parameters into a new DataBinder and feed it to the createDescriptor method call.</p>
<p>The file descriptor that comes back will give you something like this:</p>
<pre>idcFileDescriptor: intradoc.filestore.BasicIdcFileDescriptor{dWebExtension=xml, dID=80, RenditionId.path=primaryFile, dStatus=RELEASED, StorageClass=vault, RenditionId=primaryFile, dSecurityGroup=Public, dDocType=Web, dOriginalName=jh000035.xml, dExtension=xml, uniqueId=c:/oracle/ucm/server/vault/web/80.xml, fileNamePrefix=null, dReleaseState=Y, dDocAccount=, path=c:/oracle/ucm/server/vault/web/80.xml, dDocName=JH000035, dRevLabel=27, dRenditionId=primaryFile}</pre>
<p>To get the path to the file, do the following:</p>
<pre>fileStoreProvider.forceToFilesystemPath(idcFileDescriptor, null, context);
String filePath = fileStoreProvider.getFilesystemPath(idcFileDescriptor, context);</pre>
<p>You can of course turn this file path into a Java object by using:</p>
<pre>File myFile = new File(filePath);</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/corecontentonly.wordpress.com/689/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/corecontentonly.wordpress.com/689/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/corecontentonly.wordpress.com/689/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/corecontentonly.wordpress.com/689/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/corecontentonly.wordpress.com/689/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/corecontentonly.wordpress.com/689/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/corecontentonly.wordpress.com/689/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/corecontentonly.wordpress.com/689/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/corecontentonly.wordpress.com/689/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/corecontentonly.wordpress.com/689/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/corecontentonly.wordpress.com/689/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/corecontentonly.wordpress.com/689/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/corecontentonly.wordpress.com/689/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/corecontentonly.wordpress.com/689/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=689&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://corecontentonly.com/2012/01/13/java-filter-retrieving-a-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b679f118d2377e5143720500ed1eafa9?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jonathanhult</media:title>
		</media:content>
	</item>
		<item>
		<title>UCM Content Rule Side Effects</title>
		<link>http://corecontentonly.com/2012/01/11/ucm-content-rule-side-effects/</link>
		<comments>http://corecontentonly.com/2012/01/11/ucm-content-rule-side-effects/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 02:15:34 +0000</pubDate>
		<dc:creator>Jason Stortz</dc:creator>
				<category><![CDATA[OracleUCM]]></category>
		<category><![CDATA[content profiles]]></category>
		<category><![CDATA[ucm]]></category>
		<category><![CDATA[UCM10gR3]]></category>
		<category><![CDATA[UCM11gR1]]></category>

		<guid isPermaLink="false">http://corecontentonly.com/?p=698</guid>
		<description><![CDATA[Content Profiles and Content Rules provide a mechanism for customizing a variety of pages within UCM.  Generally just referred to as Profiles, you can conditionally configure/customize the check-in, update, search and information pages as relates to the context of the content and user intent. One of the often used by seldom explained parts of Profiles [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=698&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Content Profiles and Content Rules provide a mechanism for customizing a variety of pages within UCM.  Generally just referred to as Profiles, you can conditionally configure/customize the check-in, update, search and information pages as relates to the context of the content and user intent.</p>
<p>One of the often used by seldom explained parts of Profiles is something called Side Effects.  You will find the Side Effects tab on the Add/Edit Activation Conditions screen and it primarily allows you to accomplish two things:</p>
<ol>
<li>Add name/value pairs as IdocScript that will then get pushed to local data if the activation condition is true.</li>
<li>Add custom IdocScript to a rule that is only evaluated if the activation condition is true and this can include logic like if and else statements or loops.  Basically all IdocScript is possible here (though all of it may or may not be useful).  As such, once a rule is activated, you can include logic, use includes from a component, etc.</li>
</ol>
<p>What specifically might one use Side Effects for?  For a simple example let’s pretend we have a profile for some scanned content.  This content is checked in as an image based PDF (no OCR, no searchable text).  Your profile should not display the full text search box in this case.  There is no full text to be searched.  You can accomplish this with a Side Effect in your profile:</p>
<pre>&lt;$SearchEngineName="DATABASE.METADATA"$&gt;</pre>
<p>Let’s take another example.  Perhaps on the check-in page you want the alternate file field to be removed.  You could go into config.cfg and add this setting, but it would be universal.  More likely you want this to happen in a specific, conditional context.  Try adding this as a Side Effect to your rule:</p>
<pre>&lt;$suppressAlternateFile="1"$&gt;</pre>
<p>Want more examples of Profiles, Rules and Side Effects? See below:</p>
<ol>
<li><a title="Using Rules &amp; Profiles To Drive Custom Pages" href="http://blogs.oracle.com/kyle/entry/using_rules_profiles_to_drive" target="_blank">Using Rules &amp; Profiles To Drive Custom Pages</a></li>
<li><a title="Suppressing Alternate File" href="http://corecontentonly.com/2010/03/02/suppressing-alternate-file/" target="_blank">Suppressing Alternate File</a></li>
<li><a title="Thumbnail search in Content Server" href="http://webmonkeymagic.blogspot.com/2010/10/thumbnail-search-in-content-server.html" target="_blank">Thumbnail search in Content Server</a></li>
<li><a title="Thumbnail search in Content Server #2" href="http://webmonkeymagic.blogspot.com/2011/01/thumbnail-search-in-content-server-2.html" target="_blank">Thumbnail search in Content Server #2</a></li>
<li><a title="Hiding the Primary File field in UCM" href="http://blogs.oracle.com/kyle/entry/hiding_the_primary_file_field" target="_blank">Hiding the Primary File field in UCM</a></li>
<li><a title="Metadata field tool tips" href="http://bexhuff.com/2009/10/free-10gr3-component-add-tool-tips-to-metadata-fields" target="_blank">Metadata field tool tips</a></li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/corecontentonly.wordpress.com/698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/corecontentonly.wordpress.com/698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/corecontentonly.wordpress.com/698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/corecontentonly.wordpress.com/698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/corecontentonly.wordpress.com/698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/corecontentonly.wordpress.com/698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/corecontentonly.wordpress.com/698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/corecontentonly.wordpress.com/698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/corecontentonly.wordpress.com/698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/corecontentonly.wordpress.com/698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/corecontentonly.wordpress.com/698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/corecontentonly.wordpress.com/698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/corecontentonly.wordpress.com/698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/corecontentonly.wordpress.com/698/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=698&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://corecontentonly.com/2012/01/11/ucm-content-rule-side-effects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e45f21e7847d928151e69a4908648599?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jasonstortz</media:title>
		</media:content>
	</item>
		<item>
		<title>AlphabetizeMenus &#8211; 11g</title>
		<link>http://corecontentonly.com/2011/09/29/alphabetizemenus-11g/</link>
		<comments>http://corecontentonly.com/2011/09/29/alphabetizemenus-11g/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 15:33:53 +0000</pubDate>
		<dc:creator>Jonathan Hult</dc:creator>
				<category><![CDATA[OracleUCM]]></category>

		<guid isPermaLink="false">http://corecontentonly.com/?p=614</guid>
		<description><![CDATA[We recently updated our AlphabetizeMenus component to work with 11g. Do not worry, it is still backwards compatible with 10g. You can grab the newest version build_5_20110913 here. Sometimes a picture is worth a thousand words, so I will demonstrate with some before and after screenshots. After the screenshots will be an in-depth code review of what all [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=614&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We recently updated our <a title="Alphabetize or Sort Navigation Menus" href="http://corecontentonly.com/2008/12/01/alphabetize-or-sort-navigation-menus/">AlphabetizeMenus</a> component to work with 11g. Do not worry, it is still backwards compatible with 10g. You can grab the newest version build_5_20110913 <a href="http://redstonecontentsolutions.com/downloads/AlphabetizeMenus_build_5_20110913.zip">here</a>. Sometimes a picture is worth a thousand words, so I will demonstrate with some before and after screenshots. After the screenshots will be an in-depth code review of what all is being done to accomplish menu sorting on both 10g and 11g.</p>
<h3>Trays &#8211; Before (unsorted)<br />
<a href="http://corecontentonly.files.wordpress.com/2011/09/alphabetizemenus_trays_unsorted.png"><img class="alignnone size-full wp-image-639" title="alphabetizemenus_trays_unsorted" src="http://corecontentonly.files.wordpress.com/2011/09/alphabetizemenus_trays_unsorted.png?w=600" alt=""   /></a></h3>
<h3>Trays &#8211; After (sorted)<br />
<a style="font-size:13px;font-weight:normal;" href="http://corecontentonly.files.wordpress.com/2011/09/alphabetizemenus_trays_sorted.png"><img class="alignnone size-full wp-image-640" title="alphabetizemenus_trays_sorted" src="http://corecontentonly.files.wordpress.com/2011/09/alphabetizemenus_trays_sorted.png?w=600" alt=""   /></a></h3>
<h3></h3>
<h3>Top Menus &#8211; Before (unsorted)<br />
<a href="http://corecontentonly.files.wordpress.com/2011/09/alphabetizemenus_top_menus_unsorted.png"><img class="alignnone size-full wp-image-641" title="alphabetizemenus_top_menus_unsorted" src="http://corecontentonly.files.wordpress.com/2011/09/alphabetizemenus_top_menus_unsorted.png?w=600&#038;h=371" alt="" width="600" height="371" /></a></h3>
<h3></h3>
<h3>Top Menus &#8211; After (sorted)<br />
<a href="http://corecontentonly.files.wordpress.com/2011/09/alphabetizemenus_top_menus_sorted.png"><img class="alignnone size-full wp-image-643" title="alphabetizemenus_top_menus_sorted" src="http://corecontentonly.files.wordpress.com/2011/09/alphabetizemenus_top_menus_sorted.png?w=600&#038;h=653" alt="" width="600" height="653" /></a></h3>
<p>The first thing we do in this component is hook into the dynamichtml include for custom_finish_layout_init. We want to first call all other includes that might be using this hook by calling super.custom_finish_layout_init. Almost any time you want to add something to a dynamichtml include, the first thing you should do is call super on that include.</p>
<pre>&lt;@dynamichtml custom_finish_layout_init@&gt;
  &lt;$include super.custom_finish_layout_init$&gt;</pre>
<p>Next, we want to determine what version of UCM this component is installed on. There is an Idoc Script variable, ProductVersion, in 11g  that will start with 11 if the UCM instance is 11g. If it is, we call a custom include for 11g. Otherwise, we call a custom include for 10g.</p>
<pre>&lt;$if ProductVersion like "11*"$&gt;
  &lt;$include alphabetize_menus_11g$&gt;
&lt;$else$&gt;
  &lt;$include alphabetize_menus_10g$&gt;
&lt;$endif$&gt;</pre>
<p><span style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;font-size:13px;line-height:19px;white-space:normal;">And here is all that code put together.</span></p>
<pre>&lt;@dynamichtml custom_finish_layout_init@&gt;
  &lt;$include super.custom_finish_layout_init$&gt;
  &lt;$if isTrue(#env.EnableMenuSorting)$&gt;
    &lt;$if ProductVersion like "11*"$&gt;
      &lt;$include alphabetize_menus_11g$&gt;
    &lt;$else$&gt;
      &lt;$include alphabetize_menus_10g$&gt;
    &lt;$endif$&gt;
  &lt;$endif$&gt;
&lt;@end@&gt;</pre>
<h3>10g Menus</h3>
<p>We first create a new array. Then we get the children of the node that was passed in.</p>
<pre>var sortData = new Array();
var children = navBuilder.getNodeById(menuID).childNodes;</pre>
<p>Next, we want to loop through the children. If we find children of children (I suppose you would call these grandchildren), then we recursively call the sortMenu function. After we have finished dealing with any children, we build a <a href="http://www.hunlock.com/blogs/Mastering_JSON_(_JavaScript_Object_Notation_)#quickIDX4" target="_blank">JSON style array object</a> containing the node object (what object type that may be) and the text label.</p>
<pre>for (var i = 0; i &lt; children.length; i++) {
  if (children[i].childNodes.length &gt; 0) {
    this.sortMenu(children[i].getAttribute("id"));
  }

  sortData[sortData.length] = {
    id: children[i].getAttribute("id"),
    label: children[i].getAttribute("label")
  };
}</pre>
<p>Next, we need to sort the array of items on the current level and we do this by defining our own JavaScript sort method.</p>
<pre>sortData.sort (
  function (a, b) {
    if (a.label &lt; b.label)
      return -1;
    if (a.label &gt; b.label)
      return 1;
    return 0; [[% a == b %]]
  }
);</pre>
<p>After our data (for the current level) is sorted, we loop over the sorted array and add/remove the items to get them in the correctly alphabetized order.</p>
<pre>for (var i = 0; i &lt; sortData.length; i++) {
  navBuilder.moveItemInto(menuID, sortData[i].id, false);
  if (its.safari)	{
    navBuilder.deleteItem(sortData[i].id);
  }
}</pre>
<p>The last step is to call our menuSortingMachine.sortMenu function. Most people choose to pass in &#8220;NAVTREE&#8221; which will sort all the menus (except the menubar level items such as My Content Server, Adminsitration, Browse Content, etc.). However, you can pass in a specific &#8220;ADMINISTRATION&#8221; and that will sort only that menu and its children.</p>
<pre>menuSortingMachine.sortMenu("NAVTREE");</pre>
<p>And finally all the 10g  Trays and Top Menus layout sorting code together.</p>
<pre>var menuSortingMachine = {
  sortMenu:function(menuID) {

    var sortData = new Array();

    var children = navBuilder.getNodeById(menuID).childNodes;

    for (var i = 0; i &lt; children.length; i++) {
      if (children[i].childNodes.length &gt; 0) {
	this.sortMenu(children[i].getAttribute("id"));
      }

      sortData[sortData.length] = {
	id: children[i].getAttribute("id"),
	label: children[i].getAttribute("label")
      };
    }

    sortData.sort (
      function (a, b) {
	if (a.label &lt; b.label)
	  return -1;
	if (a.label &gt; b.label)
	  return 1;
	return 0; [[% a == b %]]
      }
    );

    for (var i = 0; i &lt; sortData.length; i++) {
      navBuilder.moveItemInto(menuID, sortData[i].id, false);
      if (its.safari)	{
	navBuilder.deleteItem(sortData[i].id);
      }
    }
  }
};
[[% menuSortingMachine.sortMenu("ADMINISTRATION"); %]]
menuSortingMachine.sortMenu("NAVTREE");</pre>
<h3>11g Menus</h3>
<p>The <a href="http://www.scribd.com/doc/57856203/73/The-navBuilder-Variables" target="_blank">navBuilder object</a> that we used in 10g should be considered deprecated in 11g. Instead, we have new objects we can use manipulate menus such as: <a href="http://developer.yahoo.com/yui/docs/YAHOO.widget.MenuManager.html" target="_blank">YAHOO.widget.MenuManager</a>, <a href="http://developer.yahoo.com/yui/docs/YAHOO.widget.Menu.html" target="_blank">YAHOO.widget.Menu</a>, <a href="http://developer.yahoo.com/yui/docs/YAHOO.widget.MenuItem.html" target="_blank">YAHOO.widget.MenuItem</a>, <a href="http://developer.yahoo.com/yui/docs/YAHOO.widget.TreeView.html" target="_blank">YAHOO.widget.TreeView</a>, <a href="http://developer.yahoo.com/yui/docs/YAHOO.widget.Node.html" target="_blank">YAHOO.widget.Node</a></p>
<p>oMenuBarA is a YAHOO.widget.MenuBar for menuA. This is the menu that contains items such<span style="font-family:Consolas, Monaco, monospace;font-size:12px;line-height:18px;white-space:pre;">(such as &#8220;Search&#8221; and &#8220;New Check In&#8221;).<br />
</span>oMenuBarB is a YAHOO.widget.MenuBar for menuB.<br />
oTreeViewA is a YAHOO.idc.widget.TrayTreeView for the side tray (in Trays layout). Many of the methods from YAHOO.widget.TreeView can be used for the oTreeViewA object.</p>
<p>For more information on the new menu objects in 11g, seeKyle Hatlestad&#8217;s post <a href="http://blogs.oracle.com/kyle/entry/modifying_navigation_menus_in_ucm" target="_blank">Modifying Navigation Menus in UCM 11g</a>.</p>
<h3>11g Top Menus</h3>
<p>The first thing we want to do is get the submenus or what we called children in 10g.</p>
<pre>var subMenus = menu.getSubmenus();</pre>
<p>Next. <span style="font-family:Consolas, Monaco, monospace;font-size:12px;line-height:18px;white-space:pre;">we want to loop through the submenus and recursively call the sortMenu function.</span></p>
<pre>for (var i = 0; i &lt; subMenus.length; i++) {
  menuSortingMachine.sortMenu(subMenus[i], new Boolean(true));
}</pre>
<p>Next, we always add a check to make sure we want to sort this level and check to make sure the menu parent exists.</p>
<pre>if (sortLevel == true || typeof menu.parent != "undefined") {}</pre>
<p>Next, we get an array of the current level&#8217;s children menuItems and we also create a new array to hold our sorted data.</p>
<pre>var items = menu.getItems();
var sortData = new Array();</pre>
<p>Next, we want to loop through the menuItems and build a JSON style array object containing the MenuItem object and the text label.</p>
<pre>for (var j = 0; j &lt; items.length; j++) {
  sortData[j] = {
    element: items[j].element,
    label: items[j].cfg.getProperty("text")
  };
}</pre>
<p>Like in 10g, we need to sort the array of items on the current level and we do this by defining our own JavaScript sort method.</p>
<pre>sortData.sort (
  function (a, b) {
    if (a.label &lt; b.label)
      return -1;
    if (a.label &gt; b.label)
      return 1;
    return 0; [[% a == b %]]
  }
);</pre>
<p>Similar to 10g, after our data (for the current level) is sorted, we loop over the sorted array and add the items to get them in the correctly alphabetized order.</p>
<pre>for (var k = 0; k &lt; sortData.length; k++) {
  menu.element.appendChild(sortData[k].element);
}</pre>
<p>The last step is to call the menuSortingMachine.sortMenu function. We first check to make sure the variable (oMenuBarA or oMenuBarB has a value) and if so, we can use that menu to start sorting from. If we want the menubar level items for oMenuBarA or oMenuBarB to get sorted alphabetically, we can pass in true boolean value.</p>
<pre>if (typeof oMenuBarA != "undefined" &amp;&amp; oMenuBarA != undefined) {
  menuSortingMachine.sortMenu(oMenuBarA, new Boolean(false));
}
if (typeof oMenuBarB != "undefined" &amp;&amp; oMenuBarB != undefined) {
  menuSortingMachine.sortMenu(oMenuBarB, new Boolean(false));
  [[% menuSortingMachine.sortMenu(YAHOO.widget.MenuManager.getMenu("MENU_B_ADMINISTRATION"), new Boolean(true)) %]];
}</pre>
<p>And finally all the Top Menus layout sorting code together.</p>
<pre>var menuSortingMachine = {
  sortMenu:function(menu, sortLevel) {

    var subMenus = menu.getSubmenus();

    for (var i = 0; i &lt; subMenus.length; i++) {
      menuSortingMachine.sortMenu(subMenus[i], new Boolean(true));
    }

    if (sortLevel == true || typeof menu.parent != "undefined") {
      var items = menu.getItems();

      var sortData = new Array();

      for (var j = 0; j &lt; items.length; j++) {
        sortData[j] = {
          element: items[j].element,
          label: items[j].cfg.getProperty("text")
        };
      }

      sortData.sort (
        function (a, b) {
          if (a.label &lt; b.label) {
            return -1;
          }
          else if (a.label &gt; b.label) {
            return 1;
          }
          return 0; [[% a == b %]]
        }
      );

      for (var k = 0; k &lt; sortData.length; k++) {
        menu.element.appendChild(sortData[k].element);
      }
    }
  }
};
if (typeof oMenuBarA != "undefined" &amp;&amp; oMenuBarA != undefined) {
  menuSortingMachine.sortMenu(oMenuBarA, new Boolean(false));
}
if (typeof oMenuBarB != "undefined" &amp;&amp; oMenuBarB != undefined) {
  menuSortingMachine.sortMenu(oMenuBarB, new Boolean(false));
  [[% menuSortingMachine.sortMenu(YAHOO.widget.MenuManager.getMenu("MENU_B_ADMINISTRATION"), new Boolean(true)) %]];
}</pre>
<h3>11g Trays Menus</h3>
<p>For Trays layout, we can do very similar code to that for 10g, except we have some different objects and method calls. We first create a new array. Then we get the children of the node that was passed in.</p>
<pre>var sortData = new Array();
var children = node.children;</pre>
<p>Similar to 10g, we want to loop through the children and recursively call the sortMenu function. Then we build a JSON style array object containing the YAHOO.widget.Node object and the text label.</p>
<pre>for (var i = 0; i &lt; children.length; i++) {
  if (children[i].children.length &gt; 0) {
    this.sortMenu(children[i]);
  }

  sortData[sortData.length] = {
    node: children[i],
    label: children[i].label
  };
}</pre>
<p>Like in 10g, we need to sort the array of items on the current level and we do this by defining our own JavaScript sort method.</p>
<pre>sortData.sort (
  function (a, b) {
    if (a.label &lt; b.label)
      return -1;
    if (a.label &gt; b.label)
      return 1;
    return 0; [[% a == b %]]
  }
);</pre>
<p>Similar to 10g, after our data (for the current level) is sorted, we loop over the sorted array and add/remove the items to get them in the correctly alphabetized order.</p>
<pre>for (var i = 0; i &lt; sortData.length; i++) {
  oTreeViewA.popNode(sortData[i].node);
  node.appendChild(sortData[i].node);
}</pre>
<p>The last step is to call the menuSortingMachine.sortMenu function. We first check to make sure the variable (oTreeViewA has a value) and then we can use the getRoot() method on the oTreeViewA variable to get the root node to start sorting from.</p>
<pre>if (typeof oTreeViewA != "undefined" &amp;&amp; oTreeViewA != undefined) {
  menuSortingMachineTrays.sortMenu(oTreeViewA.getRoot());
}</pre>
<p>And finally all the Trays layout sorting code together.</p>
<pre>var menuSortingMachineTrays = {
  sortMenu:function(node) {

    var sortData = new Array();

    var children = node.children;

    for (var i = 0; i &lt; children.length; i++) {
      if (children[i].children.length &gt; 0) {
	this.sortMenu(children[i]);
      }

      sortData[sortData.length] = {
	node: children[i],
	label: children[i].label
      };
    }

    sortData.sort (
      function (a, b) {
	if (a.label &lt; b.label)
	  return -1;
	if (a.label &gt; b.label)
	  return 1;
	return 0; [[% a == b %]]
	}
      );

    for (var i = 0; i &lt; sortData.length; i++) {
      oTreeViewA.popNode(sortData[i].node);
      node.appendChild(sortData[i].node);
    }
  }
};
if (typeof oTreeViewA != "undefined" &amp;&amp; oTreeViewA != undefined) {
  menuSortingMachineTrays.sortMenu(oTreeViewA.getRoot());
}</pre>
<p>Note: Any code you see between [[% %]] is an Idoc Script comment.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/corecontentonly.wordpress.com/614/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/corecontentonly.wordpress.com/614/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/corecontentonly.wordpress.com/614/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/corecontentonly.wordpress.com/614/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/corecontentonly.wordpress.com/614/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/corecontentonly.wordpress.com/614/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/corecontentonly.wordpress.com/614/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/corecontentonly.wordpress.com/614/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/corecontentonly.wordpress.com/614/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/corecontentonly.wordpress.com/614/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/corecontentonly.wordpress.com/614/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/corecontentonly.wordpress.com/614/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/corecontentonly.wordpress.com/614/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/corecontentonly.wordpress.com/614/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=614&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://corecontentonly.com/2011/09/29/alphabetizemenus-11g/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b679f118d2377e5143720500ed1eafa9?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jonathanhult</media:title>
		</media:content>

		<media:content url="http://corecontentonly.files.wordpress.com/2011/09/alphabetizemenus_trays_unsorted.png" medium="image">
			<media:title type="html">alphabetizemenus_trays_unsorted</media:title>
		</media:content>

		<media:content url="http://corecontentonly.files.wordpress.com/2011/09/alphabetizemenus_trays_sorted.png" medium="image">
			<media:title type="html">alphabetizemenus_trays_sorted</media:title>
		</media:content>

		<media:content url="http://corecontentonly.files.wordpress.com/2011/09/alphabetizemenus_top_menus_unsorted.png" medium="image">
			<media:title type="html">alphabetizemenus_top_menus_unsorted</media:title>
		</media:content>

		<media:content url="http://corecontentonly.files.wordpress.com/2011/09/alphabetizemenus_top_menus_sorted.png" medium="image">
			<media:title type="html">alphabetizemenus_top_menus_sorted</media:title>
		</media:content>
	</item>
		<item>
		<title>11g Publish Static Files Using Custom Component</title>
		<link>http://corecontentonly.com/2011/09/28/11g-publish-static-files-using-custom-component/</link>
		<comments>http://corecontentonly.com/2011/09/28/11g-publish-static-files-using-custom-component/#comments</comments>
		<pubDate>Wed, 28 Sep 2011 15:29:51 +0000</pubDate>
		<dc:creator>Jonathan Hult</dc:creator>
				<category><![CDATA[OracleUCM]]></category>

		<guid isPermaLink="false">http://corecontentonly.com/?p=653</guid>
		<description><![CDATA[Recently on the forums it was asked how to publish static files to the Weblayout folder using a custom component in 11g. We covered this earlier for 10g. Publishing files is slightly different for 11g. Follow the steps below to publish static files in 11g. 1. In the custom component directory, create a folder &#8220;publish&#8221;. Files that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=653&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Recently on the forums it was <a href="https://forums.oracle.com/forums/thread.jspa?threadID=2284422&amp;tstart=0">asked</a> how to publish static files to the Weblayout folder using a custom component in 11g. We covered <a href="http://corecontentonly.com/2011/01/05/including-files-with-custom-components/">this</a> earlier for 10g. Publishing files is slightly different for 11g. Follow the steps below to publish static files in 11g.</p>
<p>1. In the custom component directory, create a folder &#8220;publish&#8221;. Files that are placed within this folder will become relative to the weblayout folder.</p>
<p>2. In Component Wizard -&gt; Build -&gt; Build Settings, add a “Component Extra” entry type and link to the above path (customComponentName/publish/).</p>
<p><a href="http://corecontentonly.files.wordpress.com/2011/09/component_wizard_publish_directory.png"><img class="alignnone size-full wp-image-654" title="component_wizard_publish_directory" src="http://corecontentonly.files.wordpress.com/2011/09/component_wizard_publish_directory.png?w=600" alt=""   /></a></p>
<p>3. In Component Wizard, under the Resource Definition tab, click the &#8220;Add&#8221; button to add a new resource.</p>
<p><a href="http://corecontentonly.files.wordpress.com/2011/09/component_wizard_add_resource.png"><img class="alignnone size-full wp-image-655" title="component_wizard_add_resource" src="http://corecontentonly.files.wordpress.com/2011/09/component_wizard_add_resource.png?w=600" alt=""   /></a></p>
<p>4. Check the box for &#8220;Resource &#8211; Static Table (HTML Format)&#8221;. Set the &#8220;File name&#8221; to something such as &#8220;resources/customComponent_published_static_files.htm&#8221; so that you can easily identify what this resource definition is by looking at the file name. Set the &#8220;Load Order&#8221; to &#8220;1000&#8243;. Click &#8220;Next&#8221;.</p>
<p><a href="http://corecontentonly.files.wordpress.com/2011/09/published_static_files.png"><img class="alignnone size-full wp-image-656" title="published_static_files" src="http://corecontentonly.files.wordpress.com/2011/09/published_static_files.png?w=600&#038;h=446" alt="" width="600" height="446" /></a></p>
<p>5. Set the &#8220;Table Name&#8221; to something such as &#8220;CustomComponent_PublishedStaticFiles&#8221;. Make sure the &#8220;Merge To&#8221; box is checked and set it to &#8220;PublishedStaticFiles&#8221;. Click &#8220;Finish&#8221;.</p>
<p><a href="http://corecontentonly.files.wordpress.com/2011/09/published_static_files2.png"><img class="alignnone size-full wp-image-657" title="published_static_files2" src="http://corecontentonly.files.wordpress.com/2011/09/published_static_files2.png?w=600&#038;h=445" alt="" width="600" height="445" /></a></p>
<p>6. Edit the file that was just created with your favorite text editor. You want the second &lt;tr&gt; to contain something like the following:</p>
<pre>&lt;td&gt;publish/resources&lt;/td&gt;
&lt;td&gt;resources&lt;/td&gt;
&lt;td&gt;resources:sitestudio&lt;/td&gt;
&lt;td&gt;1000&lt;/td&gt;
&lt;td&gt;&lt;$doPublish = 1$&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;</pre>
<ol>
<li>The first &lt;td&gt; represents the source folder to publish</li>
<li>The second represents the path, relative to weblayout, to place the files</li>
<li>The third represents the &#8220;class&#8221; that controls the publishing and processing of the content</li>
<li>The fourth is the loadOrder and should be set to 1000 (which is the highest available)</li>
<li>The fifth is doPublish.  This is a string of iDocScript that can be used to determine whether or not this set of files should be published.  You can do fancy things like construct time of day, week or month to conduct publishing.</li>
<li>The sixth (canDeleteDir) should be set to 1.</li>
</ol>
<p><a href="http://corecontentonly.files.wordpress.com/2011/09/published_static_files3.png"><img class="alignnone size-full wp-image-658" title="published_static_files3" src="http://corecontentonly.files.wordpress.com/2011/09/published_static_files3.png?w=600&#038;h=148" alt="" width="600" height="148" /></a></p>
<p>That is it! Build your component and try it out.</p>
<p>Note: If you have problems with the files publishing (for example they should publish on start-up) you can manually invoke this action by invoking Administration -&gt; Admin Actions &#8211; &gt; Weblayout Publishing -&gt; Publish static, string and dynamic files.  This will likely take a few minutes to complete.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/corecontentonly.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/corecontentonly.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/corecontentonly.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/corecontentonly.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/corecontentonly.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/corecontentonly.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/corecontentonly.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/corecontentonly.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/corecontentonly.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/corecontentonly.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/corecontentonly.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/corecontentonly.wordpress.com/653/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/corecontentonly.wordpress.com/653/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/corecontentonly.wordpress.com/653/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=653&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://corecontentonly.com/2011/09/28/11g-publish-static-files-using-custom-component/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b679f118d2377e5143720500ed1eafa9?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jonathanhult</media:title>
		</media:content>

		<media:content url="http://corecontentonly.files.wordpress.com/2011/09/component_wizard_publish_directory.png" medium="image">
			<media:title type="html">component_wizard_publish_directory</media:title>
		</media:content>

		<media:content url="http://corecontentonly.files.wordpress.com/2011/09/component_wizard_add_resource.png" medium="image">
			<media:title type="html">component_wizard_add_resource</media:title>
		</media:content>

		<media:content url="http://corecontentonly.files.wordpress.com/2011/09/published_static_files.png" medium="image">
			<media:title type="html">published_static_files</media:title>
		</media:content>

		<media:content url="http://corecontentonly.files.wordpress.com/2011/09/published_static_files2.png" medium="image">
			<media:title type="html">published_static_files2</media:title>
		</media:content>

		<media:content url="http://corecontentonly.files.wordpress.com/2011/09/published_static_files3.png" medium="image">
			<media:title type="html">published_static_files3</media:title>
		</media:content>
	</item>
		<item>
		<title>Customizing Workflow Forms</title>
		<link>http://corecontentonly.com/2011/09/13/customizing-workflow-forms/</link>
		<comments>http://corecontentonly.com/2011/09/13/customizing-workflow-forms/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 12:54:17 +0000</pubDate>
		<dc:creator>Jonathan Hult</dc:creator>
				<category><![CDATA[OracleUCM]]></category>

		<guid isPermaLink="false">http://corecontentonly.com/?p=533</guid>
		<description><![CDATA[Ever wanted to create a custom form with added metadata inside a workflow review? This post will show you how.  This topic has come up many times on the Oracle forums. Customizing the workflow form is not really that difficult. Below are the steps you will need to know in order to customize the workflow [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=533&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ever wanted to create a custom form with added metadata inside a workflow review? This post will show you how.  This topic has come up many times on the Oracle forums. Customizing the workflow form is not really that difficult. Below are the steps you will need to know in order to customize the workflow form.</p>
<p>1. Create a custom component called MyWorkflowComponent</p>
<p>2. Add a template which overrides WORKFLOW_REVIEW_FRAMES</p>
<p>3. Edit this template. Insert the following in the HTML head after this line &lt;$include std_html_head_declarations$&gt;</p>
<p><pre class="brush: plain;">

&lt;$if dWfName like &quot;MyWorkflow&quot; and dWfStepName like &quot;Data.Input&quot;$&gt;

   &lt;$include my_workflow_custom_javascript$&gt;

&lt;$endif$&gt;

</pre></p>
<p>This code checks the workflow name and step to see if they match what you want. This way you can customize the workflow form for different workflows.</p>
<p>Search for this line within the WORKFLOW_REVIEW_FRAMES template: &lt;$include workflow_doc_action_forms$&gt; There will be a &lt;/table&gt; &lt;/td&gt; right before this. Insert the following code before this this &lt;/table&gt;:</p>
<p><pre class="brush: plain;">

&lt;$if dWfName like &quot;MyWorkflow&quot; and dWfStepName like &quot;Data.Input&quot;$&gt;

   &lt;$include my_workflow_custom_forms$&gt;

&lt;$endif$&gt;

</pre></p>
<p>Again we check to make sure this is the Workflow we want to customize. If so, we insert a custom include that we will be creating.</p>
<p>4. Within your component, create a Dynamic HTML resource file.</p>
<p>5. Edit this resource file.</p>
<p>Create a dynamic include for anything that should go within the HTML head (this example includes jQuery and jQueryUI.</p>
<p><pre class="brush: jscript;">
&lt;@dynamichtml my_workflow_custom_javascript@&gt;
&lt;script src=&quot;&lt;$HttpRelativeWebRoot$&gt;resources/CSXWorkflowEnhancements/jquery-1.4.4.min.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;&lt;$HttpRelativeWebRoot$&gt;resources/CSXWorkflowEnhancements/jquery-ui-1.8.5.custom.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
   $(&quot;a[href^='javascript:document.Approve_&lt;$dID$&gt;']&quot;).click(function() {
      $(&quot;input[name='xEmployeeID']&quot;).val($(&quot;input[id='xEmployeeID']&quot;).val());
 [[% Submit my form %]]

 $(&quot;#frm_medical&quot;).submit();

 return false;    });

});

&lt;@end@&gt; </pre></p>
<p>Notice the use of HttpRelativeWebRoot. When you use this, you will need to put these files within your weblayout directory. Use <a href="http://corecontentonly.com/2011/01/05/including-files-with-custom-components/" target="_blank">this</a> blog post as a reference.</p>
<p>Now we will create the actual form that shows up below or Approve / Reject links.</p>
<p><pre class="brush: jscript;">
&lt;@dynamichtml my_workflow_custom_forms@&gt;

&lt;tr&gt;

 &lt;td style=&quot;padding-top:10px&quot;&gt;

 &lt;form id=&quot;frm_employee_info&quot; method=&quot;POST&quot; action=&quot;javascript:document.Approve_&lt;$dID$&gt;.submit();&quot;&gt;

 &lt;p&gt;&lt;label for=&quot;xEmployeeID&quot;&gt;Employee ID&lt;/label&gt;&lt;input type=&quot;text&quot; id=&quot;xEmployeeID&quot; /&gt;&lt;/p&gt;

 &lt;/form&gt;

 &lt;/td&gt;

&lt;/tr&gt;

&lt;@end@&gt;
</pre></p>
<p>Notice the form POST action. This is where we hook into the Approve link. When someone clicks the Approve link, our form (frm_employee_info) will get submitted first. This is where we can do validation and if something is not correct we can return FALSE and stay on the page. For this blog post, we are simply going to copy the values from this form and put them in the hidden field (which we will create next) that actually gets submitted to Content Server. If our form submits fine, then we will submit the Content Server form.</p>
<p>Create a dynamic include that overrides workflow_doc_approve_special_parameters. Within this include, we need to place HTML input elements that will get populated from or forms above.</p>
<p><pre class="brush: jscript;">
&lt;@dynamichtml workflow_doc_approve_special_parameters@&gt;

&lt;$include super.workflow_doc_approve_special_parameters$&gt;

 &lt;input type=&quot;hidden&quot; name=&quot;xEmployeeID&quot; value=&quot;&quot; /&gt;

&lt;@end@&gt;
</pre></p>
<p>It may look like a lot of code, but it is not too much work. Have any tips or tricks to making your own custom forms? Send them to tips@corecontentonly.com.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/corecontentonly.wordpress.com/533/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/corecontentonly.wordpress.com/533/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/corecontentonly.wordpress.com/533/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/corecontentonly.wordpress.com/533/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/corecontentonly.wordpress.com/533/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/corecontentonly.wordpress.com/533/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/corecontentonly.wordpress.com/533/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/corecontentonly.wordpress.com/533/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/corecontentonly.wordpress.com/533/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/corecontentonly.wordpress.com/533/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/corecontentonly.wordpress.com/533/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/corecontentonly.wordpress.com/533/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/corecontentonly.wordpress.com/533/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/corecontentonly.wordpress.com/533/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=533&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://corecontentonly.com/2011/09/13/customizing-workflow-forms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b679f118d2377e5143720500ed1eafa9?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jonathanhult</media:title>
		</media:content>
	</item>
		<item>
		<title>One-Click Login into the Oracle Content Server 11g</title>
		<link>http://corecontentonly.com/2011/07/25/one-click-login-into-the-oracle-content-server-11g/</link>
		<comments>http://corecontentonly.com/2011/07/25/one-click-login-into-the-oracle-content-server-11g/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 01:56:18 +0000</pubDate>
		<dc:creator>Anton Bondar</dc:creator>
				<category><![CDATA[OracleUCM]]></category>
		<category><![CDATA[direct login]]></category>
		<category><![CDATA[login autocomplete]]></category>
		<category><![CDATA[login autofill]]></category>
		<category><![CDATA[oracle ucm 11g login page]]></category>

		<guid isPermaLink="false">http://corecontentonly.com/?p=570</guid>
		<description><![CDATA[Are you tired of constantly needing to type in your Login information into the Oracle Content Server (11g) each time you try to open it in a new browser window? We have a solution for you! The main problem on the login page is that those two html input tags for the User Name and Password [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=570&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Are you tired of constantly needing to type in your Login information into the Oracle Content Server (11g) each time you try to open it in a new browser window?</p>
<p><a href="http://corecontentonly.files.wordpress.com/2011/02/oracle_ucm_11g_generic_no_login.png"><img class="aligncenter size-full wp-image-578" title="oracle_ucm_11g_generic_no_login" src="http://corecontentonly.files.wordpress.com/2011/02/oracle_ucm_11g_generic_no_login.png?w=600&#038;h=478" alt="No More - Oracle UCM 11g Generic Login Screen" width="600" height="478" /></a></p>
<p>We have a solution for you!</p>
<p>The main problem on the login page is that those two html <strong><em>input</em> </strong>tags for the <em><span style="text-decoration:underline;">User Name</span></em> and <em><span style="text-decoration:underline;">Password</span></em> fields have the attribute <em><strong>autocomplete </strong></em>set to <strong><em>off</em></strong>.  This forces any browser to behave accordingly and not allow any auto-fill like functionality for these two fields. This gets annoying, especially if you do a lot of development and have to restart your content server every so often.</p>
<p>You can resolve this problem by creating a bookmark to the following address:</p>
<blockquote><p>http://<em><strong>hostname</strong></em>:<em><strong>port</strong></em>/cs/login/j_security_check?j_character_encoding=UTF-8&amp;j_username=<em><strong>your_username</strong></em>&amp;j_password=<em><strong>your_password</strong></em></p></blockquote>
<p>Here is an example URL:</p>
<blockquote><p>http://devucm11g:16200/cs/login/j_security_check?j_character_encoding=UTF-8&amp;j_username=weblogic&amp;j_password=welcome1</p></blockquote>
<p>Where:</p>
<ul>
<li><em><strong>hostname </strong></em>= devucm11g</li>
<li><em><strong>port </strong></em>= 16200</li>
<li><em><strong>your_username </strong></em>= weblogic</li>
<li><em><strong>your_password </strong></em>= welcome1</li>
</ul>
<p>Now, each time you click such bookmark you would automatically be logged in and forwarded to your landing page on the Content Server.</p>
<p><strong>Hint</strong>: you can choose to create a bookmark or set this as your homepage.</p>
<p><strong>Note:</strong> it goes without saying that you should never do anything like this for any production environment.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/corecontentonly.wordpress.com/570/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/corecontentonly.wordpress.com/570/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/corecontentonly.wordpress.com/570/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/corecontentonly.wordpress.com/570/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/corecontentonly.wordpress.com/570/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/corecontentonly.wordpress.com/570/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/corecontentonly.wordpress.com/570/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/corecontentonly.wordpress.com/570/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/corecontentonly.wordpress.com/570/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/corecontentonly.wordpress.com/570/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/corecontentonly.wordpress.com/570/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/corecontentonly.wordpress.com/570/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/corecontentonly.wordpress.com/570/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/corecontentonly.wordpress.com/570/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=570&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://corecontentonly.com/2011/07/25/one-click-login-into-the-oracle-content-server-11g/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/03e6ca7e796cfe33348de5a3c73b0e17?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">ant0nb0ndar</media:title>
		</media:content>

		<media:content url="http://corecontentonly.files.wordpress.com/2011/02/oracle_ucm_11g_generic_no_login.png" medium="image">
			<media:title type="html">oracle_ucm_11g_generic_no_login</media:title>
		</media:content>
	</item>
		<item>
		<title>Java Constants</title>
		<link>http://corecontentonly.com/2011/06/29/java-constants/</link>
		<comments>http://corecontentonly.com/2011/06/29/java-constants/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 07:00:15 +0000</pubDate>
		<dc:creator>Jonathan Hult</dc:creator>
				<category><![CDATA[OracleUCM]]></category>

		<guid isPermaLink="false">http://corecontentonly.com/?p=444</guid>
		<description><![CDATA[It is easy to misspell variable names in Java. Using Java static final Strings (perhaps better known as constants) are a great way to help avoid this problem. Here and here are two articles on the subject. Below is a sample class for some very commonly used metadata field names in UCM. public class RCSConstants [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=444&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It is easy to misspell variable names in Java. Using Java static final Strings (perhaps better known as constants) are a great way to help avoid this problem. <a href="http://www.java-tips.org/java-se-tips/java.lang/how-do-i-declare-a-constant-in-java.html" target="_blank">Here </a>and <a href="http://www.javapractices.com/topic/TopicAction.do?Id=2" target="_blank">here </a>are two articles on the subject. Below is a sample class for some very commonly used metadata field names in UCM.</p>
<blockquote><p>public class RCSConstants<br />
{<br />
public static final String dDocTitle = &#8220;dDocTitle&#8221;;<br />
public static final String dDocName = &#8220;dDocName&#8221;;<br />
public static final String dDocName_encoded = &#8220;dDocName_encoded&#8221;;<br />
public static final String dFormat = &#8220;dFormat&#8221;;<br />
public static final String dID = &#8220;dID&#8221;;<br />
public static final String dDocType =&#8221;dDocType&#8221;;<br />
public static final String dRevLabel = &#8220;dRevLabel&#8221;;<br />
public static final String dOriginalName = &#8220;dOriginalName&#8221;;<br />
public static final String dDocAuthor = &#8220;dDocAuthor&#8221;;<br />
public static final String dSecurityGroup = &#8220;dSecurityGroup&#8221;;<br />
}</p></blockquote>
<p>These constants (strings) can now be used in other classes as follows:</p>
<blockquote><p>RCSConstants.dDocTitle</p></blockquote>
<p>If you are using an IDE (such as JDeveloper or Eclipse) it will only let you choose values that are spelled correctly (provided you spelled them correctly in your constants class).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/corecontentonly.wordpress.com/444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/corecontentonly.wordpress.com/444/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/corecontentonly.wordpress.com/444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/corecontentonly.wordpress.com/444/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/corecontentonly.wordpress.com/444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/corecontentonly.wordpress.com/444/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/corecontentonly.wordpress.com/444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/corecontentonly.wordpress.com/444/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/corecontentonly.wordpress.com/444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/corecontentonly.wordpress.com/444/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/corecontentonly.wordpress.com/444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/corecontentonly.wordpress.com/444/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/corecontentonly.wordpress.com/444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/corecontentonly.wordpress.com/444/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=444&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://corecontentonly.com/2011/06/29/java-constants/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b679f118d2377e5143720500ed1eafa9?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jonathanhult</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle ECM Patch Set 4 (11.1.1.5) Released</title>
		<link>http://corecontentonly.com/2011/05/10/oracle-ecm-patch-set-4-11-1-1-5-released/</link>
		<comments>http://corecontentonly.com/2011/05/10/oracle-ecm-patch-set-4-11-1-1-5-released/#comments</comments>
		<pubDate>Tue, 10 May 2011 06:08:39 +0000</pubDate>
		<dc:creator>Jason Stortz</dc:creator>
				<category><![CDATA[OracleUCM]]></category>

		<guid isPermaLink="false">http://corecontentonly.com/?p=597</guid>
		<description><![CDATA[http://www.oracle.com/technetwork/middleware/content-management/downloads/index-085241.html Get it while it&#8217;s hot!  Oracle released Patch Set 4, version 11.1.1.5 of ECM recently.  Includes updates to IRM, IPM, UCM and the whole stack as well as matching updates for RCU, WebLogic and JDeveloper.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=597&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.oracle.com/technetwork/middleware/content-management/downloads/index-085241.html">http://www.oracle.com/technetwork/middleware/content-management/downloads/index-085241.html</a></p>
<p>Get it while it&#8217;s hot!  Oracle released Patch Set 4, version 11.1.1.5 of ECM recently.  Includes updates to IRM, IPM, UCM and the whole stack as well as matching updates for RCU, WebLogic and JDeveloper.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/corecontentonly.wordpress.com/597/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/corecontentonly.wordpress.com/597/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/corecontentonly.wordpress.com/597/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/corecontentonly.wordpress.com/597/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/corecontentonly.wordpress.com/597/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/corecontentonly.wordpress.com/597/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/corecontentonly.wordpress.com/597/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/corecontentonly.wordpress.com/597/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/corecontentonly.wordpress.com/597/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/corecontentonly.wordpress.com/597/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/corecontentonly.wordpress.com/597/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/corecontentonly.wordpress.com/597/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/corecontentonly.wordpress.com/597/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/corecontentonly.wordpress.com/597/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=597&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://corecontentonly.com/2011/05/10/oracle-ecm-patch-set-4-11-1-1-5-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e45f21e7847d928151e69a4908648599?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jasonstortz</media:title>
		</media:content>
	</item>
		<item>
		<title>csCheckinIDNotUnique &#8211; Error Message of the Month (February)</title>
		<link>http://corecontentonly.com/2011/02/07/cscheckinidnotunique-error-message-of-the-month-february/</link>
		<comments>http://corecontentonly.com/2011/02/07/cscheckinidnotunique-error-message-of-the-month-february/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 14:25:36 +0000</pubDate>
		<dc:creator>Jonathan Hult</dc:creator>
				<category><![CDATA[Error of the Month]]></category>
		<category><![CDATA[OracleUCM]]></category>
		<category><![CDATA[csCheckinIDNotUnique]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[ucm]]></category>
		<category><![CDATA[UCM10gR3]]></category>

		<guid isPermaLink="false">http://corecontentonly.com/?p=460</guid>
		<description><![CDATA[Error: csCheckinIDNotUnique There is actually a good Oracle Support article on this error.  There can be a variety of reasons why one might encounter this issue.  Occassionally the values in the Counters table get out of date.  Sometimes you&#8217;re attempting to check in a new piece of content with the same Content ID as an [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=460&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Error:</p>
<pre>csCheckinIDNotUnique</pre>
<p>There is actually a good Oracle Support <a href="https://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;doctype=PROBLEM&amp;id=557701.1&amp;clickstreamSession=7e8c01ae7d38588ed4dac1eb6c4d4f5ef72cae05a70fde17cf9381ac8a585ea6&amp;addClickInfo=%3Cdata%20search_text=%22%22revision%200%22%20repository%20manager%22%20search_result_size=%226%22%20search_result_count=%226%22%20powerview_id=%22%22%20on_off=%22off%22%20item_position_in_list=%225%22/%3E#top" target="_blank">article</a> on this error.  There can be a variety of reasons why one might encounter this issue.  Occassionally the values in the Counters table get out of date.  Sometimes you&#8217;re attempting to check in a new piece of content with the same Content ID as an existing piece of content without knowning it.  Oftentimes this happens if you are integrating with Content Server and are attempting to generate a Content ID.</p>
<p>Once you&#8217;ve have fixed your core logic issue you may still be left with a &#8220;corrupted&#8221; piece of content in the system that you need to get rid of before you can make a fresh start with your updated code or process.  To take care of this situation:</p>
<p>Step 1 &#8211; Open Admin Applets -&gt; Repository Manager</p>
<p>Step 2 &#8211; Search/Filter to find the offending Content ID.</p>
<p>Step 3 -Delete this revision in the system.</p>
<p>You should now be able to checkin content normally again without this error occurring.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/corecontentonly.wordpress.com/460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/corecontentonly.wordpress.com/460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/corecontentonly.wordpress.com/460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/corecontentonly.wordpress.com/460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/corecontentonly.wordpress.com/460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/corecontentonly.wordpress.com/460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/corecontentonly.wordpress.com/460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/corecontentonly.wordpress.com/460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/corecontentonly.wordpress.com/460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/corecontentonly.wordpress.com/460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/corecontentonly.wordpress.com/460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/corecontentonly.wordpress.com/460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/corecontentonly.wordpress.com/460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/corecontentonly.wordpress.com/460/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=460&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://corecontentonly.com/2011/02/07/cscheckinidnotunique-error-message-of-the-month-february/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b679f118d2377e5143720500ed1eafa9?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jonathanhult</media:title>
		</media:content>
	</item>
		<item>
		<title>UCM 11g Stand-alone Admin Applications</title>
		<link>http://corecontentonly.com/2011/02/06/ucm-11g-stand-alone-admin-applications/</link>
		<comments>http://corecontentonly.com/2011/02/06/ucm-11g-stand-alone-admin-applications/#comments</comments>
		<pubDate>Sun, 06 Feb 2011 13:08:09 +0000</pubDate>
		<dc:creator>Jonathan Hult</dc:creator>
				<category><![CDATA[OracleUCM]]></category>
		<category><![CDATA[ucm]]></category>
		<category><![CDATA[UCM11gR1]]></category>

		<guid isPermaLink="false">http://corecontentonly.com/?p=550</guid>
		<description><![CDATA[Running UCM admin applications directly from the server where Content Server is installed is called running them in stand-alone mode. No longer are they called applets, since the term &#8220;applet&#8221; is usually referred to a program which is included in a web page. Stand-alone admin applications are located here: CS_INSTALL_DIRECTORY/bin/ Executable applications are listed in this folder. If [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=550&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Running UCM admin applications directly from the server where Content Server is installed is called running them in stand-alone mode. No longer are they called applets, since the term &#8220;applet&#8221; is usually referred to a program which is included in a web page.</p>
<p>Stand-alone admin applications are located here: CS_INSTALL_DIRECTORY/bin/</p>
<p>Executable applications are listed in this folder. If an application is not listed, it can be entered as a parameter to the IntradocApp application, as in this example: <span style="font-family:Consolas, Monaco, 'Courier New', Courier, monospace;font-size:12px;line-height:18px;white-space:pre;">% ./IntradocApp Workflow</span></p>
<p>In Windows, you can find the applications in your Start Menu: Start, Programs, Content Server, instance, Utilities, utility</p>
<p>In UCM 10g, you could run these stand-alone applications with no additional setup.</p>
<p>In UCM 11g, due to the advent of WebLogic, these applications need some setup. You need to setup a JDBC driver to talk to the database and you will need to login with a local user.</p>
<p>Below are 12 simple steps to get stand-alone admin applications running.</p>
<p>1. Login to UCM as an administrator.</p>
<p>2. Navigate to Administration &gt; Admin Applets &gt; User Admin.</p>
<p>3. Find the local user &#8220;sysadmin&#8221;.</p>
<p><a href="http://corecontentonly.files.wordpress.com/2011/02/user_admin_sysadmin.png"><img class="alignnone size-medium wp-image-552" title="user_admin_sysadmin" src="http://corecontentonly.files.wordpress.com/2011/02/user_admin_sysadmin.png?w=300&#038;h=99" alt="" width="300" height="99" /></a></p>
<p>4. Click &#8220;Edit&#8221;.</p>
<p>5. Change the password to something secure that you will remember.</p>
<p><a href="http://corecontentonly.files.wordpress.com/2011/02/sysadmin_change_password.png"><img class="alignnone size-full wp-image-553" title="sysadmin_change_password" src="http://corecontentonly.files.wordpress.com/2011/02/sysadmin_change_password.png?w=600" alt=""   /></a></p>
<p>6. Click &#8220;OK&#8221; and exit User Admin.</p>
<p>7. Navigate to MIDDLEWARE_HOME/user_projects/domains/DOMAIN/ucm/bin/</p>
<p>8. Open SystemProperties.</p>
<p>9. Go to the “Database” tab.</p>
<p>10. Select Oracle Thin JDBC Driver.</p>
<div>
<ul>
<li>JDBC Connection String = jdbc:oracle:thin:@localhost:1521:orcl</li>
<li>JDBC User Name = dev_urmserver (see note below)</li>
<li>JDBC User Password = oracle</li>
</ul>
</div>
<div><a href="http://corecontentonly.files.wordpress.com/2011/02/ucm_stand-alone_applications_setup_jdbc.png"><img class="alignnone size-medium wp-image-551" title="ucm_stand-alone_applications_setup_jdbc" src="http://corecontentonly.files.wordpress.com/2011/02/ucm_stand-alone_applications_setup_jdbc.png?w=300&#038;h=201" alt="" width="300" height="201" /></a></div>
<div><a href="http://corecontentonly.files.wordpress.com/2011/02/ucm_stand-alone_applications_setup_jdbc.png"></a><br />
Note: The user name you connect as should not be &#8220;SYS&#8221;. You want the user Content Server connects as. If you do not know what user this is, open SQL Developer and connect as &#8220;SYS&#8221;. Then you can look under &#8220;Other Users&#8217; and find a user that looks like it might be Content Server&#8217;s user. In my example this is dev_urmserver because it was a dev instance and this was a URM server.</div>
<p>11. Click &#8220;OK&#8221;.</p>
<p>12. Now when you launch any of the stand-alone applications you will be prompted for a user name and password. Login with sysadmin and click &#8220;OK&#8221;. The application should now load.</p>
<p><a href="http://corecontentonly.files.wordpress.com/2011/02/ucm_stand-alone_applications_login.png"><img class="alignnone size-medium wp-image-554" title="ucm_stand-alone_applications_login" src="http://corecontentonly.files.wordpress.com/2011/02/ucm_stand-alone_applications_login.png?w=300&#038;h=117" alt="" width="300" height="117" /></a></p>
<p>The two stand-alone admin applications that do not need login credentials are SystemProperties and Component Wizard.</p>
<p>Oracle documentation on running UCM 11g stand-alone admin applications can be found <a href="http://download.oracle.com/docs/cd/E14571_01/doc.1111/e10978/c01_overview.htm#i1048294" target="_blank">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/corecontentonly.wordpress.com/550/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/corecontentonly.wordpress.com/550/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/corecontentonly.wordpress.com/550/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/corecontentonly.wordpress.com/550/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/corecontentonly.wordpress.com/550/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/corecontentonly.wordpress.com/550/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/corecontentonly.wordpress.com/550/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/corecontentonly.wordpress.com/550/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/corecontentonly.wordpress.com/550/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/corecontentonly.wordpress.com/550/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/corecontentonly.wordpress.com/550/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/corecontentonly.wordpress.com/550/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/corecontentonly.wordpress.com/550/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/corecontentonly.wordpress.com/550/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=corecontentonly.com&amp;blog=11043685&amp;post=550&amp;subd=corecontentonly&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://corecontentonly.com/2011/02/06/ucm-11g-stand-alone-admin-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b679f118d2377e5143720500ed1eafa9?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">jonathanhult</media:title>
		</media:content>

		<media:content url="http://corecontentonly.files.wordpress.com/2011/02/user_admin_sysadmin.png?w=300" medium="image">
			<media:title type="html">user_admin_sysadmin</media:title>
		</media:content>

		<media:content url="http://corecontentonly.files.wordpress.com/2011/02/sysadmin_change_password.png" medium="image">
			<media:title type="html">sysadmin_change_password</media:title>
		</media:content>

		<media:content url="http://corecontentonly.files.wordpress.com/2011/02/ucm_stand-alone_applications_setup_jdbc.png?w=300" medium="image">
			<media:title type="html">ucm_stand-alone_applications_setup_jdbc</media:title>
		</media:content>

		<media:content url="http://corecontentonly.files.wordpress.com/2011/02/ucm_stand-alone_applications_login.png?w=300" medium="image">
			<media:title type="html">ucm_stand-alone_applications_login</media:title>
		</media:content>
	</item>
	</channel>
</rss>
