<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-780680930800461091</atom:id><lastBuildDate>Fri, 30 Aug 2024 15:47:55 +0000</lastBuildDate><category>attachment</category><category>web service</category><category>callout</category><category>error</category><category>forms</category><category>javascript</category><category>bug</category><category>custom entity</category><category>datetime</category><category>duration</category><category>picklist</category><category>sdk</category><category>settings</category><category>annotation</category><category>copy</category><category>creating</category><category>crm2016</category><category>custom attributes</category><category>cusumization</category><category>debug</category><category>dynamic entity</category><category>exam</category><category>instructions</category><category>limitation</category><category>lookup</category><category>lookup view</category><category>mail merge</category><category>metadata</category><category>mime type</category><category>note</category><category>notification</category><category>relationship</category><category>script</category><category>search</category><category>snippet</category><category>sql</category><category>state</category><category>status</category><category>upload</category><category>url</category><category>white paper</category><category>workflow</category><title>Afna CRM</title><description>MS CRM blog for developers</description><link>http://a-crm.blogspot.com/</link><managingEditor>noreply@blogger.com (Dejan Dular)</managingEditor><generator>Blogger</generator><openSearch:totalResults>54</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-8076848206981135115</guid><pubDate>Mon, 07 Jan 2019 10:04:00 +0000</pubDate><atom:updated>2019-01-08T11:27:58.187+01:00</atom:updated><title>Open CRM Report with Javascript</title><description>To run a specific report against selected items with Javascript, use the code below.&lt;br /&gt;
Create a button in a ribbon and pass the following parameters: SelectedControl, SelectedControlItemIds, SelectedEntityTypeName&lt;br /&gt;
&lt;br /&gt;
Beware that this is totally unsupported way of doing a this.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;function openReport(gridControl, recordIds, selectedEntityType)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;var reportId = &quot;{reportGuid}&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; var filterTable = true;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; var reportType = 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; var fileName = &quot;REPORT NAME&lt;reportname&gt;.rdl&quot;&lt;/reportname&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; Mscrm.RunReportFromGrid.$j(gridControl, recordIds, filterTable, reportId, reportType, fileName);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;}&lt;/span&gt;</description><link>http://a-crm.blogspot.com/2019/01/open-report-with-javascript.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-6058379823147489564</guid><pubDate>Mon, 08 Jan 2018 12:51:00 +0000</pubDate><atom:updated>2018-01-08T17:35:34.142+01:00</atom:updated><title>Get CRM Reports statistics</title><description>If you want to see how may times a certain report has been executed, run this query on the ReportServer database. First replace the&amp;nbsp;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;[CRM DATABASE NAME_MSCRM] &lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;with the correct CRM database name. If the CRM database is not on the same server, then you can&#39;t simply joint the tables in one query, but still you can get the report Id list from the Reps (Name column).&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;;WITH Reps AS&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;(&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;SELECT c.Name,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c.[Path],&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;COUNT(*) AS TimesRun,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MAX(l.TimeStart) AS [LastRun]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;FROM [ReportServer].[dbo].[ExecutionLog](NOLOCK) AS l&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;INNER JOIN [ReportServer].[dbo].[Catalog](NOLOCK) AS c ON l.ReportID = C.ItemID&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;WHERE c.Type = 2 -- Only show reports 1=folder, 2=Report, 3=Resource, 4=Linked Report, 5=Data Source&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;GROUP BY l.ReportId,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c.Name,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;c.[Path]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;SELECT CRM.Name, CRM.ReportId, Reps.TimesRun, Reps.LastRun, Reps.Path FROM Reps JOIN [CRM DATABASE NAME_MSCRM]..Report CRM ON Reps.Name = &#39;{&#39; + CAST(CRM.reportid AS CHAR(36)) + &#39;}&#39;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Be aware that the statistic is there for a limited time. Execute this to get the minimum date:&amp;nbsp;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;SELECT MIN(ExecutionLog.TimeStart) FROM [ReportServer].[dbo].ExecutionLog&lt;/span&gt;</description><link>http://a-crm.blogspot.com/2018/01/get-crm-reports-statistics.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-6954619419776583965</guid><pubDate>Thu, 17 Aug 2017 15:02:00 +0000</pubDate><atom:updated>2017-08-21T09:51:00.007+01:00</atom:updated><title>Executing SQL queries in CRM database on behalf of another user</title><description>If you are using filtered views in SSMS it is not possible to see what data will be returned for other users. But there is a way!&lt;br /&gt;
&lt;br /&gt;
The GUID of the user is stored in the SQL CONTEXT_INFO. All you have to do is to run this piece of code:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;DECLARE&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt; @binUserGuid &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;VARBINARY&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;128&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;DECLARE&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt; @userGuid &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;UNIQUEIDENTIFIER&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;SET&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt; @userGuid &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;&#39;GUID of the user you want to test&lt;guid of=&quot;&quot; test=&quot;&quot; the=&quot;&quot; to=&quot;&quot; user=&quot;&quot; want=&quot;&quot; you=&quot;&quot;&gt;&lt;guid of=&quot;&quot; the=&quot;&quot; user=&quot;&quot;&gt;&#39;&lt;/guid&gt;&lt;/guid&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;SET&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt; @binUserGuid &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: magenta; font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;CAST&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;@userGuid &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;AS&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;VARBINARY&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;128&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;))&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;SET&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: magenta; font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;CONTEXT_INFO&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt; @binUserGuid&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
From now on you will be able to query the data as if you would be logged in as another user.&lt;br /&gt;
&lt;br /&gt;
To clear the context info simply execute&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;SET&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: magenta; font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt;CONTEXT_INFO&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: 9.5pt;&quot;&gt; 0x&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
I hope this helps those who are testing SQL queries for the CRM reports.&lt;/div&gt;
</description><link>http://a-crm.blogspot.com/2017/08/executing-sql-queries-in-crm-database.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-3680956033160655080</guid><pubDate>Mon, 17 Jul 2017 11:05:00 +0000</pubDate><atom:updated>2017-07-17T21:46:02.679+01:00</atom:updated><title>Have some respect!</title><description>Over the past five years I have been more and more involved as a speaker at the conferences. I had my first session at the meeting of Slovenian Developer Group (sloDUG), then soon my first session in English language happened at SQLSaturday Slovenia.&lt;br /&gt;
&lt;br /&gt;
For those who don&#39;t know &lt;a href=&quot;http://www.sqlsaturday.com/&quot;&gt;SQLSaturday&lt;/a&gt; events, these are FREE 1-day SQL training events made possible first by the organizers, who &lt;b&gt;devote their free time&lt;/b&gt; to organize the whole event from scratch. Then there are sponsors who provide necessary funds for the event (renting the venue, &amp;nbsp;coffee and lunch for attendees, evening meal for speakers). And the last, but not least, there are the speakers who &lt;b&gt;arrive from all over the globe, live&amp;nbsp;on their own expenses and speak for free&lt;/b&gt;. Yes that&#39;s right! Free of charge. Even some sponsors are doing this just because they like the idea. All just for you knowledge thirsty enthusiasts.&amp;nbsp;&lt;b&gt;It&#39;s called giving back to the community. &lt;/b&gt;I too was once at the other end of the room listening to the speakers and admiring their enthusiasm.&lt;br /&gt;
&lt;br /&gt;
Yes I do it for free, but I get paid with more than money, and I am sure that I am speaking on behalf of vast majority speakers at SQLSaturday. First there is this great feeling of spreading the knowledge when I deliver a good session and receive good feedback. Even better are the emails or tweets I receive after where people are commenting on the session or asking questions. But the best part of this whole thing are amazing friendships I have made with amazing people. We live in different countries and this is one of the ways we are using to meet again and hang together for a few days. Personally I always try to make this also into a short tourist trip, therefore I arrive at least a day early and leave at least a day later so I can explore the city and the country where I am speaking at.&lt;br /&gt;
&lt;br /&gt;
Why am I writing this you ask? It all started with this tweet:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;twitter-tweet&quot; data-partner=&quot;tweetdeck&quot;&gt;
&lt;div dir=&quot;ltr&quot; lang=&quot;en&quot;&gt;
The obligatory &#39;turn it off and back on again&#39; moment strikes again... &lt;a href=&quot;https://twitter.com/hashtag/sqlsatmanc?src=hash&quot;&gt;#sqlsatmanc&lt;/a&gt; &lt;a href=&quot;https://t.co/LrS5ooQIXN&quot;&gt;pic.twitter.com/LrS5ooQIXN&lt;/a&gt;&lt;/div&gt;
— Terence Burridge (@CodebunTes) &lt;a href=&quot;https://twitter.com/CodebunTes/status/886172571628187650&quot;&gt;July 15, 2017&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async=&quot;&quot; charset=&quot;utf-8&quot; src=&quot;//platform.twitter.com/widgets.js&quot;&gt;&lt;/script&gt;

&lt;br /&gt;
It happens and people tweet about it,&amp;nbsp;no big deal. Some find it funny, some are feeling sorry for the speaker, and there are also some who take things like this personally.&lt;br /&gt;
&lt;br /&gt;
Let&#39;s make it clear. Free event or not, speakers should prepare their sessions and themselves professionally. Go through the slides, the demos, see how much time you need and always think of what can you improve to make it better next time.&lt;br /&gt;
&lt;br /&gt;
I&#39;m not defending anyone here and I don&#39;t want to point any fingers, but then this tweet happened:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiHHHof9vMBADBhH6d42oa0SMqGRdKRWGw5r8s22r-Ap66wqFMLsDddJtI6j1PZwcEbBysg4yESrH3HDzMYqGP0tXd06snNfLSH077duB7cBQScCk7jhGkX3OX5ZRqxekWIic9V5nudG8/s1600/Image+5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;364&quot; data-original-width=&quot;589&quot; height=&quot;197&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiHHHof9vMBADBhH6d42oa0SMqGRdKRWGw5r8s22r-Ap66wqFMLsDddJtI6j1PZwcEbBysg4yESrH3HDzMYqGP0tXd06snNfLSH077duB7cBQScCk7jhGkX3OX5ZRqxekWIic9V5nudG8/s320/Image+5.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Wait what? Have some respect? How about you showing some respect? This &quot;incompetent&quot; speaker is one of the best professionals in his area of expertise and has taken his free time, paid for the trip and came to present to you for free so you could call him incompetent!&lt;br /&gt;
&lt;br /&gt;
I just happened to be at this session. The speaker followed all the rules in the unwritten presenters rulebook. Two most important of them are: turn off all applications not needed for the session and prepare the scripts, do not type.&lt;br /&gt;
&lt;br /&gt;
In the beginning everything went OK, but then scripts just failed to execute at one point. Then he started to type the commands 😐Of course this didn&#39;t work and at the end he decided to restart the computer. While restarting the computer he killed the time by explaining some things where demos were not need and had a short Q&amp;amp;A session. Basically he did everything he could do to make things better. Of course precious time was lost and he could not show everything he wanted to show in his session.&lt;br /&gt;
&lt;br /&gt;
Boo-hoo, so what - it happens. Shit happens and it is called &quot;The wrath of the demo gods&quot;. No matter how well you prepare yourself, there is always a chance that something will fail and eventually it will. The worst are online demos. The probability of connectivity problems in unimaginably high at the conferences. I myself have experienced &quot;The wrath&quot; twice. Both times there was something with SQL Management Studio. I restarted it and voila! Problem solved. In this case the restart of computer was needed, so it took a little longer to do so. Here the &quot;incompetence&quot; of the speaker is on display. Some would freeze and just wait in awkward silence for the computer to restart, some would try to kill the time with bad jokes 😬, but here the session actually continued.&lt;br /&gt;
&lt;br /&gt;
I am sure that the author of the tweet above has seen better sessions but please don&#39;t judge people before you&#39;ve walked a mile in their shoes.&lt;br /&gt;
&lt;br /&gt;
So please have some respect for the speakers!</description><link>http://a-crm.blogspot.com/2017/07/have-some-respect.html</link><author>noreply@blogger.com (Dejan Dular)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiHHHof9vMBADBhH6d42oa0SMqGRdKRWGw5r8s22r-Ap66wqFMLsDddJtI6j1PZwcEbBysg4yESrH3HDzMYqGP0tXd06snNfLSH077duB7cBQScCk7jhGkX3OX5ZRqxekWIic9V5nudG8/s72-c/Image+5.png" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-1873389065027953554</guid><pubDate>Wed, 23 Mar 2016 14:15:00 +0000</pubDate><atom:updated>2016-05-09T23:56:48.637+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bug</category><category domain="http://www.blogger.com/atom/ns#">crm2016</category><category domain="http://www.blogger.com/atom/ns#">error</category><title>Error when opening an inactive entity</title><description>After migrating from CRM 2015 to CRM 2016 I experienced strange behavior at some inactive entities. Immediately after opening it I got an error:&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: red;&quot;&gt;The object cannot be updated because it is read-only&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Wait what? I did not change any data! Why this error? Disabled all javascript, disabled all plugins, the error was still there.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKllHB_r8PnYeIQP8kZMNJ5-kVYvcoW7Z1UBYJ7Ax4LKiwtI57Ga2ClSbmhu4XEV-U_KB8ZbS3F-1D9uY2hGRr50lxXNEEcZp3rG7lGuO4LpX3pJT5GPyI6J5Q-ptX_Tue78H1HXPT_9I/s1600/CRM+Error.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;157&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKllHB_r8PnYeIQP8kZMNJ5-kVYvcoW7Z1UBYJ7Ax4LKiwtI57Ga2ClSbmhu4XEV-U_KB8ZbS3F-1D9uY2hGRr50lxXNEEcZp3rG7lGuO4LpX3pJT5GPyI6J5Q-ptX_Tue78H1HXPT_9I/s320/CRM+Error.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
We introduced business process flow some months ago in this entity. The old entities had no process and stage ID defined. CRM 2016 wants to fix this immediately when dealing with an entity that has no process or stage defined and sets the default values.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
But there is a bug in CRM. The update is made on inactive entities as well. Thus the error.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The only solution is to update the values directly in the database:&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: magenta; font-family: &amp;quot;consolas&amp;quot;; font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: magenta; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;UPDATE&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;ENTITY&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;SET&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;ProcessId&lt;/span&gt; &lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;= PROCESSGUID&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;process guid=&quot;&quot;&gt;&lt;/process&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt; StageId&lt;/span&gt; &lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;= STAGEGUID&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;stage guid=&quot;&quot;&gt;&amp;nbsp;&lt;/stage&gt;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;WHERE&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;ProcessId&lt;/span&gt; &lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;or&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt; StageId&lt;/span&gt; &lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;IS&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;NULL)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;span color:=&quot;&quot; consolas=&quot;&quot; font-family:=&quot;&quot; grey=&quot;&quot; quot=&quot;&quot; style=&quot;color: black; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;AND&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt; StateCode&lt;/span&gt; &lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;;&quot;&gt; 1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot;; font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
</description><link>http://a-crm.blogspot.com/2016/03/error-when-opening-inactive-entity.html</link><author>noreply@blogger.com (Dejan Dular)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKllHB_r8PnYeIQP8kZMNJ5-kVYvcoW7Z1UBYJ7Ax4LKiwtI57Ga2ClSbmhu4XEV-U_KB8ZbS3F-1D9uY2hGRr50lxXNEEcZp3rG7lGuO4LpX3pJT5GPyI6J5Q-ptX_Tue78H1HXPT_9I/s72-c/CRM+Error.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-2787940644880344809</guid><pubDate>Sat, 05 Mar 2016 10:10:00 +0000</pubDate><atom:updated>2016-03-05T11:10:27.011+01:00</atom:updated><title>Do not name the action parameter &quot;Error&quot;</title><description>If you create an output action parameter named &quot;Error&quot; and you assign a value to it using &quot;Assign Value step&quot; the action will be published normally, but when trying to execute it, you will get the message:&lt;br /&gt;
&lt;span style=&quot;color: red; font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: red; font-family: Courier New, Courier, monospace;&quot;&gt;The following errors were encountered while processing the workflow tree:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: red; font-family: Courier New, Courier, monospace;&quot;&gt;&#39;DynamicActivity&#39;: The private implementation of activity &#39;1: DynamicActivity&#39; has the following validation error: &amp;nbsp; Compiler error(s) encountered processing expression&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: red; font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Just rename the parameter and the error will be gone.&lt;/span&gt;</description><link>http://a-crm.blogspot.com/2016/03/do-not-name-action-parameter-error.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-7760668390076940216</guid><pubDate>Thu, 03 Mar 2016 14:08:00 +0000</pubDate><atom:updated>2016-03-03T15:08:59.437+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bug</category><category domain="http://www.blogger.com/atom/ns#">lookup</category><title>CRM 2016 Update lookup field bug</title><description>I encountered a strange behavior after upgrading on premise CRM 2015 to 2016 version.&amp;nbsp;&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In the account form after I set the value of the custom lookup field (lookup to custom Country entity) I got javascript error:&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: red; font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: red; font-family: Courier New, Courier, monospace;&quot;&gt;SCRIPT5007: Unable to get property &#39;trim&#39; of undefined or null reference&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
After some hours of debugging I removed all javascript code. Then I copied the example from SDK, the error was still there.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Investigating the &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;setValue&lt;/span&gt; method I discovered, that something like &quot;internalOnChange&quot; was called. I suspect this method was called because there are some filtered lists in the page that depend on the value of this field.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Long story short, there are two ways to fix this:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Method 1:&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
Go to Settings-Administration-System settings. All the way down at the end of the page enable &quot;Use legacy form rendering&quot;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This will definitely slow down form loading.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Method 2:&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
The code deep down in the out-of-the-box CRM javascript libraries the script wants to parse the attribute type, but it is not there. The value should be &quot;lookup&quot; and you should pass it in the object when calling setValue.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;//Create the lookup value object&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;var lookupReference = [];&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;lookupReference[0] = {};&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;lookupReference[0].id = &quot;{a0c68c89-9752-e311-93f9-00155d78043f}&quot;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;lookupReference[0].entityType = &quot;new_entityname&quot;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;lookupReference[0].name = &quot;Display name&quot;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;b&gt;//Magic happens here&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;b&gt;lookupReference[0].type = &quot;lookup&quot;;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;//Update the lookup field &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Xrm.Page.getAttribute(&quot;new_entitynameid&quot;).setValue(lookupReference);&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://a-crm.blogspot.com/2016/03/crm-2016-update-lookup-field-bug.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-753111299119558250</guid><pubDate>Mon, 15 Feb 2010 20:10:00 +0000</pubDate><atom:updated>2010-02-15T21:10:10.263+01:00</atom:updated><title>Sitemap error because of missing LCID</title><description>&lt;p&gt;I accidentally discovered the following “feature”: All LCID Titles in SubArea must have matching LCID in Group Titles.&lt;/p&gt;  &lt;p&gt;Add a group in sitemap, like this:&lt;/p&gt;  &lt;p&gt;&lt;font face=&quot;Courier New&quot;&gt;&amp;lt;Group Id=&amp;quot;Demo&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160; &amp;lt;Titles&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Title LCID=&amp;quot;1033&amp;quot; Title=&amp;quot;Demo&amp;quot;/&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;/Titles&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;SubArea Id=&amp;quot;DemoPage&amp;quot; Icon=&amp;quot;iconUrl&amp;quot; Url=&amp;quot;&lt;/font&gt;&lt;font face=&quot;Courier New&quot;&gt;someUrl&amp;quot;&lt;/font&gt;&lt;font face=&quot;Courier New&quot;&gt;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Titles&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Title LCID=&amp;quot;1033&amp;quot; Title=&amp;quot;Demo Page&amp;quot;/&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Title LCID=&amp;quot;1060&amp;quot; Title=&amp;quot;Demo Stran&amp;quot;/&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Titles&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;/SubArea&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;lt;/Group&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The sitemap will upload normally and pass all validation, but after switching to language 1060, the error will be shown. The cause is missing LCID 1060 in Group Titles.&lt;/p&gt;  &lt;p&gt;The correct XML for this example is:&lt;/p&gt;  &lt;p&gt;&lt;font face=&quot;Courier New&quot;&gt;&amp;lt;Group Id=&amp;quot;Demo&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160; &amp;lt;Titles&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Title LCID=&amp;quot;1033&amp;quot; Title=&amp;quot;Demo&amp;quot;/&amp;gt;      &lt;br /&gt;&lt;font color=&quot;#ff0000&quot;&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Title LCID=&amp;quot;1060&amp;quot; Title=&amp;quot;Demo&amp;quot;/&amp;gt;&lt;/font&gt;      &lt;br /&gt;&amp;#160; &amp;lt;/Titles&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;SubArea Id=&amp;quot;DemoPage&amp;quot; Icon=&amp;quot;iconUrl&amp;quot; Url=&amp;quot;someUrl&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Titles&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Title LCID=&amp;quot;1033&amp;quot; Title=&amp;quot;Demo Page&amp;quot;/&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Title LCID=&amp;quot;1060&amp;quot; Title=&amp;quot;Demo Stran&amp;quot;/&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Titles&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;/SubArea&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;lt;/Group&amp;gt;&lt;/font&gt;&lt;/p&gt;  </description><link>http://a-crm.blogspot.com/2010/02/sitemap-error-because-of-missing-lcid.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-8265499438794099872</guid><pubDate>Fri, 05 Feb 2010 09:49:00 +0000</pubDate><atom:updated>2010-02-05T10:50:38.031+01:00</atom:updated><title>Problem fixed: Installing Rollup 8 for Data Migration Manager</title><description>&lt;p&gt;I installed a fresh instance of Microsoft Dynamics CRM Data Migration Manager. Then I wanted to apply Rollup 8 to it.&lt;/p&gt;  &lt;p&gt;Error: DMClient KB971782 is not found&lt;/p&gt;  &lt;p&gt;Resolution: First install&amp;#160; Rollup 7 update for DM Client (&lt;a title=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=A4893988-7804-4E23-AB58-740441CC696E&amp;amp;displaylang=en&quot; href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=A4893988-7804-4E23-AB58-740441CC696E&amp;amp;displaylang=en&quot;&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=A4893988-7804-4E23-AB58-740441CC696E&amp;amp;displaylang=en&lt;/a&gt;) and then you are able to install Rollup 8.&lt;/p&gt;  </description><link>http://a-crm.blogspot.com/2010/02/problem-fixed-installing-rollup-8-for.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-1655617832790237713</guid><pubDate>Fri, 23 Oct 2009 10:09:00 +0000</pubDate><atom:updated>2009-10-23T11:09:16.871+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">error</category><category domain="http://www.blogger.com/atom/ns#">settings</category><category domain="http://www.blogger.com/atom/ns#">web service</category><title>Error: The specified type was not recognized: name=&amp;#39;usersettings&amp;#39;</title><description>&lt;p&gt;&lt;strong&gt;Simple task:&lt;/strong&gt; Try to retrieve user settings of a CRM user.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Simple solution:     &lt;br /&gt;&lt;/strong&gt;RetrieveUserSettingsSystemUserRequest request = new RetrieveUserSettingsSystemUserRequest();    &lt;br /&gt;request.EntityId = systemUserId;    &lt;br /&gt;request.ColumnSet = new AllColumns();&lt;/p&gt;  &lt;p&gt;RetrieveUserSettingsSystemUserResponse response= (RetrieveUserSettingsSystemUserResponse)crmService.Execute(request);&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;NOT!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The specified type was not recognized: name=&#39;usersettings&#39;, namespace=&#39;http://schemas.microsoft.com/crm/2007/WebServices&#39;, at &amp;lt;BusinessEntity xmlns=&#39;http://schemas.microsoft.com/crm/2006/WebServices&#39;&amp;gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;h4&gt;Real solution:&lt;/h4&gt;  &lt;p&gt;Add the following line: request.ReturnDynamicEntities = true;&lt;/p&gt;  </description><link>http://a-crm.blogspot.com/2009/10/error-specified-type-was-not-recognized.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-7915950776278722123</guid><pubDate>Wed, 09 Sep 2009 06:27:00 +0000</pubDate><atom:updated>2009-09-09T07:27:04.961+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">exam</category><title>Microsoft CRM 4.0 – Applications certification and SQL 2008</title><description>&lt;p&gt;On Microsoft learning page (&lt;a href=&quot;http://www.microsoft.com/learning/en/us/certification/dynamics-crm-professional.aspx#tab2&quot;&gt;http://www.microsoft.com/learning/en/us/certification/dynamics-crm-professional.aspx#tab2&lt;/a&gt;) it is said that exam 70-431 - Microsoft SQL Server 2005 – Implementation and Maintenance is elective for Microsoft Certified Business Management Solutions Professional – Applications for Microsoft Dynamics CRM 4.0 certification.&lt;/p&gt;  &lt;p&gt;There is nothing said about SQL 2008 exams on this page.&lt;/p&gt;  &lt;p&gt;So I sent an email to Microsoft and here is their response:&lt;/p&gt;  &lt;p&gt;&lt;font face=&quot;Courier New&quot;&gt;Dear Dejan,     &lt;br /&gt;Thank you for your email.      &lt;br /&gt;We are glad to inform you that the Exam 70-432: TS: Microsoft SQL Server 2008, Implementation and Maintenance can be counted as an elective for Microsoft Certified Business Management Solutions Professional – Applications for Microsoft Dynamics CRM 4.0 certification.      &lt;br /&gt;As that new exam has been released recently, it has not been added to the certification path yet.      &lt;br /&gt;Please note that the update of the Certification Tree has been planned for the end of September 2009.      &lt;br /&gt;Then, the exam 70-431 will be visible in the certification path for      &lt;br /&gt;Applications for Microsoft Dynamics CRM4.0 certification on the      &lt;br /&gt;Microsoft Learning website, as that certification will be uploaded to the Transcripts of all customers who have completed the certification requirements by passing exam 70-432.      &lt;br /&gt;We hope that provided information is of assistance.      &lt;br /&gt;If you have any further questions please get in touch with us and we will be happy to assist you in any way we can.&lt;/font&gt;&lt;/p&gt;  </description><link>http://a-crm.blogspot.com/2009/09/microsoft-crm-40-applications.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-3681346035765640729</guid><pubDate>Mon, 07 Sep 2009 08:33:00 +0000</pubDate><atom:updated>2009-09-07T12:22:07.488+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">custom entity</category><category domain="http://www.blogger.com/atom/ns#">javascript</category><category domain="http://www.blogger.com/atom/ns#">url</category><title>Link to custom entity – use of etn instead of etc argument</title><description>&lt;p&gt;If you want to create a direct link to an out-of-a-box entity it is a very simple task: Right-click on one instance (let’s say account) and select “Copy Shortcut”.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_QITJ50wfKVM/SqTFULVEHSI/AAAAAAAABM8/ymy3KO7Y3u8/s1600-h/image%5B2%5D.png&quot;&gt;&lt;img style=&quot;border: 0px none ; display: inline;&quot; title=&quot;image&quot; alt=&quot;image&quot; src=&quot;http://lh6.ggpht.com/_QITJ50wfKVM/SqTFUR7s1lI/AAAAAAAABNA/0DxZfjVb7J8/image_thumb.png?imgmax=800&quot; border=&quot;0&quot; height=&quot;149&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Then just just change the GUID in the URL to open desired account. For the Account this URL looks like this: &lt;span style=&quot;font-family:Courier;&quot;&gt;http://SERVER:PORT/OrganizationName/sfa/accts/edit.aspx?id=&lt;strong&gt;{GUID}&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h4&gt;Custom entities&lt;/h4&gt;  &lt;p&gt;All custom entities have the same URL structure: &lt;span style=&quot;font-family:Courier;&quot;&gt;http://SERVER:PORT/OrganizationName/userdefined/edit.aspx?id=&lt;strong&gt;{GUID}&lt;/strong&gt;&amp;amp;etc=&lt;strong&gt;EntityTypeCode&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Notice the entity type code? This code is created when creating the entity. But for some reason &lt;strong&gt;Entity Type Code can be&lt;/strong&gt; (in most cases) &lt;strong&gt;different on every CRM instance&lt;/strong&gt;. This means that if you are creating a plugin that needs to create a link to the entity, you will have to query metadata to get the code or enter that code in configuration part.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;But there is a better way: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Instead of “etc” argument you can use “&lt;strong&gt;etn”&lt;/strong&gt; (Entity Name) in the query string. Then use the logical name of the entity. Logical name is the same on all instances.&lt;/p&gt;  &lt;p&gt;&lt;span style=&quot;font-family:Courier;&quot;&gt;http://SERVER:PORT/OrganizationName/userdefined/edit.aspx?id=&lt;strong&gt;{GUID}&lt;/strong&gt;&amp;amp;etn=&lt;strong&gt;EntityName&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style=&quot;font-family:Courier;&quot;&gt;http://testsrv:5555/Contoso/userdefined/edit.aspx?id=&lt;strong&gt;{08B91EBF-525A-DE11-94A6-002354F5ABA2}&lt;/strong&gt;&amp;amp;etn=&lt;strong&gt;new_testentity&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;</description><link>http://a-crm.blogspot.com/2009/09/link-to-custom-entity-use-of-etn.html</link><author>noreply@blogger.com (Dejan Dular)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_QITJ50wfKVM/SqTFUR7s1lI/AAAAAAAABNA/0DxZfjVb7J8/s72-c/image_thumb.png?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-4907845490797214453</guid><pubDate>Fri, 28 Aug 2009 12:33:00 +0000</pubDate><atom:updated>2009-08-28T13:36:13.126+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">metadata</category><category domain="http://www.blogger.com/atom/ns#">sdk</category><category domain="http://www.blogger.com/atom/ns#">sql</category><category domain="http://www.blogger.com/atom/ns#">web service</category><title>Get a list of searchable attributes from database</title><description>&lt;p&gt;(The final solution is at the bottom)&lt;/p&gt;  &lt;p&gt;Today my colleague wanted to check which attributes were marked as searchable in a specific entity.&lt;/p&gt;  &lt;p&gt;One way to do this is to open each attribute in MSCRM and check if it is marked as searchable. A long way if you have an entity with 220 attributes.&lt;/p&gt;  &lt;p&gt;So I went to the database and checked the &lt;strong&gt;MetadataSchema.Attribute&lt;/strong&gt; table. There is a column named &lt;strong&gt;DisplayMask&lt;/strong&gt;. SDK says that display masks are following (ValidForAdvancedFind = Searchable):&lt;/p&gt;  &lt;table border=&quot;1&quot; cellpadding=&quot;5&quot; frame=&quot;box&quot; rules=&quot;rows&quot;&gt;&lt;tbody&gt;     &lt;tr valign=&quot;top&quot;&gt;       &lt;td class=&quot;blue&quot; width=&quot;136&quot;&gt;&lt;b&gt;Name&lt;/b&gt;&lt;/td&gt;        &lt;td class=&quot;blue&quot; width=&quot;43&quot;&gt;&lt;b&gt;Value&lt;/b&gt;&lt;/td&gt;        &lt;td class=&quot;blue&quot; width=&quot;60%&quot;&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign=&quot;top&quot;&gt;       &lt;td class=&quot;dt&quot; width=&quot;136&quot;&gt;&lt;b&gt;None&lt;/b&gt;&lt;/td&gt;        &lt;td width=&quot;43&quot;&gt;1&lt;/td&gt;        &lt;td width=&quot;60%&quot;&gt;Specifies no restrictions.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign=&quot;top&quot;&gt;       &lt;td class=&quot;dt&quot; width=&quot;136&quot;&gt;&lt;b&gt;ObjectTypeCode&lt;/b&gt;&lt;/td&gt;        &lt;td width=&quot;43&quot;&gt;4&lt;/td&gt;        &lt;td width=&quot;60%&quot;&gt;Specifies that the attribute is an entity type code. The name of the entity is displayed.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign=&quot;top&quot;&gt;       &lt;td class=&quot;dt&quot; width=&quot;136&quot;&gt;&lt;b&gt;PrimaryName&lt;/b&gt;&lt;/td&gt;        &lt;td width=&quot;43&quot;&gt;2&lt;/td&gt;        &lt;td width=&quot;60%&quot;&gt;Specifies to display the attribute as the primary name.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign=&quot;top&quot;&gt;       &lt;td class=&quot;dt&quot; width=&quot;136&quot;&gt;&lt;b&gt;RequiredForForm&lt;/b&gt;&lt;/td&gt;        &lt;td width=&quot;43&quot;&gt;0x40&lt;/td&gt;        &lt;td width=&quot;60%&quot;&gt;Specifies that the attribute must be shown on a form.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign=&quot;top&quot;&gt;       &lt;td class=&quot;dt&quot; width=&quot;136&quot;&gt;&lt;b&gt;RequiredForGrid&lt;/b&gt;&lt;/td&gt;        &lt;td width=&quot;43&quot;&gt;0x80&lt;/td&gt;        &lt;td width=&quot;60%&quot;&gt;Specifies that the attribute can be shown in a grid view.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign=&quot;top&quot;&gt;       &lt;td class=&quot;dt&quot; width=&quot;136&quot;&gt;&lt;b&gt;ValidForAdvancedFind&lt;/b&gt;&lt;/td&gt;        &lt;td width=&quot;43&quot;&gt;8&lt;/td&gt;        &lt;td width=&quot;60%&quot;&gt;Specifies that the attribute can be shown on the Advanced Find form. This attribute is shown as Searchable in the UI.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign=&quot;top&quot;&gt;       &lt;td class=&quot;dt&quot; width=&quot;136&quot;&gt;&lt;b&gt;ValidForForm&lt;/b&gt;&lt;/td&gt;        &lt;td width=&quot;43&quot;&gt;0x10&lt;/td&gt;        &lt;td width=&quot;60%&quot;&gt;Specifies that the attribute can be shown on a form.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr valign=&quot;top&quot;&gt;       &lt;td class=&quot;dt&quot; width=&quot;136&quot;&gt;&lt;b&gt;ValidForGrid&lt;/b&gt;&lt;/td&gt;        &lt;td width=&quot;43&quot;&gt;0x20&lt;/td&gt;        &lt;td width=&quot;60%&quot;&gt;Specifies that the attribute can be shown in a grid view.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;But the value in the database is 469762048 (this attribute is searchable)! &lt;strong&gt;Bitwise comparison fails&lt;/strong&gt;: 469762048 &amp;amp; 8 = 0 WTF!!!&lt;/p&gt;  &lt;p&gt;After some googling and 30 minutes of using reflector if found that the former values are meant to be used only when working with metadata web service, like in this example: &lt;a title=&quot;http://msdn.microsoft.com/en-us/library/cc151072.aspx&quot; href=&quot;http://msdn.microsoft.com/en-us/library/cc151072.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/cc151072.aspx&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt; &lt;/h4&gt;  &lt;h4&gt;Thank you Reflector!&lt;/h4&gt;  &lt;p&gt;Microsoft.Crm.Platform.Sdk.dll (found it in GAC) contains &lt;strong&gt;DisplayMasks&lt;/strong&gt; enumeration in &lt;strong&gt;Microsoft.Crm.Metadata&lt;/strong&gt; namespace.&lt;/p&gt;  &lt;p&gt;This is what the reflector says:&lt;/p&gt;  &lt;pre&gt;&lt;span style=&quot;color: rgb(16, 0, 160);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(16, 0, 160);&quot;&gt;enum&lt;/span&gt; &lt;b&gt;DisplayMasks&lt;/b&gt;&lt;br /&gt;{&lt;br /&gt;  &lt;b&gt;ActivityPointerRegardingName&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;0x80&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;ActivityRegardingName&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;1&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;BitMask&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;0x1000&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;DynamicFormatCode&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;0x4000&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;None&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;0&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;ObjectTypeCode&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;0x400&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;PrimaryName&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;0x100&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;QueueItemPriority&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;0x10&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;QueueItemSender&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;0x20&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;QueueItemState&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;4&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;QueueItemStatus&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;8&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;QueueItemTitle&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;2&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;QueueItemToRecipients&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;0x40&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;RequiredForForm&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;0x20000000&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;RequiredForGrid&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;0x40000000&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;ResourcePointerName&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;0x200&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;ReturnedTypeCode&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;0x800&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;StateCode&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;0x2000&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;ValidForAdvancedFind&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;0x4000000&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;ValidForForm&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;0x8000000&lt;/span&gt;,&lt;br /&gt;  &lt;b&gt;ValidForGrid&lt;/b&gt; = &lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;0x10000000&lt;/span&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This means that the ValidForAdvancedFind has value of 0x4000000! I tested it with the previous example and it works! Hooray!&lt;/p&gt;&lt;br /&gt;&lt;h4&gt;Solution&lt;/h4&gt;&lt;p&gt;So the final answer to the problem of this post is:&lt;/p&gt;&lt;p style=&quot;font-weight: bold;&quot;&gt;select * from MetadataSchema.Attribute&lt;br /&gt;where DisplayMask &amp;amp; 0x4000000 &amp;gt; 0 and EntityId = @entityId&lt;/p&gt;&lt;p&gt;Of course you can use all other values as well.&lt;/p&gt;&lt;p&gt;What I haven’t tested yet is whether you can change this mask value directly in the database - definitely not supported by Microsoft :)&lt;/p&gt;</description><link>http://a-crm.blogspot.com/2009/08/get-list-of-searchable-attributes-from.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>6</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-6788058412503346924</guid><pubDate>Thu, 16 Jul 2009 12:26:00 +0000</pubDate><atom:updated>2009-07-16T13:26:10.012+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">forms</category><category domain="http://www.blogger.com/atom/ns#">javascript</category><category domain="http://www.blogger.com/atom/ns#">notification</category><title>Show custom notifications on Microsoft Dynamics CRM - upgrade</title><description>&lt;p&gt;&lt;a href=&quot;http://marcoamoedo.com/&quot;&gt;Marco Amoedo&lt;/a&gt; created cool javascript function that displays custom warning messages in Microsoft Dynamics CRM 4.0. &lt;a title=&quot;http://marcoamoedo.com/blog/show-custom-warning-messages-on-microsoft-dynamics-crm/&quot; href=&quot;http://marcoamoedo.com/blog/show-custom-warning-messages-on-microsoft-dynamics-crm/&quot;&gt;http://marcoamoedo.com/blog/show-custom-warning-messages-on-microsoft-dynamics-crm/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I liked the idea so much, that I took the script and &lt;strike&gt;upgraded&lt;/strike&gt; pimped it.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What it does?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The function simply adds a notification on top of the form, like in the picture below.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_QITJ50wfKVM/Sl8cWLz0bbI/AAAAAAAABLY/b149JreArsY/s1600-h/image%5B2%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh6.ggpht.com/_QITJ50wfKVM/Sl8cWWzJ1SI/AAAAAAAABLc/GPmVlAPvpNE/image_thumb.png?imgmax=800&quot; width=&quot;244&quot; height=&quot;154&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can add multiple notifications with different icons.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_QITJ50wfKVM/Sl8cWxe-NwI/AAAAAAAABLg/m2jaiyctqeo/s1600-h/image8.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh6.ggpht.com/_QITJ50wfKVM/Sl8cXYK5LzI/AAAAAAAABLk/uAKQFpmWi38/image_thumb2.png?imgmax=800&quot; width=&quot;244&quot; height=&quot;189&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Update or delete previously added notifications or add new ones. This image shows (after Name onChange event) changed error text, updated third notification to info style and a new warning. Compare it with previous picture.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_QITJ50wfKVM/Sl8cXymOq4I/AAAAAAAABLo/L-Ooyi1yiG0/s1600-h/image11.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh6.ggpht.com/_QITJ50wfKVM/Sl8cYFh6AuI/AAAAAAAABLs/_pHHpSYwZdk/image_thumb3.png?imgmax=800&quot; width=&quot;244&quot; height=&quot;204&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to use it?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Step 1: Insert this code into form OnLoad event.&lt;/p&gt;  &lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;   &lt;div style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;     &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;/*============== addNotification function =============&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;Adds a message on the top of the entity form using&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;the same visual style as Microsoft CRM.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;If function is called more than once,&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;the messages are added at the bottom of the list&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;If the message with same ID already exists,&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;then the message is updated and not added to a list.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;It also supports deleting of previously added notifications.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;Put this function in the OnLoad event,&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;so you can use it in all form and field events.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;Parameters:&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;message - message to be shown to the user&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;messageType - Type of the message: 1 - critical, 2 - info, 3 - warning&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;notificationId - ID of the notification (needed for updating purposes)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;    &lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;Created by:&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;Marco Amoedo (http://marcoamoedo.com) - the idea and initial function&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;Dejan Dular (http://a-crm.blogspot.com) - upgraded functionality (different icons, updating and deleting notifications)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;    &lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;=======================================================*/&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;addNotification = &lt;span style=&quot;color: #0000ff&quot;&gt;function&lt;/span&gt;(message, messageType, notificationId)&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;{&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;var&lt;/span&gt; notificationsArea = document.getElementById(&lt;span style=&quot;color: #006080&quot;&gt;&#39;Notifications&#39;&lt;/span&gt;);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (notificationsArea == &lt;span style=&quot;color: #0000ff&quot;&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    {&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;        &lt;span style=&quot;color: #008000&quot;&gt;//Don&#39;t display message when deleting a notification.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (messageType != 4)&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;            &lt;span style=&quot;color: #008000&quot;&gt;//Sorry. Notifications are not possible on this form.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;            &lt;span style=&quot;color: #008000&quot;&gt;//Display a message box instead of notification.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;            alert(message);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;var&lt;/span&gt; notificationDIV = document.getElementById(&lt;span style=&quot;color: #006080&quot;&gt;&#39;NotificationDiv_&#39;&lt;/span&gt; + notificationId);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #008000&quot;&gt;//Delete the notification&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (messageType == 4)&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    {&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (notificationDIV != &lt;span style=&quot;color: #0000ff&quot;&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;            &lt;span style=&quot;color: #008000&quot;&gt;//Remove the notification&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;            notificationsArea.removeChild(notificationDIV);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #008000&quot;&gt;//Get the notification image. The default is info image.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;var&lt;/span&gt; notificationImage;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;switch&lt;/span&gt; (messageType)&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    {&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;case&lt;/span&gt; 1:&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;            notificationImage = &lt;span style=&quot;color: #006080&quot;&gt;&#39;/_imgs/error/notif_icn_crit16.png&#39;&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;break&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;case&lt;/span&gt; 2:&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;            notificationImage = &lt;span style=&quot;color: #006080&quot;&gt;&#39;/_imgs/error/notif_icn_info16.png&#39;&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;break&lt;/span&gt;;    &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;case&lt;/span&gt; 3:&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;            notificationImage = &lt;span style=&quot;color: #006080&quot;&gt;&#39;/_imgs/error/notif_icn_warn16.png&#39;&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;break&lt;/span&gt;;    &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;default&lt;/span&gt;:&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;            notificationImage = &lt;span style=&quot;color: #006080&quot;&gt;&#39;/_imgs/error/notif_icn_info16.png&#39;&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #008000&quot;&gt;//Create notification&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;var&lt;/span&gt; notificationTable = &lt;span style=&quot;color: #006080&quot;&gt;&#39;&amp;lt;TABLE cellSpacing=&amp;quot;0&amp;quot; cellPadding=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;TBODY&amp;gt;&amp;lt;TR&amp;gt;&amp;lt;TD vAlign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;IMG class=&amp;quot;ms-crm-Lookup-Item&amp;quot; alt=&amp;quot;&amp;quot; src=&amp;quot;&#39;&lt;/span&gt; + notificationImage + &lt;span style=&quot;color: #006080&quot;&gt;&#39;&amp;quot; /&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;&amp;lt;SPAN&amp;gt;&#39;&lt;/span&gt; + message +&lt;span style=&quot;color: #006080&quot;&gt;&#39;&amp;lt;/SPAN&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&amp;lt;/TBODY&amp;gt;&amp;lt;/TABLE&amp;gt;&#39;&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #008000&quot;&gt;//Check if the notification with same ID already exists&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (notificationDIV == &lt;span style=&quot;color: #0000ff&quot;&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    {    &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;        &lt;span style=&quot;color: #008000&quot;&gt;//Create a new notification&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;var&lt;/span&gt; notificationHTML = &lt;span style=&quot;color: #006080&quot;&gt;&#39;&amp;lt;DIV class=&amp;quot;Notification&amp;quot; ID=&amp;quot;NotificationDiv_&#39;&lt;/span&gt; + notificationId + &lt;span style=&quot;color: #006080&quot;&gt;&#39;&amp;quot;&amp;gt;&#39;&lt;/span&gt; + notificationTable + &lt;span style=&quot;color: #006080&quot;&gt;&#39;&amp;lt;/DIV&amp;gt;&#39;&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;        notificationsArea.innerHTML += notificationHTML;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;        notificationsArea.style.display = &lt;span style=&quot;color: #006080&quot;&gt;&#39;block&#39;&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;else&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    {&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;        &lt;span style=&quot;color: #008000&quot;&gt;//Update the notification.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;        notificationDIV.innerHTML = notificationTable;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #008000&quot;&gt;/*============= END addNotification function ===========*/&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Step 2: Run the following function when there is a need for a notification.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippetWrapper&quot;&gt;&lt;br /&gt;  &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;addNotification(&lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; message, &lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; messageType, &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; notificationId)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Parameters:&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;u&gt;message&lt;/u&gt; – Notification message displayed&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;u&gt;messageType&lt;/u&gt; – Type of the notification (the icon) (1 – critical, 2 – info, 3 – warning, 4 – delete the notification)&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;u&gt;notificationId&lt;/u&gt; – Any string that identifies specific notification. If a function is called later with existing notificationId, the notification will be updated. Otherwise a new notification is added at the bottom of the list. If you want to delete a specific notification, just set messageType = 4 and use correct notificationId.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Thanks again to Marco Amoedo. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Originally published by &lt;a href=&quot;http://a-crm.blogspot.com&quot;&gt;Dejan Dular&lt;/a&gt;&lt;/p&gt;  </description><link>http://a-crm.blogspot.com/2009/07/show-custom-notifications-on-microsoft.html</link><author>noreply@blogger.com (Dejan Dular)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_QITJ50wfKVM/Sl8cWWzJ1SI/AAAAAAAABLc/GPmVlAPvpNE/s72-c/image_thumb.png?imgmax=800" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-3538858381706224434</guid><pubDate>Fri, 27 Mar 2009 07:46:00 +0000</pubDate><atom:updated>2009-07-15T14:55:54.799+01:00</atom:updated><title>Reindex whole database</title><description>EXEC sp_MSforeachtable @command1=&quot;print &#39;?&#39; DBCC DBREINDEX (&#39;?&#39;, &#39; &#39;, 80)&quot;&lt;br /&gt;GO</description><link>http://a-crm.blogspot.com/2009/03/reindex-whole-database.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-3513863759115374163</guid><pubDate>Wed, 02 Jul 2008 08:02:00 +0000</pubDate><atom:updated>2008-07-02T09:09:13.147+01:00</atom:updated><title>Button that starts a workflow</title><description>My client wanted to have a button that starts a specific workflow on the form. So after analyzing some javascript I ended with this code:&lt;br /&gt;&lt;br /&gt;var a = new Array(crmFormSubmit.crmFormSubmitId.value);&lt;br /&gt;var sIds = crmFormSubmit.crmFormSubmitId.value+&quot;;&quot;;&lt;br /&gt;var sEntityTypeCode = &quot;10004&quot;; //Replace this with your entity type code&lt;br /&gt;var sWorkflowId = &quot;{BE7E47C0-2452-4F44-8CCA-425B83A7A8FB}&quot;; //Replace this with your actual workflow ID&lt;br /&gt;var iWindowPosX = 500; //Modal dialog position X&lt;br /&gt;var iWindowPosY = 200; //Modal dialog position Y&lt;br /&gt;&lt;br /&gt;var oResult = openStdDlg(prependOrgName(&quot;/_grid/cmds/dlg_runworkflow.aspx&quot;)+&quot;?iObjType=&quot; + CrmEncodeDecode.CrmUrlEncode(sEntityTypeCode) + &quot;&amp;iTotal=&quot; +&lt;br /&gt;CrmEncodeDecode.CrmUrlEncode(a.length) + &quot;&amp;wfId=&quot; + CrmEncodeDecode.CrmUrlEncode(sWorkflowId)+ &quot;&amp;sIds=&quot; + CrmEncodeDecode.CrmUrlEncode(sIds) , a, iWindowPosX, iWindowPosY);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Of course this is not supported by Microsoft. You use it at your own risk.</description><link>http://a-crm.blogspot.com/2008/07/button-that-starts-workflow.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-670608881661226119</guid><pubDate>Mon, 09 Jun 2008 11:50:00 +0000</pubDate><atom:updated>2008-06-09T13:09:43.411+01:00</atom:updated><title>Generic SQL error</title><description>WOW! I&#39;m sooooo happy when I receive such deterministic errors.&lt;br /&gt;&lt;br /&gt;After saving an account, this message popped up. And you guessed it - it appeared just SOMETIMES!&lt;br /&gt;&lt;br /&gt;After a little of SQL profiling i found the reason:&lt;br /&gt;I extended the account&#39;s address1_line1 field from 50 to 100 characters. After saving the account, CRM automatically creates/updates also the customeraddress entity.&lt;br /&gt;&lt;br /&gt;Solution:&lt;br /&gt;Extend the customeraddress entity, extend attribute line1, match the length to length of the account address line.</description><link>http://a-crm.blogspot.com/2008/06/generic-sql-error.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-195906188820857267</guid><pubDate>Fri, 30 May 2008 06:17:00 +0000</pubDate><atom:updated>2008-05-30T07:57:23.170+01:00</atom:updated><title>Cool SQL query that deletes the duplicates</title><description>Found this on &lt;a href=&quot;http://www.sqlservercentral.com/&quot;&gt;Sql Server Central&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 153, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;CREATE TABLE #new(ID INT NULL, KeyValue VARCHAR(2))&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;INSERT INTO #new(ID, KeyValue) VALUES (1,&#39;aa&#39;)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;INSERT INTO #new(ID, KeyValue) VALUES (2,&#39;bb&#39;)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;INSERT INTO #new(ID, KeyValue) VALUES (1,&#39;aa&#39;)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;INSERT INTO #new(ID, KeyValue) VALUES (1,&#39;aa&#39;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;SELECT * FROM #new;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now let&#39;s delete the duplicates. The semicolon at the beginning is recommended if you are not using it after every SQL sentence. This tells the parser to begin with new statement. Without it you will probably get a syntax error.&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;;WITH Numbered AS (SELECT RowNo=ROW_NUMBER() OVER (PARTITION BY ID ORDER BY ID), ID, KeyValue FROM #new) DELETE FROM Numbered where RowNo&gt;1;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;SELECT * FROM #new;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cleanup...&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-size:85%;&quot; &gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;DROP TABLE #new;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;</description><link>http://a-crm.blogspot.com/2008/05/cool-sql-query-that-deletes-duplicates.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-6416601578059493168</guid><pubDate>Mon, 03 Mar 2008 09:12:00 +0000</pubDate><atom:updated>2008-03-03T10:17:09.932+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">snippet</category><category domain="http://www.blogger.com/atom/ns#">workflow</category><title>Snippet for CRM workflow activity parameter</title><description>If you are writing custom workflow activities for workflows in CRM 4.0 you will find this snippet handy.&lt;br /&gt;&lt;br /&gt;Copy the code below into a new file and name it CRMParameter.snippet. Save the file into Visual Studio 2005\Code Snippets\Visual C#\My Code Snippets folder. It works in VS2008 too.&lt;br /&gt;The shortcut for the snippet is cwp.&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;csharpcode&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;?&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;xml&lt;/span&gt; &lt;span class=&quot;attr&quot;&gt;version&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;=&quot;1.0&quot;&lt;/span&gt; &lt;span class=&quot;attr&quot;&gt;encoding&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;=&quot;utf-8&quot;&lt;/span&gt;?&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;CodeSnippets&lt;/span&gt; &lt;span class=&quot;attr&quot;&gt;xmlns&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;=&quot;http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet&quot;&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;CodeSnippet&lt;/span&gt; &lt;span class=&quot;attr&quot;&gt;Format&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;=&quot;1.0.0&quot;&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Header&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Title&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;CRM workflow property snippet&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Title&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Shortcut&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;cwp&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Shortcut&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Description&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;Code snippet for crm property &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Description&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Author&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;Dejan Dular&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Author&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;SnippetTypes&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;SnippetType&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;Expansion&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;SnippetType&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;SnippetTypes&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Header&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Snippet&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Declarations&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Literal&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ID&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;PropertyInputOutputType&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ID&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ToolTip&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;Input/output property&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ToolTip&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Default&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;CrmInput&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Default&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Literal&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Literal&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ID&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;PropertyDisplayName&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ID&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ToolTip&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;Property display name&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ToolTip&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Default&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;Display Name&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Default&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Literal&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Literal&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ID&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;PropertyName&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ID&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ToolTip&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;Property Name&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ToolTip&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Default&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;name&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Default&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Literal&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Literal&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ID&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;Type&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ID&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ToolTip&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;Property Type&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ToolTip&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Default&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;string&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Default&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Literal&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Literal&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ID&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;Class&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ID&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ToolTip&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;Class&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;ToolTip&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Default&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;ClassName&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Default&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Literal&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Declarations&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Code&lt;/span&gt; &lt;span class=&quot;attr&quot;&gt;Language&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;=&quot;csharp&quot;&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;!&lt;/span&gt;[CDATA[#region $PropertyDisplayName$&lt;br /&gt;[$PropertyInputOutputType$(&quot;$PropertyDisplayName$&quot;)]&lt;br /&gt;public $Type$ $PropertyName$&lt;br /&gt;{&lt;br /&gt;   get { return ($Type$)base.GetValue($PropertyName$Property); }&lt;br /&gt;   set { base.SetValue($PropertyName$Property, value); }&lt;br /&gt;}&lt;br /&gt;public static DependencyProperty $PropertyName$Property = DependencyProperty.Register(&quot;$PropertyName$&quot;, typeof($Type$), typeof($Class$));&lt;br /&gt;#endregion&lt;br /&gt;$end$]]&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Code&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;Snippet&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;CodeSnippet&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;CodeSnippets&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type=&quot;text/css&quot;&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt; font-size: small;&lt;br /&gt; color: black;&lt;br /&gt; font-family: consolas, &quot;Courier New&quot;, courier, monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /**/&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;/style&gt;</description><link>http://a-crm.blogspot.com/2008/03/snippet-for-crm-workflow-activity.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-2541670442878924129</guid><pubDate>Thu, 28 Feb 2008 08:51:00 +0000</pubDate><atom:updated>2008-03-28T20:18:56.120+01:00</atom:updated><title>Error at decimal field display format (4.0)</title><description>When upgrading a German version of CRM 3.0 to version 4.0, a strange thing happened. All decimal, float or money fields behaved very strange.&lt;br /&gt;&lt;br /&gt;Example: User enters a value 2. After clicking save button, the number changes to 200.00 and then immediately to 20.000.00.&lt;br /&gt;&lt;br /&gt;Then I noticed that a decimal separator and a thousands separator were the same. Therefore I checked organization settings where everything looked fine.&lt;br /&gt;&lt;br /&gt;The problem lied in user settings where both separators were set to dot (.)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOLUTION:&lt;/strong&gt;&lt;br /&gt;Change must be made for each user. Set the decimal separator to comma (,).&lt;br /&gt;Update the CRM database to affect all users: &lt;span style=&quot;font-family:courier new;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;UPDATE UserSettingsBase SET DecimalSymbol = &lt;span style=&quot;font-family:courier new;&quot;&gt;&#39;,&#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;</description><link>http://a-crm.blogspot.com/2008/02/error-at-decimal-field-display-format.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-1949141808173926457</guid><pubDate>Wed, 02 Jan 2008 11:47:00 +0000</pubDate><atom:updated>2008-01-03T11:44:36.147+01:00</atom:updated><title>.NET Compiler bug? (Update)</title><description>I have a typed DataTable (called FactTable)  that gets data from a table in SQL server where a Date field can be null.&lt;br /&gt;&lt;br /&gt;So I have created a System.Nullable&lt;datetime&gt; variable in my code:&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;&lt;span style=&quot;color: rgb(102, 204, 204);&quot;&gt;Datetime?&lt;/span&gt; emailDate;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And a &lt;span style=&quot;font-weight: bold;&quot;&gt;typed&lt;/span&gt; DataRow from my DataTable:&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;&lt;span style=&quot;color: rgb(102, 204, 204);&quot;&gt;MyDataSet.FactRow&lt;/span&gt; factRow = factTable.Rows[0];&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Why does this NOT WORK:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;emailDate = factRow.IsEmailDateNull() ? &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 255);font-family:courier new;&quot; &gt;null&lt;/span&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt; : factRow.EmailDate;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;But this works:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;&lt;span style=&quot;color: rgb(51, 102, 255);&quot;&gt;if&lt;/span&gt; (factRow.IsEmailDateNull())&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;    emailDate = &lt;span style=&quot;color: rgb(51, 102, 255);&quot;&gt;null&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(51, 102, 255);font-family:courier new;&quot; &gt;else&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;    emailDate = factRow.EmailDate;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Compiler error is: &lt;span style=&quot;font-weight: bold;&quot;&gt;Type of conditional expression cannot be determined because there is no implicit conversion between &#39;&lt;null&gt;&#39; and &#39;System.DateTime&#39;&lt;br /&gt;&lt;br /&gt;&lt;/null&gt;&lt;/span&gt;Remember: My variable is nullable!!!&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Update:&lt;/span&gt;&lt;br /&gt;David defined this problem as a feature. But aren&#39;t both examples the same? Isn&#39;t this just a compile thing to convert from the first example to the second one?&lt;br /&gt;I think it has to do something with nullable types, because with string or byte[] it works like a charm:&lt;br /&gt;&lt;/datetime&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;&lt;span style=&quot;color: rgb(51, 102, 255);&quot;&gt;string&lt;/span&gt; title = factRow.IsTitleNull() ? &lt;span style=&quot;color: rgb(51, 102, 255);&quot;&gt;null&lt;/span&gt; : factRow.Title;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;&lt;span style=&quot;color: rgb(51, 102, 255);&quot;&gt;byte[]&lt;/span&gt; picture = factRow.IsPictureNull() ? &lt;span style=&quot;color: rgb(51, 102, 255);&quot;&gt;null&lt;/span&gt; : factRow.Picutre;&lt;/span&gt;&lt;/span&gt;</description><link>http://a-crm.blogspot.com/2008/01/net-compiler-bug.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-6273002367316562723</guid><pubDate>Fri, 14 Dec 2007 11:39:00 +0000</pubDate><atom:updated>2009-10-06T08:39:09.762+01:00</atom:updated><title>Integration of Google maps / Live maps into CRM 3.0, 4.0</title><description>&lt;p&gt;I usually don&#39;t write about third party solutions, but this one is getting its place in my blog.&lt;/p&gt;  &lt;p&gt;A fellow CRM blogger Wolter Kreun from the Netherlands is developing a &lt;strong&gt;freeware&lt;/strong&gt; plugin (Can it be true? A free and very useful plugin for CRM!!!) that fully integrates Google Maps into Microsoft CRM. Soon it will support MS Live maps.&lt;/p&gt;  &lt;p&gt;Haven&#39;t tried it, but as far as I have seen on the &lt;a href=&quot;http://mscrmgooglemaps.blogspot.com/2007/12/movies.html&quot;&gt;videos&lt;/a&gt; it ROCKS!&lt;/p&gt;&lt;p&gt;EDIT (05. oct. 2009): I just have been informed that the link provided below does not work anymore. But you can use similar integration with  virtual earth at: &lt;a href=&quot;http://www.crmwatcher.com/2006/11/virtual-earth-3d-maps-integration-in.html&quot;&gt;http://www.crmwatcher.com/2006/11/virtual-earth-3d-maps-integration-in.html&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style=&quot;color: rgb(204, 204, 204);&quot;&gt;So chop chop guys and click on this link: &lt;a href=&quot;http://mscrmgooglemaps.blogspot.com/&quot;&gt;http://mscrmgooglemaps.blogspot.com/&lt;/a&gt;&lt;/p&gt;</description><link>http://a-crm.blogspot.com/2007/12/integration-of-google-maps-live-maps.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-4667179959738944453</guid><pubDate>Wed, 28 Nov 2007 05:53:00 +0000</pubDate><atom:updated>2007-11-28T06:57:39.139+01:00</atom:updated><title>Computer playing random music</title><description>Another post that has absolutely nothing to do with CRM. I just gotta share this.&lt;br /&gt;&lt;br /&gt;On channel 9 I found this link to the Microsoft&#39;s KB article:&lt;br /&gt;&lt;a href=&quot;http://support.microsoft.com/default.aspx?scid=kb;en-us;261186&quot;&gt;http://support.microsoft.com/default.aspx?scid=kb;en-us;261186&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I&#39;m really thinking of installing Windows 95 and crashing the CUP fan. :)</description><link>http://a-crm.blogspot.com/2007/11/computer-playing-random-music.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-8622061830209389983</guid><pubDate>Thu, 22 Nov 2007 06:51:00 +0000</pubDate><atom:updated>2007-11-22T07:51:28.265+01:00</atom:updated><title>BigInteger</title><description>&lt;p&gt;I just have to share this. There is a new type of number in .NET Framework 3.5 called BigInteger [System.Numeric.BigInteger]. What is so cool here? Now you don&#39;t have to write special code to work with really really really big numbers. This type is infinite, as big as you want (until you run out of memory). &lt;/p&gt;  &lt;p&gt;Read more &lt;a href=&quot;http://blogs.msdn.com/bclteam/archive/2007/01/16/introducing-system-numeric-biginteger-inbar-gazit.aspx&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;  </description><link>http://a-crm.blogspot.com/2007/11/biginteger.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-780680930800461091.post-5956609259746116760</guid><pubDate>Thu, 15 Nov 2007 09:17:00 +0000</pubDate><atom:updated>2007-11-15T10:17:05.534+01:00</atom:updated><title>Workflow Changes in CRM 4.0</title><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Today I&#39;m going to compare CRM 3.0 and CRM 4.0 workflows:&lt;/p&gt;  &lt;p&gt;The web interface is much better designed than the previous one. As I wrote in my previous post, you have more space for description and you can add notes and attach files to the workflows. Moreover you can add a comment to every step of the workflow. &lt;/p&gt;  &lt;p&gt;I will say it again. Major improvement was on the workflows in this version. Good job CRM team.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Major change has been made is at the basic workflow properties. No more sales process. Now workflow equals sales process. You can select multiple triggering events for a single workflow. These events are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Create&lt;/li&gt;    &lt;li&gt;Status change&lt;/li&gt;    &lt;li&gt;Assign&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Attribute change&lt;/strong&gt; (update)&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Delete&lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Also you can set if this workflow can be run on demand (manually) and / or as a child workflow. For the update, you must choose which attributes trigger the workflow.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh4.google.com/dejan.dular/RzwOXHzXuOI/AAAAAAAAAfg/0BDvvnjrfs0/image%5B26%5D&quot;&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px&quot; height=&quot;165&quot; alt=&quot;image&quot; src=&quot;http://lh4.google.com/dejan.dular/RzwOYHzXuPI/AAAAAAAAAfo/3OeTqq_UqNE/image_thumb%5B8%5D&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Actions are now called &lt;strong&gt;steps&lt;/strong&gt;. So let&#39;s take a look at the actions ... uh err ... steps.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;strike&gt;&lt;/strike&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;&lt;strike&gt;Create Activity&lt;/strike&gt;&lt;/strong&gt; =&amp;gt; &lt;strong&gt;Create Record - &lt;/strong&gt;Not only activities. You can create any entity you want. Set their properties in a form.      &lt;br /&gt;&lt;a href=&quot;http://lh4.google.com/dejan.dular/RzwOZHzXuQI/AAAAAAAAAfw/yudNhtrL5Yg/image%5B8%5D&quot;&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px&quot; height=&quot;244&quot; alt=&quot;image&quot; src=&quot;http://lh3.google.com/dejan.dular/RzwOZ3zXuRI/AAAAAAAAAf4/KA4YXCqVYX8/image_thumb%5B2%5D&quot; width=&quot;171&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&amp;#160; &lt;a href=&quot;http://lh4.google.com/dejan.dular/RzwObHzXuSI/AAAAAAAAAgA/EFf7TCSfHYM/image%5B2%5D&quot;&gt;&lt;img style=&quot;border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;153&quot; alt=&quot;image&quot; src=&quot;http://lh3.google.com/dejan.dular/RzwOb3zXuTI/AAAAAAAAAgI/HGRgzDTJG28/image_thumb&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Send E-mail &lt;/strong&gt;- This action stays. Again more flexible, again a form for new email opens. Templates stay - of course.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;&lt;strike&gt;Create Note&lt;/strike&gt; &lt;/strong&gt;=&amp;gt; &lt;strong&gt;Create Record&lt;/strong&gt; - Note is actually an entity.      &lt;br /&gt;&lt;a href=&quot;http://lh3.google.com/dejan.dular/RzwOc3zXuUI/AAAAAAAAAgQ/8nVmWfwOCDA/image%5B11%5D&quot;&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px&quot; height=&quot;225&quot; alt=&quot;image&quot; src=&quot;http://lh6.google.com/dejan.dular/RzwOdnzXuVI/AAAAAAAAAgY/ePitjwFBAGc/image_thumb%5B3%5D&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Update &lt;strike&gt;entity&lt;/strike&gt; record&lt;/strong&gt; - Of course, this action stays. In version 3.0 you could update only one attribute, in version 4.0 a form opens and you update any attribute you want.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Change status&lt;/strong&gt; - Not only you can change status to a fixed value, now you can set it to a status of a related entity and even to a status of a previously created task.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Assign &lt;strike&gt;entity&lt;/strike&gt; record &lt;/strong&gt;- Again a major improvement here. Not just to the Manager, User or Queue. You can use any dynamic value of related entities. &lt;strong&gt;And there&#39;s more&lt;/strong&gt;: You can assign related records as well. This means that you can reassign previously created task to a different user or a queue.&lt;a href=&quot;http://lh5.google.com/dejan.dular/RzwOeXzXuWI/AAAAAAAAAgg/RCHs4SPyQ_g/image%5B14%5D&quot;&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px&quot; height=&quot;65&quot; alt=&quot;image&quot; src=&quot;http://lh3.google.com/dejan.dular/RzwOe3zXuXI/AAAAAAAAAgo/Zjx7BcRpGiI/image_thumb%5B4%5D&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;&lt;strike&gt;Post URL&lt;/strike&gt;&lt;/strong&gt; - This action was deprecated in version 3.0. There are several reasons I won&#39;t talk about them here. No more Post URL for you guys.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;&lt;strike&gt;Run Subprocess&lt;/strike&gt;&lt;/strong&gt; =&amp;gt; &lt;strong&gt;Start Child Workflow&lt;/strong&gt; - Still here of course, but with improvements. You can start a workflow on any related entities.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Stop Workflow&lt;/strong&gt; - Previously you could define what to do with sub-workflows, but in this version you can just stop it and set the status of the workflow to Completed or Canceled. This is kinda logical, since you are starting subworkflows asynchronously and for other entities.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;&lt;strike&gt;Call assembly&lt;/strike&gt;&lt;/strong&gt; - What happened to this guy? It is not in the list anymore... Can anyone help me with this? Can you call an external assembly from the workflow?&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Some changes have been made on conditions as well:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Check condition&lt;/strong&gt; - This has been divided into three sub-elements: Check condition (if), Conditional branch (else if) and Default action (else). You can add as many else-ifs as you want. And of course you can check the values from related entities as well.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Wait for timer&lt;/strong&gt; - This has been mover to general wait conditions group.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Wait condition &lt;/strong&gt;- As before you can wait for changes in an entity or created activities. Now you can also check related entities. What is more. You can create more wait conditions, that are similar to the if - else if conditions. This is condition is called &lt;strong&gt;Parallel Wait Branch&lt;/strong&gt;. Now you can wait for different conditions to appear and then execute the first one that is met. The others are ignored.       &lt;br /&gt;&lt;strong&gt;Timers&lt;/strong&gt; - Create a wait condition and select Workflow - Timeout. You can use dynamic values as well.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Stages&lt;/strong&gt; - There is no more difference between Sales process and Workflow rules. You can insert stages into normal workflows as well, although they are not displayed in the entity&#39;s status bar.&lt;/p&gt;  &lt;p&gt;In Sales processes you can actually look at the workflows that are running on a specific entity and see where they are or what they are waiting for. Notice the green circle.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href=&quot;http://lh4.google.com/dejan.dular/RzwOgHzXuYI/AAAAAAAAAgw/VEdiIyUXJt8/image%5B17%5D&quot;&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px&quot; height=&quot;149&quot; alt=&quot;image&quot; src=&quot;http://lh3.google.com/dejan.dular/RzwOg3zXuZI/AAAAAAAAAg4/qFn-yPNukfY/image_thumb%5B5%5D&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://lh3.google.com/dejan.dular/RzwOi3zXuaI/AAAAAAAAAhA/rmAmjO_14x4/image%5B20%5D&quot;&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px&quot; height=&quot;188&quot; alt=&quot;image&quot; src=&quot;http://lh3.google.com/dejan.dular/RzwOj3zXubI/AAAAAAAAAhI/KbHKW-6i4_4/image_thumb%5B6%5D&quot; width=&quot;244&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The same workflow status is available of you open a workflow from the list of workflows in the Settings area and open the workflow list. Every workflow has a list of all instances that were started. Just open an instance and see the status.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This post has been written solely on my own discovery of CRM 4.0 CTP3. I&#39;m just writing what I discovered. Maybe I missed something. Maybe it is important. Please correct me if I&#39;m wrong.&lt;/p&gt;  </description><link>http://a-crm.blogspot.com/2007/11/workflow-changes-in-crm-40.html</link><author>noreply@blogger.com (Dejan Dular)</author><thr:total>2</thr:total></item></channel></rss>