<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
   <title>stunnware's CRM corner</title>
   <subtitle>Samples and tools for CRM developers</subtitle>
   <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom.aspx" />
   <link rel="alternate" href="http://www.stunnware.com/crm2/default.aspx" />
   <updated>2009-01-02T23:00:00+01:00</updated>
   <author>
      <name>Michael Höhne</name>
   </author>
   <id>urn:uuid:D7C4413D-BD66-4d2e-9E11-587870EFAFE8</id>
   <entry>
      <title>Some statistics (2008)</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=Stat3" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/Stat3" />
      <id>tag:stunnware.com,2009-01-02:Stat3</id>
      <published>2009-01-02T23:00:00+01:00</published>
      <updated>2009-01-02T23:00:00+01:00</updated>
      <content type="html">
      For all of you who are interested in reading statistics, I'm providing the third detailed overview about the Stunnware site.
      &lt;br/&gt;&lt;br/&gt;
      &lt;b&gt;Users from 93 countries&lt;/b&gt;
      &lt;br/&gt; 
It's hard to figure out where a user is located, as a .com domain doesn't necessarily mean that a company resides in the US. Maybe the best example is my own web site, which is a .com domain but hosted in Germany. So I looked at the requests coming from the various Google searches. Many users in Germany use google.de instead of google.com, so it's a good clue that a referrer from google.de comes from a German.
      &lt;br/&gt;&lt;br/&gt;
According to that people from the following countries found my site through a Google search: Algeria, Argentina, Armenia, Australia, Austria, Bahrain, Bangladesh, Belarus, Belgium, Bosnia-Herzegovina, Brazil, Bulgaria, Canada, Chile, China, Colombia, Costa Rica, Croatia, Czech Republic, Denmark, Dominican Republic, Ecuador, Egypt, El Salvador, Estonia, Ethiopia, Finland, France, Georgia, Germany, Ghana, Greece, Guatemala, Honduras, Hong Kong, Hungary, Iceland, India, Indonesia, Ireland, Israel, Italy, Jamaica, Japan, Jordan, Kenya, Kuwait, Latvia, Lithuania, Luxembourg, Malaysia, Malta, Mauritius, Mexico, Micronesia, Moldavia, Nepal, Netherlands, New Zealand, Nicaragua, Nigeria, Norway, Oman, Pakistan, Peru, Philippines, Poland, Portugal, Puerto Rico, Qatar, Romania, Russia, Saudi Arabia, Singapore, Slovak Republic, Slovenia, South Africa, South Korea, Spain, Sri Lanka,  
Sweden, Switzerland, Taiwan, Thailand, Trinidad and Tobago, Turkey, Ukraine, United Arab Emirates, United Kingdom, United States, Uruguay, Venezuela, Vietnam.     
    </content>
   </entry>
   <entry>
      <title>Third MVP Award!</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=MVP3" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/MVP3" />
      <id>tag:stunnware.com,2009-01-02:MVP3</id>
      <published>2009-01-02T22:00:00+01:00</published>
      <updated>2009-01-02T22:00:00+01:00</updated>
      <content type="html">
&lt;p&gt;I'm very happy that I was given the Microsoft MVP award for a third time:&lt;/p&gt;
   &lt;p&gt;&lt;em&gt;Dear Michael Hoehne,&lt;br&gt;&lt;br&gt;Congratulations! We are pleased to present 
   you with the 2009 Microsoft® MVP Award! This award is given to exceptional 
   technical community leaders who actively share their high quality, real world 
   expertise with others.&lt;br&gt;The Microsoft MVP Award provides us the unique 
   opportunity to celebrate and honor your significant contributions and say 
   "Thank you for your technical leadership."&lt;/em&gt;&lt;/p&gt;
   &lt;p&gt;I received the &lt;a href="/crm2/topic.aspx?id=mvp"&gt;first MVP award&lt;/a&gt; in January 
	2007 and the &lt;a href="/crm2/topic.aspx?id=mvp2"&gt;second&lt;/a&gt; in January 2008. Being awarded 
   the third time in a row is a great honor and I try my best to continue my 
   community work, though Stunnware (the company) needs more and more time. Want 
   to know who the other CRM MVPs are? You can see them
   &lt;a href="https://mvp.support.microsoft.com/communities/mvp.aspx?product=1&amp;competency=Dynamics+CRM&amp;page=1"&gt;
   here&lt;/a&gt;. &lt;/p&gt;
    </content>
   </entry>
   <entry>
      <title>The CRM 4.0 Keep Alive Service</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=KeepAliveService" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/KeepAliveService" />
      <id>tag:stunnware.com,2008-12-12:KeepAliveService</id>
      <published>2008-12-12T15:00:00+01:00</published>
      <updated>2008-12-12T15:00:00+01:00</updated>
      <content type="html">
A while ago I posted a sample on how to develop a Windows Service targeting Microsoft Dynamics CRM. I used my own sample to create a service that is doing something meaningful. You probably know about Joris Kalz' Caching Tool for Microsoft Dynamics CRM 3.0 and I asked him if he's planning to upgrade it to a version targeting CRM 4.0. As there were no plans, I decided to create it myself and share it with you. It's really simple and comes with the entire code, so you can change it to your needs.
&lt;br/&gt;&lt;br/&gt;
If you don't know what I'm talking about, then here's the short explanation: an ASP.NET application isn't loaded before accessed for the first time. And an ASP.NET application is unloaded if the IIS application pool is recycled. As CRM is an ASP.NET application, you should have noticed that there is a delay when opening the CRM web client for the first time, because usually the application pool was recycled and CRM isn't initialized. The time needed for the first initialization is very different from system to system and ranges between a few seconds up to 30 seconds and sometimes even more. This problem isn't in any way specific to CRM. 
&lt;br/&gt;&lt;br/&gt;
&lt;b&gt;What has to be initialized?&lt;/b&gt;
&lt;br/&gt;
When making the first request to CRM (or any other ASP.NET page), then IIS loads the requested page and parses it. If ASP.NET code is associated with the page, then it is compiled and executed. If one or more assemblies are bound to the page, then they have to be loaded. Some assemblies have references to other assemblies and they are loaded as well. Web service bindings may be initialized and finally the code is executed, which often is an initial caching of metadata and/or reading of configuration values. This takes some seconds and it's extremely annoying for a user to wait until it's done. The goal of Joris' and my implementation simply is a background service polling CRM - or other web applications - continuously. If the IIS application pool is recycled or the ASP.NET application has to be initialized again, then the service will do it and the user doesn't have to wait when starting the application.
&lt;br/&gt;&lt;br/&gt;
CRM uses the SQL Server as its database backend and SQL Server uses caching as well. The more traffic you have on a SQL database, the more gets cached and the faster the system becomes. At least in theory. So accessing all kind of CRM entities builds up the SQL cache as well. All of it is done by the Keep Alive Service.
    </content>
   </entry>
   <entry>
      <title>Financial Crisis</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=crisis1" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/crisis1" />
      <id>tag:stunnware.com,2008-11-23:crisis1</id>
      <published>2008-11-23T23:00:00+01:00</published>
      <updated>2008-11-23T23:00:00+01:00</updated>
      <content type="html">
I had a hard time deciding whether or not to put this on my blog. It's not related to Stunnware and it's not related to CRM. It's all about our economy. I don't have to tell you that the future doesn't look bright and theories range from some years of recession up to a complete fault of the monetary system. I'm not an expert in this and I expect most of you aren't either. 
&lt;br/&gt;&lt;br/&gt;
I finally decided to write about my personal feelings, my fears, hopes and whatever else it might be. Before I do so, I really want you to look at the site of &lt;a href="http://www.chrismartenson.com"&gt;Chris Martenson&lt;/a&gt; and take the Crash Course. It takes some time to watch all of the videos and many of you may think that I have stolen your time after going through it. However, if there's only one getting a better understanding of the current financial situation on earth, then it was worth writing this, even if 90% of you call me an idiot afterwards. This is my personal risk and actually the reason why it was so difficult for me writing this. On the other hand, I don't want to say it anonymously on some blog or discussion forum, because anonymity and the fear of being dismissed is the main reason why it's not being discussed more widely.
&lt;br/&gt;&lt;br/&gt;
The Crash Course is a great way to learn about economics, energy and environment. If you look at each of these topics separately, then you probably come to the same conclusion that I had: you knew most of the facts before, though I guarantee that you will learn lots of new stuff. However, you may have a totally different view on these topics after you have seen how they play together and what the consequences are. Again, I'm not an expert and hope that all goes well in the future, but I have doubts. The videos of the Crash Course are more than 3 hours in total, so it's nothing that can be done while working or in a short break. But I really recommend doing it. Each of you will have a different opinion at the end and my excuses go to all that feel it was a waste of time.
    </content>
   </entry>
   <entry>
      <title>Meet me at Convergence EMEA 2008 in Copenhagen</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=Convergence2008" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/Convergence2008" />
      <id>tag:stunnware.com,2008-10-30:Convergence2008</id>
      <published>2008-10-30T11:00:00+01:00</published>
      <updated>2008-10-30T11:00:00+01:00</updated>
      <content type="html">
It's Convergence time again and I hope to see a lot of you in Copenhagen again - yes, it's the same location as last year. Besides the usual duty at the CRM Kiosk, I'm also doing a session with Marco Amoedo and Ronald Lemmen:
&lt;br/&gt;&lt;br/&gt;
As part of the Convergence Conference in Copenhagen (www.microsoft.com/convergence) next month we are going to set up a “Ask the CRM Experts” panel to field product-related questions (the session number is IDCRM05). We’ll have a panel of esteemed Microsoft Dynamics CRM MVPs available to answer questions live and in person. 
&lt;br/&gt;&lt;br/&gt;
&lt;i&gt;
Expect a lively audience and a jam-packed 60 minutes of useful information and fun. If you’ll be attending Convergence this year and have a product-related question, we encourage to add your questions (technical/functional or business-related) to this forum post in advance, attend this session, and we’ll do our best to answer your questions on-site at the event (or point you to the answer online if it has already been answered within another area of our forums).
&lt;br/&gt;&lt;br/&gt;
Don’t miss out on this opportunity. Post your questions and we’ll see you in Copenhagen!
&lt;/i&gt;&lt;br/&gt;&lt;br/&gt;
Oops, what's that? Post your questions? Yep, there's a new thread in the CRM Forum where you can post questions that we try to answer at Convergence. It's a 1-hour session, so we cannot get into details or try finding a solution that's almost impossible to do, so here's my own expectation:
&lt;ul&gt;
&lt;li&gt;You are thinking about Microsoft Dynamics CRM but haven't deployed it yet. You may have a test installation but are unsure how to proceed. Come to our session and learn from others that already have deployed CRM. Ask your questions, share your concerns and get in touch with other people having or having had the same situation.&lt;/li&gt;
&lt;li&gt;You are partially using Microsoft Dynamics CRM and want to use more features of the product, but you are unsure if it's going to work. For instance, you may use the sales module and are now looking at the service module. Is that module capable to replace your existing bug tracking software? As always, the answer will be "it depends". But hey, what if there are two other people sitting in the room (not us :-) using it? Maybe they want to share some of their experiences and you have someone to talk to.&lt;/li&gt;
&lt;li&gt;You are an experienced Microsoft Dynamics CRM user and are willing to share some best practices. Note that this is an interactive session, meaning that you, the audience, not only listens to what we say. Instead you are also encouraged to talk about your experiences. Ideally we (the MVPs) are just sitting in the room and listen to what you say. That would be awesome and perfectly match the community idea of Convergence.&lt;/li&gt;
&lt;li&gt;You always wanted to know how these MVPs look like and meet us in person. That's fair and you're welcome to join as well.&lt;/li&gt;
&lt;li&gt;You have technical questions and never got an answer in the forums or newsgroup? To be honest, don't expect an answer in this session then, because if a question is difficult enough to not get answered in the community, then it probably won't get answered in a 1-hour session. We'll try our best to help though.&lt;/li&gt;
&lt;/ul&gt;
Here is my personal schedule for Convergence. Feel free to step in and say hello, ask questions or whatever else you want to do:
&lt;br/&gt;&lt;br/&gt;
Nov 18, 17:30 - 19:30, MS Dynamics Overview Kiosk&lt;br/&gt;
Nov 19, 11:00 - 14:00, MS Dynamics Overview Kiosk&lt;br/&gt;
Nov 19, 17:00 - 19:00, MS Dynamics Overview Kiosk&lt;br/&gt;
Nov 20, 12:00 - 13:00, IDCRM05, Microsoft Dynamics CRM: Ask the Community Experts&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt; 
See you at Convergence!
</content>
   </entry>
   <entry>
      <title>Accessing CRM Web Services from JavaScript: Retrieving exchange rates</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=JSWEB1" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/JSWEB1" />
      <id>tag:stunnware.com,2008-10-24:JSWEB1</id>
      <published>2008-10-24T11:00:00+01:00</published>
      <updated>2008-10-24T11:00:00+01:00</updated>
      <content type="html">
There are many samples on blogs or in newsgroups accessing the CRM web services from JavaScript that are based on the output of either the Stunnware Tools or the .NET to JavaScript conversion tool and I think it's time to start a new series collecting these samples. 
&lt;br/&gt;&lt;br/&gt;
The first is based on a newsgroup post and shows how to retrieve the exchange rate of a foreign currency. To make it easier to reuse, I put the main code into a function: 
    </content>
   </entry>
   <entry>
      <title>Comparing data against non-static values / Advanced Find beyond the basics</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=AdvancedFind2" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/AdvancedFind2" />
      <id>tag:stunnware.com,2008-10-23:AdvancedFind2</id>
      <published>2008-10-23T16:00:00+01:00</published>
      <updated>2008-10-23T16:00:00+01:00</updated>
      <content type="html">
Today there was an interesting question in the developer newsgroup:
&lt;br/&gt;&lt;br/&gt;
How do you create a view/advanced find that only shows contacts who are in &lt;br/&gt;
the same state (as in location) as the current logged on user?
&lt;br/&gt;&lt;br/&gt;
The user may not necessarily be the owner of these records.
&lt;br/&gt;&lt;br/&gt;
You usually would say that it doesn't work, but FetchXml can handle such queries:
    </content>
   </entry>
   <entry>
      <title>Filtered Lookup Support: New group on Google</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=FldSupportGroup" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/FldSupportGroup" />
      <id>tag:stunnware.com,2008-10-21:FldSupportGroup</id>
      <published>2008-10-21T12:00:00+01:00</published>
      <updated>2008-10-21T12:00:00+01:00</updated>
      <content type="html">
Some people asked whether there is an official support forum for the Stunnware Filtered Lookup application and so far the answer has been "no". However, it's making sense having a central place for questions and answers, just like the CRM newsgroups and web forums. Without spending too much time on researching, I created a new group in Google: 
&lt;br/&gt;&lt;br/&gt;
&lt;a href="http://groups.google.com/group/stunnware-filtered-lookup-40"&gt;http://groups.google.com/group/stunnware-filtered-lookup-40&lt;/a&gt;
&lt;br/&gt;&lt;br/&gt;
I'm not familiar with Google groups at all, so please excuse if there are problems in the beginning. I don't even know if you can post messages, but from what I have seen it should work after you have created an account. If you have questions regarding the Filtered Lookup product, please consider posting to this group, so we can build some kind of knowledge base. And don't hesitate to answer if you know the solution to a question.
I'm trying my best to read and answer questions myself just as I did before using email. I'm also creating a recurring task in Outlook reminding me to check for new messages.
&lt;br/&gt;&lt;br/&gt;
One important note: this group is intended to be used for Filtered Lookup related questions only. Please use the CRM newsgroups or web forums for general CRM questions    
    </content>
   </entry>
   <entry>
      <title>Email Problems</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=EmailProblems" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/EmailProblems" />
      <id>tag:stunnware.com,2008-10-08:EmailProblems</id>
      <published>2008-10-08T00:00:00+01:00</published>
      <updated>2008-10-08T00:00:00+01:00</updated>
      <content type="html">
We had major issues with email connectivity in the last days. In particular, you may have received an automated email containing the following information:
&lt;br/&gt;&lt;br/&gt;
Body of message generated response:&lt;br/&gt;
552 Your email has been blocked: Blocked by Heuristic Scanning.
&lt;br/&gt;&lt;br/&gt;
If you have sent an email to Stunnware and have not received an answer, then it is definitely related to this issue. Please resend your message and we will get back to you as soon as possible.
&lt;br/&gt;&lt;br/&gt;
We are sorry for this inconvenience, but sometimes technology doesn't do what it's supposed to do.
    </content>
   </entry>
   <entry>
      <title>Filtered Lookup 4.1.41 released</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=FLD4-6" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/FLD4-6" />
      <id>tag:stunnware.com,2008-09-28:FLD4-6</id>
      <published>2008-09-28T09:00:00+01:00</published>
      <updated>2008-09-28T09:00:00+01:00</updated>
      <content type="html">
An updated version of the Filtered Lookup for Microsoft Dynamics CRM 4.0 is now available. It fixes some issues that have been reported in the last weeks:
&lt;ul&gt;
&lt;li&gt;Some entities were missing in the entity selection dropdown of the Retrieve Query, Retrieve Multiple Query and Lookup View entities.&lt;/li&gt;
&lt;li&gt;When changing column sizes and clicking on a column header to sort the displayed values, the initial column size is used for the data rows, resulting in a slightly scrambled view.&lt;/li&gt;
&lt;li&gt;Internet Explorer crashes when trying to filter the quoteid field in a sales order. The reason is a piece of CRM code registering for the setadditionalparams event, which interferes with the Filtered Lookup code that registers for the same event.&lt;/li&gt;
&lt;li&gt;There is a documentation error in the Retrieve Multiple Query article. The code sample tells you to set the lookup class by using the lookupClass parameter. However, you should always use the setLookupClass function.&lt;/li&gt;
&lt;li&gt;When typing in a search a value in the filtered lookup dialog, the initial "Search for" text sometimes isn't hidden.&lt;/li&gt;
&lt;/ul&gt;
    </content>
   </entry>
   <entry>
      <title>Providing feedback on the SDK documentation</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=SDKFeedback" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/SDKFeedback" />
      <id>tag:stunnware.com,2008-09-26:SDKFeedback</id>
      <published>2008-09-26T22:00:00+01:00</published>
      <updated>2008-09-26T22:00:00+01:00</updated>
      <content type="html">
Today I found a minor documentation error in the CRM SDK help (crmsdk4.chm). The description of the organization.isvintegrationcode attribute is "Gets or sets whether to load Microsoft Dynamics CRM in a browser window that does not have address, tool and menu bars." but it should be something like "Gets or sets the clients that will display custom buttons and menu items configured in ISV.Config."
&lt;br/&gt;&lt;br/&gt;
I thought it to be a good idea letting the Microsoft CRM documentation team know about it and searched for a feedback link. It turned out that there wasn't a feedback link, at least not on this topic. That is astounding, because every single page in the CRM help of the web client does have such a link. I do know some people in the product team, so I sent an email to get it fixed in the next SDK release and in the following email conversation I learned two things:
&lt;ol&gt;
&lt;li&gt;There are feedback links in the crmsdk4.chm file, but you won't find them. Go to the search tab and enter "Feedback". Two topics are displayed.&lt;/li&gt;
&lt;li&gt;Feedback links are available for each topic in the online version of the CRM SDK docs.&lt;/li&gt;
&lt;/ol&gt;
    </content>
   </entry>
   <entry>
      <title>Enabling fields and events in bulk edit forms</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=BulkEdit" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/BulkEdit" />
      <id>tag:stunnware.com,2008-09-26:BulkEdit</id>
      <published>2008-09-26T21:00:00+01:00</published>
      <updated>2008-09-26T21:00:00+01:00</updated>
      <content type="html">
You may have noticed that in CRM 4.0 the JavaScript events do not fire in Bulk Edit forms. It doesn't seem a big issue, because until today I haven't heard any complaints about it - or I already forgot them. Anyway, there are two things about the Bulk Edit form that you should know:
&lt;ol&gt;
&lt;li&gt;Any event handling code (OnLoad, OnSave, OnChange) is disabled by default, but you can get them working again.&lt;/li&gt;
&lt;li&gt;Any field having an OnChange event handler applied is disabled on the form. You can fix that as well.&lt;/li&gt;
&lt;/ol&gt;
The second is a big issue. Say you select 10 contacts and want to assign a new parent account, open the Bulk Edit form and find the parent customer field disabled. That sucks. You could try enabling the field with JavaScript, but that doesn't work because of the first issue.
    </content>
   </entry>
   <entry>
      <title>Stunnware Tools for Microsoft Dynamics CRM 4.0 - Trace File Viewer (free extension)</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=Framework9" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/Framework9" />
      <id>tag:stunnware.com,2008-09-25:Framework9</id>
      <published>2008-09-25T23:00:00+01:00</published>
      <updated>2008-09-25T23:00:00+01:00</updated>
      <content type="html">
I had not expected to finish two extensions on the same day. Maybe it happened because I was sick the last two days and now feel much better. Anyway, besides the customization comparer that I published a few hours ago, the Stunnware Tools application now also contains the Trace File Viewer. It's a free extension and can be used in the Community Edition without any limitation.
&lt;br/&gt;&lt;br/&gt;
&lt;b&gt;Purpose of this extension&lt;/b&gt;
&lt;br/&gt;&lt;br/&gt;
Sometimes weird things happen in Microsoft CRM and the error messages provided are not always helpful. The good news is that CRM provides a powerful logging mechanism, called CRM tracing. To enable tracing, please refer to the appropriate Microsoft KB Article. 
&lt;br/&gt;&lt;br/&gt;
The bad thing about these trace files are that they are hard to read and analyze. If you don't know what exactly to look for, then it can be a very time-consuming process. The Trace File Viewer allows easy parsing of such files and offers a variety of filtering options.
    </content>
   </entry>
   <entry>
      <title>CRM4 Outlook Client – Issues and Fixes</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=OutlookClient" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/OutlookClient" />
      <id>tag:stunnware.com,2008-09-25:OutlookClient</id>
      <published>2008-09-25T23:00:00+01:00</published>
      <updated>2008-09-25T23:00:00+01:00</updated>
      <content type="html">
The CRM Outlook Client can cause a lot of headaches and my personal feeling is that it's often related to Outlook rather than the CRM add-on. Whatever the reason may be, the CRM product team spends a lot of time in fixing bugs to enhance the user experience. If you face problems and haven't read the following article, then you definitely should, because it's a rollup package including fixes for known problems:
    </content>
   </entry>
   <entry>
      <title>Stunnware Tools for Microsoft Dynamics CRM 4.0 - The Customization Comparer</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=Framework8" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/Framework8" />
      <id>tag:stunnware.com,2008-09-25:Framework8</id>
      <published>2008-09-25T13:00:00+01:00</published>
      <updated>2008-09-25T13:00:00+01:00</updated>
      <content type="html">
I added a new plug-in to the Stunnware Tools application: the Customization Comparer. 
&lt;br/&gt;&lt;br/&gt;
If you have to troubleshoot a CRM installation, it's very important to know if the system has changed and what changes have been made since the last time you deployed your solution. Many problems are based on customization changes, but finding the differences between the current and a previous system state is very difficult and time-consuming. 
&lt;br/&gt;&lt;br/&gt;
The Customization Comparer takes two CRM customization export files (customization.xml) and compares their contents. All modifications are shown in a result tree, giving a quick view of what has changed. All you have to do is exporting all customizations and save the file for later reference. You can then, at any time, do an export again and compare these files. You can also export a subset of customizations instead.
    </content>
   </entry>
   <entry>
      <title>Creating a Windows Service for Microsoft Dynamics CRM 4.0</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=CrmWindowsService1" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/CrmWindowsService1" />
      <id>tag:stunnware.com,2008-09-17:CrmWindowsService1</id>
      <published>2008-09-17T11:00:00+01:00</published>
      <updated>2008-09-17T11:00:00+01:00</updated>
      <content type="html">
I am really sorry for the silence on my blog. There is a lot of work going on at Stunnware and this article became longer and longer. In the end it's 24 printed pages, so I really should consider writing a book ;-) Anyway, I hope that you find it a worthwhile reading and that it helps in your daily work.
&lt;br/&gt;&lt;br/&gt;
When it comes to automating things in Microsoft Dynamics CRM, you usually create server-side logic in workflows or plug-ins. Workflows are great to perform simple tasks and can be greatly enhanced with custom workflow activities. However, they always need an entity context. Plug-Ins are great as well, but they are more complex. They also require an entity context. What if you want to automate a data import or export, or you want to schedule other tasks that are not triggered by an action in CRM?
&lt;br/&gt;&lt;br/&gt;
&lt;b&gt;Windows Services&lt;/b&gt;
&lt;br/&gt;&lt;br/&gt;
A good alternative to workflows and plug-ins is a Windows Service and as I haven't seen an example of it so far, I'm doing it now, because it's really easy. Since I have my new notebook, I only have Visual Studio 2008 installed. If you are running an older version, you should still be able to follow this article, because the Windows Service template was available at least since Visual Studio 2003. 
    </content>
   </entry>
   <entry>
      <title>Stunnware Tools for Microsoft Dynamics CRM 4.0 Released</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=Framework7" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/Framework7" />
      <id>tag:stunnware.com,2008-08-27:Framework7</id>
      <published>2008-08-27T15:00:00+01:00</published>
      <updated>2008-08-27T15:00:00+01:00</updated>
      <content type="html">
It's out. I published the final release of the Stunnware Tools for Microsoft Dynamics CRM 4.0 a few minutes ago and it's not available in our &lt;a href="/?area=products&amp;group=swtools4"&gt;product area&lt;/a&gt;. It is still a community tool and has all the features you know from previous versions. However, there also is the Professional Edition, which is a yearly subscription.
&lt;br/&gt;&lt;br/&gt;
Everything else is available on the product page. As for the Filtered Lookup application, I again spent a lot of time in writing the documentation, even for the modules contained in the Community Edition, so I appreciate you're reading it before asking questions.
&lt;br/&gt;&lt;br/&gt;
I hope you like the tool, whether you are going for the Community Edition or the Professional Edition.
    </content>
   </entry>
   <entry>
      <title>Got my new notebook!</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=Notebook64_3" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/Notebook64_3" />
      <id>tag:stunnware.com,2008-08-14:Notebook64_3</id>
      <published>2008-08-14T22:00:00+01:00</published>
      <updated>2008-08-14T22:00:00+01:00</updated>
      <content type="html">
I was very quiet in the last two weeks. One of the reasons was the 4.1 release of the Filtered Lookup and the other was my new notebook, which arrived last Friday. Since then I became a DJ - downloading software from MSDN, burning CDs and DVDs, installing, shifting data from my old system... all of these tasks you have to do when getting a new system.
&lt;br/&gt;&lt;br/&gt;
The new machine is a Lenovo ThinkPad T61p with the following upgrades:&lt;ul&gt;
&lt;li&gt;8GB RAM, DDR2 667MHz (2x4GB)&lt;/li&gt;
&lt;li&gt;320GB 7200 SATA Seagate, 16MB Cache, 3GB/s&lt;/li&gt;
&lt;li&gt;Silent Pack for ThinkPad T61, Fan-Control Tool&lt;/li&gt;
&lt;li&gt;Intel T9500 2,6GHz Core2Duo 6MB cache&lt;/li&gt;
&lt;li&gt;15,4" WSXGA+ 1680x1050, non-glare, 0 pixel errors warranty&lt;/li&gt;
&lt;li&gt;NVIDIA Quadro FX570M, 256MB&lt;/li&gt;
&lt;li&gt;IBM DVD+-RW dual layer drive&lt;/li&gt;
&lt;li&gt;IBM Lenovo ThinkPad Advanced Ultrabay Battery&lt;/li&gt;&lt;/ul&gt;
&lt;br/&gt;&lt;br/&gt;
I also bought a Samsung SyncMaster 245B. This is a 24" wide-screen monitor with 1920x1200 pixels and it's great to use Visual Studio and other applications in this resolution. And I have 3 batteries. I only ordered the Ultrabay battery but because it took longer than expected to assemble the machine, the distributor decided to give be an additional one for the standard battery slot. When using two of them (DVD Drive has to be removed), Windows shows something between 5 and 7 hours of remaining time to work. And then I still have the chance to replace one of the two to get an additional 2 or 3 hours, so in theory I can work offline between say 6 and 10 hours, which is good for my next flight to the US.
    </content>
   </entry>
   <entry>
      <title>Filtered Lookup for Microsoft Dynamics CRM 4.1 released</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=FLD4-5" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/FLD4-5" />
      <id>tag:stunnware.com,2008-08-03:FLD4-5</id>
      <published>2008-08-03T10:00:00+01:00</published>
      <updated>2008-08-03T10:00:00+01:00</updated>
      <content type="html">
&lt;b&gt;Filtered Lookup Version 4.1 available for download&lt;/b&gt;
&lt;br/&gt;&lt;br/&gt;
It took a while to complete, but you can now download the 4.1 release of the Filtered Lookup for Microsoft Dynamics CRM 4.0. Probably most of interest is the added support for Internet Facing Deployments, allowing the use of this add-on in hosted environments or when accessing your own on-premise installation over the Internet.
&lt;br/&gt;&lt;br/&gt;
The release also includes a brand new Configuration Manager, that can work on multiple organizations in parallel. While mainly developed for service providers, you will benefit from it as well.
&lt;br/&gt;&lt;br/&gt;
Another neat addition is an option to display view definitions, either single- or multi-view, in an IFRAME and let them behave like a standard CRM view. It worked before, but the view mode option removes the buttons and header and a double-click on an item opens the selected record rather than trying to close the window.
&lt;br/&gt;&lt;br/&gt;
Version 4.0.20 is still available for download, because a lot of you have built applications based on it and may not want to upgrade now.
&lt;br/&gt;&lt;br/&gt;
More information is available on the product page and in the updated documentation.
    </content>
   </entry>
   <entry>
      <title>The Stunnware Tools Framework for Microsoft Dynamics CRM 4.0 - Code Generator</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=Framework6" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/Framework6" />
      <id>tag:stunnware.com,2008-07-31:Framework6</id>
      <published>2008-07-31T15:00:00+01:00</published>
      <updated>2008-07-31T15:00:00+01:00</updated>
      <content type="html">
I'm currently in the final stage of releasing version 4.1 of the Filtered Lookup and it will be the best filtered lookup ever. I had to postpone most other activities because of this, but I have created a second video showing another highlight of the upcoming Professional Edition of the Stunnware Tools application.
&lt;br/&gt;&lt;br/&gt;
&lt;b&gt;The Code Generator&lt;/b&gt;
&lt;br/&gt;&lt;br/&gt;
A big disadvantage when working with the Microsoft CRM SDK assemblies, is that you have to use dynamic entities most of the time. While the DynamicEntity class was enhanced to make it easier to use, you're losing a lot of benefits you had when using the web services: 
&lt;ul&gt;
&lt;li&gt;You don't know at compile time if your code is correct, because you are not using strongly typed classes and you don't access named properties.&lt;/li&gt;
&lt;li&gt;Intellisense: because of the above, you also don't get any context-sensitive help while developing in Visual Studio&lt;/li&gt;
&lt;li&gt;You have to use the more complex RetrieveRequest and RetrieveMultipleRequest messages with the Execute method instead of the Retrieve and RetrieveMultiple methods.&lt;/li&gt;
&lt;/ul&gt;
All in all your code becomes more complex and it takes more time to develop and test.
&lt;br/&gt;&lt;br/&gt;
The professional edition introduces a code generator that gives you back everything you lost plus some additional benefits:
&lt;ul&gt;
&lt;li&gt;Works with the CrmService class and the ICrmService interface from the Microsoft CRM SDK assemblies&lt;/li&gt;
&lt;li&gt;Creates C# and VB.NET code&lt;/li&gt;
&lt;li&gt;Creates classes for all or selected entities, providing nullable properties for easy access&lt;/li&gt;
&lt;li&gt;All attribute names in each class are defined as constant strings, so you never have to look at CRM again to remember the correct spelling&lt;/li&gt;
&lt;li&gt;Creates enumerations for all picklists, state and status attributes&lt;/li&gt;
&lt;li&gt;Adds methods for easy use of the CRUD operations (Create, Retrieve, RetrieveMultiple, Update, Delete)&lt;/li&gt;
&lt;li&gt;Adds methods to change an entity's state&lt;/li&gt;
&lt;li&gt;Provides easy management of all reference types (Lookup, Owner, Customer), e.g. you write account.Primarycontactid = myContact.ToReference()&lt;/li&gt;
&lt;li&gt;Allows you to create your own code generation templates. If you want some special methods in every class, then simply add it to the template files.&lt;/li&gt;
&lt;/ul&gt;
    </content>
   </entry>
   <entry>
      <title>Client Side Scripting - Changing the default view of related entities, CRM 4.0 version</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=JS33" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/JS33" />
      <id>tag:stunnware.com,2008-07-22:JS33</id>
      <published>2008-07-22T21:00:00+01:00</published>
      <updated>2008-07-22T21:00:00+01:00</updated>
      <content type="html">
More than a year ago I posted an article about how to change the default view in an associated view. The most common requirement was changing the history view to display all records instead of the last 30 days, which still is the default in CRM 4.0. I haven't had time to update the code yet and the good thing is that I don't even have to. Jonathan Briggs from SoftArtisans sent me the complete solution for CRM 4.0 and it's an even better solution than the old 3.0 implementation, because it only loads the view when selecting the history view, instead of doing it while loading the form.
&lt;br/&gt;&lt;br/&gt;
The basic setup hasn't changed that much, so you can still use the previous article for a detailed explanation of the code and instead of repeating everything, I simply post Jonathan's code:
    </content>
   </entry>
   <entry>
      <title>Right-aligning numerical fields in CRM views - reworked</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=JS32" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/JS32" />
      <id>tag:stunnware.com,2008-07-17:JS32</id>
      <published>2008-07-17T09:00:00+01:00</published>
      <updated>2008-07-22T09:00:00+01:00</updated>
      <content type="html">
Chris List send me an email about the implementation used in Right-aligning numerical fields in CRM views. Instead of using a script to dynamically change the styles at runtime, he suggested modifying the styles in the header instead. I also worked on this topic, but haven't had updated the article yet. The following combines Chris' approach and what I have done since posting the initial article.
    </content>
   </entry>
   <entry>
      <title>The Stunnware Tools Framework for Microsoft Dynamics CRM 4.0 - Professional Edition</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=Framework5" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/Framework5" />
      <id>tag:stunnware.com,2008-07-10:Framework5</id>
      <published>2008-07-10T23:00:00+01:00</published>
      <updated>2008-07-10T23:00:00+01:00</updated>
      <content type="html">
As previously announced there will be a professional edition of the Stunnware Tools for Microsoft Dynamics CRM 4.0. It's almost complete, besides the documentation, but I wanted to show you some of the features you can expect when going for the professional edition. 
&lt;br/&gt;&lt;br/&gt;
I'm starting with the query builder, formerly known as the FetchXml wizard. What you have so far is the following:   
    </content>
   </entry>
   <entry>
      <title>Client Side Scripting - Retrieving the current user information (CRM 4.0 version)</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=JS31" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/JS31" />
      <id>tag:stunnware.com,2008-07-10:JS31</id>
      <published>2008-07-10T21:00:00+01:00</published>
      <updated>2008-07-10T21:00:00+01:00</updated>
      <content type="html">
A while back I posted a solution about the various techniques to retrieve information about the current user in CRM 3.0. I received an email lately asking for help about how it is done in CRM 4.0, an it seemed time to update the article. 
&lt;br/&gt;&lt;br/&gt;
The new solution uses the Microsoft CRM web services to retrieve the user id, business unit id, organization id and the first, last and full name of the currently logged on user. I have attached a simple test form with the following OnLoad event:
    </content>
   </entry>
   <entry>
      <title>Developing ASP.NET applications for Microsoft Dynamics CRM 4.0</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=ASPNET1" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/ASPNET1" />
      <id>tag:stunnware.com,2008-07-06:ASPNET1</id>
      <published>2008-07-06T22:00:00+01:00</published>
      <updated>2008-07-06T22:00:00+01:00</updated>
      <content type="html">
I'm modifying the ISV configuration file quite often and at some point I got really tired about exporting the isv.config, extracting the customization file from the downloaded zip file, opening Visual Studio, loading the file, making changes, saving and re-importing in CRM. Export and import should only be necessary when deploying customizations, but not to add a button. I thought of creating a simple Windows Forms tool in the beginning and it wouldn't take more than 15 minutes. However, I realized that this would be a perfect sample to show how to develop a custom ASP.NET solution targeting Microsoft Dynmaics CRM 4.0.
&lt;br/&gt;&lt;br/&gt;
I haven't started the implementation yet. Instead I decided to start writing the article first and develop the application while writing. This will make it much easier to create screenshots and it also is a good way to not forget anything important. I'm going to use Visual Studio 2008 and the final solution will be available as a download in this article. And as always I'm using C# and not VB.NET. 
    </content>
   </entry>
   <entry>
      <title>Client Side Scripting - Showing and hiding tabs at runtime</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=JS30" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/JS30" />
      <id>tag:stunnware.com,2008-07-03:JS30</id>
      <published>2008-07-03T23:00:00+01:00</published>
      <updated>2008-07-03T23:00:00+01:00</updated>
      <content type="html">
I received an email today from a student asking for some help about hiding and showing tabs in a CRM form. I was student a long time ago and at that time there was no Internet and no email (OK, there was email, but it wasn't a part of your daily life), so I had to look for answers in different sources. Anyway, I saw the question in the newsgroup before and had answered there as well, but I thought it to be a good idea to help a student and have most of the job done for a new article on my blog.
&lt;br/&gt;&lt;br/&gt;
This one is about hiding and and showing tabs in forms at runtime. It has been answered a couple of times and it's also included in the JavaScript Snippets Directory for a long time. However, the question pops up every now and then, so I decided to create a custom entity showing it:
    </content>
   </entry>
   <entry>
      <title>Filtered Lookup for Microsoft Dynamics CRM 4.0 - IFD Support</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=FLD4-4" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/FLD4-4" />
      <id>tag:stunnware.com,2008-06-30:FLD4-4</id>
      <published>2008-06-30T23:00:00+01:00</published>
      <updated>2008-06-30T23:00:00+01:00</updated>
      <content type="html">
The Filtered Lookup for Microsoft Dynamics CRM 4.0 now supports Internet Facing Deployments. I haven't updated the download page though, because I'm looking for companies willing to test the new version. I'm especially interested in hosting companies that want to include the product for their customers. There will also be a new license type enabling the add-on for all organizations to better support a hosted infrastructure.
&lt;br/&gt;&lt;br/&gt;
IFD support is the first major update and the the version number will change to 4.1. All existing customers and everyone out there currently evaluating the software can update their system by simply installing the new version once it's out. I'm working with the new version for several weeks now and think it's pretty stable, but as it targets a whole new market I wanted to make sure that it performs as well in other environments. 
&lt;br/&gt;&lt;br/&gt;
Besides hosting companies the IFD support also adds value to all companies using the Filtered Lookup in on-premise installations. So far the Filtered Lookup didn't work when accessed over the Internet. If you are using the add-on and have enabled your CRM Server to be available over the web, then you will profit from the new version as well.
&lt;br/&gt;&lt;br/&gt;
The really cool thing is that I'm still able to use a single code base for on-premise, IFD and Outlook Offline Client installations. It's one of the great stories in CRM 4.0 that you can write code that runs everywhere. The only missing part is support for CRM &lt;strike&gt;Live&lt;/strike&gt; Online, but that probably won't happen because Microsoft doesn't allow any external applications to be installed on their servers. Adding IFD support was a missing piece though and I'm glad having it done.
&lt;br/&gt;&lt;br/&gt;
If you are a hosting company offering Microsoft Dynamics CRM 4.0 to your customers and want to test drive the Filtered Lookup in your environment, please contact us!
    </content>
   </entry>
   <entry>
      <title>Client Side Scripting - More JavaScript Code - Part 5</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=JS29" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/JS29" />
      <id>tag:stunnware.com,2008-06-29:JS29</id>
      <published>2008-06-29T15:00:00+01:00</published>
      <updated>2008-06-29T15:00:00+01:00</updated>
      <content type="html">
    It's time to continue the "More JavaScript" series. Here's the fifth article containing more snippets and I hope that you find them as valuable as the four previous articles. I also updated the JavaScript Snippets Directory.
    </content>
   </entry>
   <entry>
      <title>Are you tracking your emails?</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=EmailTracking" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/EmailTracking" />
      <id>tag:stunnware.com,2008-06-27:EmailTracking</id>
      <published>2008-06-27T23:00:00+01:00</published>
      <updated>2008-06-27T23:00:00+01:00</updated>
      <content type="html">
You may wonder why my posts are not 100% developer related anymore and here's the answer: I started using CRM in February, after we began to actively start the Stunnware business. So what have I done in the years before? CRM development of course! 
&lt;br/&gt;&lt;br/&gt;
I think that this is a very common combination. Technical people don't like entering data into such things like a CRM system and before having my own company I thought the same and there was actually no need to store accounts, contacts or emails while being a freelancer. I had used CRM 3.0 since 2006, but never tracked a single email. All I did was adding accounts and contacts when it seemed making sense. 
&lt;br/&gt;&lt;br/&gt;
But running a business is different and I thought it to be a good idea using CRM 4.0 in a very early stage for two reasons: it would give me a different view of the application when working as a standard user and I tried to not put myself into a situation where it's too late to enter the data accumulated in the last months. So I started using CRM in a very different way on February 18, 2008. I can definitely lock it down to this date because the creation date of the first email I checked in tells me exactly this.
&lt;br/&gt;&lt;br/&gt;
Since then roughly 130 days have passed and I have tracked 3,916 emails, giving about 30 emails a day as an average. Weekends are almost quite, so say it's about 40 emails I track on a typical working day. In the beginning I tried using the "Set Regarding" feature in the Outlook client, but I stopped using it. Takes too much time and unless I find someone doing it for me, I'm not setting it. 
&lt;br/&gt;&lt;br/&gt;
However, tracking emails is a great feature, because it's the easiest way to populate your data. Every second day or so I'm opening the activity list in CRM, select emails from the activity type drop down and then the "Emails with unresolved recipients" view. It shows all of the tracked emails with at least one recipient being unknown in the CRM system. And from the very beginning I created accounts and contacts based on the information stored inside of the body of these emails. So I open every email in this view and look if the unresolved recipient belongs to an account already present in the system. If so, I'm creating the new contact record as a child of the existing account, otherwise I'm creating a new account first and then the contact. And sometimes there's an existing contact record and all I have to do is adding a second or even third email address. CRM uses all of them when resolving email addresses.
    </content>
   </entry>
   <entry>
      <title>I need a new notebook - and probably found it</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=Notebook64_2" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/Notebook64_2" />
      <id>tag:stunnware.com,2008-06-27:Notebook64_2</id>
      <published>2008-06-27T23:00:00+01:00</published>
      <updated>2008-06-27T23:00:00+01:00</updated>
      <content type="html">
I'm a step further. Some of you recommended the Lenovo T61 (formerly know as IBM Thinkpad) and I had a closer look at this machine. And finally I found an online store in Berlin offering almost everything I need:
&lt;br/&gt;&lt;br/&gt;
Thinkpad T61 CTO 15,4" WXGA T7300 plus the following extensions:&lt;ul&gt;
&lt;li&gt;8192MB = 8GB DDR2 667MHz Ram, 2x4GB&lt;/li&gt;
&lt;li&gt;200GB 7200 SATA Hitachi Hard Drive, 16MB cache 7K200&lt;/li&gt;
&lt;li&gt;Silent Pack for Thinkpad T60 T61 T60p, Fan-Control + noise reduction + new BIOS&lt;/li&gt; 
&lt;li&gt;T9500 2,6Ghz Core2Duo 6MB cache 45nm, *approx. 61% faster* (than 2,0 GHz), HP IBM FSC Asus&lt;/li&gt; 
&lt;li&gt;Nvidia Quadro NVS140M 128MB&lt;/li&gt; 
&lt;li&gt;IBM DVD+-RW dual layer drive&lt;/li&gt; 
&lt;li&gt;Raid 1: 200GB-7200 HDD, IBM T61 T61p, hot swa (only order this one if not conflicting with the DVD drive)&lt;/li&gt;
&lt;li&gt;IBM Lenovo Thinkpad advanced ultrabay Akku 41U4890 for Thinkpad T61 R61 T61p Adv. Dock&lt;/li&gt;
&lt;li&gt;0 pixel errors warranty&lt;/li&gt;
&lt;li&gt;No XP-Prof. License and no XP-Prof. Software, empty HDD (this really saves money - very unusual)&lt;/li&gt;
&lt;li&gt;4 years pickup/onsite support &lt;/li&gt;&lt;/ul&gt;
It will cost a fortune, but it sounds really really great. I'm waiting for a reply because I haven't ordered yet. Wanted to make sure that these components make sense and that it supports Hyper-V. I also requested information about matching docking stations and a 19" or 20" TFT wide screen monitor. I'm really excited now and can't wait to get my fingers on it.
    </content>
   </entry>
   <entry>
      <title>I need a new notebook - and can't find it</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=Notebook64" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/Notebook64" />
      <id>tag:stunnware.com,2008-06-18:Notebook64</id>
      <published>2008-06-18T21:00:00+01:00</published>
      <updated>2008-06-18T21:00:00+01:00</updated>
      <content type="html">
My notebook is three years old and though it's a great machine (Alienware), I'm looking for a new one that really fits my needs. I have searched the Internet, talked to sales reps from computer stores, but haven't found a machine coming close to what I want. Or I found it, but no one was able to confirm that it fulfills all (or most) of my requirements.
&lt;br/&gt;&lt;br/&gt;
I knew before that I'm no longer a hardware guy and probably never was, but while looking for this new machine I really thought to be an idiot. Not so long ago I used to go into a computer store and just bought everything I needed, assembled my PC and was happy. Never tried a notebook though and having learned that I know almost nothing about today's hardware, I hope that some of you can give me hint.
    </content>
   </entry>
   <entry>
      <title>Custom Lookup Dialog for Microsoft Dynamics CRM 3.0 - Fixing problems after installing Update Rollup 3</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=CustomLookupV143UR3" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/CustomLookupV143UR3" />
      <id>tag:stunnware.com,2008-06-17:CustomLookupV143UR3</id>
      <published>2008-06-17T22:00:00+01:00</published>
      <updated>2008-06-17T22:00:00+01:00</updated>
      <content type="html">    
I really appreciate that customers are still using the Custom Lookup Dialog for Microsoft Dynamics CRM 3.0. I do know because the installation of Update Rollup 3 updated two files that the add-on changed as well and the result was an unstable solution. This is the downside of changing CRM source files. The Filtered Lookup for Microsoft Dynamics CRM 4.0 does much better, but it's too late changing the existing 3.0 implementation.
&lt;br/&gt;&lt;br/&gt;
Anyway, if you are running the 3.0 version as well and face problems after installing Update Rollup 3, you should apply the two files contained in the download to your CRM installation:
&lt;br/&gt;&lt;ul&gt;
&lt;li&gt;Create backups of /_controls/RelatedInformation/Relatedinformation.htc and /_grid/grid.htc.&lt;/li&gt;
&lt;li&gt;Replace the two files with the version found in the download&lt;/li&gt;
&lt;/ul&gt;
Your system will function correctly again after applying these updates.
    </content>
   </entry>
   <entry>
      <title>The CRM Community - The best I know of</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=CrmCommunity1" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/CrmCommunity1" />
      <id>tag:stunnware.com,2008-06-15:CrmCommunity1</id>
      <published>2008-06-15T22:00:00+01:00</published>
      <updated>2008-06-15T22:00:00+01:00</updated>
      <content type="html">
This is a tribute to all people spending time in helping others.
&lt;br/&gt;&lt;br/&gt;
I love the CRM community. Really, I love it. Being part of it continues to be one of the greatest challenges in my entire life, but it's also giving back so much that I'm unable to stop it. It's getting harder since I turned Stunnware into a real company, but it's still an addiction.
&lt;br/&gt;&lt;br/&gt;
I talked to a lot of people about Stunnware, how it began, how it continues and why I'm doing all of this work. And you can trust me, there are days and sometimes even weeks where you have so much work to do, that you are almost unable to answer a single question. And even if you find an hour of spare time, you just want to relax instead of reading emails, newsgroup posts and other blogs. But the longer I don't do it, the more guilty I feel. There are so many others doing the same and I personally want to thank everyone in actively participating in the community.
&lt;br/&gt;&lt;br/&gt;
All of you are part of the community. If you are reading this article, then you already joined the team. You may not provide anything but just consuming, which is totally fine. I'm spending a lot of time in the Internet every day, searching for information helping me to finish my job more quickly. And usually I find the information, so I'm consuming information as well and a lot of this is contained in other blogs. Sharing knowledge makes it easier for all of us to be more efficient. Having said this, I think that "community work" is everything that helps sharing knowledge. 
    </content>
   </entry>
   <entry>
      <title>The Stunnware Tools Framework for Microsoft Dynamics CRM 4.0 - IFD Support (SPLA)</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=Framework4" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/Framework4" />
      <id>tag:stunnware.com,2008-06-15:Framework4</id>
      <published>2008-06-15T11:00:00+01:00</published>
      <updated>2008-06-15T11:00:00+01:00</updated>
      <content type="html">
Besides a lot of other tasks, I'm constantly working on the Stunnware Tools application. In the future, there will be two versions of this product:
&lt;br/&gt;&lt;ul&gt;
&lt;li&gt;The community edition: this is what you already know and it will be enhanced over time&lt;/li&gt;
&lt;li&gt;The professional edition: it contains additional features and will be available through a yearly subscription.&lt;/li&gt;
&lt;/ul&gt;&lt;br/&gt;
I'm still in the progress of finalizing the professional edition, but one of the out comings so far is support for Internet Facing Deployments:
    </content>
   </entry>
   <entry>
      <title>The organization id of the user being verified does not match the organization id of the execution context passed to VerifyUser</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=JS28" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/JS28" />
      <id>tag:stunnware.com,2008-06-05:JS28</id>
      <published>2008-06-05T22:00:00+01:00</published>
      <updated>2008-06-05T22:00:00+01:00</updated>
      <content type="html">
If you ever get this error message, then you are probably working on an ASP.NET application or web service and you are using the CrmImpersonator class from the SDK assemblies. 
&lt;br/&gt;&lt;br/&gt;
"The organization id of the user being verified does not match the organization id of the execution context passed to VerifyUser"
&lt;br/&gt;&lt;br/&gt;
What does it mean? Well, you are executing a web service command and have set the CallerId value of the CrmAuthenticationToken to a user id that doesn't exist in the organization you have specified in the Organization. David Yack has an article about it, which may solve your problem. But what's actually wrong with the following code?
    </content>
   </entry>
   <entry>
      <title>From many:many to any:any</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=AnyToAny" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/AnyToAny" />
      <id>tag:stunnware.com,2008-06-04:AnyToAny</id>
      <published>2008-06-04T23:00:00+01:00</published>
      <updated>2008-06-04T23:00:00+01:00</updated>
      <content type="html">
I'm currently involved in a CRM customization project (as almost always) and we found a lot of discrepancies between the requirements and a plain vanilla CRM system. As an example I'm using accounts and contacts. Today we assign a contact to an account by using the parent account field and we usually mean that the contact is employed at this account. If the contact has relationships to other accounts, we can use customer relationships or many:many relationships. If we need additional information, like contact A is responsible for product X of customer Y, then we have to use a custom entity to express this relationship. 
&lt;br/&gt;&lt;br/&gt;
The biggest challenge, however, is that we have to focus on relationships rather than entities. Let's take the contact: it has one or more addresses. But in reality, a contact has addresses related to business and of course one or more private addresses. It's fine to store the private addresses in the contact, but there are also addresses a contact has at company A and company B. A freelancer working for multiple clients may have five addresses, including phone numbers, email addresses, postal and shipping addresses, but all of them are related to an account he's working for. So instead of attaching an address to a contact, it makes sense to create a relationship between an account and a contact and relate it to one or more addresses. Besides the address, this entity is also perfectly suited to hold additional attributes. 
&lt;br/&gt;&lt;br/&gt;
In other words: CRM allows us to specify "The parent customer of Michael Höhne is Stunnware". What we really need is "Michael Höhne is a developer at Stunnware" and "Michael Höhne is the CEO of Stunnware". And we have to associate these relationships with other entities.
&lt;br/&gt;&lt;br/&gt;
The basic approach: An AccountContact entity with two lookup fields (to account and contact of course). An AccountContact entity has one or more addresses (today these have to be custom entities, as we cannot create a relationship to the customer address). AccountContact also has roles like "Developer" and "CEO". The entity is related to opportunities, allowing things like "Michael Höhne at Stunnware is an influencer for this opportunity" or "Michael Höhne at Stunnware is a developer of product XYZ". Why not referencing the contact directly? Because there are more than one AccountContact records for me, like "Michael Höhne develops solutions for muellerPrange". But my work for Stunnware and my work for muellerPrange and any other customer are totally different and usually unrelated. So we really need to think about relationships.
    </content>
   </entry>
   <entry>
      <title>Finding the URL of an associated view</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=JS27" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/JS27" />
      <id>tag:stunnware.com,2008-05-17:JS27</id>
      <published>2008-05-17T17:00:00+01:00</published>
      <updated>2008-05-20T17:00:00+01:00</updated>
      <content type="html">
It's a common requirement to display an associated view on a CRM form to make it easier for the user seeing relevant data on one screen, rather than clicking through the associated views. While it's straightforward what to do (placing an IFRAME on the form), there's still one question being asked over and over: what is the correct URL for this IFRAME?
&lt;br/&gt;&lt;br/&gt;
I already posted the code you need in the OnLoad script (see What value to pass in the security parameter?), but the name of the tabSet parameter is not always obvious. Here's a very easy technique to get it.
    </content>
   </entry>
   <entry>
      <title>A custom address picker</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=JS26" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/JS26" />
      <id>tag:stunnware.com,2008-05-06:JS26</id>
      <published>2008-05-06T22:00:00+01:00</published>
      <updated>2008-05-06T22:00:00+01:00</updated>
      <content type="html">
It has been a while since I last posted, which mainly has two reasons: The MVP Summit in Seattle last month and the work I had to do after returning. I had a great time at the Summit and I think that all CRM MVPs had. Pretty sure you read about this on other blogs before.
&lt;br/&gt;&lt;br/&gt;
Today's article is about how to use the (standard) lookup dialog for some special tasks. There is a question popping up in the newsgroups from time to time asking if it is possible to use the lookup dialog in their own applications. I would say no, if the calling application runs in a different domain (where domain = server:port in the http request), but it works perfectly inside of the CRM application.
    </content>
   </entry>
   <entry>
      <title>MVP Summit 2008</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=MVPSummit2008" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/MVPSummit2008" />
      <id>tag:stunnware.com,2008-04-08:MVPSummit2008</id>
      <published>2008-04-08T22:00:00+01:00</published>
      <updated>2008-04-08T22:00:00+01:00</updated>
      <content type="html">
Being awarded for the second time in January, I'm looking forward to see all of my fellow MVP colleagues and meeting the CRM product group next week. The MVP Summit is a yearly event and all MVPs worldwide are invited to join a 4-day technical conference being held in Seattle and Redmond. The conference is from Monday to Thursday, but I'm arriving this Friday and stay a whole week, giving enough time for acclimatization (9 hours difference to Germany) and the usual gift shopping. I'm also having a session at this year's Summit and will show some highlights, headaches and frustrations about the Filtered Lookup implementation. 
&lt;br/&gt;&lt;br/&gt;
I'm still available through email during the stay but I'm in sessions over the day and my responses will be delayed. Say that I'm able to check and answer emails in the evening hours (PST), then you may have to be in the office early to reach me - when located in Europe (10pm PST = 7pm CET next day). If you are in the US you are probably at home, unless you are working late. I'm not totally sure, but I think that Australia has a big advantage. It should be late afternoon in Down Under when I power on my machine. 
&lt;br/&gt;&lt;br/&gt;
Anyway, I have a PDA and check email over the day, but creating evaluation licenses or answering technical questions won't work until I'm back in the hotel. If you are in the Seattle area and want to meet me, feel free to send me an email. I'm trying to spend as much time with the other CRM MVPs though, so I cannot guarantee that it works. Friday evening, the day of my arrival, is the only day known to be available. I will be damned tired, but need to stay awake. Some conversations and a nice place to have a few beers could help :-)
    </content>
   </entry>
   <entry>
      <title>Changing JavaScript code at runtime</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=JS25" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/JS25" />
      <id>tag:stunnware.com,2008-04-03:JS25</id>
      <published>2008-04-03T22:00:00+01:00</published>
      <updated>2008-04-03T22:00:00+01:00</updated>
      <content type="html">
I received some responses to my last article. George Doubinski said that you can get to the same results when using Fiddler and of course he's right. Mark Kovalcson pointed out that he has written a tool creating a JavaScript code report. Message understood. 
&lt;br/&gt;&lt;br/&gt;
To give the article more sense, I'm adding some extra functionality, putting it from some slightly over-engineered state into a total over-engineered state.
    </content>
   </entry>
   <entry>
      <title>Maximizing your revenue with spam in Microsoft Dynamics CRM 4.0</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=Spam1" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/Spam1" />
      <id>tag:stunnware.com,2008-04-01:Spam1</id>
      <published>2008-04-01T22:00:00+01:00</published>
      <updated>2008-04-01T22:00:00+01:00</updated>
      <content type="html">
There are a lot of ways to generate income for a company: phone calls, golf matches with CEOs, candle light dinners with the wife/husband/daughter/son of a CEO and a lot more. But to be honest, the easiest way to maximize your revenue is spam. I mean, we all receive so much of them every day, so why not joining this ever growing community? We are using Microsoft CRM and if you have entered the address data carefully, then you have 80% of the job done. All that's missing is an auto-spam mailer and this article shows how to build it.
&lt;br/&gt;&lt;br/&gt;
Of course there's some work you have to do. First of all, we need to categorize our accounts into spam categories: "fools", "almost fools", "may become fools" and "no fools". The "no fools" are hard nuts to crack, but in the end we will get them all. I heard about companies in southern Italy getting money for not sending spam anymore, so let's adopt this business for our own use.
    </content>
   </entry>
   <entry>
      <title>Investigating the generated script code of CRM forms</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=JS24" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/JS24" />
      <id>tag:stunnware.com,2008-03-31:JS24</id>
      <published>2008-03-31T22:00:00+01:00</published>
      <updated>2008-03-31T22:00:00+01:00</updated>
      <content type="html">
When customizing CRM and adding client-side code to our forms, we are limited to the OnLoad, OnSave and OnChange events, unless you attach your own event handlers in code. However, there's lot more code involved when a CRM form is shown and if you ever wanted to know what it is, then follow these simple steps. I'm using the account entity as an example, but it should work in all other forms as well.
    </content>
   </entry>
   <entry>
      <title>Using the Quick-Create form to quickly create new records in CRM 4.0</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=JS23" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/JS23" />
      <id>tag:stunnware.com,2008-03-31:JS23</id>
      <published>2008-03-31T20:00:00+01:00</published>
      <updated>2008-03-31T20:00:00+01:00</updated>
      <content type="html">
In CRM 3.0, when you clicked on the "New" button in a lookup dialog, the Quick Create Dialog appeared. It only displayed the required and recommended fields and didn't allow specifying data going beyond this. With the new CRM 4.0 release it changed. Clicking on the "New" button now displays the standard form and you can enter all values as you would do when creating a new record from a view. 
&lt;br/&gt;&lt;br/&gt;
So far so good.
&lt;br/&gt;&lt;br/&gt;
Today I have read an interesting question in the CRM newsgroup: &lt;i&gt;"Under Services -&gt; Cases -&gt; New, if the customer you wish to enter is not on the database already, i.e. a new customer, it is currently very long winded to do (you have to click on Customer lookup, then New button to launch Customer Entry, enter customer details, save, then select from lookup). How can I add a button next to the customer lookup, to open a new customer entry screen and upon save it automatically returns the newly added customer?"&lt;/i&gt;
&lt;br/&gt;&lt;br/&gt;
This sounds like a perfect scenario for the Quick Create Form and this article shows how to get it back in CRM 4.0. 

    </content>
   </entry>
   <entry>
      <title>Right-aligning numerical fields in CRM views</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=JS22" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/JS22" />
      <id>tag:stunnware.com,2008-03-14:JS22</id>
      <published>2008-03-14T22:00:00+01:00</published>
      <updated>2008-07-17T22:00:00+01:00</updated>
      <content type="html">
One of the nasty things in Microsoft Dynamics CRM is the fact that numerical fields in views are left-aligned, just like any other column. A typical view looks like this:
    </content>
   </entry>
   <entry>
      <title>www.stunnware.com</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=Stunnware3" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/Stunnware3" />
      <id>tag:stunnware.com,2008-03-05:Stunnware3</id>
      <published>2008-03-05T23:00:00+01:00</published>
      <updated>2008-03-05T23:00:00+01:00</updated>
      <content type="html">
Creating products is easy. Really, I mean it's easy. At least compared to reseller agreements, end user license agreements, and web sites. I posted a lot of new content to my web site recently and it included a lot of information about the new products and partner programs. However, I received the same questions over and over again: do you have a reseller program? How much do I have to pay for the Filtered Lookup? 
&lt;br/&gt;&lt;br/&gt;
All of this is listed on my web site, but I have a big problem from history: my CRM blog. As you probably know, it's located on www.stunnware.com/crm2 and this is a well-known place for the developer community. But it seems that most people haven't ever looked at the homepage. Homepage = everything up to the first slash = www.stunnware.com. 
&lt;br/&gt;&lt;br/&gt;
Ok, the homepage so far wasn't that well designed, but I told you that I'm better in creating products than in designing web sites. To help me out of this situation, I thought about adding everything from the homepage to the blog, making it my "real" homepage. But the blog is my personal thing, while Stunnware now is a company, so I need to keep it separated. 
&lt;br/&gt;&lt;br/&gt;
The other option was to write an article on my blog, hoping that many of you read it and look at the homepage. Before doing it I had to make some adjustments to the overall look and feel, and now I'm publishing everything, including this article. I hope you like the new design and if something breaks, please tell me. It's the first version and more a beta than a product :-)
&lt;br/&gt;&lt;br/&gt;
http://www.stunnware.com
    </content>
   </entry>
   <entry>
      <title>Client Side Scripting - Creating your own customer fields in CRM 4.0</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=JS21" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/JS21" />
      <id>tag:stunnware.com,2008-03-03:JS21</id>
      <published>2008-03-03T20:00:00+01:00</published>
      <updated>2008-03-03T20:00:00+01:00</updated>
      <content type="html">
This one is especially for Pete, but I hope that some of you may find it helpful as well. A while back I showed how to create customer fields in CRM 3.0, but like the text to picklist conversion it broke in CRM 4.0. This article contains the code to make it work again and it also supports the new auto-resolve feature.
&lt;br/&gt;&lt;br/&gt;
The main difference in the code compared to the previous version is the injected HTML code. It uses the new CRM 4.0 styles and has more elements because of the new text box that allows you entering a value directly into the lookup field. The main JavaScript, however, stays the same. I only needed a slight modification to correctly retrieve the tab index, but that's it. 
    </content>
   </entry>
   <entry>
      <title>Metadata Privileges in CRM 4.0</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=MetadataPrivileges" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/MetadataPrivileges" />
      <id>tag:stunnware.com,2008-03-01:MetadataPrivileges</id>
      <published>2008-03-01T02:00:00+01:00</published>
      <updated>2008-03-01T02:00:00+01:00</updated>
      <content type="html">
If you have developed applications targeting Microsoft Dynamics CRM 3.0 and you have used the metadata service to make your software really dynamic, then you may face some serious problems when running against a CRM 4.0 installation. Your application runs fine when executed by an administrator or developer; that is a user having the CRM System Administrator or System Customizer security role applied to his user record. But other people will complain that the application no longer works.
&lt;br/&gt;&lt;br/&gt;
The reason for this behavior are the security privileges controlling access to the metadata. Yes, there are privileges for it! 
    </content>
   </entry>
   <entry>
      <title>Developing Custom Workflow Activities for Microsoft Dynamics CRM 4.0</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=CustomWorkflowActivity" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/CustomWorkflowActivity" />
      <id>tag:stunnware.com,2008-02-27:CustomWorkflowActivity</id>
      <published>2008-02-27T01:00:00+01:00</published>
      <updated>2008-02-27T01:00:00+01:00</updated>
      <content type="html">
A colleague of mine, Barbara Bewermeyer from muellerPrange, started to work with custom workflow activities in CRM 4.0. As I sit next to her I saw what she was doing and asked if she is willing to create a basic tutorial. So this is the first article on my site that I haven't written myself. Thanks to Barbara for sharing this information.
&lt;br/&gt;&lt;br/&gt;
&lt;b&gt;A sample workflow&lt;/b&gt;
&lt;br/&gt;
Consider the following scenario: To speed up their processing times, the order processing department wants to get information about upcoming sales in advance. Let's say they want to get structured information in a file on the products in the sales pipeline when the close probability of an opportunity reaches a specific value.
&lt;br/&gt;&lt;br/&gt;
Sending an e-mail, creating entities (activities) when the close probability of an opportunity is set to a specific value is already provided using the CRM workflows. But generating a file is not a supported step in a CRM workflow.
&lt;br/&gt;&lt;br/&gt;
Developing custom workflow activities enables us to merge our own requirements with the Microsoft CRM 4.0 workflow features. To demonstrate how it works, we will develop a custom workflow activity that exports product information to a file. This custom workflow activity can be used as a workflow step within a CRM workflow for opportunities. To keep it simple we will only export the product names of all products related to an opportunity (opportunityproduct) to a text file and we will not define the complete workflow to cover the scenario described above.
&lt;br/&gt;&lt;br/&gt;
The custom workflow activity will call a Web service method of Microsoft Dynamics CRM and use an input parameter that can be entered by the user as a workflow property within the CRM workflow form.
code (noticed the download button in the top left corner?), you need to follow the TODO statements in the code to let it fly in your environment. And it finally produces a JavaScript code like this:
    </content>
   </entry>
   <entry>
      <title>Filtered Lookup for Microsoft Dynamics CRM 4.0 - Reseller Agreement and End User License Agreement available</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=FLD4-3" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/FLD4-3" />
      <id>tag:stunnware.com,2008-02-22:FLD4-3</id>
      <published>2008-02-22T21:00:00+01:00</published>
      <updated>2008-02-22T21:00:00+01:00</updated>
      <content type="html">
Building a company from scratch takes much more time than I had expected, but we are making progress. We are listed in the commercial register and the only thing still missing is our tax number. We cannot do more than simply waiting for it, but in the meantime we finished two other important tasks: the Reseller Agreement and the End User License Agreement.
&lt;br/&gt;&lt;br/&gt;
The Reseller Agreement obviously is for companies planning to resell our applications, which is our preferred way of distributing software. Reselling software not only means "selling licenses". It is 
&lt;ul&gt;
&lt;li&gt;Selling the licenses&lt;/li&gt;
&lt;li&gt;Being the face to the customer&lt;/li&gt;
&lt;li&gt;Supporting the customer in terms of installation, configuration and customization&lt;/li&gt;
&lt;li&gt;Giving feedback from the customer regarding problems, suggestions and other kind of feedback&lt;/li&gt;
&lt;/ul&gt;
Plus everything else that may be contained in the Reseller Agreement, but the above points are most important to me. As a developer I have to concentrate on development. Sounds easy, but I spend a lot of time answering questions, issuing licenses and collecting feedback. All of this is great, but it shouldn't be more than today. And that's where resellers come into the picture. All of you know that I'm trying everything to assist you, but it's up to you to help your customers. If you cannot answer a question or face an issue, you are welcome to ask and I expect it from you, as this helps me to update the documentation, fix bugs and so on. But as a reseller, you are responsible for customer support. The same is mentioned in the EULA. 

    </content>
   </entry>
   <entry>
      <title>Client Side Scripting - Converting text fields to localizable picklists in CRM 4.0</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=JS20" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/JS20" />
      <id>tag:stunnware.com,2008-02-18:JS20</id>
      <published>2008-02-18T23:00:00+01:00</published>
      <updated>2008-02-19T23:00:00+01:00</updated>
      <content type="html">
Almost two years ago I posted an article about converting a text field into a picklist at runtime. It hasn't made it into the top 10 articles, but some of you told me that it didn't work anymore in CRM 4.0, while others sent me the required change to fix it. I appreciate this.
&lt;br/&gt;&lt;br/&gt;
As the fix to make it work is too easy for an entire article, I'm extending it a bit:
&lt;ul&gt;
&lt;li&gt;Store picklist values in custom entities, making them very easy to configure through the web client&lt;/li&gt;
&lt;li&gt;Reuse picklist definitions across entities&lt;/li&gt;
&lt;li&gt;Add support for multiple languages&lt;/li&gt;
&lt;li&gt;Fix the code to use the correct tab index and requirement level&lt;/li&gt;
&lt;/ul&gt;
    </content>
   </entry>
   <entry>
      <title>Office 2007 Integration for Microsoft Dynamics CRM 3.0 released</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=OpenXml7" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/OpenXml7" />
      <id>tag:stunnware.com,2008-02-18:OpenXml7</id>
      <published>2008-02-18T20:00:00+01:00</published>
      <updated>2008-02-18T20:00:00+01:00</updated>
      <content type="html">
It took a long time to complete this solution and I still have to work on the documentation, but the application itself is finished and I'm proud to release the initial version today. The Office integration works with Microsoft Dynamics CRM 3.0 and 4.0, where it is limited to the default organization. This, however, is the most common upgrade path for any existing CRM 3.0 customer and the good news is that you don't have to worry about your upgrade from CRM 3.0 to 4.0 when using the Office integration. It should simply continue to work.
&lt;br/&gt;&lt;br/&gt;
I have created a new product page and if you want to know more about what the product does and how, I suggest downloading the Customization Handbook, which is available as a separate download on the product page.
    </content>
   </entry>
   <entry>
      <title>Using CRM 4.0 Web Services in client-side JavaScript</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=JSWebService2" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/JSWebService2" />
      <id>tag:stunnware.com,2008-02-14:JSWebService2</id>
      <published>2008-02-14T23:00:00+01:00</published>
      <updated>2008-02-17T23:00:00+01:00</updated>
      <content type="html">
You may have noticed that I'm in the middle of migrating everything from Microsoft Dynamics CRM 3.0 to 4.0. One of the most used tools in version 3 was the .NET to JavaScript conversion tool and a lot of you asked if it's still working in 4.0. 
&lt;br/&gt;&lt;br/&gt;
The simple answer is: yes. Of course I had to make some minor changes, but they are really minor. I obviously had to update the web reference to the new endpoint and I also needed to change some namespace declarations, but the code itself remains unchanged.
&lt;br/&gt;&lt;br/&gt;
As everything works exactly as in the previous version, I'm not going to repeat how it works. Just follow the link above if you want to learn more about it. Instead, I'm adding some JavaScript showing how to parse the result, as this is something a lot of you had problems with.
&lt;br/&gt;&lt;br/&gt;
After downloading the code (noticed the download button in the top left corner?), you need to follow the TODO statements in the code to let it fly in your environment. And it finally produces a JavaScript code like this:
    </content>
   </entry>
   <entry>
      <title>The Stunnware Tools Framework for Microsoft Dynamics CRM 4.0 - Excel Export Plugin</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=Framework3" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/Framework3" />
      <id>tag:stunnware.com,2008-02-14:Framework3</id>
      <published>2008-02-14T01:00:00+01:00</published>
      <updated>2008-02-14T01:00:00+01:00</updated>
      <content type="html">
I fixed some minor bugs in the Fetch XML Plug-In today and while testing I thought that it would be cool to export at least some of the data being shown. Maybe for printing or just as some kind of documentation. So I created another plug-in, the Excel Export Plug-In. All it does so far is taking any ListView and saving it into the Excel 2003 XML format.
&lt;br/&gt;&lt;br/&gt;
Unlike the other Plug-Ins, the Excel Plug-in does not add menu or toolbar items. It only integrates into the context menu of list views, but it is a powerful toy. And it only took about 2 hours to create, so don't expect it to be perfect. 
    </content>
   </entry>
   <entry>
      <title>Amtsgericht Muenchen HRB 172118</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=Stunnware2" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/Stunnware2" />
      <id>tag:stunnware.com,2008-02-13:Stunnware2</id>
      <published>2008-02-13T21:00:00+01:00</published>
      <updated>2008-02-13T21:00:00+01:00</updated>
      <content type="html">
Amtsgericht Muenchen HRB 172118: This is what we have been waiting for. It's the number of the Stunnware GmbH in the commercial register of Munich, Germany. It means that we're now able to sell products and start relationships with partners and resellers.
&lt;br/&gt;&lt;br/&gt;
I had to put off many of you in the last weeks because of this missing number and I need you to wait a bit longer. Not because of missing legal stuff anymore, but for a technical reason. In a code review with Microsoft it turned out that the Filtered Lookup implementation uses an unsupported customization and I want to replace it with a supported approach. We want the application to pass the Microsoft Dynamics CRM 4.0 certification test and I don't like charging for the current solution when already knowing that there will be an updated version that is supported. The easiest way to achieve this is waiting until the code is fixed, which should be done shortly. 
&lt;br/&gt;&lt;br/&gt;
For you it doesn't make a big difference. You have to wait until paying me, but that's more a problem of mine and not yours. It does, however, mean that you have to update your installations once the updated version is out, but I hope this to be an easy one. At least easier than now, because I forgot to change the version numbers in the updated installation packages, making it impossible to simply update an installation. Instead you have to uninstall the existing version and install the newer one. Still not too complex, but it could be easier.
&lt;br/&gt;&lt;br/&gt;
I also had a couple of issues reported in the last weeks. If you are evaluating the Filtered Lookup, please look at the product page first to see if it has already been fixed.
    </content>
   </entry>
   <entry>
      <title>The Stunnware Tools Framework for Microsoft Dynamics CRM 4.0 - Fetch XML Plugin</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=Framework2" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/Framework2" />
      <id>tag:stunnware.com,2008-02-11:Framework2</id>
      <published>2008-02-11T23:00:00+01:00</published>
      <updated>2008-02-11T23:00:00+01:00</updated>
      <content type="html">
I finally changed the Fetch XML wizard to support CRM 4.0 and modified the code in a way that it properly plugs into the Tools Framework. I also renamed the application from "Stunnware.Application.Tools.Framework.exe" to simply "SwTools.exe", just in case you had placed a shortcut on your desktop.
    &lt;br/&gt;&lt;br/&gt;
Fetch XML remains a very important query language and with the new many-to-many relationships in CRM 4.0 it may become even more important. Say you have created a new many-to-many relationship between accounts and leads and name it "new_account_leads". With a QueryExpression you cannot return entities of type "new_account_leads", but Fetch XML can. 
    &lt;br/&gt;&lt;br/&gt;
The Fetch XML Plug-In lists these link entities when picking the main entity, but I haven't included them in the Link-Entity dialog so far. 
    </content>
   </entry>
   <entry>
      <title>The Stunnware Tools Framework for Microsoft Dynamics CRM 4.0</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=Framework1" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/Framework1" />
      <id>tag:stunnware.com,2008-01-30:Framework1</id>
      <published>2008-01-30T23:00:00+01:00</published>
      <updated>2008-02-04T23:00:00+01:00</updated>
      <content type="html">
    Two days ago I posted an interim build of the Metadata Viewer for Microsoft Dynamics CRM 4.0. Today I'm releasing the updated version, which is something I'm working on for quite a while. As I published so many tools in the last two years, I always wanted a single application and a pluggable architecture.
    &lt;br/&gt;&lt;br/&gt;
&lt;b&gt;The Stunnware Tools Framework for Microsoft Dynamics CRM 4.0&lt;/b&gt;
&lt;br/&gt;
The framework application still is in an early stage and doesn't look sophisticated, but it has most of the functionality I wanted it to have.
    </content>
   </entry>
   <entry>
      <title>Microsoft Dynamics CRM 4.0 Product Launch in Sweden</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=ProductLaunchSweden" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/ProductLaunchSweden" />
      <id>tag:stunnware.com,2008-01-30:ProductLaunchSweden</id>
      <published>2008-01-30T22:00:00+01:00</published>
      <updated>2008-01-30T22:00:00+01:00</updated>
      <content type="html">
After being in Denmark in October and January, it's time to visit a different location in Scandinavia. I'm part of the Microsoft Dynamics CRM 4.0 product launch in Stockholm, Sweden. Together with Jonas Deibe from Microsoft, I'm staffing a small place where people can visit us to talk about CRM.
&lt;br/&gt;&lt;br/&gt;
The event takes place on February 7th in the Factory, Augustendalstorget 6, 131 26 Nacka Strand. If you're planning to attend this event, feel free to step by. We have lots of Coke and Coffee, so everything's prepared for a developer talk. I'm planning to be there at lunch time and will stay till late afernoon.
&lt;br/&gt;&lt;br/&gt;
You may wonder why I'm going to Sweden and not the German product launch. First of all, Jonas invited me and I liked the idea. Second, the German product launch events are for existing and potential customers only, but not for partners. I thought it to be the best event to show the Filtered Lookup for Microsoft Dynamics CRM 4.0 in my home country and even without attending as a partner I had opted to participate as an MVP. Neither of that seems to be valuable and I wonder how the event is going. Sounds like Convergence without an exhibition.
&lt;br/&gt;&lt;br/&gt;
Anyway, if you are interested in the German product launch events, you find them here.
</content>
   </entry>
   <entry>
      <title>The CRM Metadata Viewer 4.0</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=MetadataViewer3" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/MetadataViewer3" />
      <id>tag:stunnware.com,2008-01-28:MetadataViewer3</id>
      <published>2008-01-28T22:00:00+01:00</published>
      <updated>2008-01-28T22:00:00+01:00</updated>
      <content type="html">
Since almost two years you can download the Metadata Viewer for Microsoft Dynamics CRM 3.0. As CRM 4.0 is out for some weeks, I started migrating my existing tools to the new CRM 4.0 services. The current build is an interim build only and does not show all of the new data available in the metadata. It also doesn't use the new capabilities of writing metadata, so if you're familiar with the previous versions, then you won't notice too much new. 
&lt;br/&gt;&lt;br/&gt;
I started using Visual Studio 2008 a month ago, so the current version requires the .NET 3.5 Framework installed on your machine.
    </content>
   </entry>
   <entry>
      <title>Filtered Lookup for Microsoft Dynamics CRM 4.0 Updates</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=FLD4-2" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/FLD4-2" />
      <id>tag:stunnware.com,2008-01-25:FLD4-2</id>
      <published>2008-01-25T00:00:00+01:00</published>
      <updated>2008-01-25T00:00:00+01:00</updated>
      <content type="html">
I received quite a few requests for evaluation licenses and shortly after I sent them out I also received quite a few emails telling me what went wrong. I'm posting updates and descriptions about what has been reported and what has been fixed on the product page. However, I'm not going to add a blog post every time, so if you face an issue with the Filtered Lookup, please go to the product page first to see if it's a known problem. I added dates near the downloads so you can easily see if there is a newer version available.
    </content>
   </entry>
   <entry>
      <title>More CRM resources</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=NewBlogs2" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/NewBlogs2" />
      <id>tag:stunnware.com,2008-01-21:NewBlogs2</id>
      <published>2008-01-21T22:00:00+01:00</published>
      <updated>2008-01-21T22:00:00+01:00</updated>
      <content type="html">
In the last two weeks I came across some interesting resources that I wanted to share with you:
&lt;ul&gt;      
&lt;li&gt;Michael Friis' LinqToCRM project. Based on the FetchXML library, he is writing a Linq provider for CRM. You need the .NET Framework 3.5 to run it, but I guarantee that it's a worthwhile reading. He even added a video lately.&lt;/li&gt;
&lt;li&gt;Stamati Crook published his Microsoft CRM 4.0 Handbook, a free resource containing a lot of information about what CRM does and how.&lt;/li&gt;
&lt;li&gt;George Doubinski finally started a new CRM blog. He's definitely one of the most knowledgeable posters in the CRM newsgroups. Unfortunately it seems that he's not always finding enough time to answer questions, otherwise he definitely would be an MVP as well.&lt;/li&gt;
&lt;li&gt;Another CRM blog that turns out to be interesting: Hans Nellestijn. I like the way he's writing about CRM development and hope to see more samples and ideas on his site soon.&lt;/li&gt;
&lt;/ul&gt;
    </content>
   </entry>
   <entry>
      <title>Filtered Lookup for Microsoft Dynamics CRM 4.0 released</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=FLD4-1" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/FLD4-1" />
      <id>tag:stunnware.com,2008-01-21:FLD4-1</id>
      <published>2008-01-21T21:00:00+01:00</published>
      <updated>2008-01-21T21:00:00+01:00</updated>
      <content type="html">
You may have noticed that I haven't posted a new article on my blog for more than two weeks, which is very unusual. The reason is that I was quite busy in getting the Filtered Lookup 4.0 out. It has been announced on my homepage (www.stunnware.com) for some weeks and today I'm proudly presenting the initial release.
    </content>
   </entry>
   <entry>
      <title>The CRM/Office 2007 Integration</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=OpenXml2" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/OpenXml2" />
      <id>tag:stunnware.com,2007-09-17:OpenXml2</id>
      <published>2007-09-17T21:00:00+01:00</published>
      <updated>2008-02-18T21:00:00+01:00</updated>
      <content type="html">
Since I have attended the OpenXML workshop at Microsoft in early May I did a lot of work on an integration into CRM, allowing you to create almost every Word document from inside the web client you like. One of the first versions is still available for testing here.
&lt;br/&gt;&lt;br/&gt;
Shortly after publishing it, I received an email from Menno te Koppele, asking if I had something to provide for the new CRM Virtual PC Image. At this time I was in the process of integrating the code into CRM, so I offered it as a kind of showcase. I had identified some issues and needed enhancements, but still it was a good demo to show the power of combining CRM and Office 2007.
&lt;br/&gt;&lt;br/&gt;
Now it's time to make the current release available to the public. It's about 90% feature complete and documentation is about 80% complete. These are my my own rough estimates and I'm sure you have a different opinion after working with it, but at least it's a fair release to start with. 
    </content>
   </entry>
   <entry>
      <title>The JavaScript snippets directory</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=JS13" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/JS13" />
      <id>tag:stunnware.com,2007-04-27:JS13</id>
      <published>2007-04-27T23:00:00+01:00</published>
      <updated>2008-06-29T23:00:00+01:00</updated>
      <content type="html">
While writing the third article of the "More JavaScript" series, I found myself struggling to find out what I had written so far, so here's the complete list of snippets, making it easier to find the correct link.
    </content>
   </entry>
   <entry>
      <title>Client Side Scripting - Changing the default view of related entities</title>
      <link rel="alternate" type="text/html" href="http://www.stunnware.com/crm2/topic.aspx?id=JS11" />
      <link rel="self" type="application/atom+xml" href="http://www.stunnware.com/crm2/atom/JS11" />
      <id>tag:stunnware.com,2007-04-16:JS11</id>
      <published>2007-04-16T23:00:00+01:00</published>
      <updated>2008-07-22T23:00:00+01:00</updated>
      <content type="html">
One of the questions asked over and over again is if it is possible to change the default view of a related entity. Let's take the history view in an account form, which defaults to the "Last 30 days".
&lt;br/&gt;&lt;br/&gt;
Many people think it's better to see all items instead and as there is no option to specify the default view, they have to open the view list and select the "All" view. When working with the history view a lot, this is a time-consuming and bothering job.     
    </content>
   </entry>
</feed>