The views and opinions expressed in this blog are those solely of the author(s) and do not necessarily reflect Microsoft’s current policy, position, or branding. For official announcements and guidance on Dynamics 365 apps and services, please visit the Microsoft Dynamics 365 Blog.
Choose your path Increase your proficiency with the Dynamics 365 applications that you already use and learn more about the apps that interest you. Up your game with a learning path tailored to today's Dynamics 365 masterminds and designed to prepare you for industry-recognized Microsoft certifications.
Visit Microsoft Learn
2020 release wave 1Discover the latest updates and new features to Dynamics 365 planned through September 2020
Release overview guides and videos Release Plan | Preview 2020 Release Wave 1 TimelineWatch the 2020 Release Wave 1 virtual launch event
Ace your Dynamics 365 deployment with packaged services delivered by expert consultants. | Explore service offerings
Connect with the ISV success team on the latest roadmap, developer tool for AppSource certification, and ISV community engagements | ISV self-service portal
The FastTrack program is designed to help you accelerate your Dynamics 365 deployment with confidence.
FastTrack Program | Finance TechTalks | Customer Engagement TechTalks | Upcoming TechTalks
Microsoft caused quite a bit of unrest when they released CRM 2013, suddenly making the Advanced find button difficult to find, if you are interested I wrote about that in this post – Good CRM design should not make users think
In this post I want to write why I love the advanced find functionality in Microsoft Dynamics CRM.
I view the CRM Advanced find as an awesome swiss army knife
To new users and inexperienced CRM developers it looks like a simple tool to search the records in CRM.
To an experienced CRM developer it’s one of the key weapons in the CRM Developers armoury which when used correctly can save you loads of time and make your life a whole lot easier.
It can speed up navigation, help you create queries for your plugins, export and enrich data and even help you fix bugs. In some cases when being brought onto an existing product, I have used the advanced find to go directly to records of a certain type because I didn’t know where to look in the CRM system.
Advanced find is a tool which allows you to create queries against the CRM database. It allows you to select the fields you want to see in the results and filter the query with conditions.
You can then save this advanced find query as a personal view
The Advanced find is a lot more than just a tool to query CRM because in many situations it can
The reason CRM Advanced find is so useful (and why users and CRM developers were annoyed when Microsoft made it hard to find) is CRM is really one big database full of useful data. The CRM GUI
The CRM GUI (website) has lots of functionality for validating and displaying the data. This is really useful but for CRM Developers they often want to navigate the system quickly and are not interested in the GUI and business logic but just want to get to certain records.
The advanced find lets you search all the records in your CRM database and apply a filter condition to allow you to only bring back the records you are interested in.
One important consideration to remember when using the advanced find is it does apply your security profile, so you will only see what records your security profile has privileges to see.
The beauty of advanced find is it can bypass most the GUI and get to the record you want you want with a couple of clicks.
It can also bring back groups of records you want, which is more difficult to do with the front end GUI
The great thing is you can save the advanced find into a view so you can repeat the process even quicker next time.
In some projects a CRM developer can be brought into the project in the bug fixing phase. It can be difficult to fix bugs when you don’t understand the business logic or how the system works.
Using the advanced find can help you easily navigate to the entity records you are interested because with the advanced find you can view all the entities in alphabetical order.
This can help you if the bug exists on a specific record type and you don’t need to understand the business logic, e.g.
When I have to create a query in a plugin, I usually start with an advanced find to get the logic correct.
You can then download the FetchXML and you can see which fields you need to use and how the filters should be structured
The query I was interested in doing needed to filter out the duplicates so I did it in FetchXML. When I didn’t filtered out duplicates (the OData query) it was returning 1500 records, which slowed down the form load but when I used FetchXML with distinct set to true, it returned 25 records.
You can run FetxchXML code directly in your CRM plugins instead of query CRM using Linq or QueryExpression.
I go through the process in the blog post below
Build Queries with FetchXML instead of QueryExpression
One of the advantages of using FetchXML in a plugin is you can create the query in Advanced find which can sometimes be easier
Saved views can save you lots of time because you are only viewing the records you are interested in and filtering out all the other entities.
Using the Advanced find to select not only the records you are interested in but also the fields is very useful.
Being able to export these records and send them to someone who doesn’t have access to CRM is a very handy trick to customers.
Exporting the data will also allow you to move the data between CRM organisations and environments (e.g. Dev, Test, Prod)
The good old Enrich data functionality, which is has the good, the bad and the ugly all in one. It’s called Enrich the data but what it really means is you can export some records and when you import them it will automatically know which records to update.
The enriching data functionality works by adding the Guid of the records to the export file (and some checksum columns etc) which are read by CRM when you re-import the data. If it sees the values it knows you are not importing new data by updating/enriching existing data.
Once you have a list of the entities you are interested in, it’s easy to bulk edit those records and assign them all the values.
Business Applications communities