<?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>Extreme CRM &#187; Uncategorized</title>
	<atom:link href="http://osubrenden.wordpress.com/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://osubrenden.wordpress.com</link>
	<description>Taking Microsoft Dynamics CRM to the Extreme</description>
	<lastBuildDate>Mon, 11 Apr 2011 21:56:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='osubrenden.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/c21c0d443a3eeed925975bc47907a1de?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Extreme CRM &#187; Uncategorized</title>
		<link>http://osubrenden.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://osubrenden.wordpress.com/osd.xml" title="Extreme CRM" />
	<atom:link rel='hub' href='http://osubrenden.wordpress.com/?pushpress=hub'/>
		<item>
		<title>CRM 4.0 Master Schema Management and Customization Change Control</title>
		<link>http://osubrenden.wordpress.com/2011/02/16/crm-4-0-master-schema-management-and-customization-change-control/</link>
		<comments>http://osubrenden.wordpress.com/2011/02/16/crm-4-0-master-schema-management-and-customization-change-control/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 18:37:26 +0000</pubDate>
		<dc:creator>CRMbrenden</dc:creator>
				<category><![CDATA[CRM 4.0]]></category>
		<category><![CDATA[Customization]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[4.0]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[Entity]]></category>
		<category><![CDATA[Microsoft CRM 4.0]]></category>
		<category><![CDATA[Microsoft Dynamics]]></category>

		<guid isPermaLink="false">http://extremecrm.net/?p=125</guid>
		<description><![CDATA[ Recently I found a CRM 4.0 Schema comparison tool that I find makes life much easier when I’m playing the role of Schema Master.  Managing schema changes is in my opinion a arduous and very manual process.  It is  not advisable to use TFS for schema file comparisons and definitely not for merging, this is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=125&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="mceTemp"> <span style="font-size:small;"><span style="font-family:Calibri;">Recently I found a CRM 4.0 Schema comparison tool that I find makes life much easier when I’m playing the role of Schema Master.  Managing schema changes is in my opinion a arduous and very manual process.  It is  not advisable to use TFS for schema file comparisons and definitely not for merging, this is because TFS does line by line comparison not XML tag comparisons.  The Customization Comparison Utility lets you compare the customization files between two Microsoft Dynamics CRM systems and the Configuration Data Utility lets you transfer custom configuration data from one Microsoft Dynamics CRM system to another.   You can download the solution file <a title="ISV Utilities for Comparing Customizations and Transferring Configuration Data" href="http://msdn.microsoft.com/en-us/library/dd442453.aspx" target="_blank">here</a></span></span></div>
<div class="mceTemp">
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;">The process I recommend for the proper management and change control practices   essential for the ongoing life cycle of a Microsoft CRM Dynamics Organization Database Schema.  The diagram below represents the three typical scenarios that the Schema Master may encounter on a frequent basis.  The three scenarios are Jr. Developer or Third Party Developer interactions, Senior Developer Interactions and Multi-Developer Entity Edits.  Using the Customization Comparison Utility along with this process will ensure the integrity of your CRM schema and save you from a lot of pain.</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"> </span></span> </p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><a href="http://osubrenden.files.wordpress.com/2011/02/schema1.jpg"><img title="Master Schema Scenarios" src="http://osubrenden.files.wordpress.com/2011/02/schema1.jpg?w=300&h=192" alt="Master Schema Scenarios" width="300" height="192" /></a></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;"><span style="font-family:Calibri;">Scenario 1 </span></span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;">Under scenario 1 a junior developer or a third-party or outside vendor may need to promote changes to the CRM Master Schema.  In this circumstance the Schema Master would likely be responsible for heavy validation of the schema changes.</span></span></p>
<p class="MsoListParagraphCxSpFirst" style="text-indent:-.25in;margin:0 0 0 1in;"><span style="font-family:Calibri;font-size:x-small;">1.</span><span style="font:7pt 'Times New Roman';">       </span><span style="font-size:x-small;"><span style="font-family:Calibri;">The schema items impacted are exported from the developers environment .</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:-.25in;margin:0 0 0 1in;"><span style="font-family:Calibri;font-size:x-small;">2.</span><span style="font:7pt 'Times New Roman';">       </span><span style="font-size:x-small;"><span style="font-family:Calibri;">The schema items impacted are documented in a standard SharePoint change-log.</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:-.25in;margin:0 0 0 1in;"><span style="font-family:Calibri;font-size:x-small;">3.</span><span style="font:7pt 'Times New Roman';">       </span><span style="font-size:x-small;"><span style="font-family:Calibri;">The schema export file is checked in to the weekly schema build folder.</span></span></p>
<p class="MsoListParagraphCxSpLast" style="text-indent:-.25in;margin:0 0 6pt 1in;"><span style="font-family:Calibri;font-size:x-small;">4.</span><span style="font:7pt 'Times New Roman';">       </span><span style="font-size:x-small;"><span style="font-family:Calibri;">The Schema Master reviews the change-log and the may make manual or automated adjustments to the Master Schema.</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;"><span style="font-family:Calibri;">Scenario 2</span></span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;">Under scenario 2 a senior developer may need to promote changes to the CRM Master Schema in this circumstance would likely be responsible for validation of the schema changes.</span></span></p>
<p class="MsoListParagraphCxSpFirst" style="text-indent:-.25in;margin:0 0 0 1in;"><span style="font-family:Calibri;font-size:x-small;">1.</span><span style="font:7pt 'Times New Roman';">       </span><span style="font-size:x-small;"><span style="font-family:Calibri;">The schema items impacted are exported from the developers environment .</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:-.25in;margin:0 0 0 1in;"><span style="font-family:Calibri;font-size:x-small;">2.</span><span style="font:7pt 'Times New Roman';">       </span><span style="font-size:x-small;"><span style="font-family:Calibri;">The schema items impacted are documented in a standard SharePoint change-log.</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:-.25in;margin:0 0 0 1in;"><span style="font-family:Calibri;font-size:x-small;">3.</span><span style="font:7pt 'Times New Roman';">       </span><span style="font-size:x-small;"><span style="font-family:Calibri;">The schema export file is checked in to the weekly schema build folder.</span></span></p>
<p class="MsoListParagraphCxSpLast" style="text-indent:-.25in;margin:0 0 6pt 1in;"><span style="font-family:Calibri;font-size:x-small;">4.</span><span style="font:7pt 'Times New Roman';">       </span><span style="font-size:x-small;"><span style="font-family:Calibri;">The Schema Master reviews the  change-log and the may make manual or automated adjustments to the Master Schema.</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;"><span style="font-family:Calibri;">Scenario 3</span></span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;">Under scenario 3 multiple developers may need to promote changes to the CRM Master Schema impacting the same entity.  In this circumstance the developers would likely be responsible for creating and validating a single schema export file.</span></span></p>
<p class="MsoListParagraphCxSpFirst" style="text-indent:-.25in;margin:0 0 0 1in;"><span style="font-family:Calibri;font-size:x-small;">1.</span><span style="font:7pt 'Times New Roman';">       </span><span style="font-size:x-small;"><span style="font-family:Calibri;">The schema items impacted are exported from the developers environment .</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:-.25in;margin:0 0 0 1in;"><span style="font-family:Calibri;font-size:x-small;">2.</span><span style="font:7pt 'Times New Roman';">       </span><span style="font-size:x-small;"><span style="font-family:Calibri;">The schema items impacted are documented in a standard SharePoint change-log.</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:-.25in;margin:0 0 0 1in;"><span style="font-family:Calibri;font-size:x-small;">3.</span><span style="font:7pt 'Times New Roman';">       </span><span style="font-size:x-small;"><span style="font-family:Calibri;">The schema export file is checked in to the weekly schema build folder.</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:-.25in;margin:0 0 0 1in;"><span style="font-family:Calibri;font-size:x-small;">4.</span><span style="font:7pt 'Times New Roman';">       </span><span style="font-size:x-small;"><span style="font-family:Calibri;">The Schema Master notifies the developers of potential conflicts or collisions.</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:-.25in;margin:0 0 0 1in;"><span style="font-family:Calibri;font-size:x-small;">5.</span><span style="font:7pt 'Times New Roman';">       </span><span style="font-size:x-small;"><span style="font-family:Calibri;">The developers create a single schema export file and check it in to TFS.</span></span></p>
<p class="MsoListParagraphCxSpLast" style="text-indent:-.25in;margin:0 0 6pt 1in;"><span style="font-family:Calibri;font-size:x-small;">6.</span><span style="font:7pt 'Times New Roman';">       </span><span style="font-size:x-small;"><span style="font-family:Calibri;">The Schema Master reviews the change-log and the may make manual or automated adjustments to the Master Schema.</span></span></p>
<h1 style="margin:24pt 0 0;"><span style="font-size:large;"><span style="color:#365f91;"><span style="font-family:Cambria;">The TFS Role</span></span></span></h1>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;">TFS is used as a repository for the incremental schema edits that are proposed as candidates to the Schema-Master.  It’s critical that developers only submit specific entity schema segments rather than the full CRM schema, this is because TFS analyzes code line by line rather than in the XML  tag format the CRM schema model uses.  Also because the environment that the CRM schema is exported from can alter the format and order of the XML.  For these reasons it will be incumbent upon the Schema-Master to understand where the schema segments are coming from and to identify the risks associated with the submitting party.</span></span></p>
<h1 style="margin:24pt 0 0;"><span style="font-size:large;"><span style="color:#365f91;"><span style="font-family:Cambria;">The SharePoint Role</span></span></span></h1>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;">A standard SharePoint form should be used to capture the schema changes being submitted by each developer.  The SharePoint form should capture at minimum:</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;">                </span></span></p>
<p class="MsoListParagraphCxSpFirst" style="text-indent:-.25in;margin:0 0 0 1in;"><span style="font-family:'Courier New';"><span style="font-size:x-small;">o</span><span style="font:7pt 'Times New Roman';">    </span></span><span style="font-family:Calibri;"><span style="font-size:x-small;">ID Number</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:-.25in;margin:0 0 0 1in;"><span style="font-family:'Courier New';"><span style="font-size:x-small;">o</span><span style="font:7pt 'Times New Roman';">    </span></span><span style="font-family:Calibri;"><span style="font-size:x-small;">Entity, Workflow or Role Name</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:-.25in;margin:0 0 0 1in;"><span style="font-family:'Courier New';"><span style="font-size:x-small;">o</span><span style="font:7pt 'Times New Roman';">    </span></span><span style="font-family:Calibri;"><span style="font-size:x-small;">Attribute</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-indent:-.25in;margin:0 0 0 1in;"><span style="font-family:'Courier New';"><span style="font-size:x-small;">o</span><span style="font:7pt 'Times New Roman';">    </span></span><span style="font-family:Calibri;"><span style="font-size:x-small;">Deployment Comments</span></span></p>
<p class="MsoListParagraphCxSpLast" style="text-indent:-.25in;margin:0 0 6pt 1in;"><span style="font-family:'Courier New';"><span style="font-size:x-small;">o</span><span style="font:7pt 'Times New Roman';">    </span></span><span style="font-size:x-small;"><span style="font-family:Calibri;">Impact Analysis Comments</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;">
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;">The ID Number shoul</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;">
<p class="MsoNormal" style="margin:0 0 10pt;">
<div class="MsoNormal" style="margin:0 0 10pt;">
<div class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"></span></div>
<p> </p></div>
<p class="MsoNormal" style="margin:0 0 10pt;">
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-family:Calibri;">d always be references within the TFS check-in comments   and included in the release and deploy notes sent to the Deployment team for each build.</span></p>
<p> </p>
<p class="MsoNormal" style="margin:0 0 10pt;"> </p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-family:Calibri;font-size:small;"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-family:Calibri;font-size:small;"> </span></p>
<div class="mceTemp"> </div>
<div class="mceTemp"> </div>
<div class="mceTemp"> </div>
<div class="mceTemp"> </div>
<div class="mceTemp"> </div>
<div class="mceTemp"> </div>
<div class="mceTemp"> </div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osubrenden.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osubrenden.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osubrenden.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osubrenden.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osubrenden.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osubrenden.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osubrenden.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osubrenden.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osubrenden.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osubrenden.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osubrenden.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osubrenden.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osubrenden.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osubrenden.wordpress.com/125/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=125&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osubrenden.wordpress.com/2011/02/16/crm-4-0-master-schema-management-and-customization-change-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3fb676af851aef20b2499952d402d8be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">CRMbrenden</media:title>
		</media:content>

		<media:content url="http://osubrenden.files.wordpress.com/2011/02/schema1.jpg?w=300" medium="image">
			<media:title type="html">Master Schema Scenarios</media:title>
		</media:content>
	</item>
		<item>
		<title>How to Programmatically Create a Microsoft Word Document from Dynamics CRM</title>
		<link>http://osubrenden.wordpress.com/2010/08/16/how-to-programmatically-create-a-microsoft-word-document-from-dynamics-crm/</link>
		<comments>http://osubrenden.wordpress.com/2010/08/16/how-to-programmatically-create-a-microsoft-word-document-from-dynamics-crm/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 15:47:09 +0000</pubDate>
		<dc:creator>CRMbrenden</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Microsoft CRM 4.0]]></category>
		<category><![CDATA[Microsoft Dynamics]]></category>
		<category><![CDATA[Microsoft Word]]></category>

		<guid isPermaLink="false">http://extremecrm.net/?p=105</guid>
		<description><![CDATA[Obviously you can take this much further<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=105&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Recently I had a need to create a Microsoft Word document and dynamically populate it from data in CRM.  Microsoft Word can be invoked from JavaScript using the ActiveXObject .  This first example shows a very basic application of the concept.  Create a blank document , add a report title then add some body  text.  In my application I call the JavaScript from a toolbar button added with the ISV.config file.  For more information on adding buttons that call javaScript see <a href="http://extremecrm.net/2010/05/28/attaching-javascript-code-to-a-crm-toolbar-button/" target="_self">Calling JavaScript from Microsoft CRM  Toolbar Buttons</a></p>
<p><em><span style="color:#339966;">// Start a new instance of Microsoft Word</span></em></p>
<p><span style="color:#3366ff;">var MsWord = new ActiveXObject(&#8220;Word.Application&#8221;);</span></p>
<p><em><span style="color:#339966;">// Create a new document</span></em></p>
<p><span style="color:#3366ff;">MsWord.Documents.Add();</span></p>
<p><em><span style="color:#339966;">//Carriage Return</span></em></p>
<p><span style="color:#3366ff;">MsWord.Selection.TypeParagraph();</span></p>
<p><em><span style="color:#339966;">//Report Name</span></em></p>
<p><span style="color:#3366ff;">MsWord.Selection.TypeText(crmForm.all.new_name.value);</span></p>
<p><span style="color:#3366ff;"><em><span style="color:#339966;">//Carriage Return</span><br />
</em>MsWord.Selection.TypeParagraph();<br />
</span><span style="color:#3366ff;"><em><span style="color:#339966;">//Carriage Return</span><br />
</em>MsWord.Selection.TypeParagraph();</span></p>
<p><em><span style="color:#339966;">//Memo field from CRM containing paragraphs of text</span></em></p>
<p><span style="color:#3366ff;">MsWord.Selection.TypeText(crmForm.all.new_body.value);</span></p>
<p><em><span style="color:#339966;">//Show Microsoft Word</span></em></p>
<p><em></em><em><span style="color:#3366ff;">MsWord.Visible = true;</span></em></p>
<p><span style="color:#3366ff;"> </span></p>
<p>To create a new document using a Microsoft Word Template do this:</p>
<p><span style="color:#3366ff;">msWord.Documents.Add(&#8220;http://myserver:5555/documentTemplate.dotx&#8221;);</span></p>
<p>To add text to a specific Microsoft Word form field first create a Word template and add a field to it using the developer toolbar then use this code:<br />
<span style="color:#3366ff;">msWord.ActiveDocument.FormFields(&#8220;Text1&#8243;).Result = crmForm.all.new_name.value;</span></p>
<p>Obviously you can take this much further, in my application I use a AJAX call to a web service to get related CRM records.  I also lock all the fields so their content can’t be modified by the user.  What the user can do is add content to the document which may include HTML content.  The need to generate a report but then add custom content was the genesis for this feature.</p>
<p>Here’s a article about creating fields in Microsoft Word.  <a href="http://news.cnet.com/8301-13880_3-9891483-68.html" target="_blank">Click Here</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osubrenden.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osubrenden.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osubrenden.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osubrenden.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osubrenden.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osubrenden.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osubrenden.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osubrenden.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osubrenden.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osubrenden.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osubrenden.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osubrenden.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osubrenden.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osubrenden.wordpress.com/105/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=105&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osubrenden.wordpress.com/2010/08/16/how-to-programmatically-create-a-microsoft-word-document-from-dynamics-crm/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3fb676af851aef20b2499952d402d8be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">CRMbrenden</media:title>
		</media:content>
	</item>
		<item>
		<title>Show hide form elements in Microsoft Dynamics CRM 4.0 based on user role.</title>
		<link>http://osubrenden.wordpress.com/2010/07/12/show-hide-form-elements-in-microsoft-dynamics-crm-4-0-based-on-user-role/</link>
		<comments>http://osubrenden.wordpress.com/2010/07/12/show-hide-form-elements-in-microsoft-dynamics-crm-4-0-based-on-user-role/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 14:50:16 +0000</pubDate>
		<dc:creator>CRMbrenden</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://extremecrm.net/?p=100</guid>
		<description><![CDATA[   Because Microsoft Dynamics CRM 4.0 only allows a single form for each entity it is often necessary to show or hide certain form elements like buttons, iFrames and tabs based on the role of the currently logged in user. Calling the CrmService of Microsoft Dynamics CRM 4.0 allow us to determine who the currently [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=100&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>  </p>
<p>Because Microsoft Dynamics CRM 4.0 only allows a single form for each entity it is often necessary to show or hide certain form elements like buttons, iFrames and tabs based on the role of the currently logged in user.</p>
<p>Calling the CrmService of Microsoft Dynamics CRM 4.0 allow us to determine who the currently logged in user is and what roles they have been assigned.  I have attempted to keep this example straightforward the only code that has nothing to do with getting the current user and their role are the the two line turning off a tab in the event the user doesn’t have the role of “Manager”.</p>
<p>    crmForm.all.tab2Tab.style.visibility = &#8220;hidden&#8221;;</p>
<p>    crmForm.all.tab2Tab.style.position = &#8220;absolute&#8221;;</p>
<p>Everything else is specific to calling the CrmService getting the current user and finding their user roles in the XML DOM that the CrmService returns.</p>
<p><span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;color:#008000;">//Based on the role of the user logged in, hide the named tab on the entity form </p>
<p><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">if </p>
<p>} </p>
<p><span style="font-size:x-small;">(currentUserHasRole(</span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8216;Manager&#8217;</span></span><span style="font-size:x-small;">)) {</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">else </p>
<p>crmForm.all.tab2Tab.style.visibility = </p>
<p>crmForm.all.tab2Tab.style.position = </p>
<p>} </p>
<p><span style="font-size:x-small;">{</span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;hidden&#8221;</span></span><span style="font-size:x-small;">;</span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;absolute&#8221;</span></span><span style="font-size:x-small;">;</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">function </p>
<p><span style="font-size:x-small;">UserHasRole(roleName) {}</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">function </p>
<p>xmlhttp.open( </p>
<p>xmlhttp.setRequestHeader( </p>
<p>xmlhttp.setRequestHeader( </p>
<p>soapXml += GenerateAuthenticationHeader(); </p>
<p>soapXml += soapBody; </p>
<p>soapXml += </p>
<p>xmlhttp.send(soapXml); </p>
<p>xmlDoc = </p>
<p>xmlDoc.async = </p>
<p>xmlDoc.loadXML(xmlhttp.responseXML.xml); </p>
<p>} </p>
<p>} </p>
<p>} </p>
<p><span style="font-size:x-small;">getUserId() {</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">try</span></span><span style="font-size:x-small;"> {</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">var</span></span><span style="font-size:x-small;"> xmlhttp = </span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">new</span></span><span style="font-size:x-small;"> ActiveXObject(</span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;Msxml2.XMLHTTP&#8221;</span></span><span style="font-size:x-small;">);</span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;POST&#8221;</span></span><span style="font-size:x-small;">, </span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;../../mscrmservices/2007/crmservice.asmx&#8221;</span></span><span style="font-size:x-small;">, </span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">false</span></span><span style="font-size:x-small;">);</span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;Content-Type&#8221;</span></span><span style="font-size:x-small;">, </span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;text/xml; charset=utf-8&#8243;</span></span><span style="font-size:x-small;">);</span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;SOAPAction&#8221;</span></span><span style="font-size:x-small;">, </span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;http://schemas.microsoft.com/crm/2007/WebServices/Execute&#8221;</span></span><span style="font-size:x-small;">);</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">var</span></span><span style="font-size:x-small;"> soapBody = </span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;&lt;soap:Body&gt;&#8221;</span></span><span style="font-size:x-small;"> + </span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;&lt;Execute xmlns=&#8217;http://schemas.microsoft.com/crm/2007/WebServices&#8217;&gt;&#8221;</span></span><span style="font-size:x-small;"> + </span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;&lt;Request xsi:type=&#8217;WhoAmIRequest&#8217; /&gt;&#8221;</span></span><span style="font-size:x-small;"> + </span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;&lt;/Execute&gt;&lt;/soap:Body&gt;&#8221;</span></span><span style="font-size:x-small;">;</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">var</span></span><span style="font-size:x-small;"> soapXml = </span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;&lt;soap:Envelope &#8220;</span></span><span style="font-size:x-small;"> + </span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;xmlns:soap=&#8217;http://schemas.xmlsoap.org/soap/envelope/&#8217; &#8220;</span></span><span style="font-size:x-small;"> + </span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;xmlns:xsi=&#8217;http://www.w3.org/2001/XMLSchema-instance&#8217; &#8220;</span></span><span style="font-size:x-small;"> + </span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;xmlns:xsd=&#8217;http://www.w3.org/2001/XMLSchema&#8217;&gt;&#8221;</span></span><span style="font-size:x-small;">;</span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;&lt;/soap:Envelope&gt;&#8221;</span></span><span style="font-size:x-small;">;</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">new</span></span><span style="font-size:x-small;"> ActiveXObject(</span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;Microsoft.XMLDOM&#8221;</span></span><span style="font-size:x-small;">);</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">false</span></span><span style="font-size:x-small;">;</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">var</span></span><span style="font-size:x-small;"> userid = xmlDoc.getElementsByTagName(</span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;UserId&#8221;</span></span><span style="font-size:x-small;">)[0].childNodes[0].nodeValue;</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">return</span></span><span style="font-size:x-small;"> userid;</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">catch</span></span><span style="font-size:x-small;"> (e) {</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">return</span></span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">null</span></span><span style="font-size:x-small;">;</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">function </p>
<p>command.SetParameter( </p>
<p>} </p>
<p>} </p>
<p>} </p>
<p>} </p>
<p><span style="font-size:x-small;">getUserRoles(userId) {</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">try</span></span><span style="font-size:x-small;"> {</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">var</span></span><span style="font-size:x-small;"> command = </span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">new</span></span><span style="font-size:x-small;"> RemoteCommand(</span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;UserManager&#8221;</span></span><span style="font-size:x-small;">, </span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;GetUserRoles&#8221;</span></span><span style="font-size:x-small;">);</span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;userIds&#8221;</span></span><span style="font-size:x-small;">, </span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;&lt;guid&gt;&#8221;</span></span><span style="font-size:x-small;"> + userId + </span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;&lt;/guid&gt;&#8221;</span></span><span style="font-size:x-small;">);</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">var</span></span><span style="font-size:x-small;"> oResult = command.Execute();</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">if</span></span><span style="font-size:x-small;"> (oResult.Success) {</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">return</span></span><span style="font-size:x-small;"> oResult.ReturnValue;</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">catch</span></span><span style="font-size:x-small;"> (e) {</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">return</span></span><span style="font-size:x-small;"> </span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">null</span></span><span style="font-size:x-small;">;</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">function </p>
<p>result = getUserRoles(userId); </p>
<p>oXml.resolveExternals = </p>
<p>oXml.async = </p>
<p>oXml.loadXML(result); </p>
<p>roleNode = oXml.selectSingleNode( </p>
<p>hasRole = </p>
<p>} </p>
<p>} </p>
<p>} </p>
<p>} </p>
<p><span style="font-size:x-small;">userHasRole(userId, roleName) {</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">var</span></span><span style="font-size:x-small;"> hasRole = </span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">false</span></span><span style="font-size:x-small;">;</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">if</span></span><span style="font-size:x-small;"> (result != </span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">null</span></span><span style="font-size:x-small;">) {</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">var</span></span><span style="font-size:x-small;"> oXml = </span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">new</span></span><span style="font-size:x-small;"> ActiveXObject(</span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;Microsoft.XMLDOM&#8221;</span></span><span style="font-size:x-small;">);</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">false</span></span><span style="font-size:x-small;">;</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">false</span></span><span style="font-size:x-small;">;</span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;/roles/role[name='"</span></span><span style="font-size:x-small;"> + roleName + </span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">"']&#8220;</span></span><span style="font-size:x-small;">);</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">if</span></span><span style="font-size:x-small;"> (roleNode != </span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">null</span></span><span style="font-size:x-small;">) {</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">if</span></span><span style="font-size:x-small;"> (roleNode.selectSingleNode(</span><span style="font-size:x-small;color:#a31515;"><span style="font-size:x-small;color:#a31515;">&#8220;roleid[@checked='true']&#8220;</span></span><span style="font-size:x-small;">) != </span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">null</span></span><span style="font-size:x-small;">) {</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">true</span></span><span style="font-size:x-small;">;</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">return</span></span><span style="font-size:x-small;"> hasRole;</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">function </p>
<p>userId = getUserId(); </p>
<p>} </p>
<p><span style="font-size:x-small;">currentUserHasRole(roleName) {</span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;">return</span></span><span style="font-size:x-small;"> userHasRole(userId, roleName);</span> </p>
<p></span></span></p>
<p></span></span></p>
<p></span></span></p>
<p></span></span></p>
<p></span></span></p>
<p></span></span></p>
<p></span></span></p>
<p></span></span></p>
<h2>For more information see&#8230;.</h2>
<p><span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;color:#008000;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"><a class="alignleft" href="http://msdn.microsoft.com/en-us/library/bb890244.aspx" target="_blank">WhoAmI Message (CrmService)</a></p>
<p><a class="alignleft" href="http://msdn.microsoft.com/en-us/library/bb959403.aspx" target="_blank">CrmService Messages</a></p>
<p></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osubrenden.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osubrenden.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osubrenden.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osubrenden.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osubrenden.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osubrenden.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osubrenden.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osubrenden.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osubrenden.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osubrenden.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osubrenden.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osubrenden.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osubrenden.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osubrenden.wordpress.com/100/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=100&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osubrenden.wordpress.com/2010/07/12/show-hide-form-elements-in-microsoft-dynamics-crm-4-0-based-on-user-role/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3fb676af851aef20b2499952d402d8be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">CRMbrenden</media:title>
		</media:content>
	</item>
		<item>
		<title>Attaching Javascript code to a CRM Toolbar Button</title>
		<link>http://osubrenden.wordpress.com/2010/05/28/attaching-javascript-code-to-a-crm-toolbar-button/</link>
		<comments>http://osubrenden.wordpress.com/2010/05/28/attaching-javascript-code-to-a-crm-toolbar-button/#comments</comments>
		<pubDate>Fri, 28 May 2010 15:16:14 +0000</pubDate>
		<dc:creator>CRMbrenden</dc:creator>
				<category><![CDATA[CRM 4.0]]></category>
		<category><![CDATA[Customization]]></category>
		<category><![CDATA[Menu]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web development]]></category>
		<category><![CDATA[4.0]]></category>
		<category><![CDATA[Button]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[Custom]]></category>
		<category><![CDATA[Entity]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Microsoft Dynamics]]></category>
		<category><![CDATA[Toolbar]]></category>

		<guid isPermaLink="false">http://extremecrm.net/?p=80</guid>
		<description><![CDATA[that’s where a Microsoft Dynamics CRM  application should store the JavaScript<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=80&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Attaching Javascript code to a tool bar button can be very ugly.  Generally the code needs to be included within the CRM, ISV Config  XML file.  It’s pretty easy to add a button via the ISV Config.  <a title="Click Here" href="http://crmdynamo.com/2010/02/how-to-add-a-button-to-a-entity-form-and-create-a-new-related-crm-record/" target="_blank">Click Here</a> for more information on adding custom buttons to a Microsoft Dynamics CRM Entity form, toolbar.</p>
<p>The red highlighted Javascript tag below shows you where you would typically place your JavaScript or JavaScript function call but this isn’t the best place for the JavaScript.  I have seen huge JavaScript routines embedded in to the tag whci makes debugging and readability a painful exercise.  Even if you call a JavaScript function and leave the tag nice and cleas as shown here that Javascript function has to be maintained outside of the CRM Model.</p>
<p><strong>&lt;Entities&gt;</strong><strong><br />
<strong>        &lt;Entity name=”new_customentity”&gt;</strong><br />
<strong>          &lt;ToolBar ValidForCreate=”0″ ValidForUpdate=”1″&gt;</strong><br />
<strong>            &lt;ToolBarSpacer&gt;&lt;/ToolBarSpacer&gt;</strong><br />
<strong>            &lt;Button Icon=”/_imgs/ico_18_debug.gif” <span style="color:#ff0000;">JavaScript=”</span></strong></strong><span style="color:#ff0000;"> </span><strong><span style="color:#ff0000;">DuplicateRecord (10016</span><span style="color:#ff0000;">)</span>;”&gt;</strong><strong><br />
<strong>              &lt;Titles&gt;</strong><br />
<strong>                &lt;Title LCID=”1033″ Text=”Duplicate Record” /&gt;</strong><br />
<strong>              &lt;/Titles&gt;</strong><br />
<strong>              &lt;ToolTips&gt;</strong><br />
<strong>                &lt;ToolTip LCID=”1033″ Text=”Copies a record based on this open record.” /&gt;</strong><br />
<strong>              &lt;/ToolTips&gt;</strong><br />
<strong>            &lt;/Button&gt;</strong><br />
<strong>            &lt;ToolBarSpacer /&gt;</strong><br />
<strong>          &lt;/ToolBar&gt;</strong><br />
<strong>        &lt;/Entity&gt;</strong><br />
<strong>      &lt;/Entities&gt;</strong></strong> </p>
<p>The solution is pretty simple.</p>
<p>If we change the structure of our JavaScript function a bit we can simply place it in a Entity’s form <strong>OnLoad Event</strong>.  The key syntax is simply  <em>MyFunction = function() .</em></p>
<p>Here is a working example of a function I wrote which calls a web service to copy the  current open record and create a new one based on it<strong>,</strong></p>
<h2><span style="color:#00ccff;">The CRM Form OnLoad Event JavaScript</span></h2>
<p><span style="color:#0000ff;"><strong>DuplicateRecord </strong>= function() {</span></p>
<address><span style="color:#0000ff;">    try {</span></address>
<address><span style="color:#0000ff;">        var oXmlHTTP = new ActiveXObject(&#8220;Msxml2.XMLHTTP&#8221;);</span></address>
<address><span style="color:#0000ff;">       oXmlHTTP.Open(&#8220;POST&#8221;, &#8220;/somepath/ DuplicateRecord Service.asmx/ DuplicateRecord?mso-spacerun: yes&#8221;&gt;      + crmForm.ObjectId, false);</span></address>
<address><span style="color:#0000ff;">        oXmlHTTP.setRequestHeader(&#8220;Content-Type&#8221;, &#8220;application/x-www-form-urlencoded&#8221;)</span></address>
<address><span style="color:#0000ff;">        oXmlHTTP.Send(&#8216;jobId=&#8217; + crmForm.ObjectId);</span></address>
<address><span style="color:#0000ff;">        var newId = oXmlHTTP.responseXML.selectSingleNode(&#8220;string&#8221;).text;</span></address>
<address><span style="color:#0000ff;">   }</span></address>
<address><span style="color:#0000ff;">    catch (e) {</span></address>
<address><span style="color:#0000ff;">        debugger;</span></address>
<address><span style="color:#0000ff;">        return null;</span></address>
<address><span style="color:#0000ff;">    }</span></address>
<address><span style="color:#0000ff;">}</span></address>
<p> </p>
<h2><span style="color:#00ccff;">The ISV Config  XML Tag</span></h2>
<address><span style="color:#0000ff;">&lt;Button Icon=&#8221;" Url=&#8221;" PassParams=&#8221;1&#8243; WinParams=&#8221;" WinMode=&#8221;0&#8243; JavaScript=&#8221;<strong> DuplicateRecord </strong>();&#8221;&gt;</span></address>
<address><span style="color:#0000ff;">              &lt;Titles&gt;</span></address>
<address><span style="color:#0000ff;">                &lt;Title LCID=&#8221;1033&#8243; Text=&#8221;<strong> Duplicate This Record </strong>&#8221; /&gt;</span></address>
<address><span style="color:#0000ff;">              &lt;/Titles&gt;</span></address>
<address><span style="color:#0000ff;">              &lt;ToolTips&gt;</span></address>
<address><span style="color:#0000ff;">                &lt;ToolTip LCID=&#8221;1033&#8243; Text=&#8221;Copy Record&#8221; /&gt;</span></address>
<address><span style="color:#0000ff;">              &lt;/ToolTips&gt;</span></address>
<address><span style="color:#0000ff;">            &lt;/Button&gt;</span></address>
<address> </address>
<h2><span style="color:#00ccff;">Conclusion</span></h2>
<p>I like this approach because now all our JavaScript is still maintained within the CRM Entity’s and for a number of good reasons that’s where a Microsoft Dynamics CRM  application should store the JavaScript.  Because its with the entity it will get exported with your model and other customizations.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osubrenden.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osubrenden.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osubrenden.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osubrenden.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osubrenden.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osubrenden.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osubrenden.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osubrenden.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osubrenden.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osubrenden.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osubrenden.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osubrenden.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osubrenden.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osubrenden.wordpress.com/80/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=80&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osubrenden.wordpress.com/2010/05/28/attaching-javascript-code-to-a-crm-toolbar-button/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3fb676af851aef20b2499952d402d8be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">CRMbrenden</media:title>
		</media:content>
	</item>
		<item>
		<title>Working With CRM 4.0 Data Types and Form Controls</title>
		<link>http://osubrenden.wordpress.com/2010/05/13/working-with-crm-4-0-data-types-and-form-controls/</link>
		<comments>http://osubrenden.wordpress.com/2010/05/13/working-with-crm-4-0-data-types-and-form-controls/#comments</comments>
		<pubDate>Thu, 13 May 2010 16:36:15 +0000</pubDate>
		<dc:creator>CRMbrenden</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[4.0]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[Entity]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[lookup]]></category>
		<category><![CDATA[Microsoft CRM 4.0]]></category>
		<category><![CDATA[Picklist]]></category>

		<guid isPermaLink="false">http://extremecrm.net/?p=78</guid>
		<description><![CDATA[Boolean Specifies a field  that displays one check box or two radio buttons. The Boolean field type is one display option for bit type attributes. The other option is list. The list option uses the Picklist field type. Note   Changing the formatting options of a bit attribute is done on the form, not in the attribute [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=78&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a name="boolean">Boolean</a></p>
<p><span style="font-family:verdana,sans-serif;">Specifies a field  that displays one check box or two radio buttons. The Boolean field type is one display option for bit type attributes. The other option is list. The list option uses the </span><a href="http://sites.google.com/site/ranjitclub/v4d0_cp0900r_fieldtypepicklist.htm"><span style="font-family:verdana,sans-serif;">Picklist</span></a><span style="font-family:verdana,sans-serif;"> field type.</span></p>
<p><span style="font-family:verdana,sans-serif;"><strong>Note</strong>   Changing the formatting options of a bit attribute is done on the form, not in the attribute definition like other attributes. Changing the formatting option from a check box or two radio buttons to a list will change the way that you access the values in the form, potentially breaking your code.</span></p>
<p><span style="font-family:verdana,sans-serif;">The following properties are available:</span></p>
<table border="1" cellpadding="5">
<tbody>
<tr valign="top">
<td width="27%"><strong><span style="font-family:verdana,sans-serif;">Boolean properties</span></strong></td>
<td width="15%"><strong><span style="font-family:verdana,sans-serif;">Type</span></strong></td>
<td width="58%"><strong><span style="font-family:verdana,sans-serif;">Description</span></strong></td>
</tr>
<tr valign="top">
<td width="27%"><span style="font-family:verdana,sans-serif;"><em>{Field}</em>.DataValue</span></td>
<td width="15%"><span style="font-family:verdana,sans-serif;">Boolean or Null</span></td>
<td width="58%"><span style="font-family:verdana,sans-serif;">Get/set property. </span><span style="font-family:verdana,sans-serif;">The original value is left unchanged if the new value cannot be parsed.</span></td>
</tr>
<tr valign="top">
<td width="27%"><em><span style="font-family:verdana,sans-serif;">{Field}.DefaultValue</span></em></td>
<td width="15%"><span style="font-family:verdana,sans-serif;">Boolean</span></td>
<td width="58%"><span style="font-family:verdana,sans-serif;">Get property. </span><span style="font-family:verdana,sans-serif;">Returns the default value for the field.</span></td>
</tr>
</tbody>
</table>
<p> </p>
<p><strong><span style="font-family:verdana,sans-serif;">Example</span></strong></p>
<p><span style="font-family:verdana,sans-serif;"><span style="text-decoration:underline;">The following code example shows how to set a field of type Boolean.</span></span></p>
<div><span style="font-family:verdana,sans-serif;">crmForm.all.SOME_BOOLEAN_FIELD_ID.DataValue = true;</span></div>
<div> </div>
<div><span style="font-family:Verdana;">crmForm.all.SOME_BOOLEAN_FIELD_ID.DataValue = false;</span> </div>
<h1><a name="TOC-1"></a> </h1>
<h1><a name="customer">Customer</a></h1>
<p>A Customer field represents a type of <a href="http://sites.google.com/site/ranjitclub/v4d0_cp0900r_fieldtypelookup.htm">Lookup</a> where either an account or contact is a valid type of record.</p>
<p>The following properties are available:</p>
<table border="1" cellpadding="5">
<tbody>
<tr valign="top">
<td width="27%"><strong>Customer or Regarding properties</strong></td>
<td width="12%"><strong>Type</strong></td>
<td width="61%"><strong>Description</strong></td>
</tr>
<tr valign="top">
<td width="27%"><em>{Field}</em>.DataValue</td>
<td width="12%"> </td>
<td width="61%">Specifies an array of lookup objects. For the Customer field this array always has a length of one. DataValue is <strong>Null</strong> when no value is selected. Set DataValue to <strong>Null</strong> to make the lookup field blank.</td>
</tr>
</tbody>
</table>
<p> </p>
<p><strong>Example</strong></p>
<p>The following code example shows how to use a Customer field type.</p>
<pre>var customer = new Array();
customer = null;

// This gets the lookup for the attribute customerid on the Opportunity form.
customer = crmForm.all.customerid.DataValue;

// If there is data in the field, show it in a series of alerts.
if (customer[0] != null)
{
   // The name of the customer.
   alert(customer[0].name);

   // The GUID of the customer.
   alert(customer [0].id);

   // The entity type name of the customer.
   alert(customer[0].typename);
}</pre>
<p> </p>
<h1><a name="datetime">DateTime</a></h1>
<p>A DateTime field can be formatted to show both the date and time, or the date only. The following properties are available:</p>
<table border="1" cellpadding="5">
<tbody>
<tr valign="top">
<td width="27%"><strong>DateTime properties</strong></td>
<td width="15%"><strong>Type</strong></td>
<td width="58%"><strong>Description</strong></td>
</tr>
<tr valign="top">
<td width="27%"><em>{Field}</em>.DataValue</td>
<td width="15%">Date or Null</td>
<td width="58%">Get/set property.The original value is left unchanged if the new value cannot be parsed.</td>
</tr>
<tr valign="top">
<td width="27%"><em>{Field}</em>.TimeVisible</td>
<td width="15%">Boolean</td>
<td width="58%">Get property.This property specifies if the time is to be shown.</td>
</tr>
</tbody>
</table>
<p> </p>
<p><strong>Example</strong></p>
<p><span style="text-decoration:underline;">The following code example shows how to use a field of type DateTime.</span></p>
<pre>var oDate;
var oToday;

oDate =  crmForm.all.scheduledend.DataValue;
if (oDate == null) {
    oDate = new Date();
}

oToday = new Date();
oDate = oToday;
oDate = oDate.setHours(17,0,0);

if (oDate.TimeVisible)
{
   alert("The time is visible.");
}
else
{
   alert("Only the date is visible; the time is hidden.");
}

crmForm.all.scheduledend.DataValue = oDate;</pre>
<p> </p>
<h1><a name="duration">Duration</a></h1>
<p>Duration fields are presented as a picklist giving the user a selection of time options from 1 minute to 3 days. But the actual value of a duration field is an integer. If a user types an integer into the field or your code sets the value of the integer representing minutes, the field will convert that value into a more user-friendly unit of measurement. For example, 420 will be displayed as 7 hours.</p>
<p>The following properties are available:</p>
<table border="1" cellpadding="5">
<tbody>
<tr valign="top">
<td width="27%"><strong>Duration properties</strong></td>
<td width="15%"><strong>Type</strong></td>
<td width="58%"><strong>Description</strong></td>
</tr>
<tr valign="top">
<td width="27%"><em>{Field}</em>.DataValue</td>
<td width="15%">integer or Null</td>
<td width="58%">Get/set property.The duration can be set to <strong>Null</strong>. The original value is left unchanged if the new value cannot be parsed.</td>
</tr>
</tbody>
</table>
<p> </p>
<p><strong>Example</strong></p>
<p>The following code example shows how to use a field of type Duration.</p>
<div>var iMinutes = 60; crmForm.all.SOME_DURATION_FIELD_ID.DataValue = iMinutes;</div>
<div> </div>
<div> </div>
<div> </div>
<div>
<h1><a name="emailbody">E-mail Body</a></h1>
<p>This field type appears in the E-mail activity form. The following properties are available:</p>
<table border="1" cellpadding="5">
<tbody>
<tr valign="top">
<td width="29%"><strong>E-mail body field methods</strong></td>
<td width="12%"><strong>Type</strong></td>
<td width="59%"><strong>Description</strong></td>
</tr>
<tr valign="top">
<td width="29%"><em>{Field}</em>.DataValue</td>
<td width="12%">String</td>
<td width="59%">Used to get the HTML stream for the e-mail body.</td>
</tr>
</tbody>
</table>
<p><strong>Remarks</strong></p>
<p>The HTML stream that defines the DataValue for an e-mail body field is read-only. The DataValue is not available to be read in the <strong>OnLoad</strong> event.</p>
<p><strong>Example</strong></p>
<p>The following code example shows how to use a field of type E-mail body.</p>
<pre>var oField = crmForm.all.SOME_EMAILBODY_FIELD_ID;

alert(The field's HTML is: " + oField.DataValue);</pre>
</div>
<p> </p>
<h1><a name="TOC-2"></a> </h1>
<h1><a name="TOC-Float"></a><span style="font-family:verdana,sans-serif;"><a name="float">Float</a></span></h1>
<p><span style="font-family:verdana,sans-serif;">The following properties are available:</span></p>
<table border="1" cellpadding="5">
<tbody>
<tr valign="top">
<td width="27%"><strong><span style="font-family:verdana,sans-serif;">Float properties</span></strong></td>
<td width="15%"><strong><span style="font-family:verdana,sans-serif;">Type</span></strong></td>
<td width="58%"><strong><span style="font-family:verdana,sans-serif;">Description</span></strong></td>
</tr>
<tr valign="top">
<td width="27%"><span style="font-family:verdana,sans-serif;"><em>{Field}</em>.DataValue</span></td>
<td width="15%"><span style="font-family:verdana,sans-serif;">float or Null</span></td>
<td width="58%"><span style="font-family:verdana,sans-serif;">Get/set property. </span><span style="font-family:verdana,sans-serif;">The original value is left unchanged if the new value cannot be parsed.</span></td>
</tr>
<tr valign="top">
<td width="27%"><span style="font-family:verdana,sans-serif;"><em>{Field}</em>.Min</span></td>
<td width="15%"><span style="font-family:verdana,sans-serif;">Integer</span></td>
<td width="58%"><span style="font-family:verdana,sans-serif;">Get property. </span><span style="font-family:verdana,sans-serif;">Returns the minimum allowed value.</span></td>
</tr>
<tr valign="top">
<td width="27%"><span style="font-family:verdana,sans-serif;"><em>{Field}</em>.Max</span></td>
<td width="15%"><span style="font-family:verdana,sans-serif;">Integer</span></td>
<td width="58%"><span style="font-family:verdana,sans-serif;">Get property. </span><span style="font-family:verdana,sans-serif;">Returns the maximum allowed value.</span></td>
</tr>
<tr valign="top">
<td width="27%"><span style="font-family:verdana,sans-serif;"><em>{Field}</em>.Precision</span></td>
<td width="15%"><span style="font-family:verdana,sans-serif;">Integer</span></td>
<td width="58%"><span style="font-family:verdana,sans-serif;">Get property. </span><span style="font-family:verdana,sans-serif;">Returns the number of digits allowed. This is a value between 0 and 5.</span></td>
</tr>
</tbody>
</table>
<p> </p>
<p><strong><span style="font-family:verdana,sans-serif;">Example</span></strong></p>
<p><span style="font-family:verdana,sans-serif;"><span style="text-decoration:underline;">The following code example shows how to use a field of type Float.</span></span></p>
<pre><span style="font-family:verdana,sans-serif;">var oField = crmForm.all.SOME_FLOAT_FIELD_ID;

var iValue = 1976.1102;

// Set the precision of the value.
var oNumber = new Number(iValue);
iValue = oNumber.toPrecision(oField.Precision);

if (iValue &lt; oField.Min)
{
   iValue = oField.Min;
}
else if (iResponse &gt; oField.Max)
{
   iValue = oField.Max;
}

oField.DataValue = iValue;</span></pre>
<h1><a name="TOC-3"></a> </h1>
<h1><a name="TOC-Integer"></a><span style="font-family:verdana,sans-serif;"><a name="integer">Integer</a></span></h1>
<p><span style="font-family:verdana,sans-serif;">The following properties are available:</span></p>
<table border="1" cellpadding="5">
<tbody>
<tr valign="top">
<td width="27%"><strong><span style="font-family:verdana,sans-serif;">Integer properties</span></strong></td>
<td width="15%"><strong><span style="font-family:verdana,sans-serif;">Type</span></strong></td>
<td width="58%"><strong><span style="font-family:verdana,sans-serif;">Description</span></strong></td>
</tr>
<tr valign="top">
<td width="27%"><span style="font-family:verdana,sans-serif;"><em>{Field}</em>.DataValue</span></td>
<td width="15%"><span style="font-family:verdana,sans-serif;">Integer or Null</span></td>
<td width="58%"><span style="font-family:verdana,sans-serif;">Get/set property. </span><span style="font-family:verdana,sans-serif;">The original value is left unchanged if the new value cannot be parsed.</span></td>
</tr>
<tr valign="top">
<td width="27%"><span style="font-family:verdana,sans-serif;"><em>{Field}</em>.Min</span></td>
<td width="15%"><span style="font-family:verdana,sans-serif;">Integer</span></td>
<td width="58%"><span style="font-family:verdana,sans-serif;">Get property. </span><span style="font-family:verdana,sans-serif;">The minimum allowed value.</span></td>
</tr>
<tr valign="top">
<td width="27%"><span style="font-family:verdana,sans-serif;"><em>{Field}</em>.Max</span></td>
<td width="15%"><span style="font-family:verdana,sans-serif;">Integer</span></td>
<td width="58%"><span style="font-family:verdana,sans-serif;">Get property. </span><span style="font-family:verdana,sans-serif;">The maximum allowed value.</span></td>
</tr>
</tbody>
</table>
<p> </p>
<p><strong><span style="font-family:verdana,sans-serif;">Example</span></strong></p>
<p><span style="font-family:verdana,sans-serif;">The following code example shows how to use a field of type Integer.</span></p>
<pre><span style="font-family:verdana,sans-serif;">var oField = crmForm.all.SOME_INTEGER_FIELD_ID;

var iValue = 1000;

if (iValue &lt; oField.Min)
{
   iValue = oField.Min;
}
else if (iValue &gt; oField.Max)
{
   iValue = oField.Max;
}

oField.DataValue = iValue;</span></pre>
<div> </div>
<div> </div>
<div>
<h1><a name="lookup">Lookup</a></h1>
<p>A Lookup field type represents the relationship attribute on the related entity. The valid type for the lookup is established in the relationship. Although Lookup is frequently used as a generic term, there are different types of lookups and technically Lookup is the most restrictive kind of field type. Unlike <a href="http://sites.google.com/site/ranjitclub/v4d0_cp0900r_fieldtypecustomer.htm">Customer</a> or <a href="http://sites.google.com/site/ranjitclub/v4d0_cp0900r_fieldtyperegarding.htm">Regarding</a>, only one entity type is valid in a lookup. Unlike <a href="http://sites.google.com/site/ranjitclub/v4d0_cp0900r_fieldtypepartylist.htm">PartyList</a>, only one reference is stored in the field. A lookup field is defined by using the following attributes:</p>
<table border="1" cellpadding="5">
<tbody>
<tr valign="top">
<td width="27%"><strong>Attribute</strong></td>
<td width="12%"><strong>Type</strong></td>
<td width="61%"><strong>Description</strong></td>
</tr>
<tr valign="top">
<td width="27%">id</td>
<td width="12%">String</td>
<td width="61%">The GUID of the item. Required for set.</td>
</tr>
<tr valign="top">
<td width="27%">type</td>
<td width="12%">Integer</td>
<td width="61%">Deprecated. The object type code.</td>
</tr>
<tr valign="top">
<td width="27%">typename</td>
<td width="12%">String</td>
<td width="61%">The entity name of the item. Required for set.</td>
</tr>
<tr valign="top">
<td width="27%">name</td>
<td width="12%">String</td>
<td width="61%">The name of the item to be displayed. Required for set.</td>
</tr>
<tr valign="top">
<td width="27%">data</td>
<td width="12%"> </td>
<td width="61%">Any other data. Optional for set.</td>
</tr>
</tbody>
</table>
<p>The following properties are available:</p>
<table border="1" cellpadding="5">
<tbody>
<tr valign="top">
<td width="27%"><strong>Lookup properties</strong></td>
<td width="12%"><strong>Type</strong></td>
<td width="61%"><strong>Description</strong></td>
</tr>
<tr valign="top">
<td width="27%"><em>{Field}</em>.DataValue</td>
<td width="12%">An array of lookup objects</td>
<td width="61%">Get/set property.For lookups this must be an array with the length of one. DataValue is <strong>Null</strong> when no value is selected. Set DataValue to <strong>Null</strong> to make the lookup field blank.</td>
</tr>
</tbody>
</table>
<p><strong>Example</strong></p>
<p>The following code example shows how to read values from a field of type Lookup.</p>
<pre>var lookupItem = new Array;

// This gets the lookup for the attribute primarycontactid on the Account form.
lookupItem = crmForm.all.primarycontactid.DataValue;

// If there is data in the field, show it in a series of alerts.
if (lookupItem[0] != null)
{
   // The text value of the lookup.
   alert(lookupItem[0].name);

   // The GUID of the lookup.
   alert(lookupItem[0].id);

   // The entity type name.
   alert(lookupItem[0].typename);

}</pre>
<p><strong>Example</strong></p>
<p>The following code example shows how to set values in a field of type Lookup. This example shows how to set the parent account lookup field on the account form.</p>
<pre>//Create an array to set as the DataValue for the lookup control.
var lookupData = new Array();
//Create an Object add to the array.
   var lookupItem= new Object();
//Set the id, typename, and name properties to the object.
   lookupItem.id = '{1AAC1363-01A1-DB11-8432-0003FF9CE217}';
   lookupItem.typename = 'account';
   lookupItem.name = 'A Bike Store';
// Add the object to the array.
   lookupData[0] = lookupItem;
// Set the value of the lookup field to the value of the array.
   crmForm.all.parentaccountid.DataValue = lookupData;</pre>
</div>
<h1>
<a name="memo">Memo</a></h1>
<p>Memo represents a multiline text box using the ntext attribute type. The following properties are available:</p>
<table border="1" cellpadding="5">
<tbody>
<tr valign="top">
<td width="27%"><strong>Memo properties</strong></td>
<td width="24%"><strong>Type</strong></td>
<td width="49%"><strong>Description</strong></td>
</tr>
<tr valign="top">
<td width="27%"><em>{Field}</em>.DataValue</td>
<td width="24%">A reference to a <strong>string</strong> object</td>
<td width="49%">Get/set property.</td>
</tr>
<tr valign="top">
<td width="27%"><em>{Field}</em>.MaxLength</td>
<td width="24%">Integer</td>
<td width="49%">Get property.The maximum length of the string.</td>
</tr>
</tbody>
</table>
<p> </p>
<p><strong>Example</strong></p>
<p>This field is used in the same manner as a String Type.</p>
<div> </div>
<div> </div>
<div>
<h1><a name="owner">Owner</a></h1>
<p>A Owner field represents a <a href="http://sites.google.com/site/ranjitclub/v4d0_cp0900r_fieldtypelookup.htm">Lookup</a> where the linked record can be any record type that can be presented in the field.</p>
<p>The following properties are available:</p>
<table border="1" cellpadding="5">
<tbody>
<tr valign="top">
<td width="27%"><strong>Regarding properties</strong></td>
<td width="12%"><strong>Type</strong></td>
<td width="61%"><strong>Description</strong></td>
</tr>
<tr valign="top">
<td width="27%"><em>{Field}</em>.DataValue</td>
<td width="12%"> </td>
<td width="61%">For the regarding field type this is an array with a length of one. DataValue is <strong>Null</strong> when no value is selected. Set DataValue to <strong>Null</strong> to make the lookup field blank.</td>
</tr>
</tbody>
</table>
<p><strong>Example</strong></p>
<p>The following code example shows how to use a field of type Owner.</p>
<pre>var lookupItem = new Array;
lookupItem = null;

// This gets the lookup for the attribute regardingobjectid on the Task form.
lookupItem = crmForm.all.ownerid.DataValue;

// If there is data in the field, show it in a series of alerts.
if (lookupItem[0] != null)
{
   // The text value of the lookup.
   alert(lookupItem[0].name);

   // The GUID of the lookup.
   alert(lookupItem[0].id);

   // The entity type name.
   alert(lookupItem[0].typename);
}
</pre>
</div>
<h1><a name="partylist">PartyList</a></h1>
<p>A type of <a href="http://sites.google.com/site/ranjitclub/v4d0_cp0900r_fieldtypelookup.htm">Lookup</a> that allows for multiple references to records of multiple types of entities to be set in a single field. A PartyList is typically found on e-mail activities to represent the To, Bcc and cc fields. A PartyList is defined by using the following attributes:</p>
<table border="1" cellpadding="5">
<tbody>
<tr valign="top">
<td width="27%"><strong>Attribute</strong></td>
<td width="12%"><strong>Type</strong></td>
<td width="61%"><strong>Description</strong></td>
</tr>
<tr valign="top">
<td width="27%">id</td>
<td width="12%">String</td>
<td width="61%">The GUID of the item. Required for set.</td>
</tr>
<tr valign="top">
<td width="27%">type</td>
<td width="12%">Integer</td>
<td width="61%">Deprecated. The object type code.</td>
</tr>
<tr valign="top">
<td width="27%">typename</td>
<td width="12%">String</td>
<td width="61%">The entity name of the item. Required for set.</td>
</tr>
<tr valign="top">
<td width="27%">name</td>
<td width="12%">String</td>
<td width="61%">The name of the item to be displayed. Required for set.</td>
</tr>
<tr valign="top">
<td width="27%">data</td>
<td width="12%"> </td>
<td width="61%">Any other data. Optional for set.</td>
</tr>
</tbody>
</table>
<p> </p>
<p>The following properties are available:</p>
<table border="1" cellpadding="5">
<tbody>
<tr valign="top">
<td width="27%"><strong>PartyList properties</strong></td>
<td width="12%"><strong>Type</strong></td>
<td width="61%"><strong>Description</strong></td>
</tr>
<tr valign="top">
<td width="27%"><em>{Field}</em>.DataValue</td>
<td width="12%">An array of lookup objects</td>
<td width="61%">Get/set property.For PartyLists this must be an array with the length of at least one. DataValue is <strong>Null</strong> when no value is selected. Set DataValue to <strong>Null</strong> to make the lookup field blank.</td>
</tr>
</tbody>
</table>
<div> </div>
<div> </div>
<h1><a name="picklist">Picklist</a></h1>
<p>A picklist contains several options. Each option has the following attributes:</p>
<div>
<table border="1" cellpadding="5">
<tbody>
<tr valign="top">
<td width="27%"><strong>Attribute</strong></td>
<td width="73%"><strong>Description</strong></td>
</tr>
<tr valign="top">
<td width="27%">DataValue</td>
<td width="73%">The index value of the selected option.</td>
</tr>
<tr valign="top">
<td width="27%">Text</td>
<td width="73%">The text of the picklist option.</td>
</tr>
</tbody>
</table>
</div>
<p>The following properties and methods are available:</p>
<div>
<table border="1" cellpadding="5">
<tbody>
<tr valign="top">
<td width="32%"><strong>Picklist properties and methods</strong></td>
<td width="15%"><strong>Type</strong></td>
<td width="53%"><strong>Description</strong></td>
</tr>
<tr valign="top">
<td width="32%"><em>{Field}</em>.DataValue</td>
<td width="15%">string</td>
<td width="53%">Get/set propertyGet returns a string representation of the value of the selected option. You can use the method <strong>parseInt()</strong> to safely convert this to an <strong>integer</strong> value.</p>
<p>Set changes the selection to the value specified.</td>
</tr>
<tr valign="top">
<td width="32%"><em>{Field}</em>.SelectedText</td>
<td width="15%">string</td>
<td width="53%">Get propertyReturns the string value of the selected option.</td>
</tr>
<tr valign="top">
<td width="32%"><em>{Field}</em>.GetSelectedOption</td>
<td width="15%">option</td>
<td width="53%">Picklist optionReturns a Picklist option.</td>
</tr>
<tr valign="top">
<td width="32%"><em>{Field}</em>.Options</td>
<td width="15%">array of picklist options</td>
<td width="53%">Get/set propertyGet returns an array of Picklist option objects.</p>
<p>Set defines a new set of options, specified by an array of Picklist option objects.</td>
</tr>
<tr valign="top">
<td width="32%"><em>{Field}</em>.AddOption(<em>Text, DataValue</em>)</td>
<td width="15%">option</td>
<td width="53%">Used to add an option to the end of the current control&#8217;s collection.<em>Text</em> &#8211; a string value to be displayed in the option.</p>
<p><em>DataValue</em> – an integer value that represents the index of the option.</p>
<p>Text and DataValue cannot be <strong>Null</strong>.</p>
<p>Data is used for storing arbitrary data on the picklist object.</p>
<p>To define valid options, you must modify the Attribute definition by using the Customization tools or the metadata APIs. You should not create new picklist options programmatically in form event code. Manipulating the Options array is the most common solution to ensure valid picklist data.</td>
</tr>
<tr valign="top">
<td width="32%"><em>{Field}</em>.DeleteOption(<em>value</em>)</td>
<td width="15%">integer</td>
<td width="53%">Used to delete the option specified by <em>value</em> from the control&#8217;s option collection. Does nothing if the option does not exist.</td>
</tr>
<tr valign="top">
<td width="32%"><em>{Field}</em>.DefaultValue</td>
<td width="15%">integer</td>
<td width="53%">Get/set property.Get returns the default value for the picklist.</p>
<p>Set specifies the default value for the picklist.</td>
</tr>
</tbody>
</table>
</div>
<p><strong>Remarks</strong></p>
<p>All the valid picklist options are defined in the Microsoft Dynamics CRM Metadata. When a record is saved with an invalid picklist option selected the field will be set to the default value and the invalid data will be lost.</p>
<p>There are two supported methods for retrieving the current selection for a picklist field as shown here.</p>
<p>The following returns the text value of the selected picklist item.</p>
<pre>crmForm.all.(picklistitem).SelectedText</pre>
<p>The following returns the index of the selected picklist item.</p>
<pre>crmForm.all.(picklistitem).DataValue</pre>
<p><strong>Example</strong></p>
<p>The following code example shows how to use a field of type Picklist. Note that when you add an option to a Picklist, the option must already exist in the set of possible options.</p>
<pre>var oField = crmForm.all.SOME_PICKLIST_FIELD_ID;

// Capture the fourth option
var oOption = oField.Options[4];

// Show how many options are available
alert("Original length :"+ oField.Options.length);

// Set the field to the first option by value
oField.DataValue = 1;

// Show the text for the first option
alert(oField.SelectedText);

// Remove the fourth option
oField.DeleteOption(4);

// show the new length
alert("New length :"+ oField.Options.length);

// Restore the fourth option
oField.AddOption(oOption.Text, oOption.DataValue);

// Show the restored length
alert("Restored length :"+ oField.Options.length); </pre>
<div> </div>
<h1><a name="regarding">Regarding</a></h1>
<p>A Regarding field represents a <a href="http://sites.google.com/site/ranjitclub/v4d0_cp0900r_fieldtypelookup.htm">Lookup</a> where the linked record can be any record type that can be presented in the field.</p>
<p>The following properties are available:</p>
<table border="1" cellpadding="5">
<tbody>
<tr valign="top">
<td width="27%"><strong>Regarding properties</strong></td>
<td width="12%"><strong>Type</strong></td>
<td width="61%"><strong>Description</strong></td>
</tr>
<tr valign="top">
<td width="27%"><em>{Field}</em>.DataValue</td>
<td width="12%"> </td>
<td width="61%">For the regarding field type this is an array with a length of one. DataValue is <strong>Null</strong> when no value is selected. Set DataValue to <strong>Null</strong> to make the lookup field blank.</td>
</tr>
</tbody>
</table>
<p> </p>
<p><strong>Example</strong></p>
<p>The following code example shows how to use a field of type Regarding.</p>
<pre>var lookupItem = new Array;
lookupItem = null;

// This gets the lookup for the attribute regardingobjectid on the Task form.
lookupItem = crmForm.all.regardingobjectid.DataValue;

// If there is data in the field, show it in a series of alerts.
if (lookupItem[0] != null)
{
   // The text value of the lookup.
   alert(lookupItem[0].name);

   // The GUID of the lookup.
   alert(lookupItem[0].id);

   // The entity type name.
   alert(lookupItem[0].typename);
} </pre>
<p><span style="font-family:verdana,sans-serif;"><span style="font-size:x-large;font-family:Arial;"><strong><a name="string">String</a></strong></span>The following properties are available:</p>
<p></span></p>
<table border="1" cellpadding="5">
<tbody>
<tr valign="top">
<td width="27%"><strong>String properties</strong></td>
<td width="24%"><strong>Type</strong></td>
<td width="49%"><strong>Description</strong></td>
</tr>
<tr valign="top">
<td width="27%"><em>{Field}</em>.DataValue</td>
<td width="24%">A reference to a <strong>string</strong> object</td>
<td width="49%">Get/set property.</td>
</tr>
<tr valign="top">
<td width="27%"><em>{Field}</em>.MaxLength</td>
<td width="24%">Integer</td>
<td width="49%">Get property.The maximum length of the string.</td>
</tr>
</tbody>
</table>
<p><span style="font-family:verdana,sans-serif;"><br />
<strong>Example</strong></p>
<p>The following code example shows how to use a field of type String.</p>
<pre>var oField = crmForm.all.SOME_STRING_FIELD_ID;

var sValue = "String that might be too long.";

if (sValue.length &gt; oField.MaxLength)
{
   sValue = sValue.substr(0, oField.MaxLength); 
}

oField.DataValue = sValue;
</pre>
<p></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osubrenden.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osubrenden.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osubrenden.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osubrenden.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osubrenden.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osubrenden.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osubrenden.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osubrenden.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osubrenden.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osubrenden.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osubrenden.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osubrenden.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osubrenden.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osubrenden.wordpress.com/78/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=78&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osubrenden.wordpress.com/2010/05/13/working-with-crm-4-0-data-types-and-form-controls/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3fb676af851aef20b2499952d402d8be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">CRMbrenden</media:title>
		</media:content>
	</item>
		<item>
		<title>Great free icons and images</title>
		<link>http://osubrenden.wordpress.com/2010/01/26/great-free-icons-and-images/</link>
		<comments>http://osubrenden.wordpress.com/2010/01/26/great-free-icons-and-images/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 17:09:26 +0000</pubDate>
		<dc:creator>CRMbrenden</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[icons]]></category>
		<category><![CDATA[images]]></category>

		<guid isPermaLink="false">http://extremecrm.net/2010/01/26/great-free-icons-and-images/</guid>
		<description><![CDATA[I found a website with no nonsense free icons, they are really clean and professional. http://icons.mysitemyway.com/<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=74&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I found a website with no nonsense free icons, they are really clean and professional.</p>
<p>http://icons.mysitemyway.com/</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osubrenden.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osubrenden.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osubrenden.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osubrenden.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osubrenden.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osubrenden.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osubrenden.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osubrenden.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osubrenden.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osubrenden.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osubrenden.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osubrenden.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osubrenden.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osubrenden.wordpress.com/74/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=74&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osubrenden.wordpress.com/2010/01/26/great-free-icons-and-images/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3fb676af851aef20b2499952d402d8be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">CRMbrenden</media:title>
		</media:content>
	</item>
		<item>
		<title>CRM 4.0,  SQL Server 2005, Column and Row Limitaions</title>
		<link>http://osubrenden.wordpress.com/2009/11/19/crm-dql-server-column-and-row-limitaions/</link>
		<comments>http://osubrenden.wordpress.com/2009/11/19/crm-dql-server-column-and-row-limitaions/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 22:34:05 +0000</pubDate>
		<dc:creator>CRMbrenden</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[4.0]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[Entity Size]]></category>
		<category><![CDATA[Limitation]]></category>
		<category><![CDATA[Microsoft Dynamics]]></category>

		<guid isPermaLink="false">http://extremecrm.net/2009/11/19/crm-dql-server-column-and-row-limitaions/</guid>
		<description><![CDATA[Speaking with Microsoft I was told there is a limitation of either 8060 bytes per row or 1024 columns per table and that there is also a limit of 400 bittype/picklist combination. I,m not sure I belive them so I will do some further research. I&#8217;m aware that these limitations existed with SQL Server 2000 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=69&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Speaking with Microsoft I was told there is a limitation of either 8060 bytes per row or 1024 columns per table and that there is also a limit of 400 bittype/picklist combination.</p>
<p>I,m not sure I belive them so I will do some further research.  I&#8217;m aware that these limitations existed with SQL Server 2000 but with 2005, 2008 they should not imo.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osubrenden.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osubrenden.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osubrenden.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osubrenden.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osubrenden.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osubrenden.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osubrenden.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osubrenden.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osubrenden.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osubrenden.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osubrenden.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osubrenden.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osubrenden.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osubrenden.wordpress.com/69/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=69&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osubrenden.wordpress.com/2009/11/19/crm-dql-server-column-and-row-limitaions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3fb676af851aef20b2499952d402d8be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">CRMbrenden</media:title>
		</media:content>
	</item>
		<item>
		<title>Microsoft CRM 4.0 SSRS 2008 Integration</title>
		<link>http://osubrenden.wordpress.com/2009/03/17/microsoft-crm-40-ssrs-2008-integration/</link>
		<comments>http://osubrenden.wordpress.com/2009/03/17/microsoft-crm-40-ssrs-2008-integration/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 19:16:03 +0000</pubDate>
		<dc:creator>CRMbrenden</dc:creator>
				<category><![CDATA[CRM 4.0]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://extremecrm.net/?p=36</guid>
		<description><![CDATA[The following document contains a proposed  Microsoft CRM 4.0 SSRS 2008 Integration architecture I worked with Microsoft to create along with a number of roadblock solutions for various errors encountered while attempting to integrate SSRS with Microsoft CRM 4.0.  To simplify the integration concepts I have limited the server configuration to 2 servers. Overview of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=36&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The following document contains a proposed  Microsoft CRM 4.0 SSRS 2008 Integration architecture I worked with Microsoft to create along with a number of roadblock solutions for various errors encountered while attempting to integrate SSRS with Microsoft CRM 4.0.  To simplify the integration concepts I have limited the server configuration to 2 servers.</p>
<h4><span style="color:#3366ff;">Overview of Microsoft CRM 4.0 integrated with SSRS 2008</span></h4>
<p><span style="color:#3366ff;"><img class="alignnone size-medium wp-image-43" title="crm_ssrs20081" src="http://osubrenden.files.wordpress.com/2009/03/crm_ssrs20081.jpg?w=300&h=247" alt="crm_ssrs20081" width="300" height="247" /><br />
</span></p>
<h4><span style="color:#3366ff;">Setup CRM Data Connector for SSRS 2008 Scaled Out Deployment</span></h4>
<p>The CRM Data Connector acts as a IFD authentication service for SSRS.  The setup wizard is straight forward but there are two potential snags</p>
<p>The first snag is that the Data Connector setup can&#8217;t automatically handle a Scaled Out deployment which you almost certainly will be using.  To work around this you must run the Data Connector from the command prompt and specify the install-config.xml file and path.  The Data Connector install-config.xml file tells the setup program where the instances of SSRS are located.  Were you to run the setup program without specifying the install-config.xml file you would get the following error:</p>
<p><span style="color:#ff0000;"><em>Error message in the Environmental Diagnostic wizard when you try to install the Microsoft Dynamics CRM Connector for SQL Server Reporting Services: &#8220;Unable to validate SQL Server Reporting Services Report Server installation&#8221;</em></span></p>
<p><span style="color:#ff0000;"><em><br />
</em></span></p>
<p>Here are the instruction for modifying the install-config.xml and running setup from the command line.</p>
<p>1.     Copy all the files in the SrsDataConnector folder on the installation CD to a folder on drive C. For example, copy the files to the following folder:</p>
<p>C:\SrsDataConnector</p>
<p><strong>Note</strong> The SrsDataConnector folder is located in the following folder on the installation CD:</p>
<p><em>drive</em>:\Server\i386</p>
<p>The <em>drive</em> placeholder represents the CD drive.</p>
<p>2.     Locate the folder in which you copied the installation files. Right-click the <strong>Install-config.xml</strong> file, and then open the file in Notepad.</p>
<p>3.     Add the following information to the Install-config.xml file:</p>
<p>The reportserverurl tags</p>
<p>The URL for the server that is running SQL Server 2005 Reporting Services</p>
<p>For example, if the server that is running Reporting Services has a named instance of Titan, the reportserverurl tags resemble the following example.</p>
<p>&lt;reportserverurl&gt;http://servername/Reportserver$Titan&lt;/reportserverurl&gt;</p>
<p>If the server that is running SQL Server 2005 Reporting Services has a named instance, modify the instancename tags.</p>
<p>For example, if the server that is running Reporting Services has a named instance of Titan, the instancename tags resemble the following example.</p>
<p>&lt;instancename&gt;Titan&lt;/instancename&gt;</p>
<p>After you complete steps 3 and 4, click <strong>Save</strong> on the <strong>File</strong> menu, and then close the Install-config.xml file.</p>
<p>Open a Command Prompt window, and then locate the folder in which you copied the installation files in step 1.</p>
<p>At the command prompt, type the following command, and then press ENTER:</p>
<p><em>C:\SrsDataConnector&gt; SetupSrsDataConnector /CONFIG </em><em>path of the folder that contains the Install-config.xml file\install-config.xml </em></p>
<p>The second item to note is that it&#8217;s important to choose the &#8220;Update installation files&#8221;, when the setup wizard first runs.  In my experience the process will fail if you don&#8217;t choose this option.</p>
<p><strong> </strong></p>
<p><em>For further information visit Microsoft</em></p>
<p><a href="http://support.microsoft.com/kb/947060"><strong>http://support.microsoft.com/kb/947060</strong></a></p>
<p><strong><br />
</strong></p>
<p><strong> </strong></p>
<h4><span style="color:#3366ff;">Map SSRS2008 Web Service URL to work with a named instance</span></h4>
<p>When you install Microsoft Dynamics CRM 4.0 together with Microsoft SQL Server 2008 and SQL Server 2008 Reporting Services all on the same server, you may receive the following error message:</p>
<p>&#8220;The specified path is not a metabase path.&#8221; Platform Error: System.Exception: Action Microsoft.Crm.Setup.Server.RSConfigAction failed. &#8212;&gt; System.ArgumentException: The specified path is not a metabase path.</p>
<p>This issue occurs when the path of Reporting Services does not exist on the server.</p>
<p>To work around this issue, create a Web site that runs on the same port and the same URL that the Reporting Services server is using. In SQL Server 2008 Reporting Services, IIS is not used for accessing reports. However, if Microsoft Dynamics CRM 4.0 is installed on the same server, Microsoft Dynamics CRM 4.0 must find a Web site that has the same URL to bypass the error. To verify the URL of Reporting Services, follow these steps:</p>
<p>1.     Click <strong>Start</strong>, click <strong>All Programs</strong>, click <strong>Microsoft SQL Server 2008</strong>, click <strong>Configuration Tools</strong>, and then click <strong>Reporting Services Configuration Manager</strong>.</p>
<p>2.     Click <strong>connect</strong> to connect to your report server instance.</p>
<p>3.     Click the Web service URL, and see what the report server Web service URL is. For example, the URL may be http://<em>SQLServername</em>:8181/ReportServer.</p>
<p>In Windows Server 2008, follow these steps:</p>
<p>1.     Click <strong>Start</strong>, click <strong>Run</strong>, and then type <strong>inetmgr</strong>.</p>
<p>2.     Expand the server name, right-click <strong>Sites</strong>, and then click <strong>Add Website</strong>.</p>
<p>3.     Enter a name for the site, and then select a physical path.</p>
<p>4.     Enter the port number of the report server Web service. For example, enter <strong>8181</strong>.</p>
<p>5.     Click <strong>OK</strong>.</p>
<p>In Windows Server 2003, follow these steps:</p>
<p>1.     Click <strong>Start</strong>, click <strong>Run</strong>, and then type <strong>inetmgr</strong>.</p>
<p>2.     Expand the server name, right-click <strong>Web Sites</strong>, click <strong>New</strong>, and then click <strong>Web Site</strong>.</p>
<p>3.     Enter a description for the site, and then click <strong>Next</strong>.</p>
<p>4.     Enter the port number of the report server Web service. For example, enter <strong>8181</strong>, and then click <strong>Next</strong>.</p>
<p>5.     Enter a path for the Web site, and then click <strong>Next</strong>.</p>
<p>6.     On the <strong>Permissions</strong> page, click <strong>Next</strong>.</p>
<p>7.     Click <strong>Finish</strong>.</p>
<h4><span style="color:#3366ff;">Configure Microsoft Dynamics CRM with Deployment manager</span></h4>
<p>1.     Configure the Microsoft Dynamics CRM Application to point to the new SQL Server and SQL Server Reporting Services. To do this, follow these steps:</p>
<p>2.     On the computer that is running Microsoft Dynamics CRM Server, click <strong>Start</strong>, point to <strong>All Programs</strong>, point to <strong>Microsoft Dynamics CRM</strong>, and then click <strong>Deployment Manager</strong>.</p>
<p>3.     Click <strong>Organizations</strong>.</p>
<p>4.     Right-click the organization that you moved to the new computer that is running SQL Server, and then click <strong>Disable</strong>.</p>
<p>5.     Right-click the organization that you disabled, and then click <strong>Edit Organization</strong>.</p>
<p>6.     Type the new name of the SQL Server and the new URL for the SQL Server Reporting Services server.<br />
<strong>Note</strong> This step publishes the reports that are in Microsoft Dynamics CRM to the new computer that is running SQL Server Reporting Services server that you specify.</p>
<p>7.     Click <strong>Next</strong> two times, and then click <strong>Apply</strong>.</p>
<p>Right-click the organization that you disabled in step 4c, click <strong>Enable</strong>, and then click <strong>Yes</strong>.</p>
<h4><span style="color:#3366ff;">Use embedded data-sources</span></h4>
<p>Microsoft CRM 4.0 does not support shared data-sources which is basically the default for SSRS2008.  Be sure to change any shared data-sources to embedded data-sources as follows:</p>
<p>1.     Open the report in Report Designer.</p>
<p>2.     On the Data tab, click the lookup button to the right of the Dataset list.</p>
<p>3.     Click the lookup button to the right of the Data Source list.</p>
<p>4.     Click to clear the Use shared data source reference check box.</p>
<p>5.     Click Edit to the right of the Connection box.</p>
<p>6.     In the Server name box, type the server name. Then, select the authentication method and the correct database name.</p>
<p>7.     Click OK two times.</p>
<p>8.     On the File menu, click Save as.</p>
<p>9.     Save the report on the Microsoft Dynamics CRM server, and then add the report.</p>
<h4><span style="color:#3366ff;">Rollup 2 is required if you are using stored procedures in your reports</span></h4>
<p>When you attempt to run a report from CRM 4.0 you likely will receive the following error:</p>
<p><em><span style="color:#ff0000;">&#8220;Query execution failed for data set dsNorthwind&#8221;.</span></em></p>
<p>There are two possible solutions for this.  Either apply the hotfix found in the link below or apply Rollup 2 for Microsoft CRM 4.0.  Since Rollup 2 for Microsoft CRM 4.0 includes the aforementioned hotfix I recommend this approach.  Also to get the hotfix files separate from Rollup 2 you will have to contact Microsoft.</p>
<p><a href="http://support.microsoft.com/kb/956852">http://support.microsoft.com/kb/956852</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osubrenden.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osubrenden.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osubrenden.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osubrenden.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osubrenden.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osubrenden.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osubrenden.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osubrenden.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osubrenden.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osubrenden.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osubrenden.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osubrenden.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osubrenden.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osubrenden.wordpress.com/36/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=36&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osubrenden.wordpress.com/2009/03/17/microsoft-crm-40-ssrs-2008-integration/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3fb676af851aef20b2499952d402d8be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">CRMbrenden</media:title>
		</media:content>

		<media:content url="http://osubrenden.files.wordpress.com/2009/03/crm_ssrs20081.jpg?w=300" medium="image">
			<media:title type="html">crm_ssrs20081</media:title>
		</media:content>
	</item>
		<item>
		<title>Microsoft support page for using CRM 4.0 with SSRS 2008 and or SQL 2008 Database engine</title>
		<link>http://osubrenden.wordpress.com/2009/01/06/microsoft-support-page-for-using-crm-40-with-ssrs-2008-and-or-sql-2008-database-engine/</link>
		<comments>http://osubrenden.wordpress.com/2009/01/06/microsoft-support-page-for-using-crm-40-with-ssrs-2008-and-or-sql-2008-database-engine/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 23:51:51 +0000</pubDate>
		<dc:creator>CRMbrenden</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[CRM Reporting]]></category>
		<category><![CDATA[SQL 2008]]></category>
		<category><![CDATA[SSRS 2008]]></category>

		<guid isPermaLink="false">http://extremecrm.net/2009/01/06/microsoft-support-page-for-using-crm-40-with-ssrs-2008-and-or-sql-2008-database-engine/</guid>
		<description><![CDATA[Microsoft has begun officially supporting SSRS 2008 for use with CRM 4.0. You can use just reporting services or do a full CRM implementation on the SQL 2008 DB platform. In the near future I will be posting a detailed article on my test results a preferred approach but until then I wanted to get [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=34&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Microsoft has begun officially supporting SSRS 2008 for use with CRM 4.0.  You can use just reporting services or do a full CRM implementation  on the SQL 2008 DB platform.  In the near future I will be posting a detailed article on my test results a preferred approach but until then I wanted to get this Microsoft link out which provides fixes for several known issues.</p>
<p>http://support.microsoft.com/kb/957053</p>
<p>Best of luck!</p>
<p><img src="http://osubrenden.files.wordpress.com/2008/11/crmlogo.jpg?w=600" alt="Microsoft CRM  Logo" title="Microsoft CRM  Logo"   class="alignnone size-full wp-image-15" /></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osubrenden.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osubrenden.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osubrenden.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osubrenden.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osubrenden.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osubrenden.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osubrenden.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osubrenden.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osubrenden.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osubrenden.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osubrenden.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osubrenden.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osubrenden.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osubrenden.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=34&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osubrenden.wordpress.com/2009/01/06/microsoft-support-page-for-using-crm-40-with-ssrs-2008-and-or-sql-2008-database-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3fb676af851aef20b2499952d402d8be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">CRMbrenden</media:title>
		</media:content>

		<media:content url="http://osubrenden.files.wordpress.com/2008/11/crmlogo.jpg" medium="image">
			<media:title type="html">Microsoft CRM  Logo</media:title>
		</media:content>
	</item>
		<item>
		<title>How to remove the help menu’s from CRM 4.0</title>
		<link>http://osubrenden.wordpress.com/2008/12/26/how-to-remove-the-help-menu%e2%80%99s-from-crm-40/</link>
		<comments>http://osubrenden.wordpress.com/2008/12/26/how-to-remove-the-help-menu%e2%80%99s-from-crm-40/#comments</comments>
		<pubDate>Fri, 26 Dec 2008 00:04:25 +0000</pubDate>
		<dc:creator>CRMbrenden</dc:creator>
				<category><![CDATA[Customization]]></category>
		<category><![CDATA[Menu]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[4.0]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[Custom]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://osubrenden.wordpress.com/?p=17</guid>
		<description><![CDATA[The standard Microsoft CRM 4.0 help menu’s offer a lot more than help, they offer upgrade information, links to partners and solution providers and many other options that might not be suitable for many ISV’s or partners creating custom CRM 4.0 applications.  Since Microsoft doesn’t provide an option to remove these menus’s I came up [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=17&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://osubrenden.files.wordpress.com/2008/11/crmlogo1.jpg"><img class="alignnone size-full wp-image-18" title="crmlogo1" src="http://osubrenden.files.wordpress.com/2008/11/crmlogo1.jpg?w=600" alt="crmlogo1"   /></a></p>
<p>The standard Microsoft CRM 4.0 help menu’s offer a lot more than help, they offer upgrade information, links to partners and solution providers and many other options that might not be suitable for many ISV’s or partners creating custom CRM 4.0 applications.  Since Microsoft doesn’t provide an option to remove these menus’s I came up with the following solutions.  Please consider  this is an unsupported modification.</p>
<p>There are two main areas that the help menu’s are presented to the user, the 1st is in the main CRM work area (shown below).</p>
<div id="attachment_19" class="wp-caption alignnone" style="width: 138px"><a href="http://osubrenden.files.wordpress.com/2008/11/helpmain3.jpg"><img class="size-thumbnail wp-image-19" title="helpmain3" src="http://osubrenden.files.wordpress.com/2008/11/helpmain3.jpg?w=128&h=27" alt="CRM Main Page" width="128" height="27" /></a><p class="wp-caption-text">CRM Main Page</p></div>
<p>To remove or alter this menu we must alter one of the CRM 4.0 base pages, bar_Top.aspx, the default location is  \Program Files\Microsoft Dynamics CRM\CRMWeb\_root\.   Take note your CRMWeb folder might be installed elswhere depending on your virtual directory structure.<br />
Since we will be overloading the menu’s we need to place the new code in a location that executes after the menu elements have been rendered.  I recommend just after the closing body tag.</p>
<p>The JavaScript to hide a menu is very simple:<br />
var helpMenu = document.getElementById(&#8216;mnu_helpUpdates&#8217;);<br />
helpMenu.style.display = &#8216;none&#8217;;</p>
<p>The code above will hide the Update Help menu.  I recommend not making dramatic edits to the base CRM pages, a better approach is to use a global JavaScript file and include it in to the base page bar_Top.aspx.</p>
<p>So far all we have done is remove a menu from the main CRM page, each entity edit page contains it’s own help menu’s.  Most of the edit pages can be found at \Program Files\Microsoft Dynamics CRM\CRMWeb\sfa\  within the SFA folder the subfolders are named after the standard entity’s for example the Accounts entity’s path is \\dev1\c$\Program Files\Microsoft Dynamics CRM\CRMWeb\SFA\accts and the pages are almost always named edit.aspx.   We can use the same code as before and again I recommend placing the include after the closing body tag.<br />
The good new is you don’t have to handle all your custom entity pages  one by one, by editing the edit.aspx page located at \Program Files\Microsoft Dynamics CRM\CRMWeb\UserDefined\  all your custom entity pages  will be taken care of.<br />
You might be wondering if there is a centtral place that you could place your code to handle all the standard entity pages but I haven’t found such a location that works consitantly across the board.</p>
<p>The other menu ID’s are found here in the completed script:<br />
&lt;script language=&#8221;JavaScript&#8221;&gt;<br />
var helpMenu = document.getElementById(&#8216;mnu_about&#8217;);<br />
helpMenu.style.display = &#8216;none&#8217;;<br />
var helpMenu = document.getElementById(&#8216;mnu_helpUpdates&#8217;);<br />
helpMenu.style.display = &#8216;none&#8217;;<br />
var helpMenu = document.getElementById(&#8216;mnu_crmLive&#8217;);<br />
helpMenu.style.display = &#8216;none&#8217;;<br />
var helpMenu = document.getElementById(&#8216;mnu_helpOn&#8217;);<br />
helpMenu.style.display = &#8216;none&#8217;;<br />
var helpMenu = document.getElementById(&#8216;mnu_troubleShoot&#8217;);<br />
helpMenu.style.display = &#8216;none&#8217;;<br />
var helpMenu = document.getElementById(&#8216;mnu_helpContent&#8217;);<br />
helpMenu.style.display = &#8216;none&#8217;;<br />
var helpMenu = document.getElementById(&#8216;mnu_adminGuide&#8217;);<br />
helpMenu.style.display = &#8216;none&#8217;;<br />
&lt;/script&gt;</p>
<p>Good luck!<br />
Brenden</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osubrenden.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osubrenden.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osubrenden.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osubrenden.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osubrenden.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osubrenden.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osubrenden.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osubrenden.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osubrenden.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osubrenden.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osubrenden.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osubrenden.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osubrenden.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osubrenden.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&#038;blog=5564373&#038;post=17&#038;subd=osubrenden&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osubrenden.wordpress.com/2008/12/26/how-to-remove-the-help-menu%e2%80%99s-from-crm-40/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3fb676af851aef20b2499952d402d8be?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">CRMbrenden</media:title>
		</media:content>

		<media:content url="http://osubrenden.files.wordpress.com/2008/11/crmlogo1.jpg" medium="image">
			<media:title type="html">crmlogo1</media:title>
		</media:content>

		<media:content url="http://osubrenden.files.wordpress.com/2008/11/helpmain3.jpg?w=128" medium="image">
			<media:title type="html">helpmain3</media:title>
		</media:content>
	</item>
	</channel>
</rss>
