<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-8858587491846595686</atom:id><lastBuildDate>Tue, 21 Feb 2012 05:00:06 +0000</lastBuildDate><category>Microsoft Dynamics CRM Bing Maps SQL 2008</category><category>MSCRM2011</category><category>CRM2011</category><category>CRM 2011</category><category>Gadgets</category><category>CRM JavaScript Snippets</category><category>JavaScript</category><category>Main Page</category><title>CRMConsult.info</title><description /><link>http://www.crmconsult.info/</link><managingEditor>noreply@blogger.com (RP)</managingEditor><generator>Blogger</generator><openSearch:totalResults>118</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Crmconsultinfo" /><feedburner:info uri="crmconsultinfo" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-6612648740436108844</guid><pubDate>Thu, 16 Feb 2012 16:21:00 +0000</pubDate><atom:updated>2012-02-16T16:21:50.171Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">CRM2011</category><category domain="http://www.blogger.com/atom/ns#">CRM JavaScript Snippets</category><title>Flags and Alerts Web Resource in Microsoft Dynamics CRM 2011</title><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;One of the requirements for the project I'm working on is to easily show any alerts or flags against a record. The CRM record itself might record it somewhere on the form, but having a very quick reference or reminder can be quite important.&lt;br /&gt;
&lt;br /&gt;
I thought about going down the Silverlight road, but in this case it didn't need to be too complicated. &lt;br /&gt;
&lt;br /&gt;
The solution is an HTML web resource which looks for the flags and dependent on them will display an alert:&lt;br /&gt;
&lt;br /&gt;
﻿﻿ &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Lyq2-lmfEdg/Tz0qugHh2kI/AAAAAAAAAXA/ohmCo103oX0/s1600/Flag1.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="368" src="http://2.bp.blogspot.com/-Lyq2-lmfEdg/Tz0qugHh2kI/AAAAAAAAAXA/ohmCo103oX0/s400/Flag1.PNG" width="400" yda="true" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Bad Alert&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;﻿﻿ &lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-P9EpqpZZ7nE/Tz0rQHrqXtI/AAAAAAAAAXI/sYFkIdcEABE/s1600/Flag2.PNG" imageanchor="1" style="clear: left; cssfloat: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="368" src="http://2.bp.blogspot.com/-P9EpqpZZ7nE/Tz0rQHrqXtI/AAAAAAAAAXI/sYFkIdcEABE/s400/Flag2.PNG" width="400" yda="true" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Good Alert!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div align="left"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="left"&gt;The alert in the example above is toggled by the 'Credit Hold' choice﻿, but could easily be used in different ways.&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="left"&gt;This is the basic web resource, which I haven't cleaned up from my early attempts, but could easily be hacked around to suit:&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="left"&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&amp;gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="left"&gt;&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;/div&gt;&lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script type="text/javascript" src="ClientGlobalContext.js.aspx"&amp;gt;&amp;lt;/script&amp;gt;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script type="text/javascript"&amp;gt;&lt;/div&gt;&lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function ContextInformation() {&lt;/div&gt;&lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.getElementById('td2').innerHTML = window.parent.Xrm.Page.getAttribute('creditonhold').getValue();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var result = window.parent.Xrm.Page.getAttribute('creditonhold').getValue();&lt;/div&gt;&lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/div&gt;&lt;div align="left"&gt;&amp;nbsp;&amp;lt;/script&amp;gt;&amp;nbsp; &lt;/div&gt;&lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&amp;nbsp; &lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&amp;nbsp;&amp;lt;/head&amp;gt;&amp;nbsp; &lt;/div&gt;&lt;div align="left"&gt;&amp;lt;body onload="ContextInformation();" style="border-bottom: 0px;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; border-left: 0px;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; border-top: 0px;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; border-right: 0px;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; padding-bottom: 0px;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; padding-top: 0px;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; padding-left: 0px;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; padding-right: 0px;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; font-family: Segoe UI, Tahoma, Arial;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; font-size: 11px;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; font-weight: bold;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; background-color: #f6f8fa;" text="White"&amp;gt;&lt;/div&gt;&lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;table class="style1"&amp;gt;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td class="style4"&amp;gt;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td class="style3" id="td2"&amp;gt;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;nbsp;&amp;lt;/td&amp;gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/table&amp;gt;&lt;/div&gt;&lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script type="text/javascript" src="ClientGlobalContext.js.aspx"&amp;gt;&amp;lt;/script&amp;gt;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script type="text/javascript"&amp;gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.getElementById('td2').innerHTML = window.parent.Xrm.Page.getAttribute('creditonhold').getValue();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var result = window.parent.Xrm.Page.getAttribute('creditonhold').getValue();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //alert(result);&lt;/div&gt;&lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (result == true) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.write('&amp;lt;img alt= "alert2" style="height: 38px; width: 51px" src="&lt;a href="http://crm-dev-01:5555/CRMDEV/WebResources/arcrp_alert"&gt;http://crm-dev-01:5555/CRMDEV/WebResources/arcrp_alert&lt;/a&gt;" /&amp;gt;&amp;lt;font color ="Red"&amp;gt;&amp;lt;marquee&amp;gt;There is a Flag on this record&amp;lt;/marquee&amp;gt;&amp;lt;/font&amp;gt;');&lt;/div&gt;&lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.write('&amp;lt;img alt= "alert2" style="height: 51px; width: 51px" src="&lt;a href="http://crm-dev-01:5555/CRMDEV/WebResources/arcrp_Smile"&gt;http://crm-dev-01:5555/CRMDEV/WebResources/arcrp_Smile&lt;/a&gt;" /&amp;gt;');&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;﻿﻿ &lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-6612648740436108844?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/ryyMEASDO4Y/flags-and-alerts-web-resource-in.html</link><author>noreply@blogger.com (RP)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-Lyq2-lmfEdg/Tz0qugHh2kI/AAAAAAAAAXA/ohmCo103oX0/s72-c/Flag1.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2012/02/flags-and-alerts-web-resource-in.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-6016834591031576837</guid><pubDate>Wed, 15 Feb 2012 10:30:00 +0000</pubDate><atom:updated>2012-02-15T10:32:42.923Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">JavaScript</category><category domain="http://www.blogger.com/atom/ns#">CRM2011</category><title>Calculate Age from Date of Birth in Microsoft Dynamics CRM 2011</title><description>There are a few posts regarding this, but thought I would throw mine in as well.&lt;br /&gt;
Most&amp;nbsp;Organisations have a Date of Birth field, but it's also useful to have an Age field, and even more useful if it's calculated based on the DOB value.&lt;br /&gt;
&lt;br /&gt;
You might think it's a simple equation of Current Year - Birth Year e.g.&lt;br /&gt;
2012 - 1969 = 43, but actually for me (born in June) this is wrong at the moment, so the code needs to look at the DOB and work out whether the birthday has passed in the current year.&lt;br /&gt;
&lt;br /&gt;
So the code is:&lt;br /&gt;
&lt;br /&gt;
function CalcAge()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var now = new Date(); //Todays Date&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var birthday = Xrm.Page.getAttribute("arcrp_dob").getValue(); //Get the Date of Birth value&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var diff = now.getMonth() - birthday.getMonth();&amp;nbsp; //Check to see if Birthday has already passed&lt;br /&gt;
if (diff &amp;gt; -1) //If Birthday has already occurred&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var bd1 = now.getFullYear() - birthday.getFullYear();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //set the age attribute &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Xrm.Page.getAttribute("arcrp_age").setValue(bd1.toString());&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; else //If Birthday has not already occurred&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var bd2 = now.getFullYear() - birthday.getFullYear() - 1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Xrm.Page.getAttribute("arcrp_age").setValue(bd2.toString()); &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-6016834591031576837?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/11fV_RYcK40/calculate-age-from-date-of-birth-in.html</link><author>noreply@blogger.com (RP)</author><thr:total>1</thr:total><feedburner:origLink>http://www.crmconsult.info/2012/02/calculate-age-from-date-of-birth-in.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-1206759800804938665</guid><pubDate>Mon, 06 Feb 2012 15:14:00 +0000</pubDate><atom:updated>2012-02-06T15:14:03.950Z</atom:updated><title>CRM 2011 Roadmap - R8 Release Preview Guide</title><description>Some nice things coming up in the world of Microsoft Dynamics CRM 2011&lt;br /&gt;
&lt;br /&gt;
Mobile solutions accross platforms - Microsoft Dynamics CRM Mobile&lt;br /&gt;
Cross Browser functionality - CRM Anywhere&lt;br /&gt;
&lt;br /&gt;
Read&amp;nbsp;about them here:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://crmpublish.blob.core.windows.net/docs/ReleasePreviewGuide.pdf"&gt;http://crmpublish.blob.core.windows.net/docs/ReleasePreviewGuide.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-1206759800804938665?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/I0s-21vnd4Y/crm-2011-roadmap-r8-release-preview.html</link><author>noreply@blogger.com (RP)</author><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2012/02/crm-2011-roadmap-r8-release-preview.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-4554636133423673695</guid><pubDate>Fri, 03 Feb 2012 12:12:00 +0000</pubDate><atom:updated>2012-02-03T12:13:33.334Z</atom:updated><title>Useful Microsoft CRM 2011 Documentation</title><description>&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Gill Sans MT;"&gt;Pulled together a list of useful CRM 2011 Documents and their download links.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Gill Sans MT;"&gt;Feel free to add comments with ones I have missed out.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Gill Sans MT;"&gt;Microsoft Dynamics CRM 2011 Quick Start Guide for Business Users&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;a href="http://www.microsoft.com/download/en/confirmation.aspx?id=27575"&gt;&lt;span style="color: purple; font-family: Gill Sans MT;"&gt;http://www.microsoft.com/download/en/confirmation.aspx?id=27575&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Gill Sans MT;"&gt;Microsoft Dynamics CRM 2011 User’s Guide&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27134"&gt;&lt;span style="color: purple; font-family: Gill Sans MT;"&gt;http://www.microsoft.com/download/en/details.aspx?id=27134&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Gill Sans MT;"&gt;Microsoft Dynamics CRM 2011 for Outlook Quick Start Guide&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27574"&gt;&lt;span style="color: purple; font-family: Gill Sans MT;"&gt;http://www.microsoft.com/download/en/details.aspx?id=27574&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Gill Sans MT;"&gt;Microsoft Dynamics CRM 2011 Administrators Guide&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27135"&gt;&lt;span style="color: purple; font-family: Gill Sans MT;"&gt;http://www.microsoft.com/download/en/details.aspx?id=27135&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Gill Sans MT;"&gt;Microsoft Dynamics CRM 2011 for Outlook Installing Guide for use with Microsoft Dynamics CRM Online&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=15822"&gt;&lt;span style="color: purple; font-family: Gill Sans MT;"&gt;http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=15822&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Gill Sans MT;"&gt;Microsoft Dynamics CRM 2011 Implementation Guide – Includes link to Planning Guides&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=3621"&gt;&lt;span style="color: purple; font-family: Gill Sans MT;"&gt;http://www.microsoft.com/download/en/details.aspx?id=3621&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Gill Sans MT;"&gt;Optimizing and Maintaining the Performance of a Microsoft Dynamics CRM 2011 Server Infrastructure&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27139"&gt;&lt;span style="color: purple; font-family: Gill Sans MT;"&gt;http://www.microsoft.com/download/en/details.aspx?id=27139&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Gill Sans MT;"&gt;Optimizing and Maintaining the Performance of a Microsoft Dynamics CRM 2011 and CRM Online&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=23261"&gt;&lt;span style="color: purple; font-family: Gill Sans MT;"&gt;http://www.microsoft.com/download/en/details.aspx?id=23261&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Gill Sans MT;"&gt;Microsoft Dynamics CRM 2011 Performance Counters&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27119"&gt;&lt;span style="color: purple; font-family: Gill Sans MT;"&gt;http://www.microsoft.com/download/en/details.aspx?id=27119&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Gill Sans MT;"&gt;Microsoft Dynamics CRM 2011 for E-mail Router Installing Guide for use with Microsoft Dynamics CRM Online&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=18991"&gt;&lt;span style="color: purple; font-family: Gill Sans MT;"&gt;http://www.microsoft.com/download/en/details.aspx?id=18991&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Gill Sans MT;"&gt;How to configure the Microsoft Dynamics CRM on-premises and Microsoft Dynamics CRM Online E-mail Router in different deployment scenarios&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=21445"&gt;&lt;span style="color: purple; font-family: Gill Sans MT;"&gt;http://www.microsoft.com/download/en/details.aspx?id=21445&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Gill Sans MT;"&gt;Microsoft Dynamics CRM 2011 Readme&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;a href="http://rc.crm.dynamics.com/rc/2011/en-us/on-prem/5.0/readme.htm"&gt;&lt;span style="color: purple; font-family: Gill Sans MT;"&gt;http://rc.crm.dynamics.com/rc/2011/en-us/on-prem/5.0/readme.htm&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Gill Sans MT;"&gt;Microsoft Dynamics CRM 2011 Readme&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;a href="http://rc.crm.dynamics.com/rc/2011/en-us/online/5.0/readme.htm"&gt;&lt;span style="color: purple; font-family: Gill Sans MT;"&gt;http://rc.crm.dynamics.com/rc/2011/en-us/online/5.0/readme.htm&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Gill Sans MT;"&gt;Microsoft Dynamics CRM 2011 Entity Relationship Diagrams&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=2640"&gt;&lt;span style="color: purple; font-family: Gill Sans MT;"&gt;http://www.microsoft.com/download/en/details.aspx?id=2640&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-4554636133423673695?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/1Ft0HvzGbCs/useful-microsoft-crm-2011-documentation.html</link><author>noreply@blogger.com (RP)</author><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2012/02/useful-microsoft-crm-2011-documentation.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-7113818616850371067</guid><pubDate>Tue, 24 Jan 2012 09:48:00 +0000</pubDate><atom:updated>2012-01-24T09:48:12.176Z</atom:updated><category domain="http://www.blogger.com/atom/ns#">CRM 2011</category><category domain="http://www.blogger.com/atom/ns#">MSCRM2011</category><title>Entity Not Displayed After Solution Import</title><description>This one is not rocket science, but if you forget to do it, you'll be scratching your head.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Issue:&lt;/strong&gt;&lt;br /&gt;
You import a solution from a development or other environment and after import the Entities aren't displayed in the areas you had set.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Solution:&lt;/strong&gt;&lt;br /&gt;
Make sure you include the Site Map under Client Extensions in the solution:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/-nKqvysRJxbQ/Tx591eFvRXI/AAAAAAAAAWk/daAD3ZeCXco/s1600/SiteMap.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="380" nfa="true" src="http://4.bp.blogspot.com/-nKqvysRJxbQ/Tx591eFvRXI/AAAAAAAAAWk/daAD3ZeCXco/s640/SiteMap.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="left"&gt;﻿&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-7113818616850371067?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/hXB5r__C_zk/entity-not-displayed-after-solution.html</link><author>noreply@blogger.com (RP)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-nKqvysRJxbQ/Tx591eFvRXI/AAAAAAAAAWk/daAD3ZeCXco/s72-c/SiteMap.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2012/01/entity-not-displayed-after-solution.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-3517886628207575411</guid><pubDate>Sun, 08 Jan 2012 20:38:00 +0000</pubDate><atom:updated>2012-01-08T20:38:13.473Z</atom:updated><title>Programmatically Set Field Requirement Levels</title><description>&lt;p&gt;One of the features of Microsoft Dynamics CRM 2011 is the ability to set requirement levels of a field. There are three options:&lt;/p&gt; &lt;p&gt;None&lt;br&gt;Recommended&lt;br&gt;Required&lt;/p&gt; &lt;p&gt;I always smile at the recommended option, as I actually think it’s a waste of time – Just my opinion.&lt;/p&gt; &lt;p&gt;What would be useful sometimes though is that a field requirement might change based on a choice somewhere else on the CRM form&lt;/p&gt; &lt;p&gt;While Microsoft Dynamics CRM doesn’t allow for this out of the box, there is a nice way to accomplish this by way of scripting. The code below will assign the requirement level of Required on the field ‘prioritycode’:&lt;/p&gt; &lt;p&gt;&lt;br&gt;function setrequire()&lt;br&gt;{&lt;br&gt;Xrm.Page.getAttribute("prioritycode").setRequiredLevel("required");&lt;br&gt;}&lt;br&gt;&lt;/p&gt; &lt;p&gt;This in itself isn’t particularly useful. If all we’re going to do is change a requirement level onload, then you might as well set it at the field level anyway. What we want to do is change it based on a choice on another field.&lt;/p&gt; &lt;p&gt;You could place the above code within an ‘If’ statement so if a certain choice is made, then the requirement level of a field is&amp;nbsp; changed:&lt;/p&gt; &lt;p&gt;function setrequire()&lt;br&gt;{&lt;br&gt;var type = Xrm.Page.getAttribute("new_natureofenquiry").getSelectedOption().text;&lt;/p&gt; &lt;p&gt;if (type == "Option1")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; Xrm.Page.getAttribute("prioritycode").setRequiredLevel("required");&lt;br&gt;} &lt;br&gt;else &lt;br&gt;{&lt;/p&gt;Xrm.Page.getAttribute("prioritycode").setRequiredLevel("none"); &lt;br&gt;}&lt;br&gt;}&lt;br&gt; &lt;p&gt;The code above initially gets the value of a field (Text Value in this case) and if it meets a criteria (= “Option1”) then changes the requirement level.&lt;/p&gt; &lt;p&gt;Enjoy.&lt;/p&gt; &lt;p&gt;Rob&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-3517886628207575411?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/bDfsxnrNgKI/programmatically-set-field-requirement.html</link><author>noreply@blogger.com (RP)</author><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2012/01/programmatically-set-field-requirement.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-7363790020153960350</guid><pubDate>Sat, 17 Dec 2011 21:35:00 +0000</pubDate><atom:updated>2011-12-17T21:40:31.168Z</atom:updated><title>SQL Report from iTunes</title><description>&lt;p&gt;Mini weekend Project.&lt;/p&gt; &lt;p&gt;Had this idea it might be interesting to pull out some visualisation from my iTunes library.&lt;/p&gt; &lt;p&gt;1st step was to get the information out of iTunes. Fortunately Apple have made it nice and easy by providing a nice XML file that stores all your information called iTunes Music Library.xml&lt;/p&gt; &lt;p&gt;The next step is to take this file and push the data in to SQL. I found a few blogs that had some SQL scripts, but none of them seemed to work properly. I then found a great article at ‘The Code Project’ web site - &lt;a title="http://www.codeproject.com/KB/database/sqltunes.aspx" href="http://www.codeproject.com/KB/database/sqltunes.aspx"&gt;http://www.codeproject.com/KB/database/sqltunes.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;This will take your XML file and create a DB in SQL for you:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-AQdf1-84HoA/Tu0LIN5xMNI/AAAAAAAAAVw/3_kssYEQ_jE/s1600-h/image%25255B2%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-sbjpHIvmhVU/Tu0LI6GlgSI/AAAAAAAAAV0/2gTDcih1USo/image_thumb.png?imgmax=800" width="244" height="220"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Once this is run you should then find your data in your SQL database:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-jTAuL8bZN1A/Tu0LKGvd1aI/AAAAAAAAAWA/updL1RGZ2GY/s1600-h/image%25255B6%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-hGFjuu8hPBI/Tu0LLGnNDFI/AAAAAAAAAWI/Dl952BfmNLI/image_thumb%25255B2%25255D.png?imgmax=800" width="581" height="324"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;So what can we do with this information?&lt;/p&gt; &lt;p&gt;Why not create a dashboard?:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-kfLKZhRfe6s/Tu0LMISJOdI/AAAAAAAAAWQ/RBMpnUEE9ws/s1600-h/image%25255B11%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-VlxRbKR2_dQ/Tu0LM8PWSfI/AAAAAAAAAWY/_Ikx__BkppQ/image_thumb%25255B5%25255D.png?imgmax=800" width="589" height="336"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;No Comments about music choice please! &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-7363790020153960350?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/pT9VO1Hpsxg/sql-report-from-itunes.html</link><author>noreply@blogger.com (RP)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-sbjpHIvmhVU/Tu0LI6GlgSI/AAAAAAAAAV0/2gTDcih1USo/s72-c/image_thumb.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2011/12/sql-report-from-itunes.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-2908339053548074454</guid><pubDate>Sat, 17 Dec 2011 18:27:00 +0000</pubDate><atom:updated>2011-12-17T18:27:48.306Z</atom:updated><title>FetchXML Reporting in Microsoft Dynamics CRM 2011–Part 2</title><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I wrote a &lt;a href="http://www.crmconsult.info/2011/10/fetchxml-reporting-in-microsoft.html"&gt;blog&lt;/a&gt; a couple of months ago about the ability to create reports in CRM 2011 using FetchXML instead of standard SQL.&lt;/p&gt; &lt;p&gt;In part two I’m going to cover a couple of techniques that will also be useful:&lt;/p&gt; &lt;p&gt;Contextual FetchXML Reports&lt;br&gt;Parameters &lt;p&gt;&amp;nbsp; &lt;h4&gt;Contextual FetchXML Reports&lt;/h4&gt; &lt;p&gt;In the ‘Normal’ world of SQL there is a process for creating reports for CRM to run contextually, that is return results contextual to the record you are running it from, for example running a report to pull back all Cases for a Contact.&lt;/p&gt; &lt;p&gt;The Prefix CRMAF_ was used in the query which CRM recognised as a reference to contextualise the results.&lt;/p&gt; &lt;p&gt;The same is accomplished in CRM with FetchXML using the following syntax (Highlighted):&lt;/p&gt; &lt;p&gt;&amp;lt;fetch distinct="false" no-lock="false" mapping="logical"&amp;gt;&lt;br&gt;&amp;lt;entity name="contact" &lt;font style="background-color: #ffff00"&gt;enableprefiltering="1" prefilterparametername="CRM_FilteredContact"&amp;gt;&lt;/font&gt;&lt;br&gt;&amp;lt;attribute name="contactid" /&amp;gt;&lt;br&gt;&amp;lt;attribute name="fullname" /&amp;gt;&lt;br&gt;&amp;lt;link-entity name="incident" to="contactid" from="customerid" link-type="outer" alias="incident1" enableprefiltering="1" prefilterparametername="CRM_FilteredIncident"&amp;gt;&lt;br&gt;&amp;lt;attribute name="prioritycode" alias="incident1_prioritycode" /&amp;gt;&lt;br&gt;&amp;lt;attribute name="createdon" alias="incident1_createdon" /&amp;gt;&lt;br&gt;&amp;lt;attribute name="title" alias="incident1_title" /&amp;gt;&lt;br&gt;&amp;lt;attribute name="incidentid" /&amp;gt;&lt;br&gt;&amp;lt;link-entity name="contact" to="customerid" from="contactid" link-type="outer" alias="LE_53CF0568"&amp;gt;&lt;br&gt;&amp;lt;attribute name="fullname" alias="LE_53CF0568_fullname" /&amp;gt;&lt;br&gt;&amp;lt;/link-entity&amp;gt;&lt;br&gt;&amp;lt;/link-entity&amp;gt;&lt;br&gt;&amp;lt;/entity&amp;gt;&lt;br&gt;&amp;lt;/fetch&amp;gt;&lt;/p&gt; &lt;h4&gt;Parameters&lt;/h4&gt; &lt;p&gt;So as in SQL reports, adding parameters in FetchXML reports allows the user to decide what data will be returned, based on criteria. For the following example we’ll add a date parameter for when the returned cases where created:&lt;/p&gt; &lt;p&gt;&amp;lt;fetch distinct="false" no-lock="false" mapping="logical"&amp;gt;&lt;br&gt;&amp;lt;entity name="contact" enableprefiltering="1" prefilterparametername="CRM_FilteredContact"&amp;gt;&amp;lt;attribute name="contactid" /&amp;gt;&lt;br&gt;&amp;lt;attribute name="fullname" /&amp;gt;&lt;br&gt;&amp;lt;link-entity name="incident" to="contactid" from="customerid" link-type="outer" alias="incident1" enableprefiltering="1" prefilterparametername="CRM_FilteredIncident"&amp;gt;&lt;br&gt;&amp;lt;attribute name="prioritycode" alias="incident1_prioritycode" /&amp;gt;&lt;br&gt;&amp;lt;attribute name="createdon" alias="incident1_createdon" /&amp;gt;&lt;br&gt;&amp;lt;attribute name="title" alias="incident1_title" /&amp;gt;&lt;br&gt;&amp;lt;attribute name="incidentid" /&amp;gt;&lt;br&gt;&lt;font style="background-color: #ffff00"&gt;&amp;lt;filter type="and"&amp;gt; &lt;br&gt;&amp;nbsp; &amp;lt;condition attribute="createdon" operator="on-or-after" value="@date" /&amp;gt; &lt;br&gt;&amp;lt;/filter&amp;gt;&lt;/font&gt;&lt;br&gt;&amp;lt;link-entity name="contact" to="customerid" from="contactid" link-type="outer" alias="LE_53CF0568"&amp;gt;&amp;lt;attribute name="fullname" alias="LE_53CF0568_fullname" /&amp;gt;&lt;br&gt;&amp;lt;/link-entity&amp;gt;&lt;br&gt;&amp;lt;/link-entity&amp;gt;&lt;br&gt;&amp;lt;/entity&amp;gt;&lt;br&gt;&amp;lt;/fetch&amp;gt;&lt;/p&gt; &lt;p&gt;Worth noting here that there are several options for the ‘Operator’ part of the filter. They include:&lt;/p&gt; &lt;p&gt;eq – Equal&lt;br&gt;on-or-after&lt;br&gt;on-or-before&lt;br&gt;gt – Greater Than&lt;br&gt;lt – Less Than&lt;br&gt;ne – Not Equal To&lt;br&gt;&lt;/p&gt; &lt;p&gt;Also note that in the example above, you could also hard code a date parameter in or use a date picker.&lt;/p&gt; &lt;p&gt;Hope that helps, but for more information it’s worth checking the section on Technet - &lt;a title="http://technet.microsoft.com/en-us/library/gg328117.aspx" href="http://technet.microsoft.com/en-us/library/gg328117.aspx"&gt;http://technet.microsoft.com/en-us/library/gg328117.aspx&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-2908339053548074454?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/fzH4ueZECoY/fetchxml-reporting-in-microsoft.html</link><author>noreply@blogger.com (RP)</author><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2011/12/fetchxml-reporting-in-microsoft.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-241542475724273816</guid><pubDate>Thu, 08 Dec 2011 11:07:00 +0000</pubDate><atom:updated>2011-12-08T11:07:15.793Z</atom:updated><title>Customise The CRM 2011 Masthead</title><description>&lt;p&gt;Before I start, I have to say, like the fix in CRM 4.0, the following (While simple) is still unsupported.&lt;/p&gt; &lt;p&gt;One of the nice tweaks you could do in CRM 4.0 was change elements of the masthead.&lt;/p&gt; &lt;p&gt;Essentially the process is the same in CRM 2011, but some things have changed.&lt;/p&gt; &lt;p&gt;There are a couple of elements to the Masthead area:&lt;/p&gt; &lt;p&gt;Microsoft CRM Logo (Center) – C:\Program Files\Microsoft Dynamics CRMWeb\_imgs\CRMMastheadLogo.png&lt;/p&gt; &lt;p&gt;Blue Masthead (Right) - C:\Program Files\Microsoft Dynamics CRMWeb\_imgs\theme\Outlook14Silver\Masthead.png&lt;/p&gt; &lt;p&gt;Both can be customised.&lt;/p&gt; &lt;p&gt;ALWAYS back up the originals and maintain the dimensions.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-25QQ4_gmcx4/TuCaXGh2HfI/AAAAAAAAARw/MsmJ7MypDt8/s1600-h/Windows%252520Server%2525202008%252520R2%252520x64-2011-12-08-10-54-52%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Windows Server 2008 R2 x64-2011-12-08-10-54-52" border="0" alt="Windows Server 2008 R2 x64-2011-12-08-10-54-52" src="http://lh5.ggpht.com/-ip0zfTt7qhg/TuCaYmHSAdI/AAAAAAAAAR4/sJkJ9gW0CTo/Windows%252520Server%2525202008%252520R2%252520x64-2011-12-08-10-54-52_thumb%25255B4%25255D.png?imgmax=800" width="514" height="300"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-241542475724273816?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/wSU2zN7Lefw/customise-crm-2011-masthead.html</link><author>noreply@blogger.com (RP)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-ip0zfTt7qhg/TuCaYmHSAdI/AAAAAAAAAR4/sJkJ9gW0CTo/s72-c/Windows%252520Server%2525202008%252520R2%252520x64-2011-12-08-10-54-52_thumb%25255B4%25255D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2011/12/customise-crm-2011-masthead.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-66329484503450441</guid><pubDate>Wed, 09 Nov 2011 09:06:00 +0000</pubDate><atom:updated>2011-11-09T09:06:15.665Z</atom:updated><title>Moving On</title><description>&lt;p&gt;It’s my last day today working with Time4Advice.&lt;/p&gt; &lt;p&gt;I’ve only been with the guys at T4A for about 7 months, but have seen some amazing things in that time. They are bringing to market, what I feel is an incredible product, a truly amazing xRM solution for financial services.&lt;/p&gt; &lt;p&gt;I’ve seen the boundaries pushed in every direction of what the core Microsoft Dynamics CRM product is capable of.&lt;/p&gt; &lt;p&gt;I wish them all the best for the future.&lt;/p&gt; &lt;p&gt;For me…..I’m now moving on to a new project building a CRM solution for a national housing association.&lt;/p&gt; &lt;p&gt;Really looking forward to starting with the team (tomorrow!)&lt;/p&gt; &lt;p&gt;Rob&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-66329484503450441?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/e-b1A-TAQpg/moving-on.html</link><author>noreply@blogger.com (RP)</author><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2011/11/moving-on.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-2018979828951397711</guid><pubDate>Fri, 04 Nov 2011 16:26:00 +0000</pubDate><atom:updated>2011-11-04T16:26:52.222Z</atom:updated><title>N:1 or Lookup Field…..What's The Difference in CRM 2011?</title><description>&lt;p&gt;Something I stumbled on by chance this week, had me scratching my head for a while……&lt;/p&gt; &lt;p&gt;I was working on some reports for CRM 2011 which worked fine in my VM image, but failed to run on live environment..&lt;/p&gt; &lt;p&gt;The logs were of no use, as was the error message.&lt;/p&gt; &lt;p&gt;Eventually I realised the only difference between my VM image and Live was a lookup field to Contacts for a Secondary contact on the main Account form. We had placed one there on the live environment, and rather than export the solution, I just re-created it on my VM.&lt;/p&gt; &lt;p&gt;However it was causing an issue. &lt;/p&gt; &lt;p&gt;On closer inspection I noticed that they were named differently:&lt;/p&gt; &lt;p&gt;Why should this be the case? Effectively they were the same field, same lookup and same relationship.&lt;/p&gt; &lt;p&gt;The difference was the way it was created.&lt;/p&gt; &lt;p&gt;The two ways to create this sort of relationship in CRM 2011 are: &lt;/p&gt; &lt;p&gt;Create a field on a form of type lookup &lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-wG8REirkfk8/TrQSPzbEH-I/AAAAAAAAAQ8/OWuQI7rpgz8/s1600-h/image10.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-gsa-BOrT26k/TrQSQVb5TsI/AAAAAAAAARA/n1V4dHjXwEA/image_thumb6.png?imgmax=800" width="573" height="42"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Create a new relationship (N:1) THEN add the resulting field to the form:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-IUx7q4YGp2M/TrQSQ1_sjzI/AAAAAAAAARM/ycpObwxwwWg/s1600-h/image11.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-UqfXb6FRd80/TrQSSewr82I/AAAAAAAAARU/fllGkoajspg/image_thumb7.png?imgmax=800" width="567" height="34"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Both produce the same effect, but name them differently.&lt;/p&gt; &lt;p&gt;I had created the lookup in one way, and the Live system had been created in the other way.&lt;/p&gt; &lt;p&gt;Probably not something you’ll encounter, but if you do, you now know why.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-2018979828951397711?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/ukwv3pOTKIE/n1-or-lookup-fieldwhat-difference-in.html</link><author>noreply@blogger.com (RP)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-gsa-BOrT26k/TrQSQVb5TsI/AAAAAAAAARA/n1V4dHjXwEA/s72-c/image_thumb6.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2011/11/n1-or-lookup-fieldwhat-difference-in.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-1261495124037845787</guid><pubDate>Thu, 27 Oct 2011 09:33:00 +0000</pubDate><atom:updated>2011-10-27T10:33:32.959+01:00</atom:updated><title>CRMConsult.info Reaches 50,000 Views</title><description>&lt;p&gt;I have to say it’s a bit of a milestone. CRMConsult.info has reached 50,000 views in under 3 years.&lt;/p&gt; &lt;p&gt;I’m quite pleased with this, as my reason for starting to blog was mostly to record things for myself. It’s nice to see that some find it useful. It was never intended to be a very technical blog, but just a few snippets of information on Microsoft Dynamics CRM and SQL.&lt;/p&gt; &lt;p&gt;Just looking at a few of the stats, it’s interesting to see where most of the visitors come from, but it always amazes me when I see a visit from some remote place.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-706xSTblE8g/TqklZowCuCI/AAAAAAAAAQs/1stKV5RVkZo/s1600-h/image%25255B3%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-Dijf_gjMETU/Tqklaw7yYYI/AAAAAAAAAQ0/9HK4GACIV7M/image_thumb%25255B1%25255D.png?imgmax=800" width="596" height="475"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Anyway….Here's to the next 50,000, and I hope people continue to find it interesting.&lt;/p&gt; &lt;p&gt;Rob&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-1261495124037845787?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/hECYgFM3Aqk/crmconsultinfo-reaches-50000-views.html</link><author>noreply@blogger.com (RP)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-Dijf_gjMETU/Tqklaw7yYYI/AAAAAAAAAQ0/9HK4GACIV7M/s72-c/image_thumb%25255B1%25255D.png?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://www.crmconsult.info/2011/10/crmconsultinfo-reaches-50000-views.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-7873636625089603942</guid><pubDate>Wed, 26 Oct 2011 09:56:00 +0000</pubDate><atom:updated>2011-10-26T10:58:12.789+01:00</atom:updated><title>Microsoft Dynamics CRM Glossary</title><description>&lt;p&gt;I saw an interesting Tweet from &lt;a href="http://customery.co.uk/" target="_blank"&gt;Neil Benson&lt;/a&gt; today discussing initial meetings with clients and debates over naming conventions – What is a Contact? – What is a Lead? Could it be called a ‘Prospect’.&lt;/p&gt; &lt;p&gt;I have had that same conversation over and over again, which got me thinking……&lt;/p&gt; &lt;p&gt;It’s easy to understand CRM terminology when you work with it every day, but most clients are new to CRM systems and have got used to calling their data what they want to call it. I guess our role as CRM consultants is to define what the concept is, then agree a naming convention.&lt;/p&gt; &lt;p&gt;The following is just my take on this, not an official Microsoft Glossary. It’s mostly about what I have experienced, and how I have explained it.&lt;/p&gt; &lt;table border="0" cellspacing="0" cellpadding="2" width="590"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="116"&gt; &lt;h3&gt;Name&lt;/h3&gt;&lt;/td&gt; &lt;td valign="top" width="211"&gt; &lt;h3&gt;Definition&lt;/h3&gt;&lt;/td&gt; &lt;td valign="top" width="19"&gt;&amp;nbsp;&lt;/td&gt; &lt;td valign="top" width="242"&gt; &lt;h3&gt;Options&lt;/h3&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="116"&gt; &lt;h4&gt;Lead&lt;/h4&gt;&lt;/td&gt; &lt;td valign="top" width="211"&gt;A Lead is an unqualified record. It can be thought of as no more than a name and address, similar to a list of names and addresses in a business directory. You have no relationship with them.&lt;br&gt;At some point you develop a relationship with this contact, whereby you as a business decide they are more than just a name and address, and qualify them in to an Account and Contact, and possibly create an Opportunity to do business with them. This may be the qualifier…..If the name and address express an interest in a product or service of yours, then they are qualified.&lt;/td&gt; &lt;td valign="top" width="19"&gt;&amp;nbsp;&lt;/td&gt; &lt;td valign="top" width="242"&gt;Many companies like to use the name Prospect as opposed to Lead. It is a matter of personal choice, and the name Lead can be changed, however as you’ll see in the section for Contacts, in CRM terms, just because an individual is a Contact or a business is an Account in CRM, doesn’t necessarily mean you are actively doing business with them….they could even at Contact level still be a prospective customer, having expressed an interest, but not ‘bought’ anything.&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="116"&gt; &lt;h4&gt;Contact&lt;/h4&gt;&lt;/td&gt; &lt;td valign="top" width="211"&gt;An individual person. This is someone you have a relationship with. they may be an individual customer, or perhaps a business partner or supplier. They may also be a prospective customer or even a customer who no longer does business with you. They are more than just a Lead.&lt;/td&gt; &lt;td valign="top" width="19"&gt;&amp;nbsp;&lt;/td&gt; &lt;td valign="top" width="242"&gt;As with Leads the name can be changed. Some companies like to use the title ‘Individual’ or ‘People’. &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="116"&gt; &lt;h4&gt;Account&lt;/h4&gt;&lt;/td&gt; &lt;td valign="top" width="211"&gt;This is a business, a collection of Contacts or individual people. The word ‘Account’ shouldn’t be exclusively for businesses your are actively working with. An Account may be a supplier or business partner.&lt;/td&gt; &lt;td valign="top" width="19"&gt;&amp;nbsp;&lt;/td&gt; &lt;td valign="top" width="242"&gt;Accounts can also be changed&amp;nbsp; to suit business needs – Businesses, Organisations are some options.&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="116"&gt; &lt;h4&gt;Opportunity&lt;/h4&gt;&lt;/td&gt; &lt;td valign="top" width="211"&gt;This is, as the name suggests, and opportunity to sell. You cannot create an opportunity against a Lead, as a Lead is just a name and address.&lt;/td&gt; &lt;td valign="top" width="19"&gt;&amp;nbsp;&lt;/td&gt; &lt;td valign="top" width="242"&gt;Can also be changed.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;It’s worth noting that each of these records can be sub-divided. For example an Account record could also be shown as one of the following:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Customer&lt;br&gt;Prospect&lt;br&gt;Partner&lt;br&gt;Reseller&lt;br&gt;Supplier&lt;br&gt;Vendor&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;In this way, you can segment your CRM data using views, perhaps creating views of Customers or resellers etc.&lt;/p&gt; &lt;p&gt;Microsoft dynamics CRM 2011 is an extremely flexible product. unlike many systems which make the end user bend toward their business process, Dynamics CRM will fit the clients needs. It’s important though as a first step that the client understands the language and concepts of CRM before rushing in with name changes.&lt;/p&gt; &lt;p&gt;Some clients I have worked with view their leads as opportunities. In CRM, no amount of bending will allow this. Understanding that a Contact could be a prospect, and therefore allow you to create an opportunity, is step one for a client like that, before looking at name changes.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-7873636625089603942?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/wuRZzH6Nwqc/microsoft-dynamics-crm-glossary.html</link><author>noreply@blogger.com (RP)</author><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2011/10/microsoft-dynamics-crm-glossary.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-9089143963441877081</guid><pubDate>Sat, 22 Oct 2011 17:42:00 +0000</pubDate><atom:updated>2011-10-24T08:53:30.174+01:00</atom:updated><title>FetchXML Reporting in Microsoft Dynamics CRM 2011–Part 1</title><description>&lt;p&gt;Traditionally I have created custom reports In CRM (4.0) using SQL. I got quite comfortable doing it that way, and created some nice reports in either SQL Report Builder or BIDS.&lt;/p&gt; &lt;p&gt;With the advent of CRM 2011, Fetch based reporting really took off. Mainly this was due tot the fact that if you went with CRM online (Microsoft's Cloud offering) you could only create custom reports (outside of the wizard) using FetchXML, as you don’t have direct access to the SQL like you would with an on premise solution.&lt;/p&gt; &lt;p&gt;It’s also interesting to note that any wizard created reports that are then downloaded for editing outside of CRM, are created using FetchXML, so to a certain extent, even if you are working on premise, it’s good to get to grips with FetchXML reporting. &lt;/p&gt; &lt;p&gt;There are a couple of things you will need to do in preparation to building a Fetch based report. You will need to download and install the &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=13818" target="_blank"&gt;Microsoft Dynamics CRM 2011 Report Authoring Extension&lt;/a&gt;. This is required if you are going to author custom Fetch based reports in Business Intelligence Development Studio (BIDS).&lt;/p&gt; &lt;p&gt;Once this is done, you are ready to start.&lt;/p&gt; &lt;p&gt;A good starting point for becoming familiar with FetchXML for reporting is Advanced Find. I have always viewed advanced find as a form of reporting, so it fits nicely. Essentially the logic you use to build an Advanced Find query can easily be transposed to use in a Report.&lt;/p&gt; &lt;p&gt;For example, if you created an advanced find query to find all Accounts beginning with ‘A’ the logic would look like this:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-j6ZCA7NotFg/TqMASwkAXjI/AAAAAAAAAPY/J5_oRH05n5g/s1600-h/image3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-LoNx3cLYXas/TqMATzRTRTI/AAAAAAAAAPg/bXfVpr6Xs-Q/image_thumb1.png?imgmax=800" width="604" height="176"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Giving these results:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-1S4bv3XlhBc/TqMAUjLXayI/AAAAAAAAAPo/Nnc8CUs-4CM/s1600-h/image7.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-o9LysVZjTZA/TqMAV3gcebI/AAAAAAAAAPw/-OWoKERxtr4/image_thumb3.png?imgmax=800" width="604" height="242"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;So what does the FetchXML look like?&lt;/p&gt; &lt;p&gt;In the first image above you will see an option to ‘Download FetchXML’ – click that and save the results.&lt;/p&gt; &lt;p&gt;Open them up in Notepad and this is what you’ll see:&lt;/p&gt; &lt;p&gt;&amp;lt;fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false"&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;entity name="account"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;attribute name="name" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;attribute name="address1_city" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;attribute name="primarycontactid" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;attribute name="telephone1" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;attribute name="accountid" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;order attribute="name" descending="false" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filter type="and"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;condition attribute="name" operator="like" value="A%" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/filter&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;link-entity name="contact" from="contactid" to="primarycontactid" visible="false" link-type="outer" alias="accountprimarycontactidcontactcontactid"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;attribute name="emailaddress1" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/link-entity&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;/entity&amp;gt;&lt;br&gt;&amp;lt;/fetch&amp;gt;&lt;/p&gt; &lt;p&gt;You’ll notice some elements to this. After the header information, you’ll see the entity that we are querying, in this case ‘Account’.&lt;/p&gt; &lt;p&gt;The next part of the Fetch outlines the attributes or fields we are returning….because this is an advanced find fetch query based on a view (in this case ‘My Accounts’), we have several attributes/fields/columns shown.&lt;/p&gt; &lt;p&gt;Next you’ll see that the Fetch allows you to set an ‘Order’ to the results, in this case by ‘Name’.&lt;/p&gt; &lt;p&gt;The next line is our filter criteria. We set the filter to be Accounts that begin with ‘A’. You’ll notice the Operator is set to ‘Like’. I will outline the other options for this later, including ‘eq’ for Equal and ‘ne’ for ‘Not Equal’.&lt;/p&gt; &lt;p&gt;Next we see that another table or record type is pulled in, in this case the ‘Contact’ table. This is pulled in as in the View the query is based on the primary contact of the Account is displayed. The table is included by linking to the Account table where Contact ContactID = Account PrimaryContactID. The Primary contacts Email address is also included.&lt;/p&gt; &lt;p&gt;So how could this type of query be used in a report? Well copy the above Fetch and start BIDS. Create a new Report Server Project and a new report. &lt;/p&gt; &lt;p&gt;First thing you then need to do is (as in a ‘normal’ SQL report, add the connection string. For fetch based reports the connection string needs to be in this format:&lt;/p&gt; &lt;p&gt;&lt;em&gt;ServerURL;CRM Organization&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;So for example it might be:&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;a href="http://CRMVM:5555;contoso"&gt;http://CRMVM:5555;contoso&lt;/a&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-SHEgsKX66Ao/TqMAWS1qNrI/AAAAAAAAAP4/RuvU2aM1liU/s1600-h/image%25255B5%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-BBkhJVEl13g/TqMAXDIlEpI/AAAAAAAAAQA/ZJ-8DJvgvXU/image_thumb%25255B2%25255D.png?imgmax=800" width="439" height="337"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;You’ll also notice the ‘Type’ is set to Microsoft Dynamics CRM Fetch. You have this option after installing the Report Authoring Extensions mentioned above.&lt;/p&gt; &lt;p&gt;Once this is done you can create your dataset. For the purpose of this example, paste in the query above:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-EzZFgJHSICA/TqMAXrsy4NI/AAAAAAAAAQI/YWH11RLs0UU/s1600-h/image%25255B9%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-rWvTJu2QFZ0/TqMAYVq_8YI/AAAAAAAAAQQ/1a2TsaZAohc/image_thumb%25255B4%25255D.png?imgmax=800" width="438" height="367"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Then as normal use the returned data in your report, in this example a simple table:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/--J7Zq4ihXfk/TqMAZQkO8xI/AAAAAAAAAQY/1Fpu6V90rAw/s1600-h/image%25255B13%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-0OZQdkZX0wg/TqMAac_qN1I/AAAAAAAAAQg/WIWUDKQ5MaU/image_thumb%25255B6%25255D.png?imgmax=800" width="600" height="352"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Now that really is a whistle stop tour of FetchXML reporting from Microsoft Dynamics CRM 2011.&lt;/p&gt; &lt;p&gt;In Part 2 I will go through some of the details including:&lt;/p&gt; &lt;p&gt;Contextual FetchXML Reports&lt;br&gt;Parameters&lt;br&gt;Filters&lt;/p&gt; &lt;p&gt;For some more reading check out the following references and blogs:&lt;/p&gt; &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/gg328332.aspx" href="http://msdn.microsoft.com/en-us/library/gg328332.aspx"&gt;http://msdn.microsoft.com/en-us/library/gg328332.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="http://gtcrm.wordpress.com/2011/03/24/fetch-xml-reports-for-crm-2011-online/" href="http://gtcrm.wordpress.com/2011/03/24/fetch-xml-reports-for-crm-2011-online/"&gt;http://gtcrm.wordpress.com/2011/03/24/fetch-xml-reports-for-crm-2011-online/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="http://blogs.msdn.com/b/crm/archive/2011/02/23/fetch-xml-based-reports-bits-amp-pieces.aspx" href="http://blogs.msdn.com/b/crm/archive/2011/02/23/fetch-xml-based-reports-bits-amp-pieces.aspx"&gt;http://blogs.msdn.com/b/crm/archive/2011/02/23/fetch-xml-based-reports-bits-amp-pieces.aspx&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-9089143963441877081?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/1cqp-UgG8Vw/fetchxml-reporting-in-microsoft.html</link><author>noreply@blogger.com (RP)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-LoNx3cLYXas/TqMATzRTRTI/AAAAAAAAAPg/bXfVpr6Xs-Q/s72-c/image_thumb1.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2011/10/fetchxml-reporting-in-microsoft.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-7011126979708503330</guid><pubDate>Tue, 18 Oct 2011 20:49:00 +0000</pubDate><atom:updated>2011-10-18T21:49:58.092+01:00</atom:updated><title>SQL Snippets</title><description>&lt;p&gt;I’ve been doing quite a lot of report authoring recently, which has meant I needed to get to grips with some FetchXML for creating the reports in CRM 2011, but also dust off some old SQL and SSRS expressions.&lt;/p&gt; &lt;p&gt;Thought I would put a few of these expressions together in one place, mostly for my own reference, but if anyone finds them useful you’re more than welcome to use them.&lt;/p&gt; &lt;p&gt;None of them are radical new ways of doing things, but when you don’t use a function regularly it’s easy to forget the syntax etc. They are:&lt;/p&gt; &lt;p&gt;FormatNumber&lt;br&gt;Alternating Row Colours in a Table&lt;br&gt;Colour Change&lt;br&gt;FetchXML Report Parameters&lt;br&gt;Display Chosen Parameters&lt;br&gt;Contextual FetchXML Reports&lt;/p&gt; &lt;h6&gt;FormatNumber&lt;/h6&gt; &lt;p&gt;One of my reports needed to have a calculated field, which was then rounded and a currency symbol inserted. I wasn’t able to strictly format the field as a number, with a coma for the thousands, so just added FormatNumber before to give me the commas.&lt;/p&gt; &lt;p&gt;Example:&lt;/p&gt; &lt;p&gt;= Fields!currencysymbol.Value &amp;amp; &lt;font style="background-color: #ffff00"&gt;FormatNumber&lt;/font&gt;(round( Fields!CalculatedSum.Value,Fields!currencyprecisionValue.Value))&lt;/p&gt; &lt;h6&gt;Alternating Row Colours in a Table&lt;/h6&gt; &lt;p&gt;I needed to show each row in alternating White and Grey for easier reading.&lt;/p&gt; &lt;p&gt;Example:&lt;/p&gt; &lt;p&gt;=IIf(RowNumber(Nothing) Mod 2 = 0, "#f2f2f2", "White")&lt;/p&gt; &lt;h6&gt;Colour change&lt;/h6&gt; &lt;p&gt;In this case, the expression is checking a value for the field 'enteredon' and if the difference between that date and the current date (Now) is greater than (&amp;gt;) 48 hours (The choice of checking against hours is set by the 'DateInterval.Hour' part of the expression), then the colour is Red, otherwise if it's less than 12 hours it's green, else DarkOrange.  &lt;p&gt;= iif (DateDiff(DateInterval.Hour,Fields!enteredon.Value,Now()) &amp;gt;48 , "RED",iif (DateDiff(DateInterval.Hour,Fields!enteredon.Value,Now()) &amp;lt;12 , "Green","DarkOrange"))  &lt;h6&gt;FetchXML Report Parameters&lt;/h6&gt; &lt;p&gt;Adding a parameter in a FetchXML report is quite easy:&lt;/p&gt; &lt;p&gt;Example:&lt;/p&gt; &lt;p&gt;&amp;lt;filter type ="and"&amp;gt;&lt;br&gt;&amp;lt;condition attribute="fieldname" operator ="in" value="@parametername" /&amp;gt;&lt;br&gt;&amp;lt;/filter&amp;gt;&lt;/p&gt; &lt;p&gt;Then call it as you normally would in a SQL report&lt;/p&gt; &lt;h6&gt;Display chosen parameters&lt;/h6&gt; &lt;p&gt;Had a report that allowed the user to stipulate several parameters……&lt;/p&gt; &lt;p&gt;I then wanted to show those chosen as a comma separated list as part of the sub title.&lt;/p&gt; &lt;p&gt;Example:&lt;/p&gt; &lt;p&gt;=join(Parameters!ParaName.Label,", ")&lt;/p&gt; &lt;h6&gt;Contextual FetchXML Reports&lt;/h6&gt; &lt;p&gt;I am really starting to get in to FetchXML for reporting, mostly if I’m honest adapting wizard reports in BIDS to tweak.&lt;/p&gt; &lt;p&gt;In the past I’ve blogged about making SQL reports contextual in CRM using the CRMAF_ prefix.&lt;/p&gt; &lt;p&gt;In FetchXML the following will give you a contextual report against , for example a Contact, pulling in Sales Order details:&lt;/p&gt; &lt;p&gt;Example:&lt;/p&gt; &lt;p&gt;&amp;lt;fetch distinct="false" no-lock="false" mapping="logical"&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;lt;entity name="contact" &lt;font style="background-color: #ffff00"&gt;enableprefiltering="1" prefilterparametername="CRM_FilteredContact"&amp;gt;&lt;br&gt;&lt;/font&gt;&amp;lt;attribute name="contactid" /&amp;gt;&lt;br&gt;&amp;lt;attribute name="fullname" /&amp;gt;&lt;br&gt;&amp;lt;link-entity name="salesorder" to="contactid" from="customerid" link-type="outer" alias="salesorder1" enableprefiltering="1" prefilterparametername="CRM_FilteredSalesOrder"&amp;gt;&lt;/p&gt; &lt;p&gt;Then your FetchXML would continue pulling in all the required Sales Order fields.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-7011126979708503330?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/KpEqd76J32E/sql-snippets.html</link><author>noreply@blogger.com (RP)</author><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2011/10/sql-snippets.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-7657504595176356893</guid><pubDate>Wed, 05 Oct 2011 11:51:00 +0000</pubDate><atom:updated>2011-10-05T12:51:06.743+01:00</atom:updated><title>Originating Lead Notes in Accounts and Contacts</title><description>&lt;p&gt;One of the nice features of Microsoft Dynamics CRM is the ability to qualify Leads to Accounts and Contacts, carrying through all that useful historical data including emails, activities etc. One of the things it doesn’t do is carry through the Notes from the Lead. Now you can easily get to it by navigating through the Originating Lead field, but it would be nice to see them there.&lt;/p&gt; &lt;p&gt;There are a few ways to achieve this including a report, but I think the best solution is to display the notes in an iFrame right in the notes section, perhaps being differentiated by calling them Original Lead Notes.&lt;/p&gt; &lt;p&gt;There were a couple of solutions for Microsoft Dynamics CRM 4.0, so I thought I would take some good points from these and tweak it for 2011.&lt;/p&gt; &lt;p&gt;Firstly you need to place an iFrame on the Contact or Account form (Or Both!) to display the Lead Notes. set it up with the following parameters, making sure that you note the Name, Set the URL to about:blank and un-tick the ‘Restrict cross-frame scripting’ box:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-1PLKNchq9c4/ToxEn1D7vqI/AAAAAAAAAPE/BbNQcIO4KYU/s1600-h/iFrame%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="iFrame" border="0" alt="iFrame" src="http://lh3.ggpht.com/-j6v7etziDq0/ToxEolc01JI/AAAAAAAAAPI/G2TdFvmsN_c/iFrame_thumb%25255B1%25255D.jpg?imgmax=800" width="289" height="435"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;You then need to setup the web resource that will hold the JavaScript.&lt;/p&gt; &lt;p&gt;The script is the following:&lt;/p&gt; &lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; OriginLead() &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt; {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt; &lt;span class="kwrd"&gt;var&lt;/span&gt; Primary = Xrm.Page.data.entity.attributes.get(&lt;span class="str"&gt;"originatingleadid"&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;     &lt;span class="kwrd"&gt;var&lt;/span&gt; IFrame = Xrm.Page.ui.controls.get(&lt;span class="str"&gt;"IFRAME_LeadNotes"&lt;/span&gt;);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; (Primary.getValue() != &lt;span class="kwrd"&gt;null&lt;/span&gt;) {&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        &lt;span class="kwrd"&gt;var&lt;/span&gt; GUIDvalue = Primary.getValue()[0].id;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        IFrame.setSrc(&lt;span class="str"&gt;"http://crmvm:5555/Contoso/_controls/notes/notesdata.aspx?id="&lt;/span&gt;+GUIDvalue+&lt;span class="str"&gt;"&amp;amp;ParentEntity=3&amp;amp;EnableInlineEdit=false&amp;amp;EnableInsert=false"&lt;/span&gt;);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;        }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;     &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;{&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;           IFrame.setSrc(&lt;span class="str"&gt;"about:blank"&lt;/span&gt;);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;         }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;You’ll notice a couple of things here..&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Firstly the JavaScript is grabbing the GUID of the ‘OriginatingLead’ field. This is whats used in the URL of the iFrame set out in Line 10.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Also if there is no Originating Lead then the iFrame remains blank with no errors.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Once this is all done the results should be as follows:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/-asAVGNpaa7o/ToxEpSJbuOI/AAAAAAAAAPM/OGmSTgyT8sk/s1600-h/Results%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Results" border="0" alt="Results" src="http://lh5.ggpht.com/-SveMlZRLgmE/ToxEqDwoYVI/AAAAAAAAAPQ/aLYGrFtMAvs/Results_thumb%25255B2%25255D.jpg?imgmax=800" width="627" height="360"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Enjoy&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Rob&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-7657504595176356893?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/5xnm0HO1vz8/originating-lead-notes-in-accounts-and.html</link><author>noreply@blogger.com (RP)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-j6v7etziDq0/ToxEolc01JI/AAAAAAAAAPI/G2TdFvmsN_c/s72-c/iFrame_thumb%25255B1%25255D.jpg?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://www.crmconsult.info/2011/10/originating-lead-notes-in-accounts-and.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-7815638582500159585</guid><pubDate>Thu, 29 Sep 2011 09:14:00 +0000</pubDate><atom:updated>2011-09-29T10:14:45.472+01:00</atom:updated><title>When ‘This Week’ is not really This Week</title><description>&lt;p&gt;It’s funny how some things just slip from your mind. I had to put together some views in Microsoft Dynamics CRM 2011 and, as usual, started with the advanced find criteria. It was going to be a simple view of all records where a certain date field was ‘This Week’. So I set the advanced find up like this:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-SxG_LL8_G2A/ToQ29bCOJiI/AAAAAAAAAOs/uIsRMsMsKjk/s1600-h/Advanced%252520Find%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Advanced Find" border="0" alt="Advanced Find" src="http://lh4.ggpht.com/-L3qblUI3IjU/ToQ2-JHzusI/AAAAAAAAAOw/NexnO2O16M8/Advanced%252520Find_thumb%25255B1%25255D.jpg?imgmax=800" width="595" height="201"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Now I knew there ‘should’ be one record that had a follow up date this week, but instead got two records returned:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-YbJWxKV9Iz8/ToQ2-8NOdXI/AAAAAAAAAO0/sOqucc99JNY/s1600-h/AFResults%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="AFResults" border="0" alt="AFResults" src="http://lh5.ggpht.com/-YiPgT9MZSR4/ToQ2_hJSJBI/AAAAAAAAAO4/gNtrIO-c_bo/AFResults_thumb%25255B1%25255D.jpg?imgmax=800" width="599" height="200"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;When I looked at the two records, one had a follow up of Monday, and the other of Sunday. The advanced find filter for ‘This Week’ was including Sunday, and for this instance, and actually for this business, the week started on a Monday (The Sunday would actually be part of the previous week for them).&lt;/p&gt; &lt;p&gt;I had totally forgotten that a setting in the ‘System Settings’ allows you to choose the first day of the week, and obviously by default it’s set to Sunday.&lt;/p&gt; &lt;p&gt;To change it, navigate to Settings –&amp;gt; System Settings –&amp;gt; Formats, and click the ‘Customize’ button in the Current format section. This will open the following window, where you need to go to the Date tab:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-VKkg5LoiJG4/ToQ3AbEv5NI/AAAAAAAAAO8/AYl-NuObSZU/s1600-h/Date%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Date" border="0" alt="Date" src="http://lh5.ggpht.com/-LqZ19H_6oZo/ToQ3BETcsnI/AAAAAAAAAPA/c-MulAKFe2k/Date_thumb%25255B2%25255D.jpg?imgmax=800" width="462" height="434"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;You’ll notice in the image above, ‘First Day of The week’ was set to Sunday. Just change to Monday and save, and your Advanced Find ‘This Week’ will start from the Monday.&lt;/p&gt; &lt;p&gt;Totally forgot this setting until I needed it!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-7815638582500159585?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/8gwhaGQj8pc/when-this-week-is-not-really-this-week.html</link><author>noreply@blogger.com (RP)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/-L3qblUI3IjU/ToQ2-JHzusI/AAAAAAAAAOw/NexnO2O16M8/s72-c/Advanced%252520Find_thumb%25255B1%25255D.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2011/09/when-this-week-is-not-really-this-week.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-6817236616658593103</guid><pubDate>Mon, 19 Sep 2011 11:18:00 +0000</pubDate><atom:updated>2011-09-19T12:18:30.681+01:00</atom:updated><title>CRM Report for Entity and Attribute Details</title><description>&lt;p&gt;Quite often I have encountered a need to see a list of entities, along with their attributes, and in particular the details of the attributes, so for example the Account entity along with all Attributes including custom and their details – Display Name, Database Name, Field Type etc…..&lt;/p&gt; &lt;p&gt;In CRM 4.0 there were a few applications that could take the Customisations XML and feed it to Word to deliver as a document set out with all the details. I haven’t found one in CRM 2011, and want to build one slightly differently using a SQL report.&lt;/p&gt; &lt;p&gt;I decided to include a parameter that would let you choose which entities to report on.&lt;/p&gt; &lt;p&gt;In brief:&lt;/p&gt; &lt;p&gt;Create 2 datasets.&lt;/p&gt; &lt;p&gt;1st dataset will be used as the parameter:&lt;/p&gt; &lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;distinct&lt;/span&gt; EntityView.Name &lt;span class="kwrd"&gt;AS&lt;/span&gt; EntityName &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; LocalizedLabelView &lt;span class="kwrd"&gt;AS&lt;/span&gt; LocalizedLabelView_2 &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;INNER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; AttributeView &lt;span class="kwrd"&gt;ON&lt;/span&gt; LocalizedLabelView_2.ObjectId = AttributeView.AttributeId &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;RIGHT&lt;/span&gt; &lt;span class="kwrd"&gt;OUTER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; EntityView &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="kwrd"&gt;INNER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; LocalizedLabelView &lt;span class="kwrd"&gt;AS&lt;/span&gt; LocalizedLabelView_1 &lt;span class="kwrd"&gt;ON&lt;/span&gt; EntityView.EntityId = LocalizedLabelView_1.ObjectId &lt;span class="kwrd"&gt;ON&lt;/span&gt; AttributeView.EntityId = EntityView.EntityId&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; LocalizedLabelView_1.ObjectColumnName = &lt;span class="str"&gt;'LocalizedName'&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="kwrd"&gt;AND&lt;/span&gt; LocalizedLabelView_2.ObjectColumnName = &lt;span class="str"&gt;'DisplayName'&lt;/span&gt; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&lt;span class="kwrd"&gt;AND&lt;/span&gt; LocalizedLabelView_1.LanguageId = &lt;span class="str"&gt;'1033'&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&lt;span class="kwrd"&gt;AND&lt;/span&gt; LocalizedLabelView_2.LanguageId = &lt;span class="str"&gt;'1033'&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&lt;span class="kwrd"&gt;order&lt;/span&gt; &lt;span class="kwrd"&gt;by&lt;/span&gt; EntityView.Name asc&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Then create a main dataset that will pull in the details from the entities and attributes:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; EntityView.Name &lt;span class="kwrd"&gt;AS&lt;/span&gt; EntityName, &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;LocalizedLabelView_1.Label &lt;span class="kwrd"&gt;AS&lt;/span&gt; EntityDisplayName, &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;AttributeView.Name &lt;span class="kwrd"&gt;AS&lt;/span&gt; AttributeName, &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;LocalizedLabelView_2.Label &lt;span class="kwrd"&gt;AS&lt;/span&gt; AttributeDisplayName,&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;column_name &lt;span class="kwrd"&gt;as&lt;/span&gt; columnname, &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;data_type &lt;span class="kwrd"&gt;as&lt;/span&gt; datatype,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;table_name &lt;span class="kwrd"&gt;as&lt;/span&gt; tablename&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; LocalizedLabelView &lt;span class="kwrd"&gt;AS&lt;/span&gt; LocalizedLabelView_2 &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&lt;span class="kwrd"&gt;INNER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; AttributeView &lt;span class="kwrd"&gt;ON&lt;/span&gt; LocalizedLabelView_2.ObjectId = AttributeView.AttributeId &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&lt;span class="kwrd"&gt;RIGHT&lt;/span&gt; &lt;span class="kwrd"&gt;OUTER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; EntityView &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&lt;span class="kwrd"&gt;INNER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; LocalizedLabelView &lt;span class="kwrd"&gt;AS&lt;/span&gt; LocalizedLabelView_1 &lt;span class="kwrd"&gt;ON&lt;/span&gt; EntityView.EntityId = LocalizedLabelView_1.ObjectId &lt;span class="kwrd"&gt;ON&lt;/span&gt; AttributeView.EntityId = EntityView.EntityId&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&lt;span class="kwrd"&gt;left&lt;/span&gt; &lt;span class="kwrd"&gt;outer&lt;/span&gt; &lt;span class="kwrd"&gt;join&lt;/span&gt; INFORMATION_SCHEMA.COLUMNS &lt;span class="kwrd"&gt;as&lt;/span&gt; infoschema &lt;span class="kwrd"&gt;on&lt;/span&gt; attributeview.Name = COLUMN_NAME &lt;span class="kwrd"&gt;and&lt;/span&gt; EntityView.Name = table_name&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; LocalizedLabelView_1.ObjectColumnName = &lt;span class="str"&gt;'LocalizedName'&lt;/span&gt; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&lt;span class="kwrd"&gt;AND&lt;/span&gt; LocalizedLabelView_2.ObjectColumnName = &lt;span class="str"&gt;'DisplayName'&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&lt;span class="kwrd"&gt;AND&lt;/span&gt; LocalizedLabelView_1.LanguageId = &lt;span class="str"&gt;'1033'&lt;/span&gt; &lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;&lt;span class="kwrd"&gt;AND&lt;/span&gt; LocalizedLabelView_2.LanguageId = &lt;span class="str"&gt;'1033'&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;&lt;span class="kwrd"&gt;AND&lt;/span&gt; table_Name &lt;span class="kwrd"&gt;IN&lt;/span&gt; (@Entity)&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;--&lt;span class="kwrd"&gt;AND&lt;/span&gt; EntityView.Name &lt;span class="kwrd"&gt;IN&lt;/span&gt; (&lt;span class="str"&gt;'Account'&lt;/span&gt;)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;&lt;span class="kwrd"&gt;ORDER&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; EntityName, AttributeName&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Once this is done, design your report in some sort of table layout, and the results will be as follows:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/-sOU4SEpyPUU/Tnck_wCxthI/AAAAAAAAAOA/wHTiayo1Hcs/s1600-h/EntityDetailsReport_Robert_Peledie%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="EntityDetailsReport_Robert_Peledie" border="0" alt="EntityDetailsReport_Robert_Peledie" src="http://lh6.ggpht.com/-7w04WJEQqbI/TnclBepBhxI/AAAAAAAAAOE/SyZWodvbU1I/EntityDetailsReport_Robert_Peledie_thumb%25255B2%25255D.png?imgmax=800" width="603" height="606"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Rob.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-6817236616658593103?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/JyWhA4R1v_w/crm-report-for-entity-and-attribute.html</link><author>noreply@blogger.com (RP)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-7w04WJEQqbI/TnclBepBhxI/AAAAAAAAAOE/SyZWodvbU1I/s72-c/EntityDetailsReport_Robert_Peledie_thumb%25255B2%25255D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2011/09/crm-report-for-entity-and-attribute.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-7000666151970126610</guid><pubDate>Fri, 02 Sep 2011 09:55:00 +0000</pubDate><atom:updated>2011-09-02T10:55:48.297+01:00</atom:updated><title>Add a Calculator to a CRM Record Using Web Resources</title><description>&lt;p&gt;There have been a few occasions where I thought it would be useful to have a calculator in a CRM form. Maybe on a quote form to work out discounts on the fly etc..&lt;/p&gt; &lt;p&gt;Microsoft Dynamics CRM 2011 has a great process for including resources in Forms so I used this functionality to create a calculator – Just built in HTML and JavaScript – and called as a Web Resource in a form:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-9hibGVCKtKw/TmCoHmfeESI/AAAAAAAAAN4/jT9zAkl1-oU/s1600-h/Robert_Peledie_CRM_Calc%25255B3%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Robert_Peledie_CRM_Calc" border="0" alt="Robert_Peledie_CRM_Calc" src="http://lh3.ggpht.com/-O07l-wCKdng/TmCoI7br5II/AAAAAAAAAN8/0S8PF9UHCow/Robert_Peledie_CRM_Calc_thumb%25255B1%25255D.png?imgmax=800" width="606" height="601"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Needs a little work on the look and feel, but essentially it’s all there. Ver 1.2 will enable you to post the results to certain fields.&lt;/p&gt; &lt;p&gt;If anyone is interested in the process, let me know.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-7000666151970126610?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/-iyLwGefsI4/add-calculator-to-crm-record-using-web.html</link><author>noreply@blogger.com (RP)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-O07l-wCKdng/TmCoI7br5II/AAAAAAAAAN8/0S8PF9UHCow/s72-c/Robert_Peledie_CRM_Calc_thumb%25255B1%25255D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2011/09/add-calculator-to-crm-record-using-web.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-1303342729464817499</guid><pubDate>Thu, 11 Aug 2011 07:25:00 +0000</pubDate><atom:updated>2011-08-11T08:25:41.442+01:00</atom:updated><title>Pre-Filtering Reports – Fun with CRMAF_</title><description>&lt;p&gt;I have blogged before about the technique for pre-filtering reports using the CRMAF_ prefix, enabling your CRM reports to run contextually etc., however I had a need recently to develop a series of reports that might call for all sorts of outer joins and unions, and pulling in a lot of fields. &lt;/p&gt; &lt;p&gt;I had all sorts of issues trying to get it to work properly – It ran fine pulling in the single SalesOrder table, but we have another custom table that sits under the SalesOrder table and it just spat that out!.&lt;/p&gt; &lt;p&gt;I decided to look at it slightly differently. &lt;/p&gt; &lt;p&gt;Firstly create a dataset that pre-filters the record you want to run it from – In this case from a contact:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;select&lt;br&gt;CRMAF_filteredcontact.contactid as contactid&lt;br&gt;from&lt;br&gt;filteredcontact as CRMAF_filteredContact&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;If you were to run this, you would just get a long list of your contacts GUIDS.&lt;/p&gt; &lt;p&gt;Secondly you need to use the results of this as a parameter, so create a parameter called something like ‘Contact’ and choose the dataset as it’s source (In Report Builder it looks something like this):&lt;/p&gt; &lt;table border="0" cellspacing="0" cellpadding="2" width="491"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="244"&gt;&lt;a href="http://lh4.ggpht.com/-xrnJGULoEL8/TkOD7co3K7I/AAAAAAAAANo/ZRYIbX7P56Y/s1600-h/Para1%25255B3%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Para1" border="0" alt="Para1" src="http://lh4.ggpht.com/-TKcsvqtVVeo/TkOD8NnAcRI/AAAAAAAAANs/2-vWEtnvPfA/Para1_thumb%25255B1%25255D.png?imgmax=800" width="282" height="237"&gt;&lt;/a&gt;&lt;/td&gt; &lt;td valign="top" width="245"&gt;&lt;a href="http://lh6.ggpht.com/-UX0_vfASYG0/TkOD8sTU8SI/AAAAAAAAANw/qRX9NDNoStE/s1600-h/Para2%25255B3%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Para2" border="0" alt="Para2" src="http://lh5.ggpht.com/-hIJwJ4q6hCQ/TkOD9PUBGEI/AAAAAAAAAN0/E-xNNhZ43E4/Para2_thumb%25255B1%25255D.png?imgmax=800" width="282" height="237"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Once this has been setup you create a second dataset which is you main query. &lt;/p&gt; &lt;p&gt;Because you are already pre-filtering with this first dataset, you don’t need to prefix with CRMAF_ in the second dataset. This not only makes life easier, but also opens up the ability to use other techniques for retrieving your data that you couldn’t before with pre-filtering your whole query. For example, I needed to do some calculations and aggregates prior to pulling in the data, as it was more efficient to do it that way. With that in mind I created a temporary table using Declare @tablename, and grabbed my data – doing some calculations on the way.&lt;/p&gt; &lt;p&gt;The key thing is that once you have created your query, part of it must pull in the parameter, so in my case it was:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;where&lt;br&gt;customerid =@contact &lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;The result was a much easier to construct main query. A much quicker report, and a more robust way of calculating fields.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-1303342729464817499?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/UKFj_KR8-VU/pre-filtering-reports-fun-with-crmaf.html</link><author>noreply@blogger.com (RP)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/-TKcsvqtVVeo/TkOD8NnAcRI/AAAAAAAAANs/2-vWEtnvPfA/s72-c/Para1_thumb%25255B1%25255D.png?imgmax=800" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://www.crmconsult.info/2011/08/pre-filtering-reports-fun-with-crmaf.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-7847674900984585205</guid><pubDate>Tue, 05 Jul 2011 14:53:00 +0000</pubDate><atom:updated>2011-07-14T12:32:13.676+01:00</atom:updated><title>Copy Account Address to Clipboard for Dynamics CRM 2011</title><description>&lt;p&gt;Some time ago I wrote a blog article outlining the steps needed to create a button in CRM to copy the address from an Account in CRM 4.0 to the clipboard.&lt;/p&gt; &lt;p&gt;I have just converted it to Dynamics CRM 2011 and have taken advantage of a few of the cool new features of 2011 like Web Resources and Solutions.&lt;/p&gt; &lt;p&gt;Essentially it’s a similar process, but with a few tweaks to update the JavaScript – which is now held as a web resource along with the images needed for the Ribbon button.&lt;/p&gt; &lt;p&gt;I’m going to blog the ‘how to’ at some point, but if you just want the solution, Just Email me peledie@hotmail.com&lt;/p&gt; &lt;p&gt;The results when applied give you the following button in your Ribbon:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-FxQyk9EritA/ThMlfTMvYdI/AAAAAAAAANg/Pq3ZLBnX1SI/s1600-h/Ribbon%25255B3%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Ribbon" border="0" alt="Ribbon" src="http://lh5.ggpht.com/-M4n8tho7P_o/ThMlf0hWAHI/AAAAAAAAANk/aCQhc7_I-is/Ribbon_thumb%25255B1%25255D.png?imgmax=800" width="535" height="119"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;This will grab the Name, Line1, Line2, City, and Postal Code from your Account form in to the Clipboard. Tweaking the JavaScript will enable you to copy more or less.&lt;/p&gt; &lt;p&gt;Interested in any feedback on this solution.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-7847674900984585205?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/UqThzeF4gQs/copy-account-address-to-clipboard-for.html</link><author>noreply@blogger.com (RP)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-M4n8tho7P_o/ThMlf0hWAHI/AAAAAAAAANk/aCQhc7_I-is/s72-c/Ribbon_thumb%25255B1%25255D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2011/07/copy-account-address-to-clipboard-for.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-4158608850262363636</guid><pubDate>Mon, 30 May 2011 15:23:00 +0000</pubDate><atom:updated>2011-05-30T16:23:24.251+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Microsoft Dynamics CRM Bing Maps SQL 2008</category><title>Spatial Reporting for Microsoft Dynamics CRM</title><description>&lt;span style="font-family: Calibri;"&gt;Bit of a weekend project but was quite excited at the possibilities with this one.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;I wanted to have a play with SQL 2008's ability to report using &lt;a href="http://www.microsoft.com/sqlserver/2008/en/us/spatial-data.aspx"&gt;geospacial&lt;/a&gt; data. With that in mind I created a basic report that would pick up Longitude and Latitude from a contact record in CRM (I’ll come back to the whole latitude and longitude in a bit). The new SQL Server 2008 allows you to report geographically and display on a map which is nice.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;The initial result if you have a longitude and latitude field in the contact record is something like this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-PVUFaf90qhg/TeO1Wzy9zPI/AAAAAAAAANc/zSPUCY2SIt4/s1600/PeledieSpatialReporting.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="308" src="http://4.bp.blogspot.com/-PVUFaf90qhg/TeO1Wzy9zPI/AAAAAAAAANc/zSPUCY2SIt4/s640/PeledieSpatialReporting.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="mso-fareast-language: EN-GB; mso-no-proof: yes;"&gt;&lt;v:shapetype coordsize="21600,21600" filled="f" id="_x0000_t75" o:preferrelative="t" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;  &lt;v:path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f"&gt;  &lt;o:lock aspectratio="t" v:ext="edit"&gt; &lt;/o:lock&gt;&lt;/v:path&gt;&lt;/v:stroke&gt;&lt;/v:shapetype&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;Thinking about how users could use this sort of information is interesting. Contacts could be grouped in views or after an advanced fined then run the report contextually. The pushpins could be hyperlinked back to the relevant CRM record etc. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;The trick with this was the Longitude Latitude. Having to add it manually would be a non-starter for users, especially if there are hundreds or even thousands of records, so I wrote a little script that would grab the Postcode, which should be in every record, and get the longitude and latitude from the BingMaps API, posting it into 2 new fields I created to store the Longitude and Latitude.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;span style="font-family: Calibri;"&gt;This is still a work in progress, but a nice use of CRM, SQL and Bingmaps.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-4158608850262363636?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/OsTRIEqB_RU/spatial-reporting-for-microsoft.html</link><author>noreply@blogger.com (RP)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-PVUFaf90qhg/TeO1Wzy9zPI/AAAAAAAAANc/zSPUCY2SIt4/s72-c/PeledieSpatialReporting.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2011/05/spatial-reporting-for-microsoft.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-791074455587254373</guid><pubDate>Fri, 27 May 2011 15:27:00 +0000</pubDate><atom:updated>2011-05-27T16:27:39.083+01:00</atom:updated><title>Cascading Parameters in SSRS Report</title><description>Working on a report for a client today, and the requirement for cascading parameters came up...&lt;br /&gt;
So a choice in parameter 1 would filter out the options for parameter 2 and so on. In the clients case they actually wanted 3 tiers.&lt;br /&gt;
&lt;br /&gt;
Creating parameters in SSRS is nice and easy, and for ease of use I created a dataset that is used exclusively to poulate the 1st parameter. the trick now was to take that choice and poulate the 2nd and so on.&lt;br /&gt;
&lt;br /&gt;
To do this just follow these steps:&lt;br /&gt;
&lt;br /&gt;
To create the main dataset with a query that includes multiple related parameters&lt;br /&gt;
1.In the Report Data pane, right-click a data source, and then click Add Dataset. &lt;br /&gt;
2.In Name, type the name of the dataset.&lt;br /&gt;
3.In Data source, choose the name of the data source or click New to create one. &lt;br /&gt;
4.In Query type, choose the type of query for the selected data source. In this topic, query type Text is assumed. &lt;br /&gt;
5.In Query, type the query to use to retrieve data for this report. The query must include the following parts:&lt;br /&gt;
a.A list of data source fields. For example, in a Transact-SQL statement, the SELECT statement specifies a list of database column names from a given table or view. &lt;br /&gt;
b.One query parameter for each cascading parameter. A query parameter limits the data retrieved from the data source by specifying certain values to include or exclude from the query. Typically, query parameters occur in a restriction clause in the query. For example, in a Transact-SQL SELECT statement, query parameters occur in the WHERE clause. For more information, see Filtering Rows by Using WHERE and HAVING.&lt;br /&gt;
6.Click Run (!). After you include query parameters and then run the query, report parameters that correspond to the query parameters are automatically created. &lt;br /&gt;
Note &lt;br /&gt;
The order of query parameters the first time you run a query determines the order that they are created in the report. To change the order, see How to: Change the Order of a Report Parameter (Reporting Services)&lt;br /&gt;
&lt;br /&gt;
7.Click OK.&lt;br /&gt;
Next, you will create a dataset that provides the values for the independent parameter. &lt;br /&gt;
To create a dataset to provide values for an independent parameter&lt;br /&gt;
1.In the Report Data pane, right-click a data source, and then click Add Dataset. &lt;br /&gt;
2.In Name, type the name of the dataset. &lt;br /&gt;
3.In Data source, verify the name is the name of the data source you chose in step 1. &lt;br /&gt;
4.In Query type, choose the type of query for the selected data source. In this topic, query type Text is assumed. &lt;br /&gt;
5.In Query, type the query to use to retrieve values for this parameter. Queries for independent parameters typically do not contain query parameters. For example, to create a query for a parameter that provides all category values, you might use a Transact-SQL statement similar to the following:&lt;br /&gt;
CopySELECT DISTINCT &amp;lt;column name&amp;gt; FROM &amp;lt;table&amp;gt;&lt;br /&gt;
The SELECT DISTINCT command removes duplicate values from the result set so that you get each unique value from the specified column in the specified table. &lt;br /&gt;
Click Run (!). The result set shows the values that are available for this first parameter. &lt;br /&gt;
6.Click OK.&lt;br /&gt;
Next, you will set the properties of the first parameter to use this dataset to populate its available values at run-time. &lt;br /&gt;
To set available values for a report parameter&lt;br /&gt;
1.In the Report Data pane, in the Parameters folder, right-click the first parameter, and then click Parameter Properties.&lt;br /&gt;
2.In Name, verify that the name of the parameter is correct.&lt;br /&gt;
3.Click Available Values.&lt;br /&gt;
4.Click Get values from a query. Three fields appear. &lt;br /&gt;
5.In Dataset, from the drop-down list, click the name of the dataset you created in the previous procedure.&lt;br /&gt;
6.In Value field, click the name of the field that provides the parameter value. &lt;br /&gt;
7.In Label field, click the name of the field that provides the parameter label.&lt;br /&gt;
8.Click OK.&lt;br /&gt;
Next, you will create a dataset that provides the values for a dependent parameter.&lt;br /&gt;
To create a dataset to provide values for a dependent parameter&lt;br /&gt;
1.In the Report Data pane, right-click a data source, and then click Add Dataset. &lt;br /&gt;
2.In Name, type the name of the dataset. &lt;br /&gt;
3.In Data source, verify the name is the name of the data source you chose in step 1. &lt;br /&gt;
4.In Query type, choose the type of query for the selected data source. In this topic, query type Text is assumed. &lt;br /&gt;
5.In Query, type the query to use to retrieve values for this parameter. Queries for dependent parameters typically include query parameters for each parameter that this parameter is dependent on. For example, to create a query for a parameter that provides all subcategory (dependent parameter) values for a category (independent parameter), you might use a Transact-SQL statement similar to the following:&lt;br /&gt;
CopySELECT DISTINCT Subcategory FROM &amp;lt;table&amp;gt; &lt;br /&gt;
WHERE (Category = @Category)&lt;br /&gt;
In the WHERE clause, Category is the name of a field from &amp;lt;table&amp;gt; and @Category is a query parameter. This statement produces a list of subcategories for the category specified in @Category. At run time, this value will be filled in with the value that the user chooses for the report parameter that has the same name.&lt;br /&gt;
6.Click OK.&lt;br /&gt;
Next, you will set the properties of the second parameter to use this dataset to populate its available values at run time. &lt;br /&gt;
To set available values for a report parameter&lt;br /&gt;
1.In the Report Data pane, in the Parameters folder, right-click the first parameter, and then click Parameter Properties.&lt;br /&gt;
2.In Name, verify that the name of the parameter is correct.&lt;br /&gt;
3.Click Available Values.&lt;br /&gt;
4.Click Get values from a query. &lt;br /&gt;
5.In Dataset, from the drop-down list, click the name of the dataset you created in the previous procedure.&lt;br /&gt;
6.In Value field, click the name of the field that provides the parameter value. &lt;br /&gt;
7.In Label field, click the name of the field that provides the parameter label.&lt;br /&gt;
8.Click OK.&lt;br /&gt;
&lt;br /&gt;
To test the cascading parameters&lt;br /&gt;
1.Click Preview. &lt;br /&gt;
2.From the drop-down list for the first, independent parameter, choose a value. &lt;br /&gt;
The report processor runs the dataset query for the next parameter and passes it the value you chose for the first parameter. The drop-down list for the second parameter is populated with the available values based on the first parameter value. &lt;br /&gt;
3.From the drop-down list for the second, dependent parameter, choose a value.&lt;br /&gt;
The report does not run automatically after you choose the last parameter so that you can change your choice. &lt;br /&gt;
4.Click View Report. The report updates the display based on the parameters you have chosen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-791074455587254373?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/hSR9ap1uMp8/cascading-parameters-in-ssrs-report.html</link><author>noreply@blogger.com (RP)</author><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2011/05/cascading-parameters-in-ssrs-report.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-7078031911392076697</guid><pubDate>Sun, 24 Apr 2011 21:23:00 +0000</pubDate><atom:updated>2011-04-24T22:23:23.269+01:00</atom:updated><title>Connections in Microsoft Dynamics CRM 2011</title><description>&lt;p&gt;A great new feature of CRM 2011 is Connections. Rather than just explain what it does, I thought I would give a scenario that you may encounter, then show how Connections in CRM 2011 can be leveraged to solve the problem.&lt;/p&gt; &lt;p&gt;Scenario: You are a company that manages Assets for your client, perhaps Hardware used by their personnel. You need a way of tracking who has use of the asset, but also need a way of tracking service cases related to the asset.&lt;/p&gt; &lt;p&gt;Firstly, create a new entity for holding the Asset information. &lt;/p&gt; &lt;p&gt;This might include a lookup to the associated contact, and may even include a lookup to the Product if you originally supplied it ( As a further step you might include a relationship to the Sales Order, thus giving you that complete transparency from Purchase to support)&lt;/p&gt; &lt;p&gt;When you create a new entity in CRM 2011, you now get the ability to enable connections for the records:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_DUC9Naxj9Qw/TbSUvI9DPNI/AAAAAAAAANM/WiTRxT-rbpc/s1600-h/image4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_DUC9Naxj9Qw/TbSUwdg9HxI/AAAAAAAAANQ/a0_o7-VSUfw/image_thumb2.png?imgmax=800" width="580" height="346"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;This connection can then be used in conjunction with traditional relationships, so in this example, the asset has a direct relationship to a contact record, as the Asset Owner, but you could also create a connection to this asset from, for example, a Case:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_DUC9Naxj9Qw/TbSUxoZFUHI/AAAAAAAAANU/InZDROHaRkc/s1600-h/Windows%20Server%202008%20R2%20x64-2011-04-24-21-50-58%5B4%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Windows Server 2008 R2 x64-2011-04-24-21-50-58" border="0" alt="Windows Server 2008 R2 x64-2011-04-24-21-50-58" src="http://lh3.ggpht.com/_DUC9Naxj9Qw/TbSUyo_s9hI/AAAAAAAAANY/oy7HJdgnjZw/Windows%20Server%202008%20R2%20x64-2011-04-24-21-50-58_thumb%5B2%5D.png?imgmax=800" width="581" height="348"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The possibilities with this feature are endless. As mentioned at the outset, you could easily include connections to the original Sales Order. &lt;/p&gt; &lt;p&gt;What will this give you?&lt;/p&gt; &lt;p&gt;Well, imagine you supplied a hardware item to a client.Being able to follow it’s life through Sales to Cases would give you a complete trail of the item. Being able to look from within the asset record and see all the connections, gives you a complete lifecycle of the asset.&lt;/p&gt; &lt;p&gt;This is just another great feature of Microsoft Dynamics CRM 2011.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-7078031911392076697?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/mN-ix4FsMII/connections-in-microsoft-dynamics-crm.html</link><author>noreply@blogger.com (RP)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_DUC9Naxj9Qw/TbSUwdg9HxI/AAAAAAAAANQ/a0_o7-VSUfw/s72-c/image_thumb2.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2011/04/connections-in-microsoft-dynamics-crm.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8858587491846595686.post-471014993672976802</guid><pubDate>Fri, 15 Apr 2011 10:25:00 +0000</pubDate><atom:updated>2011-04-15T11:28:12.366+01:00</atom:updated><title>Save and Close Macro for Word</title><description>Saw a Tweet recently asking for the functionality to 'Save and Close' from Word, very much like the Microsoft CRM ability.&lt;br /&gt;
&lt;br /&gt;
Nice quick solution - Add a Macro and a button:&lt;br /&gt;
&lt;br /&gt;
First of all, create a macro called SaveandClose with the following logic:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;Sub Saveandclose()&lt;br /&gt;
'&lt;br /&gt;
' Saveandclose Macro&lt;br /&gt;
'&lt;br /&gt;
'&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;Application.Quit SaveChanges:=wdPromptToSaveChanges&lt;br /&gt;
End Sub&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-IPzqhY1oRcY/TagcbcutI9I/AAAAAAAAANI/rDCTf0BQtEc/s1600/CustomRibbon.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="179" src="http://1.bp.blogspot.com/-IPzqhY1oRcY/TagcbcutI9I/AAAAAAAAANI/rDCTf0BQtEc/s320/CustomRibbon.jpg" width="320" /&gt;&lt;/a&gt;&lt;span style="color: black;"&gt;Once the Macro is saved, right click on the Ribbon and choose 'Customize Ribbon':&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the 'Choose Commands From' drop down, choose macros, and find your 'SaveandClose' Macro.&lt;br /&gt;
[You may need to create a New Group]&lt;br /&gt;
&lt;br /&gt;
You should then have a Save and Close button on your ribbon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8858587491846595686-471014993672976802?l=www.crmconsult.info' alt='' /&gt;&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/Crmconsultinfo/~3/kGVdAun51J4/save-and-close-macro-for-word.html</link><author>noreply@blogger.com (RP)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-IPzqhY1oRcY/TagcbcutI9I/AAAAAAAAANI/rDCTf0BQtEc/s72-c/CustomRibbon.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.crmconsult.info/2011/04/save-and-close-macro-for-word.html</feedburner:origLink></item></channel></rss>

