As it turns out, Spießrutenlaufen is no longer exclusive developers domain and can be equally applied to the customizers. Shan “Smoke ’em” McArthur reminded all of us (and not for the first time) that it’s not all unicorns and rainbows with managed solutions. If you ever delete a form for the entity that is part […]
Tip #372: IIS in the middle
Ages ago we had a tip on how to apply IP restrictions to your IFD CRM on-premises deployment. Traditional “this is unsupported” disclaimer followed. There is a way, however, to make it a) supported and b) infinitely more flexible and useful. Enter Application Request Routing. Basically, the idea is to put a small IIS server […]
Tip #371: Use your fingers
Here, at eXtremeCRM 2015 Madrid, my good friend Gustaf (not V) Westerlund and I had a privilege of delivering a session with a gloomy name Seven Deadly Sins of CRM Development. That’s right, doom and gloom, and Spießrutenlaufen, all over again. I will come back to the topic in the future but for now I […]
Tip #369: Booklovers rejoice
To paraphrase Django Unchained: What is the point of having a website page that speaks CRM books if you can’t wheel ’em out when you have a CRM book-loving guest? So, without further ado, a small plug about not so small book where all surviving tipsters left their mark. 2013 CRM Field Guide released – […]
Tip #368: Keep your early bound classes lean
The convenience of early bound classes often overshadows the side-effects of using those. It is, indeed, very easy to write: CrmSvcUtil.exe /url:https://myorg.api.crm.dynamics.com/XRMServices/2011/Organization.svc /out:GeneratedCode.cs /username:”myname@live.com” /password:”myp@ssword!” then add generated file to the project and use syntax-checked a.accountname = “Acme Inc” instead of a[“acountname”] = “Acme Inc” (see what I’ve done here to demonstrate the usefulness of […]
Tip #358: How to delete deleted report
No, it’s not a typo – I am going to talk about deleting the deleted. – “What?!” Let me explain. We all have that Rupert/Vernona/Joe/Jill on our team who think they know best and, for some inexplicable reason, management agreed and granted them privileges sufficient to deliver some real damage. Like going into SQL Server […]
Tip #351: Tracing for plugins and custom workflow activities
CRM Online continues to improve on the existing features, as Andre “I’ve got 88 in my handle” Margono noticed when looking at the tracing functionality. ITracingService was available to the savvy developers since CRM 2011, however, the catch always has been that trace is only available when things go wrong, exception kind of wrong. Enter […]
Tip #349: Bulk delete in bulk
After using Bulk Delete Wizard in Dynamics CRM one can be mistaken for thinking that bulk delete is only capable deleting one advanced find result screen at the time. But if mentioning of C# invokes more that just musical associations for you, welcome to the realm of SDK, where things are not what they seem […]
Tip #347: How to use datetime fields in WHERE clause
Gotta love user Q&A sessions, like the one at Convergence 2015 that I had a privilege to take part in. Questions from users are always refreshing, very often challenging and sometimes they are just the reminder that any small bit of information that one possesses is not necessarily the common knowledge. On this occasion question […]
Tip #343: In Dynamics CRM we trust
Having customer’s commitment issues? Something like this? Oh, I don’t trust corporations, they are out there to get you and your money. Remember Lehman Brothers? To start with, unlike subprime mortgages, Microsoft Dynamics CRM is a real product. What’s important though, that Microsoft, unlike payday lenders, recognizes concerns customers and prospects alike might have about […]