Spring ’14/SP1 release has introduced a number of very exciting features to the customer service functionality of Dynamics CRM including Service Level Agrements and Entitlements. The decision also has been made to introduce Spießrutenlaufen, previously reserved for developers, to the customer service officers. Yes, I’m talking about timer control The other good news is that […]
Tip #232: Vanity monitoring
Woo-hoo! Our CRM uptime has been 99.999% for the past 6 months! One awesome internet facing deployment we cooked up! What do you use to measure that? One of these wonderful and free services Uhm, you do realize that all you have been measuring is the uptime of your ADFS login page? These are vanity metrics – […]
Tip #230: Ban the browse button
I like German words. Take, for example, Spießrutenlaufen. If you like me, and don’t speak a word of German, you know, just by looking, that the word means business, the word means corporal punishment. I often wonder if ignorance of the developers can be cured by introduction of Spießrutenlaufen for coders. Function is longer than […]
Tip #228: He knows when you are sleeping
All sort of interesting things happen when we are asleep: Santa Clause, tooth fairies, and, lately, CRM errors. If you are running production on premises system, enabling blanket tracing needs to be done with a great care as server disks will overflow very fast. It’s OK during the day to enable trace, reproduce the error […]
Tip #223: Firefox and a message box
Browsers are on a war path. First, in case you were wondering why editing emails in workflows no longer work, that’s because Chrome disabled showModalDialog, breaking bucketloads of CRM functionality relying on that. See this good summary for a comprehensive feature list and a temporary workaround. Firefox has been much sneakier than that. It kind […]
Tip #222: Mixed signals
I am very honored to have Joel as my fellow CRM tipster. Most of the time, that is. Sometimes I find myself closely studying the state of my own footware thinking if I should ever be seen in one room with that person. Take, for example, this post. Update each message for the entity, replacing […]
Tip #219: You want the top one
One of the challenges of creating reports is the lack of real data in development environment. There is not enough Nancies Davolios to simulate real volumes. For that reason alone production organization is often replicated “back” to test and development environments. Reports suddenly come to life and designers can see 7-figures opportunities and otherwise empty […]
Tip #217: Bad Id, bad
Following my anal retentive attention to the tightness of LINQ code and SQL it generates, I decided to refactor an old piece of code that extracted identifiers of the accounts matching certain criteria. Being very smug with all the newly acquired knowledge, I quickly produced an equivalent of: To my horror, this code generated an […]
Tip #215: Computer says ‘no’
Well, this is embarrassing. Remember that flogging I unleashed on unscrupulous developers being disrespectful to LINQ, performance and humanity in general? I was basking in my own cleverness of possessing the knowledge of LINQ operators including magic Any: Yesterday I had a chance to use what I preached and this is what I got in […]
Tip #212: Getting a yes or no answer in LINQ
Say, you need to find out if your organization has any opportunities with the estimated value of more than a million dollars (that’s right, that’s how developers usually roll). No need to retrieve anything, just simple yes or no. There are many ways to accomplish the task, most of them, sadly, are as efficient as […]