CRM Tools

26Nov

Fetch XML Editor Error Handling

Recently I added an update concerning the Fetch Tester 3000 containing some improved error handling.  If you are unfamiliar, Fetch Tester 3000 is a terribly named Fetch XML Editor available on CodePlex.  Before we look at the Fetch XML Editor Error Handling, let me provide a quick general update…

Twitter is awesome!

Last Friday was interesting for me. I finally released the editor and oddly enough someone else released one as well.  These solutions were hours apart and @crmanswers brilliantly called it “FetchXML Friday.”

The FetchXML builders are quite different presently but the feature paths look similar.  My plan is to have the Fetch Tester 3000 work with both the XrmToolbox and as a managed solution within CRM.  I can see users having a strong preference for one way or the other and so why not both?  I also want to build a GUI.  In fact, I’ve got a laundry list of features planned.

The benefit of the managed solution is leveraging context within CRM.  I want to save and edit views with this tool.  The SDK allows for complexities the normal interface doesn’t offer.  Additionally, it would be cool to have an advanced find and switch to the Fetch Tester 3000 with it loading what’s already built in the advanced find.  A managed solution can also be used with tablets.

Read More »

14Nov

Fetch XML Editor (Part 2)

The saga continues…

I’m infatuated slightly so I’m not trying to hype this as much as just broadcast my own excitement.  The tool might not be as easy as stunnware was back in the day, but it should make things significantly easier.

Fetch XML Editor (Part 2)

Tonight I was able to get the auto-complete working for the linked-entity relationships (one-to-many).  Justin has got the validation taking place and it’s pretty incredible.  The error messages are clear and helpful.

I also built a mockup of the interface (let us know your feedback).

Love it or hate it?

Love it or hate it?

 

Random Useless Info

Found something the other day that I thought was interesting.  I never noticed this because I usually validate my fetch using Notepad++, but CRM doesn’t validate your fetch against the schema before executing.  This is probably due to performance.

Anyhow, this fetch will execute:

The results are NOT correct; however, the fetch does execute.

Why does this matter?  Look, I already said this was useless…  But it also means the validation feature within ft3 will be optional.

12Nov

Fetch XML Editor (part 1)

I’m a big fan of Fetch XML.  Unfortunately, to many, it can be frustrating.  Anytime I’m at a conference and I talk about fetch being my preferred way to pull data, I unintentionally create an argument.  I get that fetch is complicated.  I agree that fetch barely has any of the features of SQL.  However, fetch is still the fastest way to pull data from CRM and offers the most flexibility in retrieving complex information.

Note: As a reference for performance, if you ever used my CRM Data Detecitve tool, you’d know that aggregate calls are quite fast.

Years ago I wrote a few blog posts on executing fetch via JavaScript simply because the 2011 endpoint had some awesome functionality I wanted to leverage.  Later I wrote a simple tool for my own use and dubbed it Fetch Tester 3000 (after mystery science theater 3000).  I never published this but friends saw the tool and kept asking for me to share it.  A couple weeks ago a buddy mentioned wanting to create a community tool and I mentioned my fetch utility.  At that point we decided to upgrade the tool and get this out to the community.

Why create a Fetch XML Editor?

Simple.  To make writing fetch easier than ever.  But if we’re making a fetch tool, we have to include some extra features:

  • Editor with an intelligent auto-complete
  • Fetch XML Schema validation to provide better error messages
  • Tabular output with export to excel functionality

These are only a few of the features we’re actively addressing and here is a sneak peek…

Auto-complete of CRM metadata

 

 

18Jul

Sending Text Message Alerts from CRM 2013

I often find users are looking for ways to alleviate the email overload.  Sometimes important emails are missed due to a hectic day.  In some situations a remedy I like to incorporate is the ability to text message a user for events or status changes the user really cares about.  Leveraging Microsoft CRM and cell phone carriers’ email feature, we can offer users the ability to receive critical alerts via text messaging in addition to normal email.

 

Emailing a Text Message

What’s great about this is that you don’t need to install a special add-on to send text message alerts from CRM.  What you will need is the recipients cell phone number and carrier.  Each carrier has a specific text message domain, here’s a list of the most common carriers (full list here):

Carrier Domain
AT&T @txt.att.net
Sprint @messaging.sprintpcs.com
T-mobile @tmomail.net
Verizon @vtext.com

All of the carriers use the format of phone number followed by the domain.  For example to send a text message to a Verizon user, you’d email them 8645551234@vtext.com.

When you send text message alerts from CRM you’ll have the subject in parenthesis (if populated) and the body will be shown right after.  Here’s an example:

image

Read More »

25Apr

CRM 2013 – Aggregate Query Record Limit Exceeded

If you are using my CRM Data Detective or trying to perform aggregate queries against your CRM database, you may occasionally see an obscure error message.

CRM 2013 - Aggregate Query Record Limit exceeded

CRM 2013 – Aggregate Query Record Limit Exceeded

 

The specific message is:

AggregateQueryRecordLimit exceeded.  Cannot perform this operation.

 

CRM 2011 and CRM 2013 by default are limited to performing aggregate queries on less than 50,000 records.  With online, you cannot change this value; however, with on premise or partner hosted you can.  I’d recommend modifying this value to 250,000.

In my experience, CRM easily handles 250,000 records as long as you’re following the hardware specs Microsoft recommends.

Modifying the On Premise Settings

Warning!  If you are unfamiliar with making these changes, ask someone who is familiar for help.  Whenever you are making advanced setting changes, use caution.

To increase the limit, you’ll need to modify:

Database: MSCRM_CONFIG
Table: Deployment Properties
Column: AggregateQueryRecordLimit

To query the current value:

To modify:

 

Here’s an MSDN reference for using C# and/or PowerShell: http://msdn.microsoft.com/en-us/library/gg328128.aspx

 

If you are interested in other limits CRM has, take a look at this:

http://social.technet.microsoft.com/wiki/contents/articles/12601.crm-2011-timeouts-and-limits.aspx

 

I hope you enjoy!

14Feb

CRM DevTools Extension by Sonoma Partners

Blake Scarlavai over at Sonoma Partners built a very cool Chrome add-in called CRM DevTools.  This applies to CRM 2011 UR12+ and CRM 2013 and allows you to quickly find the record’s GUID without having to remember Xrm.Page.data.entity.getId() or typing any of this into the console directly.  The tool also allows you to execute fetch and see the results.  This is a great time saver and something everyone should have in their toolbox.

Here’s an excerpt:

CRM DevTools

CRM DevTools is an extension to Google Chrome which can be found here in the Chrome web store.  This extension provides a variety of tools to help optimize customizing and troubleshooting within Dynamics CRM.

Form Information

CRM DevTools - Form Information

  • Displays the current form’s back-end information
    • Entity Name
    • Entity Id
    • Entity Type Code
    • Form Type
    • Is Dirty
  • Ability to show the current form’s attribute’s schema names
  • Ability to refresh the current form

Current User Information

CRM DevTools - User Information

  • Domain Name
  • User Id
  • Business Unit Id

There is a lot more to what this add-in can provide.  Here’s the original post.  I think this is a great idea and I’m excited to see if more and more functionality is added to this down the road.

26Sep

Introducing CRM Data Detective

With my eyes focused on visual studio, I didn’t even notice her walk into my office.  No knock, no “hello”, just an aura of frustration crashed into one of my pleather chairs.  I looked up to say “hi” and was met with a  silent cry for help.  I’ve seen this look before and knew whatever it was, it wasn’t going to be easy.

Turns out a new customer was coming to us after a failed CRM implementation with another partner.  Doing what I do, I see it every now and again.  This customer, was a really good kid, but unfortunately got mixed up with the wrong crowd.  It happens.  You can’t blame the kid, but sometimes those shiny lights turn out to have a dim glow and user adoption turns into user betrayal.

My colleagues frustrations came from how the configuration was all over the place.  Fields were scattered all over the place; some were used, some were hidden, but all of it was a mess.  We didn’t have a requirements document to fall back on, but we did have one crazy idea to solve this mystery… CRM Data Detective!

CRM Data Detective Landing Page

CRM Data Detective Landing Page

Granted, CRM Data Detective wasn’t our only method, but it clearly helped.  We used the Data Detective to analyze the customer’s CRM environment and got a handle on what attributes we could remove and which attributes needed to be more prevalent on the form.  Another case closed and another happy customer.
© Copyright 2012-2014, All Rights Reserved