<?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</title>
	<atom:link href="http://osubrenden.wordpress.com/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</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&amp;blog=5564373&amp;post=125&amp;subd=osubrenden&amp;ref=&amp;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&#038;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&amp;blog=5564373&amp;post=125&amp;subd=osubrenden&amp;ref=&amp;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>HTML Editor for Microsoft Dynamics CRM 4.0</title>
		<link>http://osubrenden.wordpress.com/2010/11/10/html-editor-for-microsoft-dynamics-crm-4-0/</link>
		<comments>http://osubrenden.wordpress.com/2010/11/10/html-editor-for-microsoft-dynamics-crm-4-0/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 20:21:33 +0000</pubDate>
		<dc:creator>CRMbrenden</dc:creator>
				<category><![CDATA[CRM 4.0]]></category>
		<category><![CDATA[Customization]]></category>
		<category><![CDATA[Web development]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[HTML Editor]]></category>
		<category><![CDATA[Microsoft CRM 4.0]]></category>
		<category><![CDATA[Richtext editor]]></category>
		<category><![CDATA[tinyMCE]]></category>

		<guid isPermaLink="false">http://extremecrm.net/?p=115</guid>
		<description><![CDATA[Until Microsoft Dynamics 5.0 to comes out the only way to get a HTML or Rich Text editor capability in Microsoft Dynamics CRM 4.0 is to roll your own or use a third party application.  I have had tremendous success using the TinyMCE  editor.  click here to download The editor has a plethora of features [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&amp;blog=5564373&amp;post=115&amp;subd=osubrenden&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Until Microsoft Dynamics 5.0 to comes out the only way to get a HTML or Rich Text editor capability in Microsoft Dynamics CRM 4.0 is to roll your own or use a third party application.  I have had tremendous success using the TinyMCE  editor.  <a title="Click here to download the editor" href="http://tinymce.moxiecode.com/download.php" target="_blank">click here to download</a> The editor has a plethora of features available including everything from spell check to word count and is available in a number of  build format and examples including;   jQuery, JavaScript, PHP, .Net and JSP.  I prefer to use the jQuery build for my Microsoft Dynamics CRM 4.0 implementations.</p>
<p>Below I have included a code sample you can use in your custom iFrame.  Accessing the raw HTML source during the CRM onSave event was a little bit tricky, here’s the code for that.</p>
<pre>crmForm.all.IFRAME_Accomplishment.contentWindow.tinymce.getInstanceById('elm1').getBody().innerHTML</pre>
<p>You can either make a call to the CRM SDK and save this value to the database or use javascript and simply copy to a hidden  nText  field located  directly on the form next to the iFrame.  All we have to do is save and load the raw HTML and the HTML editor does the rest.</p>
<p>I use a FetchXML function to load the raw HTML…</p>
<pre>$('#elm1').val(GetContacts());</pre>
<p>The GetContacts function simply uses FetchXML to retrieve the value of a nText attribute I have added to the Contacts entity.</p>
<h4><strong>Here’s a page that instantiates a HTML editor in a iFrame for use in Microsoft Dynamics CRM 4.0.</strong></h4>
<pre>&lt;head&gt;
&lt;title&gt;Full featured Microsoft Dynamics CRM 4.0 tinyMCE example using jQuery plugin by ExtremeCRM.net&lt;/title&gt;

&lt;!-- Load jQuery --&gt;
&lt;script type="text/javascript" src="http://www.google.com/jsapi"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
 google.load("jquery", "1");
&lt;/script&gt;

&lt;!-- Load TinyMCE --&gt;
//****** REMEMBER TO CHANGE THIS PATH TO THE PROPER ISV LOCATION  *******//
&lt;script type="text/javascript" src="../jscripts/tiny_mce/jquery.tinymce.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
 $().ready(function() {
 $('textarea.tinymce').tinymce({
 // Location of TinyMCE script
 //****** REMEMBER TO CHANGE THIS PATH TO THE PROPER ISV LOCATION  *******//
 script_url : '../jscripts/tiny_mce/tiny_mce.js',

 // General options
 theme : "advanced",
 plugins : "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,advlist",

 // Theme options
 theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
 theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
 theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
 theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak",
 theme_advanced_toolbar_location : "top",
 theme_advanced_toolbar_align : "left",
 theme_advanced_statusbar_location : "bottom",
 theme_advanced_resizing : true,

 // Example content CSS (should be your site CSS)
 //****** REMEMBER TO CHANGE THIS PATH TO THE PROPER ISV LOCATION  *******//
 content_css : "css/content.css",

 // Drop lists for link/image/media/template dialogs
 template_external_list_url : "lists/template_list.js",
 external_link_list_url : "lists/link_list.js",
 external_image_list_url : "lists/image_list.js",
 media_external_list_url : "lists/media_list.js",

 // Replace values for the template plugin
 template_replace_values : {
 username : "Some User",
 staffid : "991234"
 }

 });

 //Here we load the input textbox named elm1.  This input text box will be overloaded by the tinyMCE editor at runtime.
 //See the GetContacts function below.
 $('#elm1').val(GetContacts());

 });
&lt;/script&gt;
&lt;!-- /TinyMCE --&gt;

&lt;/head&gt;
&lt;body&gt;

 &lt;form id="form1" runat="server"&gt;
 &lt;div&gt;
 &lt;h3&gt;Full featured example using jQuery plugin&lt;/h3&gt;

 &lt;p&gt;
 This example shows how TinyMCE can be used from Microsoft Dynamics CRM 4.0  using jQuery. The jQuery plugin will also attach it's self to various jQuery methods to make it more easy to get/set editor contents etc.
 &lt;/p&gt;

 &lt;!-- Gets replaced with TinyMCE, remember HTML in a textarea should be encoded --&gt;
 &lt;div&gt;
 &lt;textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%"&gt;
 &amp;lt;p&amp;gt;
 This is some example text that you can edit inside the &amp;lt;strong&amp;gt;TinyMCE editor&amp;lt;/strong&amp;gt;.
 &amp;lt;/p&amp;gt;
 &amp;lt;p&amp;gt;
 ExtremeCRM provides developers coding examples, insights, concepts and options for developing customizations for Microsoft CRM 4.0.  The primary contributor, Brenden Smith is a Microsoft MCP and Microsoft CRM 4.0 Lead developer for a federal agency in Washing D.C.  If you would like to be a contributor for extremeCRM.net
 &amp;lt;/p&amp;gt;
 &lt;/textarea&gt;
 &lt;/div&gt;

 &lt;!-- Some integration calls --&gt;
 &lt;a href="javascript:;" onmousedown="$('#elm1').tinymce().show();"&gt;[Show]&lt;/a&gt;
 &lt;a href="javascript:;" onmousedown="$('#elm1').tinymce().hide();"&gt;[Hide]&lt;/a&gt;
 &lt;a href="javascript:;" onmousedown="$('#elm1').tinymce().execCommand('Bold');"&gt;[Bold]&lt;/a&gt;
 &lt;a href="javascript:;" onmousedown="alert($('#elm1').html());"&gt;[Get contents]&lt;/a&gt;
 &lt;a href="javascript:;" onmousedown="alert($('#elm1').tinymce().selection.getContent());"&gt;[Get selected HTML]&lt;/a&gt;
 &lt;a href="javascript:;" onmousedown="alert($('#elm1').tinymce().selection.getContent({format : 'text'}));"&gt;[Get selected text]&lt;/a&gt;
 &lt;a href="javascript:;" onmousedown="alert($('#elm1').tinymce().selection.getNode().nodeName);"&gt;[Get selected element]&lt;/a&gt;
 &lt;a href="javascript:;" onmousedown="$('#elm1').tinymce().execCommand('mceInsertContent',false,'&lt;b&gt;Hello world!!&lt;/b&gt;');"&gt;[Insert HTML]&lt;/a&gt;
 &lt;a href="javascript:;" onmousedown="$('#elm1').tinymce().execCommand('mceReplaceContent',false,'&lt;b&gt;{$selection}&lt;/b&gt;');"&gt;[Replace selection]&lt;/a&gt;

 &lt;br /&gt;
 &lt;input type="submit" name="save" value="Submit" /&gt;
 &lt;input type="reset" name="reset" value="Reset" /&gt;
 &lt;/div&gt;
&lt;/form&gt;
&lt;script type="text/javascript"&gt;
if (document.location.protocol == 'file:') {
 alert("The examples might not work properly on the local file system due to security settings in your browser. Please use a real webserver.");
}
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osubrenden.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osubrenden.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osubrenden.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osubrenden.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osubrenden.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osubrenden.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osubrenden.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osubrenden.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osubrenden.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osubrenden.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osubrenden.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osubrenden.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osubrenden.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osubrenden.wordpress.com/115/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&amp;blog=5564373&amp;post=115&amp;subd=osubrenden&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osubrenden.wordpress.com/2010/11/10/html-editor-for-microsoft-dynamics-crm-4-0/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>CRM CSS Look and Feel, Now With jQuery Support</title>
		<link>http://osubrenden.wordpress.com/2010/09/20/crm-css-look-and-feel-now-with-jquery-support/</link>
		<comments>http://osubrenden.wordpress.com/2010/09/20/crm-css-look-and-feel-now-with-jquery-support/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 19:46:52 +0000</pubDate>
		<dc:creator>CRMbrenden</dc:creator>
				<category><![CDATA[CRM 4.0]]></category>
		<category><![CDATA[4.0]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Microsoft Dynamics]]></category>

		<guid isPermaLink="false">http://extremecrm.net/?p=109</guid>
		<description><![CDATA[I’m currently creating a framework for using jQuery and jqGrid with Microsoft Dynamics CRM. I will be posting the final concept and making it public soon.  One piece that may be helpful to some even if they don’t utilize the framework is a jQuery UI Dynamics CRM theme which I have added to my CRM [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&amp;blog=5564373&amp;post=109&amp;subd=osubrenden&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="attachment_110" class="wp-caption alignnone" style="width: 310px"><a href="http://osubrenden.files.wordpress.com/2010/09/jquery.jpg"><img class="size-medium wp-image-110" title="jQuery ThemeRoller " src="http://osubrenden.files.wordpress.com/2010/09/jquery.jpg?w=300&#038;h=184" alt="" width="300" height="184" /></a><p class="wp-caption-text">jQuery ThemeRoller </p></div>
<p>I’m currently creating a framework for using jQuery and jqGrid with Microsoft Dynamics CRM. I will be posting the final concept and making it public soon.  One piece that may be helpful to some even if they don’t utilize the framework is a jQuery UI Dynamics CRM theme which I have added to my CRM Look and Feel Kit.  Both can be <a href="http://www.4shared.com/file/ygrBqOu-/CRM_Look_and_Feel_with_jQuery_.html" target="_blank">downloaded here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osubrenden.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osubrenden.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osubrenden.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osubrenden.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osubrenden.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osubrenden.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osubrenden.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osubrenden.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osubrenden.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osubrenden.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osubrenden.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osubrenden.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osubrenden.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osubrenden.wordpress.com/109/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&amp;blog=5564373&amp;post=109&amp;subd=osubrenden&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osubrenden.wordpress.com/2010/09/20/crm-css-look-and-feel-now-with-jquery-support/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/2010/09/jquery.jpg?w=300" medium="image">
			<media:title type="html">jQuery ThemeRoller </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&amp;blog=5564373&amp;post=105&amp;subd=osubrenden&amp;ref=&amp;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&amp;blog=5564373&amp;post=105&amp;subd=osubrenden&amp;ref=&amp;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&amp;blog=5564373&amp;post=100&amp;subd=osubrenden&amp;ref=&amp;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&amp;blog=5564373&amp;post=100&amp;subd=osubrenden&amp;ref=&amp;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>Creating a CRM 4.0 test/training organization from your production organization and or Recovering a CRM organization database</title>
		<link>http://osubrenden.wordpress.com/2010/07/02/creating-a-crm-4-0-testtraining-organization-from-your-production-organization-and-or-recovering-a-crm-organization-database/</link>
		<comments>http://osubrenden.wordpress.com/2010/07/02/creating-a-crm-4-0-testtraining-organization-from-your-production-organization-and-or-recovering-a-crm-organization-database/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 12:57:25 +0000</pubDate>
		<dc:creator>CRMbrenden</dc:creator>
				<category><![CDATA[CRM 4.0]]></category>
		<category><![CDATA[4.0]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[Import]]></category>
		<category><![CDATA[Microsoft CRM 4.0]]></category>
		<category><![CDATA[Organization database]]></category>

		<guid isPermaLink="false">http://extremecrm.net/?p=97</guid>
		<description><![CDATA[  This article will also help with the following scenarios: You want to move the Microsoft Dynamics CRM databases to another Microsoft SQL Server and Microsoft SQL Server Reporting Services server in the same domain. Additionally, you want to leave the Microsoft Dynamics CRM Server on the existing server. You want to redeploy the Microsoft [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&amp;blog=5564373&amp;post=97&amp;subd=osubrenden&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong> </strong></p>
<p><em><span style="color:#99ccff;"><strong>This article will also help with the following scenarios:</strong></span></em></p>
<ul>
<li>You want to move the Microsoft Dynamics CRM databases to another Microsoft SQL Server and Microsoft SQL Server Reporting Services server in the same domain. Additionally, you want to leave the Microsoft Dynamics CRM Server on the existing server.</li>
<li>You want to redeploy the Microsoft Dynamics CRM deployment that includes the Microsoft Dynamics CRM server within the same domain or to another domain.</li>
<li>You want to move the Microsoft Dynamics CRM Server or one of the Microsoft Dynamics CRM server roles. However, you want to leave the SQL Server and SQL Server Reporting Services server intact.</li>
</ul>
<p><strong> </strong><strong> </strong><strong>Requirements</strong></p>
<ul>
<li>SQL Server Management Studio</li>
<li>CRM 4.0 Deployment Manager</li>
<li>CRM Enterprise Server License</li>
<li>CRM Deployment Administrator Permissions</li>
<li>SQL Server Administrator Permissions</li>
<li>An existing backup of your CRM database</li>
</ul>
<p> </p>
<h2>Procedure</h2>
<p><strong><em>Restore SQL Database</em></strong></p>
<ol>
<li>On the CRM SQL Server navigate to: Start -&gt; All Programs -&gt; Microsoft Dynamics CRM -&gt; Deployment Manager</li>
<li>Click “Connect” to open a connection to the SQL server
<p> </li>
<li>Right click the “Database” folder and select “Restore Database&#8221;
<p> </li>
<li> In the “To database” field enter your database name (Note: It is a best practice to name your database with a “_MSCRM” to help distinguish this database from others on that server)
<p> </li>
<li>Select “From Device” and click the browse button</li>
<li>Click the “Add” button and select the backup of the CRM database that you wish to restore. Click “OK” to select the backup file.
<p> </li>
<li>Click “OK” to accept your selections.</li>
<li>Check the “Restore” checkbox next to the Database that you wish to restore, and click the Options link in the left hand column. </li>
<li>Check “Overwrite the existing database” and click the “OK” button to restore the backup file
<p> </li>
<li>Once complete you will be notified via the following screen.</li>
</ol>
<p><strong><em>Import the CRM Organization</em></strong></p>
<ol>
<li>On the CRM Server navigate to: Start -&gt; All Programs -&gt; Microsoft Dynamics CRM -&gt; Deployment Manager
<p>  </li>
<li>With Deployment Manager open, navigate to Organizations to get a listing of the current Organizations available in CRM. 
<p> </li>
<li>Click the “Import Organization” link in the right hand column to start the process of importing a CRM Organization. 
<p> </li>
<li>On the “Import Organization Wizard” enter in the name of the SQL server, select the newly restored database and click “Next&#8221; 
<p> </li>
<li>Enter the name of the Organization as you want it to appear in CRM and click “Next” 
<p> </li>
<li>Enter the name of the SQL Reporting Server and click “Next&#8221;
<p> </li>
<li>Select Auto-map users and click “Next”
<p> </li>
<li>Make any adjustments as necessary and click “Next”
<p> </li>
<li>Review the requirements screen and click “Next”
<p> </li>
<li>Click the “Import” button to begin the import of the Organization</li>
<li>After complete click the “Finish” button to close the wizard</li>
</ol>
<p><strong>Additional Notes:</strong></p>
<p>The import process will automatically attempt to add all the necessary Active Directory group membership for each user that listed in the CRM SystemUserBase table. This step of the process can be lengthy depending on the total number of users in your production CRM organization, and often times it may seem as if the process has hung. A simple yet manual way to monitor the status during this operation is to compare the deployment manager logs with the listing of users in the SystemUserBase table. The import process will process each user, as they are entered in the table, and will write out a log entry for each user that it has processed. The log for the deployment manager is located in:</p>
<p><em>%USERPROFILE%Application DataMicrosoftMSCRMLogscrm40dmsnapin.log</em></p>
<p>Although this process will create a separate CRM organization with a point in time snapshot of your company’s customizations as well as its data, it will not allow you to test the deployment of Rollups or other hot fixes. If you are looking to obtain this capability, you will need to setup a separate environment in which you can install a separate copy of CRM. With such a scenario, it is always important to take into consideration, the licensing ramifications of all the software involved (CRM, SQL, Windows, etc). However, if you are simply attempting to setup a duplicate environment where you can train new users or test out new customizations before introducing them into production, this procedure should fully meet your needs.</p>
<p>Routinely companies need the ability to utilize a training or test Microsoft Dynamics CRM 4.0 environment that operates on a similar set of data as their Production deployment. With CRM 4.0 we can achieve this goal by making use of its multi-tenancy capabilities, or the ability to have multiple CRM Organizations. </p>
<p><em>Additional help  </em></p>
<p><a href="http://support.microsoft.com/kb/952934">How to move the Microsoft Dynamics <strong>CRM</strong> 4.0 deployment</a> </p>
<p><a href="http://blogs.msdn.com/b/crm/archive/2008/10/13/deployment-manager-import-organization-vs-edit-organization.aspx">Deployment Manager: Import <strong>Organization</strong> vs. Edit <strong>Organization</strong> &#8230;</a> </p>
<p><a href="http://msdn.microsoft.com/en-us/library/dd979327.aspx">Configure a Microsoft Dynamics <strong>CRM</strong> <strong>organization</strong> for <strong>database</strong> mirroring &#8230;</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osubrenden.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osubrenden.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osubrenden.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osubrenden.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osubrenden.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osubrenden.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osubrenden.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osubrenden.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osubrenden.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osubrenden.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osubrenden.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osubrenden.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osubrenden.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osubrenden.wordpress.com/97/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&amp;blog=5564373&amp;post=97&amp;subd=osubrenden&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osubrenden.wordpress.com/2010/07/02/creating-a-crm-4-0-testtraining-organization-from-your-production-organization-and-or-recovering-a-crm-organization-database/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 Look and Feel Kit</title>
		<link>http://osubrenden.wordpress.com/2010/06/24/microsoft-crm-4-0-look-and-feel-kit/</link>
		<comments>http://osubrenden.wordpress.com/2010/06/24/microsoft-crm-4-0-look-and-feel-kit/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 14:09:18 +0000</pubDate>
		<dc:creator>CRMbrenden</dc:creator>
				<category><![CDATA[CRM 4.0]]></category>
		<category><![CDATA[Customization]]></category>
		<category><![CDATA[Menu]]></category>
		<category><![CDATA[4.0]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[CRM Look]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Microsoft CRM 4.0]]></category>
		<category><![CDATA[Microsoft Dynamics]]></category>
		<category><![CDATA[Style Guide]]></category>
		<category><![CDATA[Styles]]></category>

		<guid isPermaLink="false">http://extremecrm.net/?p=92</guid>
		<description><![CDATA[what were really discussing here is iFrames embedded in to your CRM entity form page <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&amp;blog=5564373&amp;post=92&amp;subd=osubrenden&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I notice confusion out there about CSS styles to achieve a native CRM look and feel, for reasons I’m not sure of many folks can’t find the CSS template provided in the CRM SDK which can be downloaded <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=82e632a7-faf9-41e0-8ec1-a2662aae9dfb&amp;displaylang=en" target="_blank">here</a>. Additionally the CSS template that is included by Microsoft doesn’t have much in it, for example there aren’t any CSS styles for grids.</p>
<p>For those of you new to CRM what were really discussing here is iFrames embedded in to your CRM entity form page so the need to match up to CRM to present seamless integration and a clean user interface is important.</p>
<p>I’m going to post the CSS template and images I use in my projects and as I add more styles to it I will update it from time to time.</p>
<p><a href="http://www.4shared.com/file/5cJjkO89/CRM_Look_and_Feel.html" target="_blank">Click here to download the CRM Look and Feel Kit</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osubrenden.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osubrenden.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osubrenden.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osubrenden.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osubrenden.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osubrenden.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osubrenden.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osubrenden.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osubrenden.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osubrenden.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osubrenden.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osubrenden.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osubrenden.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osubrenden.wordpress.com/92/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&amp;blog=5564373&amp;post=92&amp;subd=osubrenden&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osubrenden.wordpress.com/2010/06/24/microsoft-crm-4-0-look-and-feel-kit/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>Monitoring your Microsoft Dynamics CRM Infrastructure with System Center Operations Manager 2007</title>
		<link>http://osubrenden.wordpress.com/2010/06/14/monitoring-your-microsoft-dynamics-crm-infrastructure-with-system-center-operations-manager-2007/</link>
		<comments>http://osubrenden.wordpress.com/2010/06/14/monitoring-your-microsoft-dynamics-crm-infrastructure-with-system-center-operations-manager-2007/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 16:54:31 +0000</pubDate>
		<dc:creator>CRMbrenden</dc:creator>
				<category><![CDATA[CRM 4.0]]></category>
		<category><![CDATA[4.0]]></category>
		<category><![CDATA[Asynchronous]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[Microsoft CRM 4.0]]></category>
		<category><![CDATA[Microsoft Dynamics]]></category>
		<category><![CDATA[monitor]]></category>
		<category><![CDATA[SQL 2008]]></category>

		<guid isPermaLink="false">http://extremecrm.net/?p=86</guid>
		<description><![CDATA[Introduction For any organisation, Systems Availability is crucial to the business and business continuity. Because of the nature and complexity of a CRM Architecture, it is vital to understand the current state of its various components and computers. The entire CRM Architecture can be centrally managed and monitored using System Center Operations Manager 2007 (SCOM), [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&amp;blog=5564373&amp;post=86&amp;subd=osubrenden&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong></p>
<p>For any organisation, Systems Availability is crucial to the business and business continuity. Because of the nature and complexity of a CRM Architecture, it is vital to understand the current state of its various components and computers. The entire CRM Architecture can be centrally managed and monitored using System Center Operations Manager 2007 (SCOM), a Dynamic Systems Initiative from Microsoft to help support and be more effective and efficient, thereby saving time and money. The use of SCOM takes guess work out of the support equation, by identifying the root cause of an issue and providing the appropriate solution. As a predictive product it also provides alerts on unforeseen potential problems, enabling proactive support. In this document we discuss the use of SCOM to manage and monitor the CRM architecture comprising of Windows 2003 server, Microsoft SQL Server 2005 or 2008, Microsoft Exchange Server 2003 or 2007, Microsoft Internet Information Server IIS 6 and 7, BizTalk Server 2006, Microsoft Dynamics CRM 4.0, Windows XP, 2000, Vista, Microsoft Office 2007 and custom .Net applications</p>
<p> SCOM alerts are based on real world problems and solutions developed by domain experts and Windows error reporting is linked to latest resolution knowledge. For illustration purposes the diagram below shows the Asynchronous Service Architecture, a small part of the CRM 4.0 Architecture. The Asynchronous architecture is monitored in the SCOM deployment for CRM 4.0.</p>
<p>  <a href="http://osubrenden.files.wordpress.com/2010/06/scom.jpg"><img title="SCOM" src="http://osubrenden.files.wordpress.com/2010/06/scom.jpg?w=300&#038;h=260" alt="" width="300" height="260" /></a></p>
<p> <strong>SCOM Solution for a Dynamics CRM 4.0 Architecture</strong></p>
<p>Microsoft Dynamics CRM 4.0 architecture can be complex, depending on deployment. To ensure that all the CRM 4.0 components are functioning properly requires a robust support infrastructure. Microsoft System Center Operations Manager is a software solution that meets the need for end-to-end service monitoring in the enterprise. Deploying SCOM is key to effective support for any organisation that values its technology investment, and takes systems availability and uptime seriously.</p>
<p><strong>SCOM components</strong></p>
<p>Operational Database consists of operational data and configuration data for a management group. A Root Management Server is used for configuration management. Management Agents discover, collect, analyse and manage servers’ and clients’ alerts so as to resolve issues and can also wake failed systems. A Reporting Server provides reports for the management group and is displayed in the SCOM console.</p>
<p>Agentless Exception Monitoring extends monitoring to operating systems and applications. It configures error-reporting clients to redirect their reports to the management server providing information on failure and available solutions. An Audit Collector, found on the management server, provides information on security of managed computers from audit enabled agents. In DMZ configurations, a Gateway Server can be used for agents beyond a firewall or found in Non Trusted Domains.</p>
<p><strong>Deploying SCOM</strong></p>
<p>To setup SCOM OpmMgr and RMS databases, SCOM is deployed on a MS SQL Server where the Action, SDK and Service Accounts are specified. A webconsole is deployed specifying the SQL instance, the database name and SQL Listening port, plus provide relevant accounts. With installation complete, an Administrator has to logon to the SCOM server to complete the setup by configuring Discovery and select the managed objects in addition to configuring computers and devices to manage, and importing management packs<a href="http://osubrenden.wordpress.com/wp-admin/post-new.php#_ftn1">[1]</a>.</p>
<p>Operations Manager 2007 Reporting is setup by installing the data reporting data warehouse and reporting server for reports and dashboards. It is recommended to install the Data Warehouse and Reporting Server on separate servers. A SQL Server Instance is used for the Audit Collection Service and Audit Collection Database setup and enablement.</p>
<p><strong>SCOM Monitoring</strong></p>
<p>A SCOM Monitor looks at different application aspects, known as Object Types, consisting of system devices or services with one of three operational states: healthy, warning or failure. A Distributed Application Designer is built on Service Oriented Monitoring and is easy to configure using a graphic designer. It can also be used to monitor ports and IP addresses of given systems. It also handles Line of Business Applications.</p>
<p>Roles have to be created to manage the SCOM system. Roles are integrated with Active Directory and they can manage tasks authorised for specified roles.</p>
<p>Notifications can be delivered individually via Email, Pager, Instant Messaging, Session Initiation Protocol, Short Message Service support (SMS) and SMTP via the Notification Device Wizard.</p>
<p>SCOM can be integrated with AD for Security Discovery and Agent Management enabling agent deployment and configuration automatically. The SCOM Discovery Wizard feature uses LDAP identify devices in the Directory to manage agents automatically. The MOMADAdmin tool is used to integrate with AD by creating an admin access point with the ability to specify exclusions through the ADSI Edit<a href="http://osubrenden.wordpress.com/wp-admin/post-new.php#_ftn2">[2]</a> tool.</p>
<p>To setup Agentless Exception Monitoring, requires configuring the Customer Experience Improvement Program (CEIP) and Error alert routing, transmission settings (through HTTP/S or with SSL with authentication preferences) and Error Crash Behaviour. These alerts can be forwarded to Microsoft and Microsoft will provide available information to solve the issue or in crash cases Microsoft will investigate the issue further.</p>
<p><strong>SCOM Management Features</strong></p>
<p>Through the monitoring space, administrators are able to see in Real-Time the state of systems and or services. Through the health explorer administrators can see the events that are not healthy and can then take corrective action to fix the problem using diagnostics and recovery features found in the management packs. Administrators can work with reports, creating reports for customers etc. and report on planned and unplanned operations and much more. Reports can also be specific, providing information on specific issues.</p>
<p>SCOM 2007 has an excellent and customisable knowledgebase known as Company Knowledge. This knowledgebase is an invaluable resource that provides information on root causes of issues and how they can be resolved. The Company Knowledge is editable, allowing for the addition of company related issues and how they have been resolved. <strong> </strong></p>
<p><strong> </strong></p>
<p>Company Knowledge is used to capture the steps required to resolve an alert in an OpsMgr installation.  When paired with the Product knowledge (which provides application developers knowledge on the causes and suggested resolution steps for an alert), the two help any operator with the best steps they can take to resolve an alert. Product Knowledge is embedded in a rule or monitor.</p>
<p><strong> </strong></p>
<p>The power of SCOM lies in the End-to-End visibility of the health and performance of the CRM architecture. This powerful feature empowers support staff to have a complete view of their supported environment, with access to easily accessed information on how to resolve issues affecting their CRM environment in case of an IT issue. They are empowered to take proactive action regarding issues before users can start calling or before systems actually fail, ensuring short Mean Time To Identify (MTTI) and Mean Time to Repair (MTR).</p>
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>Figure 2 SCOM monitoring in a CRM Architecture</td>
</tr>
</tbody>
</table>
<p>Organisations that have successfully deployed System Center Operations Manager 2007 testify to the ability to provide efficient support and avoiding time wasting extensive manual investigations that can give support a bad name.  Many have deployed SCOM and integrated it with their Helpdesk systems. This integration facilitates the automatic generation of tickets or calls, leading to a significant reduction in waste of support staff effort used to manually create, update and manage tickets or support Calls.</p>
<p>A Microsoft Dynamics CRM (Customer Relationship Management) 4.0 system is built on a three tier Enterprise Architecture consisting of; Client, Application and Data.  SCOM is able to monitor the health and performance of these systems and their applications, easily providing service level monitoring that allows the support team to meet their operational level agreements. Because CRM can be web-enabled, SCOM has the capability to monitor several URLs at any one time and provide real-time data on connectivity status.</p>
<p><em>Note</em></p>
<p><em>SCOM has the capability to monitor non Microsoft technology through Operations Manager Connector Framework. It does this through the bi-directional synchronised partner connector solutions that connects to the third party management packs. </em></p>
<p>Microsoft Dynamics CRM 4.0 Management Pack</p>
<p>At the time of writing, there is no SCOM Management Pack for Microsoft Dynamics CRM 4.0. However, Microsoft Dynamics CRM 4.0 can be managed using SCOM, by converting the MOM 2005 Management Pack for CRM<a href="http://osubrenden.wordpress.com/wp-admin/post-new.php#_ftn3">[3]</a>. This particular management pack monitors the CRM Architecture including:</p>
<ol>
<li>CRM Asynchronous Processing services.</li>
<li>World Wide Web Publishing</li>
<li>Microsoft Dynamics CRM Deletion Service</li>
<li>Microsoft Dynamics CRM databases</li>
</ol>
<p> </p>
<p>Deploying SCOM 2007 provides support staff with an easy-to-use monitoring environment to monitor corporate servers, applications, and clients. This coverage gives staff a full view of the organisation’s systems, something that allows support staff to provide pro-active solutions to issues before they happen, enabling them to<em> </em>proactively maintain and reduce resolution times for any issues that may affect overall availability and performance of the CRM system.</p>
<p> Microsofts SCOM site can be found <a href="http://www.microsoft.com/systemcenter/en/us/default.aspx" target="_blank">here </a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osubrenden.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osubrenden.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osubrenden.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osubrenden.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osubrenden.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osubrenden.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osubrenden.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osubrenden.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osubrenden.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osubrenden.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osubrenden.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osubrenden.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osubrenden.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osubrenden.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osubrenden.wordpress.com&amp;blog=5564373&amp;post=86&amp;subd=osubrenden&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osubrenden.wordpress.com/2010/06/14/monitoring-your-microsoft-dynamics-crm-infrastructure-with-system-center-operations-manager-2007/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>

		<media:content url="http://osubrenden.files.wordpress.com/2010/06/scom.jpg?w=300" medium="image">
			<media:title type="html">SCOM</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&amp;blog=5564373&amp;post=80&amp;subd=osubrenden&amp;ref=&amp;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&amp;blog=5564373&amp;post=80&amp;subd=osubrenden&amp;ref=&amp;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&amp;blog=5564373&amp;post=78&amp;subd=osubrenden&amp;ref=&amp;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&amp;blog=5564373&amp;post=78&amp;subd=osubrenden&amp;ref=&amp;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>
	</channel>
</rss>
