<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Put IT in High Gear - Engage!</title>
	<atom:link href="http://blogs.engage2day.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.engage2day.com</link>
	<description>Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</description>
	<lastBuildDate>Wed, 16 May 2012 00:55:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>All Fun and No Play Makes for a Boring Website &#8211; Gamification</title>
		<link>http://blogs.engage2day.com/2012/05/all-fun-and-no-play-makes-for-a-boring-website-gamification/</link>
		<comments>http://blogs.engage2day.com/2012/05/all-fun-and-no-play-makes-for-a-boring-website-gamification/#comments</comments>
		<pubDate>Wed, 16 May 2012 00:53:14 +0000</pubDate>
		<dc:creator>engage</dc:creator>
				<category><![CDATA[General Interest]]></category>
		<category><![CDATA[Gamification]]></category>
		<category><![CDATA[Relativity]]></category>

		<guid isPermaLink="false">http://blogs.engage2day.com/?p=1518</guid>
		<description><![CDATA[I have a website, but my web analytics indicate I am getting a consistently low volume of web traffic to my website and not many users are staying long on my website, what can I do to re-energize and engage user’s to my website? Simply put, gamification! Many people when they here this instantly think, [...]<p><a href="http://blogs.engage2day.com/2012/05/all-fun-and-no-play-makes-for-a-boring-website-gamification/">All Fun and No Play Makes for a Boring Website &#8211; Gamification</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>



No related posts.]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blogs.engage2day.com/2012/05/all-fun-and-no-play-makes-for-a-boring-website-gamification/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' /></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblogs.engage2day.com%2F2012%2F05%2Fall-fun-and-no-play-makes-for-a-boring-website-gamification%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblogs.engage2day.com%2F2012%2F05%2Fall-fun-and-no-play-makes-for-a-boring-website-gamification%2F&amp;source=engage2day&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0531a2647ff7ca1358e48c8c8a3e1541&amp;b=2" height="61" width="50" title="All Fun and No Play Makes for a Boring Website   Gamification" alt=" All Fun and No Play Makes for a Boring Website   Gamification" /><br />
			</a>
		</div>
<p>I have a website, but my web analytics indicate I am getting a consistently low volume of web traffic to my website and not many users are staying long on my website, what can I do to re-energize and engage user’s to my website?  Simply put, gamification!<br />
Many people when they here this instantly think, am I hooking up an Xbox to my website?  Whereas this sounds a bit off the wall, there is a part of this that is somewhat true.  Gamification is the use of game design techniques, game thinking and game mechanics to enhance non-game contexts on websites.</p>
<p>Typically, the concept of gamification applies to non-game applications and processes, in order to encourage people to adopt them, or to influence how they are used. Gamification works by making technology more engaging, by encouraging users to engage in desired behaviors, by showing a path to mastery and autonomy, by helping to solve problems and not being a distraction, and by taking advantage of humans&#8217; psychological predisposition to engage in gaming. The technique can encourage people to perform chores that they ordinarily consider boring, such as completing surveys, shopping, filling out tax forms, or reading web sites. Available data from gamified websites, applications, and processes indicate potential improvements in areas like user engagement, ROI, data quality, timeliness, or learning.</p>
<p>Engage Relativity offers a gamification function called Motiv8 ™.  Relativity Motiv8™, an extension of Engage, Inc.’s Relativity™ Platform, provides a framework integrating ‘Game Layer’ functionality with line of business application logic, transforming the result into a system for tracking, incenting and rewarding site member and/or employee behaviors through assigned or arbitrary status symbols(i.e. badges, levels and the like) – i.e. ‘behavior-steering game dynamics’. The baseline features focus on the tracking and management of achievements while other components may optionally surface this data on a community portal, within SharePoint, Silverlight or other similar dashboards.</p>
<p><span id="more-1518"></span></p>
<p>At the highest level, the Relativity Motiv8™ framework works within the Relativity™ Platform to integrate external data and systems, purpose built plugins, and custom integration services; creating “actions” within line of business applications (Microsoft Dynamics CRM 2011). Each action is assigned a type. Administrators configure promotion paths, personalization levels and requisite conditions as badges and badge conditions. Scheduled services review the users and contacts, all of their actions and matching conditions and determines if they qualify for any new badges, promotions or levels.<br />
As an example, an employee who completes X cases at a certain approval level in a given month may win the “Customer Satisfaction” badge, or may be promoted from a “Level 1 Customer Service Rookie” to a “Level 8 Customer Serenity Guru.” Badges are earned and levels achieved when a user has a score in a given category meeting badge conditions. Whenever a new action is created, badge conditions tied to the action’s category are checked and new achievements applied as may be applicable.</p>
<p>The solution can be applied internally for staff and team members (goaling, KPI, telework) as well as externally for customers, constituents and partner organizations.</p>
<p><a href="http://blogs.engage2day.com/2012/05/all-fun-and-no-play-makes-for-a-boring-website-gamification/">All Fun and No Play Makes for a Boring Website &#8211; Gamification</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://blogs.engage2day.com/2012/05/all-fun-and-no-play-makes-for-a-boring-website-gamification/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://blogs.engage2day.com/2012/05/all-fun-and-no-play-makes-for-a-boring-website-gamification/&amp;title=All+Fun+and+No+Play+Makes+for+a+Boring+Website+-+Gamification" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blogs.engage2day.com/2012/05/all-fun-and-no-play-makes-for-a-boring-website-gamification/&amp;t=All+Fun+and+No+Play+Makes+for+a+Boring+Website+-+Gamification" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://blogs.engage2day.com/2012/05/all-fun-and-no-play-makes-for-a-boring-website-gamification/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blogs.engage2day.com/2012/05/all-fun-and-no-play-makes-for-a-boring-website-gamification/&amp;title=All+Fun+and+No+Play+Makes+for+a+Boring+Website+-+Gamification&amp;summary=I%20have%20a%20website%2C%20but%20my%20web%20analytics%20indicate%20I%20am%20getting%20a%20consistently%20low%20volume%20of%20web%20traffic%20to%20my%20website%20and%20not%20many%20users%20are%20staying%20long%20on%20my%20website%2C%20what%20can%20I%20do%20to%20re-energize%20and%20engage%20user%E2%80%99s%20to%20my%20website%3F%20%20Simply%20put%2C%20gamification%21%0D%0AMany%20people%20when%20they%20here%20this%20instantly&amp;source=Put IT in High Gear - Engage!" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://blogs.engage2day.com/2012/05/all-fun-and-no-play-makes-for-a-boring-website-gamification/&amp;title=All+Fun+and+No+Play+Makes+for+a+Boring+Website+-+Gamification" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=All+Fun+and+No+Play+Makes+for+a+Boring+Website+-+Gamification+-+http://bit.ly/JfiiIB&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://blogs.engage2day.com/2012/05/all-fun-and-no-play-makes-for-a-boring-website-gamification/&amp;title=All+Fun+and+No+Play+Makes+for+a+Boring+Website+-+Gamification" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blogs.engage2day.com/2012/05/all-fun-and-no-play-makes-for-a-boring-website-gamification/feed/</wfw:commentRss>
		<slash:comments><span class="dsq-postid" rel="1518 http://blogs.engage2day.com/?p=1518">0</span></slash:comments>
		</item>
		<item>
		<title>CRM and Object Oriented Javascript Part IV</title>
		<link>http://blogs.engage2day.com/2011/10/crm-and-object-oriented-javascript-part-iv/</link>
		<comments>http://blogs.engage2day.com/2011/10/crm-and-object-oriented-javascript-part-iv/#comments</comments>
		<pubDate>Wed, 19 Oct 2011 21:19:23 +0000</pubDate>
		<dc:creator>engage</dc:creator>
				<category><![CDATA[CRM 2011]]></category>
		<category><![CDATA[Customer Relationship Management (CRM)]]></category>
		<category><![CDATA[General Interest]]></category>
		<category><![CDATA[Microsoft Dynamics Convergence2010]]></category>
		<category><![CDATA[SCRM]]></category>
		<category><![CDATA[xRM]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Dynamics]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://blogs.engage2day.com/?p=1488</guid>
		<description><![CDATA[This is part of a four part series on CRM and object oriented Javascript. Follow the links to parts I, II, and III. Last post we did a detailed walkthrough of our object oriented form handler . At the end, we promised an explanation of why you might want to take this approach rather than [...]<p><a href="http://blogs.engage2day.com/2011/10/crm-and-object-oriented-javascript-part-iv/">CRM and Object Oriented Javascript Part IV</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>



Related posts:<ol><li><a href='http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript-part-ii/' rel='bookmark' title='Permanent Link: Dynamics CRM Forms and Object Oriented Javascript Part II'>Dynamics CRM Forms and Object Oriented Javascript Part II</a></li>
<li><a href='http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/' rel='bookmark' title='Permanent Link: Dynamics CRM Forms and Object Oriented Javascript'>Dynamics CRM Forms and Object Oriented Javascript</a></li>
<li><a href='http://blogs.engage2day.com/2011/09/crm-and-object-oriented-javascript-part-iii/' rel='bookmark' title='Permanent Link: CRM and Object Oriented Javascript Part III'>CRM and Object Oriented Javascript Part III</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blogs.engage2day.com/2011/10/crm-and-object-oriented-javascript-part-iv/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' /></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblogs.engage2day.com%2F2011%2F10%2Fcrm-and-object-oriented-javascript-part-iv%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblogs.engage2day.com%2F2011%2F10%2Fcrm-and-object-oriented-javascript-part-iv%2F&amp;source=engage2day&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0531a2647ff7ca1358e48c8c8a3e1541&amp;b=2" height="61" width="50" title="CRM and Object Oriented Javascript Part IV" alt=" CRM and Object Oriented Javascript Part IV" /><br />
			</a>
		</div>
<p><em>This is part of a four part series on CRM and object oriented Javascript. Follow the links to parts I, II, and III.</em></p>
<p>Last post we did a detailed walkthrough of our object oriented form handler . At the end, we promised an explanation of why you might want to take this approach rather than the traditional giant &#8220;if-then-else-if&#8221; block. Well wait no longer. Here we&#8217;ll list a whole host of reasons to take the object oriented approach</p>
<h3>Testability</h3>
<p>One of the real hassles of CRM javascript development is the edit-publish-debug-edit-publish round trip that happens with every change. With a lot of changes, the time can really add up, especially since it&#8217;s easy to make typos in javascript. So one significant advantage of the OOP approach is that we can&#8217;t test most of our javascript without a CRM server. Take a look at our code again. Of those four sections we organized the code into, how many of them directly reference CRM fields or objects? One, CreateXrmFormRulesMethods.  What we&#8217;ve managed to do with this code is separate out the CRM specific stuff from the stuff that deals with the business logic of our application. Which means that we can actually do some basic testing of those parts of our code without a CRM Form.</p>
<p><span id="more-1488"></span></p>
<p>For this, we rely on the javascript unit testing framework jUnit. We won&#8217;t go into detail on jUnit here, because it&#8217;s extensively documented elsewhere, but if you&#8217;re familiar with other unit testing frameworks like MSTest or Nunit, it&#8217;s the same basic idea. In our specific situation, we run the test by mocking the ui object we passed into the form handler constructor. Here&#8217;s a basic example of a mock object:</p>
<pre>XRM = {};
XRM.executeFormRules = function(formRules){
	var result = [];
	$.each(formRules, function(){
		switch(this.type)
		{
			case "hideSec":
				result.push(this.section + " section in tab " + this.tab +  " was hidden");
				break;
			case "hideTab":
				result.push(this.tab + " tab was hidden");
				break;
			case "hideField":
				result.push(this.field + " field was hidden");
				break;
			case "reNameSec":
				result.push(this.section + " section in tab " + this.tab + " was renamed " + this.newName);
				break;
			case "insertField":
				result.push(this.field + " was inserted " + this.insert + " " + this.moveTo);
				break;
			case "moveSec":
				result.push(this.section + " section was " + this.moveType + "ed to " + this.moveTo);
				break;
		}

	});
	XRM.formResult = result

}</pre>
<p>In our case this mock object has it&#8217;s own executeFormRules method, but this one just creates an array. We can compare that array to an expected array, and test that our code is working.</p>
<p>In our specific case, this is somewhat overkill, but in situations where you may have more complex business logic, this testability is definitely an advantage.  Especially considering that a lot of javascript debugging is a matter of typos and syntax issues, using jUnit can definitely streamline that portion of the debugging.</p>
<h3>Portability</h3>
<p>The fact that we can test most of our logic without a CRM form means that we can also port our stuff between versions of CRM more easily as well. Again, since the only piece that actually interacts with the form is the object defined CreateXrmFormRulesMethods, we can use most of the same code in CRM 4.0, CRM 2011 and even in whatever comes next. It&#8217;s simply a matter of creating an object with the right method names with code that is targeted to CRM 4.0.</p>
<h3>Readability</h3>
<p>It may seem odd to argue that the OOP version of form manipulation is more readable, since it uses code and concepts that may not be familiar to a lot of developers, but if we focus on the part of the code that actually has the business logic, it&#8217;s extremely readable. It&#8217;s just a an array with section names and actions. It makes the parts of the code most relevant and likely to see the most updates very readable.</p>
<h3>Maintainability</h3>
<p>Along with that readability comes great maintainability. Adding new business logic is simply a matter of a new entry in the array. With simpler syntax, there&#8217;s less room for typos, making updates very easy.</p>
<h3>Conclusion</h3>
<p>In some cases, going with a full OOP set up for your CRM javascript is probably overkill, but in a lot of cases it can streamline development and improve maintainability. Even if you don&#8217;t use a full OOP setup like we did in this series you can take some of the ideas and improve your CRM code significantly.</p>
<p><a href="http://blogs.engage2day.com/2011/10/crm-and-object-oriented-javascript-part-iv/">CRM and Object Oriented Javascript Part IV</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://blogs.engage2day.com/2011/10/crm-and-object-oriented-javascript-part-iv/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://blogs.engage2day.com/2011/10/crm-and-object-oriented-javascript-part-iv/&amp;title=CRM+and+Object+Oriented+Javascript+Part+IV" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blogs.engage2day.com/2011/10/crm-and-object-oriented-javascript-part-iv/&amp;t=CRM+and+Object+Oriented+Javascript+Part+IV" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://blogs.engage2day.com/2011/10/crm-and-object-oriented-javascript-part-iv/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blogs.engage2day.com/2011/10/crm-and-object-oriented-javascript-part-iv/&amp;title=CRM+and+Object+Oriented+Javascript+Part+IV&amp;summary=This%20is%20part%20of%20a%20four%20part%20series%20on%20CRM%20and%20object%20oriented%20Javascript.%20Follow%20the%20links%20to%20parts%20I%2C%20II%2C%20and%20III.%0D%0A%0D%0ALast%20post%20we%20did%20a%20detailed%20walkthrough%20of%20our%20object%20oriented%20form%20handler%20.%20At%20the%20end%2C%20we%20promised%20an%20explanation%20of%20why%20you%20might%20want%20to%20take%20this%20approach%20rather%20than%20the%20trad&amp;source=Put IT in High Gear - Engage!" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://blogs.engage2day.com/2011/10/crm-and-object-oriented-javascript-part-iv/&amp;title=CRM+and+Object+Oriented+Javascript+Part+IV" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=CRM+and+Object+Oriented+Javascript+Part+IV+-+http://bit.ly/qjU2Xf&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://blogs.engage2day.com/2011/10/crm-and-object-oriented-javascript-part-iv/&amp;title=CRM+and+Object+Oriented+Javascript+Part+IV" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>Related posts:<ol><li><a href='http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript-part-ii/' rel='bookmark' title='Permanent Link: Dynamics CRM Forms and Object Oriented Javascript Part II'>Dynamics CRM Forms and Object Oriented Javascript Part II</a></li>
<li><a href='http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/' rel='bookmark' title='Permanent Link: Dynamics CRM Forms and Object Oriented Javascript'>Dynamics CRM Forms and Object Oriented Javascript</a></li>
<li><a href='http://blogs.engage2day.com/2011/09/crm-and-object-oriented-javascript-part-iii/' rel='bookmark' title='Permanent Link: CRM and Object Oriented Javascript Part III'>CRM and Object Oriented Javascript Part III</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.engage2day.com/2011/10/crm-and-object-oriented-javascript-part-iv/feed/</wfw:commentRss>
		<slash:comments><span class="dsq-postid" rel="1488 http://blogs.engage2day.com/?p=1488">0</span></slash:comments>
		</item>
		<item>
		<title>CRM and Object Oriented Javascript Part III</title>
		<link>http://blogs.engage2day.com/2011/09/crm-and-object-oriented-javascript-part-iii/</link>
		<comments>http://blogs.engage2day.com/2011/09/crm-and-object-oriented-javascript-part-iii/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 16:15:34 +0000</pubDate>
		<dc:creator>engage</dc:creator>
				<category><![CDATA[CRM 2011]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[General Interest]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://blogs.engage2day.com/?p=1473</guid>
		<description><![CDATA[This is part three of a multi-part series on CRM and object oriented javascript. Follow the links for parts I and II In this post, we will digg a little deeper into the functions we outlined last time. We&#8217;ll tackle the code in the order it&#8217;s written. FormHandlerBaseClassSetup Last time we mentioned that this section [...]<p><a href="http://blogs.engage2day.com/2011/09/crm-and-object-oriented-javascript-part-iii/">CRM and Object Oriented Javascript Part III</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>



Related posts:<ol><li><a href='http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript-part-ii/' rel='bookmark' title='Permanent Link: Dynamics CRM Forms and Object Oriented Javascript Part II'>Dynamics CRM Forms and Object Oriented Javascript Part II</a></li>
<li><a href='http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/' rel='bookmark' title='Permanent Link: Dynamics CRM Forms and Object Oriented Javascript'>Dynamics CRM Forms and Object Oriented Javascript</a></li>
<li><a href='http://blogs.engage2day.com/2011/04/sociologist-need-apply-gaming-crm/' rel='bookmark' title='Permanent Link: Sociologist Need Apply &#8211; Gaming CRM'>Sociologist Need Apply &#8211; Gaming CRM</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blogs.engage2day.com/2011/09/crm-and-object-oriented-javascript-part-iii/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' /></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblogs.engage2day.com%2F2011%2F09%2Fcrm-and-object-oriented-javascript-part-iii%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblogs.engage2day.com%2F2011%2F09%2Fcrm-and-object-oriented-javascript-part-iii%2F&amp;source=engage2day&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0531a2647ff7ca1358e48c8c8a3e1541&amp;b=2" height="61" width="50" title="CRM and Object Oriented Javascript Part III" alt=" CRM and Object Oriented Javascript Part III" /><br />
			</a>
		</div>
<p><em>This is part three of a multi-part series on CRM and object oriented javascript. Follow the links for parts I and II </em></p>
<p>In this post, we will digg a little deeper into the functions we outlined last time. We&#8217;ll tackle the code in the order it&#8217;s written.</p>
<h3>FormHandlerBaseClassSetup</h3>
<p>Last time we mentioned that this section was responsible for setting up the equivalent of an abstract class for our form handlers. There&#8217;s actually a little bit more going on here than that. This function also handles setting up our namespace. Recognize this bit of code here?<span id="more-1473"></span></p>
<pre>if (typeof CRM == "undefined" || !CRM) {

	CRM = {};

};

CRM.namespace = function() {
	var a=arguments, o=null, i, j, d;
	for (i=0; i&amp;lt;a.length; i=i+1) {
		d=a[i].split(&amp;quot;.&amp;quot;);
		o=window;
		for (j=0; j&amp;lt;d.length; j=j+1) {
			o[d[j]]=o[d[j]] || {};
			o=o[d[j]];
		}
	}
	return o;</pre>
<p>This was from our first post in this series, the namespacing function. So the first thing we&#8217;re doing in this class is setting up our global namespace.</p>
<p>After that, we take on the task of actually setting up our abstract class</p>
<pre>ns = CRM.namespace('CRM.FormHandlers');
ns.AbstractFormHandler = function(ui, data){ 

	this.formRules = [];
	this.executeFormRules = function(){ ui.executeFormRules(this.formRules)};
};</pre>
<p>There&#8217;s not much here, just a couple of stubbed out methods and properties.  There are a few little thins worth noticing though. Take a look at our constructor. You&#8217;ll notice it&#8217;s got two parameters, &#8220;ui&#8221; and &#8220;data.&#8221; Our absract class isn&#8217;t using data at all, but we are using the &#8220;ui&#8221; object. We&#8217;ll get into the logic behind this later in this post.</p>
<h3>SetupFormHandlers</h3>
<p>In SetupFormHandlers, we&#8217;re creating classes that implement the abstract class we defined above. As we talked about in the first post, creating a class is just a matter of adding a new method to our namespace. To make this class inherit, from our base, we use the jQuery extend function.</p>
<p>There are a couple key things to notice here. First, you&#8217;ll see that the class names are the combination of the entity type, and the value of the new_type field. This naming convention becomes important in the last section of our program. You&#8217;ll also see that the only thing that these implementations do is override the formRules property of our abstract class. Basically for each formHandler, we list the actual changes we want to have happen to the form. However, we don&#8217;t actually put the code that makes those changes in place until the next section.</p>
<h3>CreateXrmFormRulesMethods</h3>
<p>In this section, we&#8217;re defining the algorithms that actually handle manipulating the form. We actually store the algorithm&#8217;s inside of CRM 2011&#8242;s Xrm.Page.ui namespace, creating a new object and subnamespace, &#8220;FormRules.&#8221; There&#8217;s no reason we can&#8217;t extend the Xrm object or subobjects like this, so long as we&#8217;re careful that our names of our namespace objects don&#8217;t clash with those of Microsoft.</p>
<p>This custom FormRules object is basically just a container for a series of functions that manipulate the form in very specific ways. Each one of these methods takes the same parameter, an object named rule. Each rule is one of the formRules we defined in SetUpFormHandlers.</p>
<p>Aside from defining  our functions that manipulate the form, there&#8217;s also this snippet of code.</p>
<pre>Xrm.Page.ui.executeFormRules = function(formRules)
{
	$.each(formRules, function(){
		if(this.type)
			Xrm.Page.ui.FormRules[this.type](this);
	});
};</pre>
<p>Here we&#8217;re adding a new method to the ui object, executeFormRules. This code employees the strategy pattern we talked about the first post. The method takes in a list of rules from one of our form handlers, loops through each rule, checks that it has a property &#8220;type&#8221; and then finds an executes the method from FormRules that has the same name as the type, passing in the rule as a parameter.</p>
<h3>ExecuteFormRules</h3>
<p>Now we come to the final part, that ties it all together.  There&#8217;s so little code, so let&#8217;s just copy it all here and go line by line.</p>
<pre>ns = CRM.namespace("CRM.FormHandlers");
handlerName = Xrm.Page.data.entity.getEntityName() + "_Type" + Xrm.Page.getAttribute("new_type").getValue();
handler = new ns[handlerName](Xrm.Page.ui);

handler.executeFormRules();</pre>
<p>First, we put ourselves in the CRM.FormHandlers namespace where we defined all the FormHandlers. Then we build a string that will end up matching the name of the appropriate form handler. We use that string to select the right form handler object from our CRM.FormHandlers namespace and we generate a new instance of that object, passing in the Xrm.Page.ui object. Finally we call the executeFormRules() object on that handler.</p>
<p>The executeFormRules method is the method defined earlier in our abstract class, consisting of the following one line of code.</p>
<p>ui.executeFormRules(this.formRules)</p>
<p>That line simply calls the executeFormRules method the first parameter passed into our form handler constructor. In this case, that is the Xrm.Page.ui object. In the  CreateXrmFormRulesMethods section, we added an executeFormRules method to that object, so it&#8217;s our new custom method that get&#8217;s executed at this point. As we discussed above, that method loops through the list of rules passed in as a parameter, and actually executes the algorithms that will hide, move, or rename the form elements as appropriate.</p>
<h3>Wrap Up</h3>
<p>This basically offers a solid example of how to build an Object Oriented form handler. I&#8217;m sure the question a lot of you have though is why. We&#8217;ll talk through the advantages of and reasons for this kind of architecture in our next post.</p>
<p><a href="http://blogs.engage2day.com/2011/09/crm-and-object-oriented-javascript-part-iii/">CRM and Object Oriented Javascript Part III</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://blogs.engage2day.com/2011/09/crm-and-object-oriented-javascript-part-iii/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://blogs.engage2day.com/2011/09/crm-and-object-oriented-javascript-part-iii/&amp;title=CRM+and+Object+Oriented+Javascript+Part+III" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blogs.engage2day.com/2011/09/crm-and-object-oriented-javascript-part-iii/&amp;t=CRM+and+Object+Oriented+Javascript+Part+III" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://blogs.engage2day.com/2011/09/crm-and-object-oriented-javascript-part-iii/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blogs.engage2day.com/2011/09/crm-and-object-oriented-javascript-part-iii/&amp;title=CRM+and+Object+Oriented+Javascript+Part+III&amp;summary=This%20is%20part%20three%20of%20a%20multi-part%20series%20on%20CRM%20and%20object%20oriented%20javascript.%20Follow%20the%20links%20for%20parts%20I%20and%20II%20%0D%0A%0D%0AIn%20this%20post%2C%20we%20will%20digg%20a%20little%20deeper%20into%20the%20functions%20we%20outlined%20last%20time.%20We%27ll%20tackle%20the%20code%20in%20the%20order%20it%27s%20written.%0D%0AFormHandlerBaseClassSetup%0D%0ALast%20time%20we%20ment&amp;source=Put IT in High Gear - Engage!" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://blogs.engage2day.com/2011/09/crm-and-object-oriented-javascript-part-iii/&amp;title=CRM+and+Object+Oriented+Javascript+Part+III" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=CRM+and+Object+Oriented+Javascript+Part+III+-+http://bit.ly/qoFhtC&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://blogs.engage2day.com/2011/09/crm-and-object-oriented-javascript-part-iii/&amp;title=CRM+and+Object+Oriented+Javascript+Part+III" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>Related posts:<ol><li><a href='http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript-part-ii/' rel='bookmark' title='Permanent Link: Dynamics CRM Forms and Object Oriented Javascript Part II'>Dynamics CRM Forms and Object Oriented Javascript Part II</a></li>
<li><a href='http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/' rel='bookmark' title='Permanent Link: Dynamics CRM Forms and Object Oriented Javascript'>Dynamics CRM Forms and Object Oriented Javascript</a></li>
<li><a href='http://blogs.engage2day.com/2011/04/sociologist-need-apply-gaming-crm/' rel='bookmark' title='Permanent Link: Sociologist Need Apply &#8211; Gaming CRM'>Sociologist Need Apply &#8211; Gaming CRM</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.engage2day.com/2011/09/crm-and-object-oriented-javascript-part-iii/feed/</wfw:commentRss>
		<slash:comments><span class="dsq-postid" rel="1473 http://blogs.engage2day.com/?p=1473">0</span></slash:comments>
		</item>
		<item>
		<title>Dynamics CRM Forms and Object Oriented Javascript Part II</title>
		<link>http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript-part-ii/</link>
		<comments>http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript-part-ii/#comments</comments>
		<pubDate>Sat, 21 May 2011 22:30:39 +0000</pubDate>
		<dc:creator>engage</dc:creator>
				<category><![CDATA[CRM 2011]]></category>
		<category><![CDATA[Customer Relationship Management (CRM)]]></category>
		<category><![CDATA[General Interest]]></category>
		<category><![CDATA[SCRM]]></category>
		<category><![CDATA[xRM]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[Dynamics]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://blogs.engage2day.com/?p=1457</guid>
		<description><![CDATA[This is a continuation of a series on using Object Oriented Javascript with Dynamics CRM. For Part I, go here Okay, so now that we&#8217;re all experts on Object Oriented Javascript, let&#8217;s try to apply this problem to the matter at hand; showing and hiding fields on a CRM form. Let&#8217;s start off by establishing [...]<p><a href="http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript-part-ii/">Dynamics CRM Forms and Object Oriented Javascript Part II</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>



Related posts:<ol><li><a href='http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/' rel='bookmark' title='Permanent Link: Dynamics CRM Forms and Object Oriented Javascript'>Dynamics CRM Forms and Object Oriented Javascript</a></li>
<li><a href='http://blogs.engage2day.com/2011/04/sociologist-need-apply-gaming-crm/' rel='bookmark' title='Permanent Link: Sociologist Need Apply &#8211; Gaming CRM'>Sociologist Need Apply &#8211; Gaming CRM</a></li>
<li><a href='http://blogs.engage2day.com/2010/05/enabling-healthcare-connectivity-through-xrm-frameworks/' rel='bookmark' title='Permanent Link: Enabling Healthcare Connectivity through xRM Frameworks'>Enabling Healthcare Connectivity through xRM Frameworks</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript-part-ii/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' /></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblogs.engage2day.com%2F2011%2F05%2Fdynamics-crm-forms-and-object-oriented-javascript-part-ii%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblogs.engage2day.com%2F2011%2F05%2Fdynamics-crm-forms-and-object-oriented-javascript-part-ii%2F&amp;source=engage2day&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0531a2647ff7ca1358e48c8c8a3e1541&amp;b=2" height="61" width="50" title="Dynamics CRM Forms and Object Oriented Javascript Part II" alt=" Dynamics CRM Forms and Object Oriented Javascript Part II" /><br />
			</a>
		</div>
<p>This is a continuation of a series on using Object Oriented Javascript with Dynamics CRM. For Part I, go <a href="http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/">here</a></p>
<p>Okay, so now that we&#8217;re all experts on Object Oriented Javascript, let&#8217;s try to apply this problem to the matter at hand; showing and hiding fields on a CRM form. Let&#8217;s start off by establishing some requirements and context around this task</p>
<p>Requirements</p>
<ol>
<li>Let&#8217;s assume we&#8217;re dealing with the native CRM account form. Our requirement is to display a different form depending on the value of a crm field with the name new_type.</li>
<li>For each value of new_type, we&#8217;re going to make a slew of different form changes. Fields will show and      hide, move around, and may even have different names.</li>
<li>You&#8217;re business users are always requesting the addition of new choices to that type field, along with custom forms. You need to make sure it&#8217;s easy to add a new type and customize it&#8217;s form.</li>
</ol>
<p><span id="more-1457"></span></p>
<p>If you&#8217;re on CRM 2011 you&#8217;re first inclination might be to try and use the multi form features, that let you have different forms based on security roles. However, in our experience, trying to have the right form load at runtime based off of a CRM field type is more trouble than it&#8217;s worth, slowing the process down with lots of refreshes, and requiring some frustrating maintenance. In fact this set of requirements is really perfect for Object Oriented Javascript.</p>
<h3>You&#8217;ve Got to Have a Strategy</h3>
<p>A Non-OOP Javascript veteran is likely to attach this problem with a giant switch statement, or a whole slew of is -elseifs. This will get the job done, but it&#8217;s not pretty or easily maintainable. The code will be long, with lots of repetition, and probably difficult to read.</p>
<p>Leveraging Object Oriented Javascript, we can come up with a much more elegant and straightforward solution. The key concepts in this solution are smart namespacing (discussed in part one) and something called &#8220;The Strategy Pattern.&#8221;</p>
<p>At it&#8217;s heart, the strategy pattern is basically a programming technique  where some your program can select an appropriate algorithm for a given behavior from a whole set of algorithms. Generally implementations of the strategy pattern try to rely on &#8220;convention&#8221; rather than &#8220;configuration.&#8221; That is they try to use inherit properties of the context to handle the algorithm selection, rather than relying on explicit configuration.</p>
<p>It all sounds very abstract, but it starts to make a lot of sense, when you see it in action. Let&#8217;s take a quick look at a full OOP javascript program that does this. Just a quick warning, you&#8217;re about to see a lot of code, so you may want to scroll to the end when we start dissecting the explanation.</p>
<p><code><br />
function FormHandlerBaseClassSetup(){<br />
if (typeof CRM == "undefined" || !CRM) {</code></p>
<p><code>CRM = {};</p>
<p>};</p>
<p>CRM.namespace = function() {<br />
var a=arguments, o=null, i, j, d;<br />
for (i=0; i&lt;a.length; i=i+1) {<br />
d=a[i].split(".");<br />
o=window;<br />
for (j=0; j&lt;d.length; j=j+1) {<br />
o[d[j]]=o[d[j]] || {};<br />
o=o[d[j]];<br />
}<br />
}<br />
return o;<br />
};</p>
<p>ns = CRM.namespace('CRM.FormHandlers');<br />
ns.AbstractFormHandler = function(ui, data){</p>
<p>this.formRules = [];<br />
this.executeFormRules = function(){ ui.executeFormRules(this.formRules)};<br />
};<br />
}</p>
<p>function SetupFormHandlers()<br />
{<br />
ns = CRM.namespace('CRM.FormHandlers');</p>
<p>ns.account_Type1 = function (ui,data){$.extend(true, this, new ns.AbstractFormHandler(ui,data))</p>
<p>this.formRules =[<br />
{ type: "hideSec", tab: "detailsTab" , section: "detailsTab_ContactInformation"},<br />
{ type: "hideSec", tab: "detailsTab" , section: "detailsTab_FamilyInformation"}<br />
];<br />
}</p>
<p>ns.account_Type2 = function (ui,data){$.extend(true, this, new ns.AbstractFormHandler(ui,data))</p>
<p>this.formRules = [<br />
{ type: "hideTab", tab: "detailsTab"}<br />
];<br />
}</p>
<p>ns.account_Type3 = function (ui,data){$.extend(true, this, new ns.AbstractFormHandler(ui,data))</p>
<p>this.formRules = [<br />
{ type: "hideField", field: "new_salutation"},<br />
{ type: "reNameSec" , tab: "detailsTab", section: "detailsTab_Roles", newName:"Roles and Responsibilities"}<br />
];</p>
<p>}<br />
}</p>
<p>function CreateXrmFormRulesMethods()<br />
{<br />
if (typeof(Xrm.Page.ui) != "undefined")<br />
{<br />
ns = Xrm.Page.ui.FormRules = {};</p>
<p>ns.hideSec = function(rule){<br />
window.Xrm.Page.ui.tabs.get(rule.tab).sections.get(rule.section).setVisible(false);</p>
<p>};</p>
<p>ns.hideTab = function(rule){<br />
window.Xrm.Page.ui.tabs.get(rule.tab).setVisible(false);<br />
};</p>
<p>ns.hideField = function(rule){<br />
window.Xrm.Page.ui.controls.get(rule.field).setVisible(false);</p>
<p>};</p>
<p>ns.reNameSec = function(rule){<br />
window.Xrm.Page.ui.tabs.get(rule.tab).sections.get(rule.section).setLabel(rule.newName);<br />
};<br />
}<br />
}</p>
<p></code></p>
<p><code>function ExecuteFormRules()<br />
{<br />
ns = CRM.namespace("CRM.FormHandlers");<br />
handlerName = Xrm.Page.data.entity.getEntityName() + "_Type" + Xrm.Page.getAttribute("new_type").getValue();<br />
handler = new ns[handlerName](Xrm.Page.ui, Xrm.Page.data);<br />
handler.executeFormRules();<br />
}<br />
</code></p>
<p>Don&#8217;t say I didn&#8217;t warn you. That&#8217;s a full 91 lines of code that has everything we need to manipulate forms based on our type field. Now we&#8217;re going to spend some time dissecting it in detail. What I&#8217;d recommend is that you copy the code into an editor that does code folding so you can look at it piece by piece (Notepad ++ is a favorite for javascript editing here.)</p>
<h3>Breaking It Down</h3>
<p>If you&#8217;re used to programming in traditional OOP languages like C#, then you probably approach most programs like this;</p>
<ol>
<li>Set up reusable classes and methods</li>
<li>Chain them together in a main method that actually drives the program flow.</li>
</ol>
<p>Generally javascript is no different, and the code above is architected in just that way. If you&#8217;ve got the code open in an editor with folding, you&#8217;ll be able to collapse the program down and see that it&#8217;s really made up of 4 functions.</p>
<p>function FormHandlerBaseClassSetup()</p>
<p>function SetupFormHandlers()</p>
<p>function CreateXrmFormRulesMethods()</p>
<p>function ExecuteFormRules()</p>
<p>The first three fit into category one, &#8220;Set up reusable classes and methods.&#8221; The last one is the equivalent of our main method that actually controls program flow.  To implement the full program, we basically call these four methods in order, generally by using CRM 2011 built in functions for calling methods in javascript libraries.</p>
<p>So what exactly are those first three methods setting up? Well at a high level, it looks like  this.</p>
<p>FormHandlerBaseClassSetup &#8211; Establishes an abstract class for an object we&#8217;re calling a FormHandler. A FormHandler is basically an object that has a series of rules that describe how a form should be modified. At this point we&#8217;re creating the equivalent of a C# abstract class, that defines some methods and basic logic, but leaves the specifics unimplemented.</p>
<p>SetupFormHandlers &#8211; Here we create actual implementations of our abstract form handler, where each implementation corresponds to the value of the new_type field. These implementations actually have specific rules that define how the form should look for each value.</p>
<p>CreateXrmFormRulesMethods &#8211; In the SetupFormHandlers function you see each form handler has a series of form rules, each one with a time. In the CreateXrmFormRulesMethods we actually define how that rule is actually accomplished in code. Essentially, we define all the methods and functions that handle doing the actual hiding, moving, and renaming of our form fields. One thing to note is that you can easily change the code in the class to target CRM 4.0 or CRM 2011, without changing either of the first two functions</p>
<p>ExecuteFormRules &#8211; This is the function that actually drives program flow. As you can see it&#8217;s fairly simple. All we do is create a new instance the appropriate form handler, based on the value of the new_type field, and then call that handler&#8217;s execute form function.</p>
<p>Next post, we&#8217;ll take a look at what each of these functions do specifically, and walk through the architectural decisions of how and why they were structured as they were.</p>
<p><a href="http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript-part-ii/">Dynamics CRM Forms and Object Oriented Javascript Part II</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript-part-ii/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript-part-ii/&amp;title=Dynamics+CRM+Forms+and+Object+Oriented+Javascript+Part+II" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript-part-ii/&amp;t=Dynamics+CRM+Forms+and+Object+Oriented+Javascript+Part+II" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript-part-ii/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript-part-ii/&amp;title=Dynamics+CRM+Forms+and+Object+Oriented+Javascript+Part+II&amp;summary=This%20is%20a%20continuation%20of%20a%20series%20on%20using%20Object%20Oriented%20Javascript%20with%20Dynamics%20CRM.%20For%20Part%20I%2C%20go%20here%0D%0AOkay%2C%20so%20now%20that%20we%27re%20all%20experts%20on%20Object%20Oriented%20Javascript%2C%20let%27s%20try%20to%20apply%20this%20problem%20to%20the%20matter%20at%20hand%3B%20showing%20and%20hiding%20fields%20on%20a%20CRM%20form.%20Let%27s%20start%20off%20by%20establi&amp;source=Put IT in High Gear - Engage!" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript-part-ii/&amp;title=Dynamics+CRM+Forms+and+Object+Oriented+Javascript+Part+II" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Dynamics+CRM+Forms+and+Object+Oriented+Javascript+Part+II+-+http://bit.ly/jsGeqP&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript-part-ii/&amp;title=Dynamics+CRM+Forms+and+Object+Oriented+Javascript+Part+II" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>Related posts:<ol><li><a href='http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/' rel='bookmark' title='Permanent Link: Dynamics CRM Forms and Object Oriented Javascript'>Dynamics CRM Forms and Object Oriented Javascript</a></li>
<li><a href='http://blogs.engage2day.com/2011/04/sociologist-need-apply-gaming-crm/' rel='bookmark' title='Permanent Link: Sociologist Need Apply &#8211; Gaming CRM'>Sociologist Need Apply &#8211; Gaming CRM</a></li>
<li><a href='http://blogs.engage2day.com/2010/05/enabling-healthcare-connectivity-through-xrm-frameworks/' rel='bookmark' title='Permanent Link: Enabling Healthcare Connectivity through xRM Frameworks'>Enabling Healthcare Connectivity through xRM Frameworks</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript-part-ii/feed/</wfw:commentRss>
		<slash:comments><span class="dsq-postid" rel="1457 http://blogs.engage2day.com/?p=1457">0</span></slash:comments>
		</item>
		<item>
		<title>Dynamics CRM Forms and Object Oriented Javascript</title>
		<link>http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/</link>
		<comments>http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/#comments</comments>
		<pubDate>Sun, 08 May 2011 02:09:52 +0000</pubDate>
		<dc:creator>engage</dc:creator>
				<category><![CDATA[CRM 2011]]></category>
		<category><![CDATA[General Interest]]></category>
		<category><![CDATA[xRM]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Dynamics]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blogs.engage2day.com/?p=1454</guid>
		<description><![CDATA[Javascipt inside of CRM has historically been essential, but a bit of a messy affair. Things have improved in CRM 2011 with the advent of form libraries, but I think most CRM developers will admit they&#8217;ve worked on CRM projects where they wrote some scary spaghetti JavaScript. Sure, it got the job done, but it [...]<p><a href="http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/">Dynamics CRM Forms and Object Oriented Javascript</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>



Related posts:<ol><li><a href='http://blogs.engage2day.com/2011/04/sociologist-need-apply-gaming-crm/' rel='bookmark' title='Permanent Link: Sociologist Need Apply &#8211; Gaming CRM'>Sociologist Need Apply &#8211; Gaming CRM</a></li>
<li><a href='http://blogs.engage2day.com/2010/09/technical-deep-dive-export-to-excel-in-microsoft-dynamics-crm-4-0/' rel='bookmark' title='Permanent Link: Technical Deep Dive – Export to Excel in Microsoft Dynamics CRM 4.0'>Technical Deep Dive – Export to Excel in Microsoft Dynamics CRM 4.0</a></li>
<li><a href='http://blogs.engage2day.com/2010/08/crm-customizations-webinar-javascript-tips-and-tricks-with-andrew-swerlick/' rel='bookmark' title='Permanent Link: CRM Customizations Webinar – JavaScript Tips and Tricks'>CRM Customizations Webinar – JavaScript Tips and Tricks</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' /></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblogs.engage2day.com%2F2011%2F05%2Fdynamics-crm-forms-and-object-oriented-javascript%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblogs.engage2day.com%2F2011%2F05%2Fdynamics-crm-forms-and-object-oriented-javascript%2F&amp;source=engage2day&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0531a2647ff7ca1358e48c8c8a3e1541&amp;b=2" height="61" width="50" title="Dynamics CRM Forms and Object Oriented Javascript" alt=" Dynamics CRM Forms and Object Oriented Javascript" /><br />
			</a>
		</div>
<p>Javascipt inside of CRM has historically been essential, but a bit of a messy affair. Things have improved in CRM 2011 with the advent of form libraries, but I think most CRM developers will admit they&#8217;ve worked on CRM projects where they wrote some scary spaghetti JavaScript. Sure, it got the job done, but it wasn&#8217;t pretty, and there was always the fear that the code was far more fragile than your well architected C# plugins and services; with there always being the hassle with CRM&#8217;s test-change-publish javascript debugging module, making javascript often something CRM developers actively look for ways to avoid.</p>
<p>The good news, is that with a little bit of object oriented magic, it&#8217;s possible to take a lot of the pain out of using Javascript and CRM, especially now in CRM 2011.  Over several of our next few month&#8217;s posts, we&#8217;ll be walking you through using object oriented javascript to achieve a fairly common CRM goal: showing different forms for an entity based on the value of a certain field.  We&#8217;ll start out this post by looking at the basics of object oriented javascript.</p>
<p>Object Oriented What?</p>
<p><span id="more-1454"></span></p>
<p>That javascript can be written in an object oriented manner at all is somewhat of a little known fact in the web world. For the most part, developers really only use javascript in a procedural fashion, for simple little website flourishes. That&#8217;s starting to change with the advent of HTML5 and the growth of powerful web apps, but for many JavaScript&#8217;s object oriented capabilities are a well kept secret.</p>
<p>Part of the problem is that object oriented programming (OOP) in javascript looks very different than languages like C# and Java. There are no built in class declarations, no ready made inheritance. In fact, at a fundamental level JavaScript is ridiculously simple. It has less than a dozen built in types of objects,  no built in name spacing, and no type declaration. But this apparently simplicity hides some incredible emergent capabilities.</p>
<p>Objects, Objects Everywhere</p>
<p>Let&#8217;s take a look at the basics of OOP in javascript. As we noted earlier, Javascript doesn&#8217;t have a lot of the pieces of OOP that we usually expect, like class declarations. So how do we do the javascript equivalent? Like this</p>
<p>Foo = function(){</p>
<p>//Insert constructor logic here</p>
<p>}</p>
<p>Now if we want a new instance of the Foo class we write</p>
<p>myFoo = new Foo();</p>
<p>Alright, but then what about properties, or methods, or passing parameters in the constructor?  Easy, just declare them in your constructor, like so.</p>
<p>Ninja = function(weapon){</p>
<p>this.weapon = weapon;</p>
<p>this.sneak = function(){</p>
<p>alert(&#8220;The ninja is sneaking!&#8221;)</p>
<p>};</p>
<p>this.attack=function(){</p>
<p>alert(&#8220;The ninja attacks you with his &#8221; + this.weapon);</p>
<p>};</p>
<p>}</p>
<p>Now we&#8217;ve got a Ninja class that can sneak, and attack with a weapon. It behaves just like we would expect a good object to behave</p>
<p>myNinja = new Ninja(&#8220;katana&#8221;);</p>
<p>myNinja.sneak();</p>
<p>//outputs &#8220;The ninja is sneaking&#8221;</p>
<p>myNinja.attack();</p>
<p>//outputs &#8220;The ninja attacks you with his katanta&#8221;</p>
<p>Javascript even supports private properties, with accessors. Let&#8217;s imagine we want to make our ninja more PC and allow the user to declare a gender for the ninja, but not change the gender after the Ninja&#8217;s been created.</p>
<p>Ninja = function(weapon, gender){</p>
<p>this.weapon = weapon;</p>
<p>var gender = gender;</p>
<p>this.Gender = function() { return gender};</p>
<p>this.sneak = function(){</p>
<p>alert(&#8220;The ninja is sneaking!&#8221;)</p>
<p>};</p>
<p>this.attack=function(){</p>
<p>var pronoun;</p>
<p>If (gender == &#8220;male&#8221;)</p>
<p>{</p>
<p>pronoun = &#8220;his&#8221;;</p>
<p>}</p>
<p>else if( gender ==&#8221;female&#8221;)</p>
<p>{</p>
<p>prounoun = &#8220;her&#8221;;</p>
<p>}</p>
<p>alert(&#8220;The ninja attacks you with &#8221; + pronoun + &#8221; &#8221; + this.weapon);</p>
<p>};</p>
<p>}</p>
<p>Simply by leaving off the &#8220;this&#8221; when we declare  the gender variable, we ensure it&#8217;s only available in the Ninja class. If  a user developer wants to retrieve the Ninja&#8217;s gender, they just call Gender().</p>
<p>guyNinja = new Ninja(&#8220;katana&#8221;,&#8221;male&#8221;);</p>
<p>alert(guyNinja.Gender());</p>
<p>//outputs &#8220;male&#8221;</p>
<p>guyNinja.attack();</p>
<p>//outputs &#8220;The ninja attacks you with his katana&#8221;</p>
<p>girlNinja = new Ninja(&#8220;dagger&#8221;, &#8220;female&#8221;);</p>
<p>girlNinja.attack();</p>
<p>//outputs &#8220;The ninja attacks you with her dagger&#8221;</p>
<p>More Inheritance than you can shake an object at</p>
<p>So we have classes, but what about the next key to OOP, inheritance? Here&#8217;s where things get a little more complicated. There&#8217;s no built in syntax for inheritance in Javascript, instead you roll your own. The basic idea is to create an instance of the base object, copy all of it&#8217;s properties and methods to your inherited object, and then override the specific methods as needed. Of course, there are about 15 different ways you can do this, depending on what you need, or what javascript frameworks you&#8217;re working in.</p>
<p>For this series, I&#8217;ll show you a simple inheritance strategy based on jquery. It&#8217;s certainly not the only method, but it&#8217;s one that met our set of specific needs. When we came up with this method for inheritance, we were looking for something that didn&#8217;t require us to use anything beyond jquery (because we were already using that for other purposes) and could express the details of the inheritance on a single line, so that you could still see class relationships even when we were using code folding in our editor.</p>
<p>Bar = function (){$.extend(true, this, new Foo());</p>
<p>//rest of our constructor logic here</p>
<p>}</p>
<p>Although there are a lot of parenthesis, what&#8217;s going on here is pretty simple. We&#8217;re declaring a new class named Bar. Whenever someone creates a instance of bar by calling new Bar() the first thing we do is call the $.extend() method. $.extend() is a jquery method that simply copies all of the properties and methods of one object to another. In this case we&#8217;re copying all of the properties and methods of a new instance of the Foo class, to &#8220;this&#8221; the object being instantiated by our Bar constructor. The true parameter tells the extend method to do a recursive copy, to copy any properties and methods of child objects that are themselves a property of our Foo object.</p>
<p>So going back to our ninja, example, let&#8217;s create a class named Samurai that inherits from Ninja. Samurai, attack just like Ninja do, but they don&#8217;t sneak. We need to override the sneak method to make sure everyone understands that.</p>
<p>Samurai = function(weapon, gender){$.extend(true, this, new Ninja(weapon, gender);</p>
<p>this.sneak = function(){</p>
<p>alert(&#8220;Samurai don&#8217;t sneak! They&#8217;re noble warriors.&#8221;);</p>
<p>}</p>
<p>}</p>
<p>If we create a new Samurai, and call it&#8217;s methods, we get this.</p>
<p>mySamurai = new Samurai(&#8220;female&#8221;, &#8220;katana&#8221;);</p>
<p>mySamurai.sneak();</p>
<p>//outputs &#8220;Samurai don&#8217;t sneak! They&#8217;re noble warriors&#8221;</p>
<p>mySamurai.attack();</p>
<p>//outputs &#8220;The ninja attacks you with her katana&#8221;</p>
<p>Order out of Object Chaos</p>
<p>So we&#8217;ve hit on most of the big pieces of object oriented programming, but what about some of the nice to haves, like namespacing? Well again, Javascript doesn&#8217;t have anything built in, but you can create your own namespace system out of objects. In this series will be using the same namespacing strategy used by Yahoo in their popular YUI javascript framework. To do that, first we declare a namespace global variable.</p>
<p>if (typeof MyNamespace== &#8220;undefined&#8221;) {</p>
<p>var MyNamespace= {};</p>
<p>}</p>
<p>Here, we&#8217;re checking to make sure no one else is using the variable name, MyNamespace, and then assigning an empty object to it. Next, we&#8217;ll create the function that handles creating the namespace</p>
<p>MyNamespace.namespace = function() {</p>
<p>var a = arguments, o = null, i, j, d;</p>
<p>for (i = 0; i &lt; a.length; i = i + 1) {</p>
<p>d = a[i].split(&#8220;.&#8221;);</p>
<p>o = window;</p>
<p>for (j = 0; j &lt; d.length; j = j + 1) {</p>
<p>o[d[j]] = o[d[j]] || {};</p>
<p>o = o[d[j]];</p>
<p>}</p>
<p>}</p>
<p>return o;</p>
<p>};</p>
<p>There&#8217;s a lot going on in those lines of code, but basically, this function expects a lists of strings. For each string it gets, it splits the string into an array based on the &#8220;.&#8221; character. For each item in that array, it creates an object tree, or assigns new objects as properties to existing ones. So calling</p>
<p>MyNamespace.namespace(&#8220;MyNamespace.Fighters&#8221;)  will first check to see if a MyNamespace object already exists. Since it does, it will move onto to the next part of the namespace, &#8220;Fighters.&#8221; Once it sees that &#8220;Fighters&#8221; doesn&#8217;t exist it will create a new empty object at MyNamespace.Fighters and return that object.</p>
<p>If you want to use a certain namespace, just capture the output of the namespace function.</p>
<p>ns = MyNamespace.namespace(&#8220;MyNamespace.Fighters&#8221;);</p>
<p>Then if you want to make sure the Ninja class is under the Fighters namespace, just do this</p>
<p>ns.Ninja = function(weapon,gender){</p>
<p>//constructor logic here.</p>
<p>}</p>
<p>Further Reading</p>
<p>This was a pretty fast crash course in OOP in Javascript, so if you want to study up further, check out these links. And check back soon for the next piece in this series, where we start looking at how we tie this into framework for the specific CRM problem mentioned at the start of this post; showing and hiding fields on a CRM form.</p>
<p>Basic overview on some OOP Javascript concepts</p>
<p><a href="http://javascript.crockford.com/javascript.html">http://javascript.crockford.com/javascript.html</a></p>
<p>More on Name spacing and javascript</p>
<p><a href="http://javascriptweblog.wordpress.com/2010/12/07/namespacing-in-javascript/">http://javascriptweblog.wordpress.com/2010/12/07/namespacing-in-javascript/</a></p>
<p><a href="http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/">Dynamics CRM Forms and Object Oriented Javascript</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/&amp;title=Dynamics+CRM+Forms+and+Object+Oriented+Javascript" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/&amp;t=Dynamics+CRM+Forms+and+Object+Oriented+Javascript" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/&amp;title=Dynamics+CRM+Forms+and+Object+Oriented+Javascript&amp;summary=Javascipt%20inside%20of%20CRM%20has%20historically%20been%20essential%2C%20but%20a%20bit%20of%20a%20messy%20affair.%20Things%20have%20improved%20in%20CRM%202011%20with%20the%20advent%20of%20form%20libraries%2C%20but%20I%20think%20most%20CRM%20developers%20will%20admit%20they%27ve%20worked%20on%20CRM%20projects%20where%20they%20wrote%20some%20scary%20spaghetti%20JavaScript.%20Sure%2C%20it%20got%20the%20job%20d&amp;source=Put IT in High Gear - Engage!" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/&amp;title=Dynamics+CRM+Forms+and+Object+Oriented+Javascript" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Dynamics+CRM+Forms+and+Object+Oriented+Javascript+-+http://bit.ly/l3xChS&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/&amp;title=Dynamics+CRM+Forms+and+Object+Oriented+Javascript" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>Related posts:<ol><li><a href='http://blogs.engage2day.com/2011/04/sociologist-need-apply-gaming-crm/' rel='bookmark' title='Permanent Link: Sociologist Need Apply &#8211; Gaming CRM'>Sociologist Need Apply &#8211; Gaming CRM</a></li>
<li><a href='http://blogs.engage2day.com/2010/09/technical-deep-dive-export-to-excel-in-microsoft-dynamics-crm-4-0/' rel='bookmark' title='Permanent Link: Technical Deep Dive – Export to Excel in Microsoft Dynamics CRM 4.0'>Technical Deep Dive – Export to Excel in Microsoft Dynamics CRM 4.0</a></li>
<li><a href='http://blogs.engage2day.com/2010/08/crm-customizations-webinar-javascript-tips-and-tricks-with-andrew-swerlick/' rel='bookmark' title='Permanent Link: CRM Customizations Webinar – JavaScript Tips and Tricks'>CRM Customizations Webinar – JavaScript Tips and Tricks</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.engage2day.com/2011/05/dynamics-crm-forms-and-object-oriented-javascript/feed/</wfw:commentRss>
		<slash:comments><span class="dsq-postid" rel="1454 http://blogs.engage2day.com/?p=1454">1</span></slash:comments>
		</item>
		<item>
		<title>Sociologist Need Apply &#8211; Gaming CRM</title>
		<link>http://blogs.engage2day.com/2011/04/sociologist-need-apply-gaming-crm/</link>
		<comments>http://blogs.engage2day.com/2011/04/sociologist-need-apply-gaming-crm/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 11:00:00 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[CRM 2011]]></category>
		<category><![CDATA[SCRM]]></category>
		<category><![CDATA[xRM]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[Dynamics]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[scrm]]></category>

		<guid isPermaLink="false">http://blogs.engage2day.com/?p=1396</guid>
		<description><![CDATA[Adding a Game Layer for Better Participation All of those hours spent in an arcade were not wasted. Can you believe it? If you reflect on your playing habits and reflect on why you did what you did or if you put your sociology hat on and go and visit Las Vegas you can improve [...]<p><a href="http://blogs.engage2day.com/2011/04/sociologist-need-apply-gaming-crm/">Sociologist Need Apply &#8211; Gaming CRM</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>



Related posts:<ol><li><a href='http://blogs.engage2day.com/2010/09/technical-deep-dive-export-to-excel-in-microsoft-dynamics-crm-4-0/' rel='bookmark' title='Permanent Link: Technical Deep Dive – Export to Excel in Microsoft Dynamics CRM 4.0'>Technical Deep Dive – Export to Excel in Microsoft Dynamics CRM 4.0</a></li>
<li><a href='http://blogs.engage2day.com/2010/08/crm-customizations-webinar-javascript-tips-and-tricks-with-andrew-swerlick/' rel='bookmark' title='Permanent Link: CRM Customizations Webinar – JavaScript Tips and Tricks'>CRM Customizations Webinar – JavaScript Tips and Tricks</a></li>
<li><a href='http://blogs.engage2day.com/2010/07/microsoft-dynamics-crm-4-0-rollup-12-now-available/' rel='bookmark' title='Permanent Link: Microsoft Dynamics CRM 4.0 Rollup 12 Now Available'>Microsoft Dynamics CRM 4.0 Rollup 12 Now Available</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blogs.engage2day.com/2011/04/sociologist-need-apply-gaming-crm/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' /></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblogs.engage2day.com%2F2011%2F04%2Fsociologist-need-apply-gaming-crm%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblogs.engage2day.com%2F2011%2F04%2Fsociologist-need-apply-gaming-crm%2F&amp;source=engage2day&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0531a2647ff7ca1358e48c8c8a3e1541&amp;b=2" height="61" width="50" title="Sociologist Need Apply   Gaming CRM" alt=" Sociologist Need Apply   Gaming CRM" /><br />
			</a>
		</div>
<h1><a href="http://blogs.engage2day.com/files/2011/03/chess.jpg"><img class="alignleft size-full wp-image-1405" style="margin-left: 15px;margin-right: 15px" src="http://blogs.engage2day.com/files/2011/03/chess.jpg" alt="chess Sociologist Need Apply   Gaming CRM" width="282" height="207" title="Sociologist Need Apply   Gaming CRM" /></a>Adding a Game Layer for Better Participation</h1>
<p>All of those hours spent in an arcade were not wasted.  Can you believe it?  If you reflect on your playing habits and reflect on why you did what you did or if you put your sociology hat on and go and visit Las Vegas you can improve the data in your <strong>CRM </strong>system and improve your customer participation in your website / blog or Facebook site.</p>
<p>People tend to be lazy or distrusting when filling in online forms.  They will give you what you require if you make the fields mandatory IF the payoff is worth it.  How many times did you want to see what was in a PDF but then were asked to fill out a form?  Sometimes you filled it out and other times you clicked out of the site and moved on.  If  you  trusted the site, you would have been more likely to fill in the information.  If the payoff &#8211; the data in the PDF &#8211; was good enough you would have filled the form out.  Now what if you were offered some other benefit to filing out the form or if you fill out the entire form you will get an additional PDF of equal or grater value.<span id="more-1396"></span></p>
<h2><span style="text-decoration: underline">The gaming layer enters the picture.</span></h2>
<p>Creating a raving fan base needs a unique set of rules added to the relationship that will encourage them to introduce their friends to your business.  The key to creating these raving fans and advocates is offering unique program for them and not a generic one size fits all campaign.  Allowing your customers to adapt the &#8220;game&#8221; to best fit them will create a stronger relationship.  Chris Brogan uses the analogy of people adapting how they play the game Monopoly in his book <a href="http://www.trustagent.com/" target="_blank">Trust Agents</a>.  Some people start off the game with $500 in the middle for those that land on &#8220;free parking&#8221; or others allow you to go again if you roll doubles but on the third roll of doubles you go to &#8220;jail&#8221;.  By personalizing or &#8220;hacking&#8221; the game loyalty increases as well as fan buy-in into your company and product.  A new culture will grow and then this culture will encourage new fans.</p>
<p>Your employees will do their best when time permits.  When they get busy, they will prioritize their tasks in order to get their job done.  One of the first things to go will be filling in customer data <strong>CRM </strong>consistently and completely.  As all business owners know, your <strong>CRM </strong>system is only as good as the data that is inside.  A simple badge or status symbol that is then attached to a perceived benefit to the employee could be introduced into the system to encourage more of an effort in entering up to date and accurate data.  Allowing your employees to play a game while doing their job will increase their interest and satisfaction.  Giving them a new &#8220;status&#8221; at work will encourage them to continue doing the best they can do.  Allowing them to add onto the game and &#8220;compete&#8221; against other employees or departments will improve your culture.</p>
<p>How are you encouraging more participation by your employees and customers?  Are they Fans?</p>
<p>Photo by <a href="http://www.flickr.com/photos/tenspeedphotography/3536942268/" target="_blank">Richard Heaven</a></p>
<p><a href="http://blogs.engage2day.com/2011/04/sociologist-need-apply-gaming-crm/">Sociologist Need Apply &#8211; Gaming CRM</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://blogs.engage2day.com/2011/04/sociologist-need-apply-gaming-crm/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://blogs.engage2day.com/2011/04/sociologist-need-apply-gaming-crm/&amp;title=Sociologist+Need+Apply+-+Gaming+CRM" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blogs.engage2day.com/2011/04/sociologist-need-apply-gaming-crm/&amp;t=Sociologist+Need+Apply+-+Gaming+CRM" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://blogs.engage2day.com/2011/04/sociologist-need-apply-gaming-crm/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blogs.engage2day.com/2011/04/sociologist-need-apply-gaming-crm/&amp;title=Sociologist+Need+Apply+-+Gaming+CRM&amp;summary=Adding%20a%20Game%20Layer%20for%20Better%20Participation%0AAll%20of%20those%20hours%20spent%20in%20an%20arcade%20were%20not%20wasted.%20%20Can%20you%20believe%20it%3F%20%20If%20you%20reflect%20on%20your%20playing%20habits%20and%20reflect%20on%20why%20you%20did%20what%20you%20did%20or%20if%20you%20put%20your%20sociology%20hat%20on%20and%20go%20and%20visit%20Las%20Vegas%20you%20can%20improve%20the%20data%20in%20your%20CRM%20&amp;source=Put IT in High Gear - Engage!" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://blogs.engage2day.com/2011/04/sociologist-need-apply-gaming-crm/&amp;title=Sociologist+Need+Apply+-+Gaming+CRM" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Sociologist+Need+Apply+-+Gaming+CRM+-+http://bit.ly/fChbbG&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://blogs.engage2day.com/2011/04/sociologist-need-apply-gaming-crm/&amp;title=Sociologist+Need+Apply+-+Gaming+CRM" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>Related posts:<ol><li><a href='http://blogs.engage2day.com/2010/09/technical-deep-dive-export-to-excel-in-microsoft-dynamics-crm-4-0/' rel='bookmark' title='Permanent Link: Technical Deep Dive – Export to Excel in Microsoft Dynamics CRM 4.0'>Technical Deep Dive – Export to Excel in Microsoft Dynamics CRM 4.0</a></li>
<li><a href='http://blogs.engage2day.com/2010/08/crm-customizations-webinar-javascript-tips-and-tricks-with-andrew-swerlick/' rel='bookmark' title='Permanent Link: CRM Customizations Webinar – JavaScript Tips and Tricks'>CRM Customizations Webinar – JavaScript Tips and Tricks</a></li>
<li><a href='http://blogs.engage2day.com/2010/07/microsoft-dynamics-crm-4-0-rollup-12-now-available/' rel='bookmark' title='Permanent Link: Microsoft Dynamics CRM 4.0 Rollup 12 Now Available'>Microsoft Dynamics CRM 4.0 Rollup 12 Now Available</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.engage2day.com/2011/04/sociologist-need-apply-gaming-crm/feed/</wfw:commentRss>
		<slash:comments><span class="dsq-postid" rel="1396 http://blogs.engage2day.com/?p=1396">0</span></slash:comments>
		</item>
		<item>
		<title>18 Ways to Have a Great Convergence 2011</title>
		<link>http://blogs.engage2day.com/2011/04/18-ways-to-have-a-great-convergence-2011/</link>
		<comments>http://blogs.engage2day.com/2011/04/18-ways-to-have-a-great-convergence-2011/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 21:25:16 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[CRM 2011]]></category>
		<category><![CDATA[conv11]]></category>

		<guid isPermaLink="false">http://blogs.engage2day.com/?p=1423</guid>
		<description><![CDATA[Who to meet and what to say at Convergence 2011 When you come to Atlanta this year for another fantastic Convergence show you should have a game plan. Convergence is a big event and a great way to meet some of the most influential people in the Microsoft Dynamics CRM business. So while you are [...]<p><a href="http://blogs.engage2day.com/2011/04/18-ways-to-have-a-great-convergence-2011/">18 Ways to Have a Great Convergence 2011</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>



No related posts.]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blogs.engage2day.com/2011/04/18-ways-to-have-a-great-convergence-2011/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' /></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblogs.engage2day.com%2F2011%2F04%2F18-ways-to-have-a-great-convergence-2011%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblogs.engage2day.com%2F2011%2F04%2F18-ways-to-have-a-great-convergence-2011%2F&amp;source=engage2day&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0531a2647ff7ca1358e48c8c8a3e1541&amp;b=2" height="61" width="50" title="18 Ways to Have a Great Convergence 2011" alt=" 18 Ways to Have a Great Convergence 2011" /><br />
			</a>
		</div>
<h1><a href="http://blogs.engage2day.com/files/2010/06/crm.jpg"><img class="alignleft size-full wp-image-622" style="margin-left: 15px; margin-right: 15px;" title="Microsoft Dynamics CRM" src="http://blogs.engage2day.com/files/2010/06/crm.jpg" alt="crm 18 Ways to Have a Great Convergence 2011" width="136" height="52" /></a>Who to meet and what to say at Convergence 2011</h1>
<p>When you come to Atlanta this year for another fantastic <strong><a href="http://www.microsoft.com/dynamics/convergence/atlanta11/" target="_blank">Convergence </a></strong>show you should have a game plan. <strong>Convergence </strong>is a big event and a great way to meet some of the most influential people in the <strong>Microsoft Dynamics</strong> <strong>CRM </strong>business.   So while you are here in Atlanta  enjoying all of the presentations and the showroom floor, please take some time to seek out these <strong>Microsoft Dynamics CRM industry leaders </strong>{<span style="text-decoration: underline;">Not in any particular order</span>}.  Here is who I would like to meet and what I would say:</p>
<ol>
<li><a href="http://twitter.com/CRMLady" target="_blank">Anne Stanton</a> &#8211;  Where to Find her &#8211; <strong>Presenting</strong>: <a href="http://www.microsoft.com/dynamics/convergence/atlanta11/sessions.aspx" target="_blank">IDCRM83-R1 Achieving Customer Service Excellence: Tips &amp; Tricks with Microsoft Dynamics CRM 2011</a> What to say? &#8211; &#8220;Thanks for all of the great content and community contributions you have made.&#8221;</li>
<li><a href="http://twitter.com/CRMLarry" target="_blank">Larry Lentz</a> &#8211;   Where to Find him &#8211; Show room floor, at presentations, with the smart people.  What to say? &#8211; &#8220;Thanks for all of the great content and community contributions you have made.  Love your Twitter humor&#8221;</li>
<li><a href="http://twitter.com/toddcsharp" target="_blank">Todd Sharp</a> &#8211; Where to Find him &#8211; <strong>Presenting</strong>: <a href="http://www.microsoft.com/dynamics/convergence/atlanta11/sessions.aspx" target="_blank">CSCRM37 Streamlining Citizen Services with Microsoft Dynamics CRM Online for Governments</a> What to say? &#8211; &#8220;Thanks for all of your efforts to help our Government cut costs by using MSCRM for <a title="Correspondence Management Solutions" href="http://usfederal360.com/" target="_blank">Correspondence Management solutions</a>.&#8221;</li>
<li><a href="http://twitter.com/coloradojules" target="_blank">Julie Yack</a> &#8211;  Where to Find her -<strong>Presenting</strong>: I<a href="http://www.microsoft.com/dynamics/convergence/atlanta11/sessions.aspx" target="_blank">DCRM21-R1 Microsoft Dynamics CRM Online: Your Questions Answered</a> What to say? &#8211; &#8220;Thank you for all your hard work with the <a title="XRM Virtual Users Group" href="http://www.xrmvirtual.com/" target="_blank">XRMVirtual </a>Users Group.&#8221;</li>
<li><a href="http://twitter.com/@edwardsdna" target="_blank">Donna Edwards</a>-   Where to Find her- Show room floor, at presentations, with the smart people.  What to say? &#8211; &#8220;Thanks for all of the great content and community contributions you have made. Loved your post on <a title="So You Want To Create a SSRS Custom Report" href="http://edwardsdna.wordpress.com/2010/09/03/so-you-want-to-create-a-ssrs-custom-report/" target="_blank">SSRS Custom Reports.</a>&#8220;</li>
<li><a href="http://twiter.com/ErikvanHoof" target="_blank">Erik van Hoof</a> &#8211; Where to Find him &#8211; Show room floor in the CWR booth, at presentations, with the smart people.  What to say? &#8211; &#8220;Thanks for a fantastic <a title="CWR Mobility" href="http://cwrmobility.com/" target="_blank">CRM mobile</a> solution and for the <a href="http://convergencepizzaparty-estw.eventbrite.com/" target="_blank">pizza and beer</a>.&#8221;</li>
<li><a href="http://twitter.com/MarkCorley" target="_blank">Mark Corley</a> &#8211; Where to Find him &#8211; <strong>Presenting</strong>: <a href="http://www.microsoft.com/dynamics/convergence/atlanta11/sessions.aspx" target="_blank">CSBL03 Get Your TTV &amp; ROI Mojo Going!</a> What to say? &#8211; &#8220;Thanks for bringing us great products from <a title="CWR Mobility" href="http://www.cwrmobility.com/" target="_blank">CWRMobility</a>&#8220;</li>
<li><a href="http://twitter.com/ScottSewell" target="_blank">Scott Sewell</a>-   Where to Find him &#8211; Show room floor, at presentations, with the smart people .  What to say? &#8211; &#8220;Thanks for all of the great content and community contributions you have made.&#8221;</li>
<li><a href="http://twitter.com/davidyack" target="_blank">David Yack</a>-   Where to Find him &#8211; Show room floor, at presentations, with the smart people.  What to say? &#8211; &#8220;Thanks for helping us extend <a href="http://crm.davidyack.com/journal/2011/1/27/book-update-crm-2011.html" target="_blank">CRM with Silverlight.</a>&#8220;</li>
<li><a href="http://twitter.com/Shan_McArthur" target="_blank">Shan McArthur</a> &#8211; Where to Find him &#8211; <strong>Presenting</strong>: <a href="http://www.microsoft.com/dynamics/convergence/atlanta11/sessions.aspx" target="_blank">CSCRM23-R1 Harnessing Cloud Technologies with Microsoft Dynamics CRM 2011</a> What to say? &#8211; &#8220;Thanks for all of your great content on building MSCRM solutions  in Azure.&#8221;</li>
<li><a href="http://twitter.com/reubenk " target="_blank">Reuben Krippner </a>- Where to Find him &#8211; presenting:  <a href="http://www.microsoft.com/dynamics/convergence/atlanta11/sessions.aspx" target="_blank">CSCRM61 Microsoft Dynamics Labs: Graduating from Accelerators to Solutions</a> What to say? &#8211; &#8220;Thanks for all of those <a title="CRM 4 Accellerators" href="http://crmaccelerators.codeplex.com/" target="_blank">CRM 4.0 accelerators</a>.  They saved us a bunch of time and made us look great.&#8221;</li>
<li><a href="http://twitter.com/JoelLindstrom" target="_blank">Joel Lindstrom</a>-   Where to Find him &#8211; Show room floor, at presentations, with the smart people.  What to say? &#8211; &#8220;Thanks for all of the great content and community contributions you have made.&#8221;</li>
<li><a href="http://twitter.com/#!/BenVollmer" target="_blank">Ben Vollmer</a> &#8211; Where to Find him &#8211; <strong>Presenting</strong>: <a href="http://www.microsoft.com/dynamics/convergence/atlanta11/sessions.aspx" target="_blank">DDCRM62 Microsoft Dynamics CRM 2011 + Microsoft Technologies = Business Value</a> What to say? &#8211; &#8220;Thanks for keeping MSCRM in the front of everyone&#8217;s mind when it comes to business solutions.&#8221;</li>
<li><a href="http://twitter.com/girishr" target="_blank">Girish Raja</a> &#8211; Where to Find him &#8211; <strong>Presenting</strong>:<a href="http://www.microsoft.com/dynamics/convergence/atlanta11/sessions.aspx" target="_blank"> CSCRM23-R1 Harnessing Cloud Technologies with Microsoft Dynamics CRM 2011</a> What to say? &#8211; &#8220;Thanks for all of those great <a href="http://channel9.msdn.com/Niners/girishr" target="_blank">Channel 9 videos</a>.&#8221;</li>
<li><a href="http://twitter.com/SanjayJain369" target="_blank">Sanjay Jain</a> &#8211; Where to Find him &#8211; <strong>Presenting</strong>:<a href="http://www.microsoft.com/dynamics/convergence/atlanta11/sessions.aspx" target="_blank"> CSCRM37 Streamlining Citizen Services with Microsoft Dynamics CRM Online for Governments</a> What to say? &#8211; &#8220;Thanks for all of those great <a href="http://channel9.msdn.com/Blogs/SanjayJain" target="_blank">Channel 9 videos</a>.&#8221;</li>
<li><a href="http://twitter.com/#!/Gharun" target="_blank">Gharun Hester</a> Where to Find him &#8211; <strong>Presenting</strong>: <a href="http://www.microsoft.com/dynamics/convergence/atlanta11/sessions.aspx" target="_blank">CSCRM37 Streamlining Citizen Services with Microsoft Dynamics CRM Online for Governments</a> What to say? &#8211; &#8220;Thanks for helping us keep MSCRM as the best solution for the public sector.&#8221;</li>
<li><a href="http://twitter.com/barrygivens" target="_blank">Barry Givens</a> &#8211; Where to Find him &#8211; <strong>Presenting</strong>:<a href="http://www.microsoft.com/dynamics/convergence/atlanta11/sessions.aspx" target="_blank"> CSCRM02-R1 Advanced Analytics for Microsoft Dynamics CRM 2011</a> What to say? &#8211; &#8220;Thanks for pushing the developers and making MSCRM even better than before.&#8221;</li>
<li><a href="http://twitter.com/MarcWolenik" target="_blank">Marc Wolenik</a> &#8211; Where to Find him &#8211; <strong>Presenting</strong>: <a href="http://www.microsoft.com/dynamics/convergence/atlanta11/sessions.aspx" target="_blank">CSCRM85 The Social Enterprise: Real-World Customer Stories</a> What to say? &#8211; &#8220;Thanks for keeping us informed with your <a href="http://www.webfortis.com/book.aspx" target="_blank">CRM Unleashed books</a>.</li>
</ol>
<p><span id="more-1423"></span></p>
<p>If you don&#8217;t get a chance to meet all of these CRM leaders, please take the time to look them up on Twitter or on their blog sites.  Each one of them has provided me directly or indirectly with a wealth of information over the past few years.</p>
<p>Did I miss anyone? If I did, I&#8217;m sorry.  Who you would add to the list?</p>
<p><a href="http://blogs.engage2day.com/2011/04/18-ways-to-have-a-great-convergence-2011/">18 Ways to Have a Great Convergence 2011</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://blogs.engage2day.com/2011/04/18-ways-to-have-a-great-convergence-2011/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://blogs.engage2day.com/2011/04/18-ways-to-have-a-great-convergence-2011/&amp;title=18+Ways+to+Have+a+Great+Convergence+2011" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blogs.engage2day.com/2011/04/18-ways-to-have-a-great-convergence-2011/&amp;t=18+Ways+to+Have+a+Great+Convergence+2011" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://blogs.engage2day.com/2011/04/18-ways-to-have-a-great-convergence-2011/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blogs.engage2day.com/2011/04/18-ways-to-have-a-great-convergence-2011/&amp;title=18+Ways+to+Have+a+Great+Convergence+2011&amp;summary=Who%20to%20meet%20and%20what%20to%20say%20at%20Convergence%202011%0D%0AWhen%20you%20come%20to%20Atlanta%20this%20year%20for%20another%20fantastic%20Convergence%20show%20you%20should%20have%20a%20game%20plan.%20Convergence%20is%20a%20big%20event%20and%20a%20great%20way%20to%20meet%20some%20of%20the%20most%20influential%20people%20in%20the%20Microsoft%20Dynamics%20CRM%20business.%20%20%20So%20while%20you%20are%20he&amp;source=Put IT in High Gear - Engage!" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://blogs.engage2day.com/2011/04/18-ways-to-have-a-great-convergence-2011/&amp;title=18+Ways+to+Have+a+Great+Convergence+2011" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=18+Ways+to+Have+a+Great+Convergence+2011+-+http://bit.ly/fAlIVp&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://blogs.engage2day.com/2011/04/18-ways-to-have-a-great-convergence-2011/&amp;title=18+Ways+to+Have+a+Great+Convergence+2011" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blogs.engage2day.com/2011/04/18-ways-to-have-a-great-convergence-2011/feed/</wfw:commentRss>
		<slash:comments><span class="dsq-postid" rel="1423 http://blogs.engage2day.com/?p=1423">2</span></slash:comments>
		</item>
		<item>
		<title>Windows 7 Hidden Features</title>
		<link>http://blogs.engage2day.com/2010/11/windows-7-hidden-features/</link>
		<comments>http://blogs.engage2day.com/2010/11/windows-7-hidden-features/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 12:38:18 +0000</pubDate>
		<dc:creator>Dale Hulburt</dc:creator>
				<category><![CDATA[General Interest]]></category>
		<category><![CDATA[windows 7]]></category>

		<guid isPermaLink="false">http://blogs.engage2day.com/?p=1151</guid>
		<description><![CDATA[I’m sure you’ve done this.  You are using a well-known application and stumble on to some ‘hidden’ functionality it has and thought “Wow, this is Cool” why didn’t I know about it earlier.  Well, that just happened to me with the Windows 7 Calculator tool. Maybe many of you already know about these features and [...]<p><a href="http://blogs.engage2day.com/2010/11/windows-7-hidden-features/">Windows 7 Hidden Features</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>



No related posts.]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blogs.engage2day.com/2010/11/windows-7-hidden-features/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' /></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblogs.engage2day.com%2F2010%2F11%2Fwindows-7-hidden-features%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblogs.engage2day.com%2F2010%2F11%2Fwindows-7-hidden-features%2F&amp;source=engage2day&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0531a2647ff7ca1358e48c8c8a3e1541&amp;b=2" height="61" width="50" title="Windows 7 Hidden Features" alt=" Windows 7 Hidden Features" /><br />
			</a>
		</div>
<p><a href="http://blogs.engage2day.com/files/2010/10/windows7.png"><img class="alignleft size-full wp-image-1258" style="margin-left: 15px; margin-right: 15px;" title="windows7" src="http://blogs.engage2day.com/files/2010/10/windows7.png" alt="windows7 Windows 7 Hidden Features" width="216" height="63" /></a>I’m sure you’ve done this.  You are using a well-known application and stumble on to some ‘hidden’ functionality it has and thought “Wow, this is Cool” why didn’t I know about it earlier.  Well, that just happened to me with the Windows 7 Calculator tool.</p>
<p>Maybe many of you already know about these features and that’s great, but for everyone else – this is what I stumbled on.</p>
<p><strong>Scenario:<br />
</strong>Okay, I needed to do some minor addition; so I clicked Start and typed calc in search to bring up the calculator tool.  After completing my task I started looking around the View menu and found some things I never knew were there.</p>
<p><span id="more-1151"></span></p>
<p><strong>The Standard Calculator stuff:<br />
</strong>Under the View menu there is what you would expect to find – the various types of calculators such as Scientific.</p>
<p> <a href="http://blogs.engage2day.com/files/2010/10/view-menu.png"><img class="alignnone size-full wp-image-1152" src="http://blogs.engage2day.com/files/2010/10/view-menu.png" alt="view menu Windows 7 Hidden Features" width="278" height="409" title="Windows 7 Hidden Features" /></a></p>
<p><strong>But Wait There’s More:<br />
</strong>So what’s this other stuff; Unit conversion, Date calculation and Worksheets.</p>
<h4>Unit Conversion:</h4>
<p>Want to know how many square feet in an Acre?</p>
<p> <a href="http://blogs.engage2day.com/files/2010/10/unit.png"><img class="alignnone size-full wp-image-1153" src="http://blogs.engage2day.com/files/2010/10/unit.png" alt="unit Windows 7 Hidden Features" width="745" height="405" title="Windows 7 Hidden Features" /></a></p>
<h4>Date Calculation:</h4>
<p>This is a good one for kids, big and small.  Want to know how many days until Christmas?</p>
<p> <a href="http://blogs.engage2day.com/files/2010/10/date.png"><img class="alignnone size-full wp-image-1154" src="http://blogs.engage2day.com/files/2010/10/date.png" alt="date Windows 7 Hidden Features" width="750" height="401" title="Windows 7 Hidden Features" /></a></p>
<h4>Worksheets:</h4>
<p>There are 4 Worksheets, all self-explanatory with the coolest being Mortgage.</p>
<p><a href="http://blogs.engage2day.com/files/2010/10/worksheets.png"><img class="alignnone size-full wp-image-1155" src="http://blogs.engage2day.com/files/2010/10/worksheets.png" alt="worksheets Windows 7 Hidden Features" width="747" height="407" title="Windows 7 Hidden Features" /></a></p>
<p>The mortgage calculator has 4 different options, all easy to use and intuitive.</p>
<p> <a href="http://blogs.engage2day.com/files/2010/10/mortgage.png"><img class="alignnone size-full wp-image-1156" src="http://blogs.engage2day.com/files/2010/10/mortgage.png" alt="mortgage Windows 7 Hidden Features" width="749" height="405" title="Windows 7 Hidden Features" /></a></p>
<p>Are there other cool, hidden features in Windows 7?  Let us know what you like about Windows 7?  </p>
<p>   Also, please see our <a title="Engage, Inc Webinars and Events" href="http://events.engage2day.net:8080/EventManagement/Eventlisting.aspx" target="_blank">events </a>page for upcoming webinars on OCS, CRM, xRM, SharePoint and Business Intelligence.</p>
<p><a href="http://blogs.engage2day.com/2010/11/windows-7-hidden-features/">Windows 7 Hidden Features</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://blogs.engage2day.com/2010/11/windows-7-hidden-features/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://blogs.engage2day.com/2010/11/windows-7-hidden-features/&amp;title=Windows+7+Hidden+Features" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blogs.engage2day.com/2010/11/windows-7-hidden-features/&amp;t=Windows+7+Hidden+Features" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://blogs.engage2day.com/2010/11/windows-7-hidden-features/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blogs.engage2day.com/2010/11/windows-7-hidden-features/&amp;title=Windows+7+Hidden+Features&amp;summary=I%E2%80%99m%20sure%20you%E2%80%99ve%20done%20this.%C2%A0%20You%20are%20using%20a%20well-known%20application%20and%20stumble%20on%20to%20some%20%E2%80%98hidden%E2%80%99%20functionality%20it%20has%20and%20thought%20%E2%80%9CWow%2C%20this%20is%20Cool%E2%80%9D%20why%20didn%E2%80%99t%20I%20know%20about%20it%20earlier.%C2%A0%20Well%2C%20that%20just%20happened%20to%20me%20with%20the%20Windows%207%20Calculator%20tool.%0D%0A%0D%0AMaybe%20many%20of%20you%20already&amp;source=Put IT in High Gear - Engage!" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://blogs.engage2day.com/2010/11/windows-7-hidden-features/&amp;title=Windows+7+Hidden+Features" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Windows+7+Hidden+Features+-+http://bit.ly/efBdeV&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://blogs.engage2day.com/2010/11/windows-7-hidden-features/&amp;title=Windows+7+Hidden+Features" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blogs.engage2day.com/2010/11/windows-7-hidden-features/feed/</wfw:commentRss>
		<slash:comments><span class="dsq-postid" rel="1151 http://blogs.engage2day.com/?p=1151">0</span></slash:comments>
		</item>
		<item>
		<title>Using Microsoft Office Communicator – Jelly Beans</title>
		<link>http://blogs.engage2day.com/2010/11/using-microsoft-office-communicator-%e2%80%93-presence-button-meanings/</link>
		<comments>http://blogs.engage2day.com/2010/11/using-microsoft-office-communicator-%e2%80%93-presence-button-meanings/#comments</comments>
		<pubDate>Tue, 09 Nov 2010 12:25:43 +0000</pubDate>
		<dc:creator>Dale Hulburt</dc:creator>
				<category><![CDATA[Using Microsoft Office Communicator]]></category>
		<category><![CDATA[MOC]]></category>
		<category><![CDATA[OCS]]></category>

		<guid isPermaLink="false">http://blogs.engage2day.com/?p=1078</guid>
		<description><![CDATA[What&#8217;s you&#8217;re status? &#8220;Where are you?&#8221; and &#8220;What are you doing?&#8221;  is usually followed up with, &#8220;Do you have time for &#8230;..?&#8221;  With the simple Microsoft Office Communicator indicators you can easily tell.  Some folks call them ‘jelly beans’, but at any rate below is a guide to their meaning.   We would recommend contacting [...]<p><a href="http://blogs.engage2day.com/2010/11/using-microsoft-office-communicator-%e2%80%93-presence-button-meanings/">Using Microsoft Office Communicator – Jelly Beans</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>



Related posts:<ol><li><a href='http://blogs.engage2day.com/2010/11/using-microsoft-office-communicator-%e2%80%93-more-etiquette/' rel='bookmark' title='Permanent Link: Using Microsoft Office Communicator – More Etiquette.'>Using Microsoft Office Communicator – More Etiquette.</a></li>
<li><a href='http://blogs.engage2day.com/2010/09/microsoft-office-communicator-moc-collaboration-with-everyone-part-7%e2%80%93-add-some-style/' rel='bookmark' title='Permanent Link: Microsoft Office Communicator (MOC) Collaboration With Everyone Part 7– Add Some Style'>Microsoft Office Communicator (MOC) Collaboration With Everyone Part 7– Add Some Style</a></li>
<li><a href='http://blogs.engage2day.com/2010/09/microsoft-office-communicator-moc-collaboration-with-everyone-part-4-tag-youre-it/' rel='bookmark' title='Permanent Link: Microsoft Office Communicator (MOC) Collaboration With Everyone Part 4 – Tag, you’re it.'>Microsoft Office Communicator (MOC) Collaboration With Everyone Part 4 – Tag, you’re it.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blogs.engage2day.com/2010/11/using-microsoft-office-communicator-%e2%80%93-presence-button-meanings/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' /></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblogs.engage2day.com%2F2010%2F11%2Fusing-microsoft-office-communicator-%25e2%2580%2593-presence-button-meanings%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblogs.engage2day.com%2F2010%2F11%2Fusing-microsoft-office-communicator-%25e2%2580%2593-presence-button-meanings%2F&amp;source=engage2day&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0531a2647ff7ca1358e48c8c8a3e1541&amp;b=2" height="61" width="50" title="Using Microsoft Office Communicator – Jelly Beans" alt=" Using Microsoft Office Communicator – Jelly Beans" /><br />
			</a>
		</div>
<h1 style="text-align: center;"><span style="color: #3366ff;">What&#8217;s you&#8217;re status?</span></h1>
<p><a href="http://blogs.engage2day.com/files/2010/06/MOC.jpg"><img class="alignleft size-full wp-image-612" style="margin-left: 15px; margin-right: 15px;" title="Microsoft Office Communicator (MOC) Collaboration With Everyone" src="http://blogs.engage2day.com/files/2010/06/MOC.jpg" alt="MOC Using Microsoft Office Communicator – Jelly Beans" width="80" height="81" /></a>&#8220;Where are you?&#8221; and &#8220;What are you doing?&#8221;  is usually followed up with, &#8220;Do you have time for &#8230;..?&#8221;  With the simple Microsoft Office Communicator indicators you can easily tell.  Some folks call them<a title="Microsoft Office Communicator Presence Etiquette" href="http://blogs.engage2day.com/2010/07/microsoft-office-communicator-moc-collaboration-with-everyone-part-3%e2%80%93presence-etiquette/" target="_blank"> ‘jelly beans’</a>, but at any rate below is a guide to their meaning.</p>
<p><strong> <a href="http://blogs.engage2day.com/files/2010/10/beans3.png"><img class="alignnone size-full wp-image-1079" src="http://blogs.engage2day.com/files/2010/10/beans3.png" alt="beans3 Using Microsoft Office Communicator – Jelly Beans" width="497" height="643" title="Using Microsoft Office Communicator – Jelly Beans" /></a></strong></p>
<p>We would recommend contacting Engage, Inc for any questions on <strong>Microsoft Office Communicator</strong> and its possibilities.  Also, please see our <a title="Engage, Inc Webinars and Events" href="http://events.engage2day.net:8080/EventManagement/Eventlisting.aspx" target="_blank">events </a>page for upcoming webinars on <strong>OCS, CRM, xRM, SharePoint</strong> and <strong>Business Intelligence.</strong></p>
<p><a href="http://blogs.engage2day.com/2010/11/using-microsoft-office-communicator-%e2%80%93-presence-button-meanings/">Using Microsoft Office Communicator – Jelly Beans</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://blogs.engage2day.com/2010/11/using-microsoft-office-communicator-–-presence-button-meanings/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://blogs.engage2day.com/2010/11/using-microsoft-office-communicator-%e2%80%93-presence-button-meanings/&amp;title=Using+Microsoft+Office+Communicator+%E2%80%93+Jelly+Beans" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blogs.engage2day.com/2010/11/using-microsoft-office-communicator-%e2%80%93-presence-button-meanings/&amp;t=Using+Microsoft+Office+Communicator+%E2%80%93+Jelly+Beans" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://blogs.engage2day.com/2010/11/using-microsoft-office-communicator-%e2%80%93-presence-button-meanings/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blogs.engage2day.com/2010/11/using-microsoft-office-communicator-%e2%80%93-presence-button-meanings/&amp;title=Using+Microsoft+Office+Communicator+%E2%80%93+Jelly+Beans&amp;summary=What%27s%20you%27re%20status%3F%0D%0A%22Where%20are%20you%3F%22%20and%20%22What%20are%20you%20doing%3F%22%20%C2%A0is%20usually%20followed%20up%20with%2C%20%22Do%20you%20have%20time%20for%20.....%3F%22%C2%A0%20With%20the%20simple%20Microsoft%20Office%20Communicator%20indicators%20you%20can%20easily%20tell.%C2%A0%20Some%20folks%20call%20them%20%E2%80%98jelly%20beans%E2%80%99%2C%20but%20at%20any%20rate%20below%20is%20a%20guide%20to%20their%20meaning.%0D&amp;source=Put IT in High Gear - Engage!" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://blogs.engage2day.com/2010/11/using-microsoft-office-communicator-%e2%80%93-presence-button-meanings/&amp;title=Using+Microsoft+Office+Communicator+%E2%80%93+Jelly+Beans" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Using+Microsoft+Office+Communicator+%E2%80%93+Jelly+Beans+-+http://bit.ly/cnRzDE&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://blogs.engage2day.com/2010/11/using-microsoft-office-communicator-%e2%80%93-presence-button-meanings/&amp;title=Using+Microsoft+Office+Communicator+%E2%80%93+Jelly+Beans" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>Related posts:<ol><li><a href='http://blogs.engage2day.com/2010/11/using-microsoft-office-communicator-%e2%80%93-more-etiquette/' rel='bookmark' title='Permanent Link: Using Microsoft Office Communicator – More Etiquette.'>Using Microsoft Office Communicator – More Etiquette.</a></li>
<li><a href='http://blogs.engage2day.com/2010/09/microsoft-office-communicator-moc-collaboration-with-everyone-part-7%e2%80%93-add-some-style/' rel='bookmark' title='Permanent Link: Microsoft Office Communicator (MOC) Collaboration With Everyone Part 7– Add Some Style'>Microsoft Office Communicator (MOC) Collaboration With Everyone Part 7– Add Some Style</a></li>
<li><a href='http://blogs.engage2day.com/2010/09/microsoft-office-communicator-moc-collaboration-with-everyone-part-4-tag-youre-it/' rel='bookmark' title='Permanent Link: Microsoft Office Communicator (MOC) Collaboration With Everyone Part 4 – Tag, you’re it.'>Microsoft Office Communicator (MOC) Collaboration With Everyone Part 4 – Tag, you’re it.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.engage2day.com/2010/11/using-microsoft-office-communicator-%e2%80%93-presence-button-meanings/feed/</wfw:commentRss>
		<slash:comments><span class="dsq-postid" rel="1078 http://blogs.engage2day.com/?p=1078">0</span></slash:comments>
		</item>
		<item>
		<title>CRM 2011 Beta &#8211; IFD/AD FS problem: The organization could not be identified</title>
		<link>http://blogs.engage2day.com/2010/11/crm-2011-beta-ifdad-fs-problem-the-organization-could-not-be-identified-2/</link>
		<comments>http://blogs.engage2day.com/2010/11/crm-2011-beta-ifdad-fs-problem-the-organization-could-not-be-identified-2/#comments</comments>
		<pubDate>Thu, 04 Nov 2010 12:46:45 +0000</pubDate>
		<dc:creator>Scott Barr</dc:creator>
				<category><![CDATA[Customer Relationship Management (CRM)]]></category>
		<category><![CDATA[xRM]]></category>
		<category><![CDATA[CRM 2011 Beta]]></category>
		<category><![CDATA[CRM 5]]></category>

		<guid isPermaLink="false">http://blogs.engage2day.com/?p=1167</guid>
		<description><![CDATA[Microsoft Dynamics CRM 2011 IFD and AD FS As a Microsoft Partner, Gold certified, and experienced Dynamics CRM ISV since v 1.0, we set out to integrate one of our CRM 4.0 projects into CRM 2011 Beta. We quickly stood up a single server system to get the developers started and would follow-up with IFD [...]<p><a href="http://blogs.engage2day.com/2010/11/crm-2011-beta-ifdad-fs-problem-the-organization-could-not-be-identified-2/">CRM 2011 Beta &#8211; IFD/AD FS problem: The organization could not be identified</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>



No related posts.]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blogs.engage2day.com/2010/11/crm-2011-beta-ifdad-fs-problem-the-organization-could-not-be-identified-2/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' /></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblogs.engage2day.com%2F2010%2F11%2Fcrm-2011-beta-ifdad-fs-problem-the-organization-could-not-be-identified-2%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblogs.engage2day.com%2F2010%2F11%2Fcrm-2011-beta-ifdad-fs-problem-the-organization-could-not-be-identified-2%2F&amp;source=engage2day&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0531a2647ff7ca1358e48c8c8a3e1541&amp;b=2" height="61" width="50" title="CRM 2011 Beta   IFD/AD FS problem: The organization could not be identified" alt=" CRM 2011 Beta   IFD/AD FS problem: The organization could not be identified" /><br />
			</a>
		</div>
<h1><a href="http://blogs.engage2day.com/files/2010/06/crm.jpg"><img class="alignleft size-full wp-image-622" style="margin-left: 15px; margin-right: 15px;" title="Microsoft Dynamics CRM" src="http://blogs.engage2day.com/files/2010/06/crm.jpg" alt="crm CRM 2011 Beta   IFD/AD FS problem: The organization could not be identified" width="136" height="52" /></a><span style="color: #3366ff;">Microsoft Dynamics CRM 2011 IFD and AD FS</span></h1>
<p>As a Microsoft Partner, Gold certified, and experienced Dynamics CRM ISV since v 1.0, we set out to integrate one of our CRM 4.0 projects into CRM 2011 Beta. We quickly stood up a single server system to get the developers started and would follow-up with IFD afterwards. Since IFD setup is different than it was for CRM 4.0, we had to also setup an AD FS 2.0 server.</p>
<p>Downloading AD FS 2.0 was straightforward and seemed to install and configure by the book. The problem we ran into was deciphering the documentation for <strong>CRM 2011 Beta</strong> and <strong>Claims based authentication</strong> and<strong> IFD</strong> configuration.</p>
<p><span id="more-1167"></span></p>
<p>We managed to get fairly close to a working IFD solution. AD  FS 2.0 appeared to be doing its job by allowing a login but upon redirecting to CRM we were presented with the ubiquitous error &#8220;<strong>Invalid User Authorization</strong>&#8221; which translated to<em> <span style="text-decoration: underline;">the organization could not be identified</span></em><span style="text-decoration: underline;"> </span>- also depicted in the URL below.</p>
<div id="attachment_1170" class="wp-caption alignnone" style="width: 586px"><a href="http://blogs.engage2day.com/files/2010/11/invalid_user_auth.jpg"><img class="size-full wp-image-1170" src="http://blogs.engage2day.com/files/2010/11/invalid_user_auth.jpg" alt="Invalid User Authorization CRM 2011 Beta" width="576" height="231" title="CRM 2011 Beta   IFD/AD FS problem: The organization could not be identified" /></a><p class="wp-caption-text">Invalid User Authorization</p></div>
<p>A review of the CRM Trace log in its default location C:\Program Files\Microsoft Dynamics CRM\Trace revealed the following errors &#8211; trimmed for brevity:</p>
<p style="padding-left: 30px;">[2010-10-24 22:42:28.546] Process: w3wp |Organization:00000000-0000-0000-0000-000000000000 |Thread:    3 |Category: Platform.Sdk |User: 00000000-0000-0000-0000-000000000000 |Level: Error | ServiceModelTraceRedirector.TraceData</p>
<p style="padding-left: 30px;">[2010-10-24 22:42:28.725] Process: w3wp |Organization:00000000-0000-0000-0000-000000000000 |Thread:   16 |Category: Exception |User: 00000000-0000-0000-0000-000000000000 |Level: Error | CrmException..ctor</p>
<p>and this from the Application log in Event Viewer (also trimmed)</p>
<p style="padding-left: 30px;">Log Name:      Application<br />
Source:        ASP.NET 4.0.30319.0<br />
Date:          10/24/2010 10:42:29 PM<br />
Event ID:      1309<br />
Task Category: Web Event<br />
Level:         Warning<br />
Keywords:      Classic<br />
User:          N/A<br />
Computer:      CRM2011B.devdomain.net<br />
Description:<br />
Event code: 3005<br />
Event message: An unhandled exception has occurred.<br />
Event time: 10/24/2010 10:42:29 PM<br />
Event time (UTC): 10/25/2010 2:42:29 AM<br />
Event ID: e89163e8f686404c960b18b0a357cca5<br />
Event sequence: 5<br />
Event occurrence: 1<br />
Event detail code: 0</p>
<p style="padding-left: 30px;">Application information:<br />
Application domain: /LM/W3SVC/1/ROOT-1-129324480343019563<br />
Trust level: Full<br />
Application Virtual Path: /<br />
Application Path: C:\Program Files\Microsoft Dynamics CRM\CRMWeb\<br />
Machine name: CRM2011B</p>
<p style="padding-left: 30px;">Process information:<br />
Process ID: 4800<br />
Process name: w3wp.exe<br />
Account name: DEVDOMAIN\crm2011betasvc</p>
<p style="padding-left: 30px;">Exception information:<br />
Exception type: CrmException<br />
Exception message: The current organization id could not be determined.<br />
at Microsoft.Crm.Application.Security.UserInformationIdentity.get_OrganizationId()<br />
at Microsoft.Crm.Web.Default..ctor()<br />
at __ASP.FastObjectFactory_app_web_0qwmtita.Create_ASP_default_aspx()<br />
at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp)<br />
at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath)<br />
at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)<br />
at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()<br />
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously)</p>
<p><strong>The real clue here being the Organization and User data was null so no real attributes were being passed from AD FS to CRM so troubleshooting AD FS was a good starting point.</strong></p>
<p>Searching the internet revealed clues here and there until we ran across  a couple of <a title="CRM 2011 Beta Forums" href="http://social.microsoft.com/Forums/en-AU/crm2011beta/thread/7f5e8e30-10e9-4cb6-8491-cade5ddd15ae" target="_blank">posts</a> in the Microsoft CRM 2011 Beta forum where <em><strong>Matios</strong> </em>suggested using an LDAP Claims rule and his suggestion was reinforced by <em><a title="CRM 2011 Beta Forums" href="http://social.microsoft.com/Forums/en/crm2011beta/thread/7706282c-436b-49f7-b92f-43b6dde6dd63" target="_blank">Zegor</a></em> so we concluded his solution worked more than once and in different environments. We set out on a path of trying different permutations of LDAP claims rules to no avail.</p>
<p>We dialed up AD FS 2.0 Tracing by  following this article on<a title="Diagnostics in AD FS" href="http://blogs.msdn.com/b/card/archive/2010/01/21/diagnostics-in-ad-fs-2-0.aspx" target="_blank"> Diagnostics in AD FS</a>:</p>
<p>When editing the Microsoft.IdentityServer.ServiceHost.Exe.Config file change the switch value from &#8216;Off&#8217; to &#8216;Verbose&#8217;. <span style="text-decoration: underline;">These values are case SeNsiTiVE </span>by the way because we received a flurry of errors when we tried setting the values  to &#8216;verbose&#8217; instead of &#8216;Verbose&#8217; and restarting ADFS service.</p>
<p>In the meantime, we replied to the aforementioned forum post and asked for some detail on the LDAP claims rule &#8211; <a title="Patrick Verbeeten" href="http://social.microsoft.com/Profile/u/activities/feed?displayName=Patrick%20Verbeeten" target="_blank">Patrick Verbeeten</a> was in the thread and he replied very quickly, on a Saturday nonetheless. By this time we felt we were well versed in AD FS claim rules, at least, enough to know his response made sense, unfortunately it did not have immediate positive results.</p>
<p>Upon reviewing the <strong>AD FS 2.0 Tracing Debug Log</strong>:</p>
<p style="padding-left: 30px;">LDAPAttributeStoreReader: No results were returned for LDAP query with filter &#8216;samAccountName=sbarr_engage2day.com&#8217;.</p>
<div id="attachment_1171" class="wp-caption alignnone" style="width: 631px"><a href="http://blogs.engage2day.com/files/2010/11/adfs2_ldap_warning.jpg"><img class="size-full wp-image-1171" src="http://blogs.engage2day.com/files/2010/11/adfs2_ldap_warning.jpg" alt="Ad FS 2.0 LDAP Warning" width="621" height="104" title="CRM 2011 Beta   IFD/AD FS problem: The organization could not be identified" /></a><p class="wp-caption-text">Ad FS 2.0 LDAP Warning</p></div>
<p>We found that the samAccountName attribute was not yielding results when the LDAP query was initiated against the Attribute Store (Active Directory). We tried to get more detail by running Process Monitor and Wireshark (my long time favorites for troubleshooting) but could not see a valid response; however, we did see the LDAP traffic between the AD FS server and the domain controller.</p>
<p>Finally, it dawned on me that the A<span style="text-decoration: underline;">D FS 2.0 service account must not have permissions to execute an LDAP query</span>. Upon applying &#8216;List Contents&#8217; permissions (actually dropping the service account into the Pre-Windows 2000 Compatible Group since it already had those permissions) the result was immediately positive. We were able to login successfully to the <strong>CRM 2011</strong> organization on the first attempt following a restart of the ADFS service.</p>
<p>The <span style="text-decoration: underline;">LDAP rule that ultimately worked was as follows:</span></p>
<h5 style="padding-left: 30px;"><em>In Ad FS 2.0 | Trust Relationships | Claims Provider Trusts, right-click Active Directory, select Edit Claims Rules</em></h5>
<h5 style="padding-left: 30px;"><em>Add Rule… |enter appropriate Claim rule name | Select attribute store Active Directory</em></h5>
<h5 style="padding-left: 30px;"><em>Under Mapping of LDAP attributes to outgoing claim types: set the LDAP Attribute to User-Principal-Name and set the Outgoing Claim Type to UPN</em></h5>
<p style="padding-left: 30px;">Click OK</p>
<p>The only necessary Relying Party Trust claim rule necessary from the IG is the Pass through rule for UPN.</p>
<p>The net result is that IFD works as advertised when using the undocumented LDAP claims rule. Don’t forget to modify the CRM web.config file &lt;authentication strategy&gt; element from “OnPremise” to “ServiceProviderLicenseAgreement” and restart IIS.</p>
<p>Recommended reading:</p>
<p><a title="AD FS 2.0 and AD FS 1.x Interoperability" href="http://blogs.technet.com/b/askds/archive/2010/05/25/ad-fs-2-0-and-ad-fs-1-x-interoperability.aspx" target="_blank">AD FS 2.0 and AD FS 1.x Interoperability</a></p>
<p><a href="http://blogs.engage2day.com/2010/11/crm-2011-beta-ifdad-fs-problem-the-organization-could-not-be-identified-2/">CRM 2011 Beta &#8211; IFD/AD FS problem: The organization could not be identified</a> is a post from: <a href="http://blogs.engage2day.com">Put IT in High Gear - Engage!</a><br><a href="http://blogs.engage2day.com">Put IT in High Gear - Engage! - Microsoft Gold Certified ISV Integrator and Cloud Hosting Provider delivering Microsoft Dynamics x/CRM, Unified Communications and a whole lot more.</a></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://blogs.engage2day.com/2010/11/crm-2011-beta-ifdad-fs-problem-the-organization-could-not-be-identified-2/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://blogs.engage2day.com/2010/11/crm-2011-beta-ifdad-fs-problem-the-organization-could-not-be-identified-2/&amp;title=CRM+2011+Beta+-+IFD%2FAD+FS+problem%3A+The+organization+could+not+be+identified" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://blogs.engage2day.com/2010/11/crm-2011-beta-ifdad-fs-problem-the-organization-could-not-be-identified-2/&amp;t=CRM+2011+Beta+-+IFD%2FAD+FS+problem%3A+The+organization+could+not+be+identified" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://blogs.engage2day.com/2010/11/crm-2011-beta-ifdad-fs-problem-the-organization-could-not-be-identified-2/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blogs.engage2day.com/2010/11/crm-2011-beta-ifdad-fs-problem-the-organization-could-not-be-identified-2/&amp;title=CRM+2011+Beta+-+IFD%2FAD+FS+problem%3A+The+organization+could+not+be+identified&amp;summary=Microsoft%20Dynamics%20CRM%202011%20IFD%20and%20AD%20FS%0D%0AAs%20a%20Microsoft%20Partner%2C%20Gold%20certified%2C%20and%20experienced%20Dynamics%20CRM%20ISV%20since%20v%201.0%2C%20we%20set%20out%20to%20integrate%20one%20of%20our%20CRM%204.0%20projects%20into%20CRM%202011%20Beta.%20We%20quickly%20stood%20up%20a%20single%20server%20system%20to%20get%20the%20developers%20started%20and%20would%20follow-up%20with%20I&amp;source=Put IT in High Gear - Engage!" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://blogs.engage2day.com/2010/11/crm-2011-beta-ifdad-fs-problem-the-organization-could-not-be-identified-2/&amp;title=CRM+2011+Beta+-+IFD%2FAD+FS+problem%3A+The+organization+could+not+be+identified" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=CRM+2011+Beta+-+IFD%2FAD+FS+problem%3A+The+organization+could+not+be+identified+-+http://bit.ly/bcdwq4&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://blogs.engage2day.com/2010/11/crm-2011-beta-ifdad-fs-problem-the-organization-could-not-be-identified-2/&amp;title=CRM+2011+Beta+-+IFD%2FAD+FS+problem%3A+The+organization+could+not+be+identified" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blogs.engage2day.com/2010/11/crm-2011-beta-ifdad-fs-problem-the-organization-could-not-be-identified-2/feed/</wfw:commentRss>
		<slash:comments><span class="dsq-postid" rel="1167 http://blogs.engage2day.com/?p=1167">1</span></slash:comments>
		</item>
	</channel>
</rss>
