Home > Uncategorized > Getting Started with CRM 2011 Online Fetch XML Reporting

Getting Started with CRM 2011 Online Fetch XML Reporting

Here’s some hints on how to get up and running writing SSRS reports in Visual Studio for CRM 2011 Online.  Target audience is those folk who have written SQL query based SSRS reports for CRM 4.0 who need to up skill on the use of Fetch XML in their report development.

 

Getting Setup

Here’s what you need:

- Install SQL Server 2008 R2 Business Intelligent Development Studio from your SQL Server install media

- Install Microsoft Dynamics CRM 2011 Fetch Authoring Extension, which you can download from here.

This will give you the ability to create SSRS reports inside Visual Studio 2008 using the Microsoft Dynamics CRM Fetch data source.  If you didn’t already have Visual Studio installed the install of SQL Server Business Intelligent Development Studio will load it onto your computer (you get a cut down version of VS that just supports report development). 

Creating a report is then as per what you are used to except rather than choosing Microsoft SQL Server as your data source you chose Microsoft Dynamics CRM Fetch and you provide your CRM 2011 online URL, Organisation Unique Name and Windows Live credentials.

The connection string needs to be in this format:

image

The first bit you can just copy and paste from Internet Explorer.  The second bit is the unique identifier assigned to your Organisation. 

WARNING!: this is not the organisation alias included in your CRM Online URL, it is a different value that you have to go here to find by going to Settings –> Customisation –> Developer Resources:

image

The value you want is the one specified as the Organization Unique Name:

image

Now, you only need this if your windows live account is associated with more than one Organization but if you are writing custom reports I suspect you’ll be associated to more than one.

Let’s create our first report… 

Start in CRM 2011 in Advanced Find and create a query for your report, say – All Open Opportunities with an Estimated Close Date in the next 3 months.  Select columns to match the fields you will want available to you in the report designer:

image

Click the Download Fetch XML button and save the Fetch XML query to your desktop:

image

Now jump over to SQL Server Business Intelligence Studio, start a new Report Server project, add a new Report and configure the data source as described earlier:

image

Click Next, and then paste in your downloaded Fetch XML:

image

Now continue through the Report Wizard to define the report appearance and then run the report:

image

Tiding up the report appearance should be business as usual for you if you have built SSRS reports before so I won’t go into that here.

If you missed some fields you can either redo your Advanced Find and paste new Fetch XML over the existing Dataset’s query or just edit the query in the same manner that would have if you had used a SQL query:

image  image

Next, let’s add a parameter to the report.  The easiest way to do this is to start with a Fetch XML statement that has a hardcoded condition in it (like ours does)…

image

… and then swap out the hardcoded value for a parameter variable (anything you like so long as it starts with an “@”):

image  

Run the report and you will see that the heavy lifting has been done for you and a (fairly rough looking) report parameter has been configured for you and it immediately works:

image

You can then tidy the parameter up as you normally would, be editing its prompting text and setting a default value, etc:

image  image

And it won’t be long before your report becomes reasonable looking and a bit more bit functional:

image

 

Happy report writing!

 

p.s. Fetch XML has a few limitations still which will quickly surface as you start building reports.  You need to be aware of these:

  • You cannot specify left outer joins – e.g. The following is not supported: “Select all Accounts who do not have a related Completed Appointment record”
  • You cannot specify group by / sum queries  – e.g. The following is not supported: “Select Account Name, count(*), sum(est. value) from Account Group By Account Name”  – You can only select the records in detail and then perform the aggregation in your report.  But…
  • Fetch XML queries return a maximum of 5000 records.

If these are shot stoppers then your options are:

  • Deploy CRM 2011 on premise rather than online
  • Use SSIS (or similar) to retrieve CRM data each night to create a local CRM data source
  • Use plug-ins (or similar) to populate aggregate fields / aggregate entities / left outer join indicator fields
About these ads
  1. April 6, 2011 at 6:46 am | #1

    Gareth,

    Thanks for the awesome site. An amaxing collection of answers and insights into some of the more advanced (for me) issues I’m grappling with in trying to move to the next level of service for my CRM clients.

    Doug Allinger

  2. jia
    May 31, 2011 at 5:54 pm | #2

    Hello Gareth,
    Thanks a lot for your blog, very helpful.
    I was wondering about this fetchxml reporting , do you know if there is a way to retrieve a report (.rdl) from CRM 2011 online and get it in fetchxml?
    I would like to add a company logo to the “quote” report and move some fields.
    Thanks.

    • May 31, 2011 at 5:57 pm | #3

      Yes you can. Select the Report, click the Edit button on the Ribbon. Then from the Actions menu select Download Report. That will give you the RDL file which you can then open in Visual Studio to make your edits.

      • Scott
        May 31, 2011 at 6:08 pm | #4

        Awesome timing, I was just wondering exactly the same question. Thanks for the assistance Gareth.

  3. Don
    June 30, 2011 at 11:32 pm | #5

    Great help :-)
    Do you also know how to get the guid of the current record that the report is run from and use that parameter in your FetchXML?

    • Caroline
      February 12, 2012 at 11:57 pm | #6

      Hi Don
      Did you ever get an answer to this as I am trying to do the same thing now. I would like the report to run on the current record of my form only.
      Great articles Gareth,
      Thanks Caroline

  4. July 12, 2011 at 2:22 am | #7

    Hi Gareth,
    Aggregations are supported in FetchXML for CRM2011 :-) See http://technet.microsoft.com/en-us/library/gg309565.aspx
    Greets!

  5. James Bamford
    August 3, 2011 at 12:36 pm | #8

    HI Gaereth,

    I am trying to create a Sales Order report where the report only runs for the form the user is on. How would I filter that in my Advanced Find query?

    • August 3, 2011 at 1:01 pm | #9

      Hi James, do a search for this topic in the SDK: “Sample: Make a Report Context-Sensitive”

  6. October 1, 2011 at 1:33 am | #10

    Hi Gareth,

    Thanks for this great tutorial, it’s helped me get started on FetchXML reports.

    I’ve hit a sticking point: Trying to format a currency value. In a SQL report, I’d normally use crm_moneyformatstring which comes from a SQL function. Any idea if there’s an alternate to this for Fetch? SDK doesn’t have any info on it.

    Cheers!

    • October 3, 2011 at 8:14 pm | #11

      Never mind – solved that one, was using Value which gives you the raw value, whereas gives you the correctly formatted string.

  7. Anders
    January 22, 2012 at 7:39 pm | #12

    Hi Gareth

    Nice jo on this page. There is no hard limit on FetchXML query return. See more here http://www.bing.com/search?q=fetchxml+5000

  8. Oscar Iglesias
    February 10, 2012 at 4:58 am | #13

    Hi Gareth,
    Thank you for this great post (and blog), it helped me so much get started on crm.

    I have a problem with reports and subreports in CRM 2011 online and hope you can help me with it (I’ve searched over the internet and in forums of social.microsoft.com and I didn’t got response).

    I’ve created two reports what works fine separately after uploaded to crm 2011 online but when I link second report as subreport of first one and upload it, primary report works fine but the section where subreport had to show I see the message: “Error: Subreport could not be shown.”

    I need to pass parameters to subreport and I try it with parameters and prefiltering but when I make this changes subreport fails, if I delete the changes subreport shows but the data is wrong (because of filter)

    Thanks.

    • Andrew
      May 19, 2012 at 2:10 am | #14

      Hi oscar, I’m experiencing the same problem.
      Did you solve it ?

  9. Steve
    February 14, 2012 at 9:45 am | #15

    The bit about including parameters into the fetch is awesome! Love this blog.

  10. Tom
    June 1, 2012 at 3:26 am | #16

    Gareth. If I’m not mistaken, fetchXML will return more than 5000 records. I did some testing with a client that has well over 5000 records using CRM online and it did return the number of records they had in excess of 5000. Is it certain that fetch will really only return that many records?

    • Chris
      June 15, 2012 at 2:02 am | #17

      the 5000 record limitation is in the BIDS development environment. actual reports can pull more records…

  11. rishi
    August 6, 2012 at 8:01 pm | #18

    Thanks for your blog.

  12. Joe
    September 20, 2012 at 11:01 pm | #19

    FetchXML will return up to 50k rows in CRM Online – check it out yourself – the 5k is a limit on what is displayed on views, but the rows are still there – up to 50k. The 5k limit appears to be an urban legend.

  13. November 26, 2012 at 5:06 pm | #20

    The 5k limit is for the display of fetch xml in dashboard charts, the 10k limit for the export of fetch xml to excel. Both can be extended.

  14. May 7, 2013 at 8:34 pm | #21

    Hi Gareth,

    Thanks for this really comprehensive description of how to build a fetchxml report. I just have one question left… when making SQL-reports it was possible to use CRMAF_ to use CRM’s dynamic filtering as parameters for the report. Is such a thing at all possible with fetchxml-reports? It doesn’t look that way,but I just want to make sure before heading down a wrong track.

    Maria

  1. May 12, 2011 at 5:48 am | #1
  2. August 29, 2011 at 8:18 pm | #2
  3. December 14, 2011 at 5:30 pm | #3
  4. February 21, 2012 at 2:59 am | #4
  5. March 21, 2012 at 11:54 pm | #5
  6. August 20, 2012 at 10:46 pm | #6
  7. August 21, 2012 at 7:27 pm | #7
  8. August 22, 2012 at 9:51 pm | #8
  9. August 24, 2012 at 3:44 am | #9
  10. December 3, 2012 at 10:30 pm | #10
  11. December 3, 2012 at 10:47 pm | #11
  12. December 11, 2012 at 1:04 pm | #12

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 368 other followers

%d bloggers like this: