A new book on Microsoft Dynamics CRM report writing

Fellow MVP, Damian Sinay, has published a book on report writing for Dynamics CRM.

Writing reports for Microsoft Dynamics CRM is an area that needs more coverage and I was particularly pleased to see the publication of Microsoft Dynamics CRM 2011 Reporting from PACKT Publishing. You can find the book at http://www.packtpub.com/microsoft-dynamics-crm-2011-reporting/book where there is also a link to a sample chapter.

As a Microsoft Dynamics CRM (CRM) consultant I’ve sometimes struggled to find good examples of how to approach report writing for CRM and so it was with eager anticipation that I read this book. I was not disappointed; the coverage of topics is comprehensive.

The first chapter, Introduction to Reporting, covers setting up required components for writing CRM reports and describes the report entity in CRM. I found the topic on the history SQL reporting services versions interesting and a useful summary. Did you know that SQL Reporting Services 2008 and later use their own HTTP server and not IIS?

The second chapter, Database Basics, provides a short description of database basics and how records in CRM are linked using relationships. If you already use SQL extensively then there isn’t much to learn here but if you are new to SQL then this section provides a good starting point but you will need to look elsewhere to learn more. This chapter also includes a description of FetchXML which you will have to learn if you need to write reports for CRM Online.

Chapter 3, Creating Your First Report in CRM, starts with how to use the Report Wizard. It is good to see plenty of screenshots on how the report wizard is used and the results after running the report. The chapter moves on to using Visual Studio. For non-developers, Visual Studio can be a daunting tool, but the author provides an easy to follow example of adding a report wizard report to a Visual Studio project.

In chapter 4, SQL Server Report Builder, the author explains the use of Report Builder and describes how to connect to the CRM database and works through adding elements to a report including tables, matrixes, logos and maps. Much of what you learn in this chapter also applies to writing reports in Visual Studio.

For chapter 5, Creating Contextual Reports, we move onto Visual Studio where the author describes how to create more complex reports. Topics include report parameters, charts, data sources, data sets, grouping on data sets and drill-down.  I found the explanation of report parameters particularly helpful.

Chapter 6, Creating Inline Reports, moves on from report writing to customization and addresses how to add reports to a CRM entity form using web resources. The author provides the required steps and Jscript code. The author’s explanations should help you follow the process even if you have never written Jscript. The author then introduces the Developer Toolkit, which can help manage CRM customization tasks.

Chapter 7, Using Reports and Charts in a Dashboard, describes how to add reports to dashboards which is something that CRM consultants are frequently asked for. However, the main part of this chapter is an overview of working with charts.

For developers, Chapter 8 provides an overview of how to create reports in ASP.NET without using Reporting Services that appear in Workplace | Reports. As a non-developer I found this an interesting idea because I had not thought of this possibility.

Tucked away in the middle of this chapter is a section on scheduling reports which provides the steps for creating report snapshots on a regular basis. However, what is not covered, and I think would be useful, is how to configure delivery of scheduled reports by e-mail. Also, I feel that this topic is misplaced because non-developers might miss it thinking that the chapter is all about development.

In chapter 9, Failure Recovery and Best Practices, the author provides useful tips for troubleshooting reporting problems.  I should think that every CRM consultant has encountered problems with reports. In the topic on using CRM Trace the author describes a third-party tool which is very useful for managing CRM traces. An item that is missing, though, is a reminder to turn CRM Trace off when investigations are complete because tracing can be resource intensive. SQL Trace is also described but at a superficial level. I think more should have been added on when to use each tool. The remaining topics on best practices, report caching and snapshots provide useful insight into techniques to improve report performance.

The last chapter, Mobile Clients, provides a useful overview of reporting options for a variety of mobile clients and explains the (current) limitations.

The book does not provide an in-depth analysis of every area that you will encounter in CRM report writing but I would not expect it to.  So, for example, this book will not make you an expert at writing SQL but it does give you a start.

I have no hesitation recommending this book to anyone that needs to write reports for CRM. It will give you a jumpstart into learning the basics of reporting writing for CRM. But the knowledge you gain can be applied to reporting writing in general, not just for CRM.