Sonoma Partners Microsoft CRM and Salesforce Blog

CRM DevTools - Easily Update Hidden or Read-Only Fields for Testing

When testing functionality in CRM, most likely you will need to update some data in order to complete the test.  But what happens if the field doesn’t exist on the record form or is read-only?  One option would be to edit the form temporarily to display the field on the form, update the field value and then remove the field from the form after your test.  A better option, to save the hassle of all that publishing, would be to create an on demand workflow that updates your field directly and then manually run that workflow against your record.  However, CRM DevTools provides an even better option through the Test tab by allowing a System Administrator to update the field value through the record form even if the field doesn’t exist on the form or it is read-only.

First, you need to head over to the Chrome web store and add the CRM DevTools extension to your Chrome browser.  Also make sure you are System Administrator of your environment, otherwise the Test tab will not display.

Next, head to the record you want to update and press F12 which will pop open Chrome’s DevTools pane.  There should be a CRM DevTools tab at the top of the pane.

image

Click CRM DevTools and once it loads, click on the TEST tab.  You can now select up to three fields at a time.  Once you select a field, it will display the existing value in the Value column and then you can change that value.  If the field is a Lookup then you will need to enter the schema name for that Lookup in the Entity Schema Name column.  Then click Update and your field will be set to the new value.

image

Now you can easily update hidden or read-only fields in just a few easy steps without messing with the form or creating unnecessary workflows! 

Topics: Microsoft Dynamics CRM Microsoft Dynamics CRM 2013 Microsoft Dynamics CRM 2015 Microsoft Dynamics CRM 2016 Microsoft Dynamics CRM Online

Dynamics CRM - Entity Change Tracking

With the release of Dynamics CRM 2015 Online Update 1, Microsoft has provided developers many different ways to optimize performance when integrating with other systems.  We already covered Alternate Keys in a previous post which help increase performance by reducing the need to make retrieve API calls in order to find the primary key of a record.  In this post I will cover Entity Change Tracking, another feature of 2015 Online Update 1 which increases performance when needing to send data to an external system by retrieving only a subset of data that has changed since the last retrieval. 

So how does it work?

First you need to enable Change Tracking for the specific entity you want to use it on.  You can do this through the Entity customizations as shown below.

image

Then the RetrieveEntityChanges request can be used in code to get a list of entity records that have changed since the last retrieval.  If it is the first request then you’ll want to pass in an empty string or null to the DataVersion property but subsequent requests should use a token (which is returned from RetrieveEntityChangesRespone) in order to retrieve a list of records that have been changed since the last request.

string token = "";

var records = new List<Entity>(); 
    
var request = new RetrieveEntityChangesRequest(); 
request.EntityName = "account"; 
request.Columns = new ColumnSet("name"); 
request.PageInfo = new PagingInfo() { Count = 5000, PageNumber = 1, ReturnTotalRecordCount = false }; 
request.DataVersion = token;    
    
while (true) 

     var response = (RetrieveEntityChangesResponse)orgService.Execute(request); 
    
     records.AddRange(response.EntityChanges.Changes.Select(x => (x as NewOrUpdatedItem).NewOrUpdatedEntity).ToArray()); 
     records.ForEach(x => Console.WriteLine(x.Id)); 
     if (!response.EntityChanges.MoreRecords) 
     { 
         token = response.EntityChanges.DataToken; 
         Console.WriteLine(token); 
         break;    
     } 
        
     request.PageInfo.PageNumber++; 
     request.PageInfo.PagingCookie = response.EntityChanges.PagingCookie; 
}   

Running this code using LinqPad in a brand new Online trial org with no token provided a list of 10 records that have been changed:

c15e1260-e2cf-e511-80de-a45d36fd127c
c35e1260-e2cf-e511-80de-a45d36fd127c
c55e1260-e2cf-e511-80de-a45d36fd127c
c75e1260-e2cf-e511-80de-a45d36fd127c
c95e1260-e2cf-e511-80de-a45d36fd127c
cb5e1260-e2cf-e511-80de-a45d36fd127c
cd5e1260-e2cf-e511-80de-a45d36fd127c
cf5e1260-e2cf-e511-80de-a45d36fd127c
d15e1260-e2cf-e511-80de-a45d36fd127c
d35e1260-e2cf-e511-80de-a45d36fd127c

And then the DataToken:

568840!02/10/2016 21:11:27

Running the same code above but passing in the token of “568840!02/10/2016 21:11:27” will now yield no results as expected as Account records haven’t been changed since we made our RetrieveEntityChanges request.

As you can see, this new request will be very handy when there is a need to synchronize data to external systems.  Now you can easily optimize performance by only synchronizing records that have been changed since the last sync.

Topics: Microsoft Dynamics CRM Microsoft Dynamics CRM 2015 Microsoft Dynamics CRM 2016 Microsoft Dynamics CRM Online

Dynamics CRM – Specialized Operations

Specialized Operations were introduced in Dynamics CRM 2015 Online Update 1 and now included in Dynamics CRM 2016 as well.  They provide the ability to do what used to take separate messages (such as Assign or SetState) all in a single Update message. 

The following is the list of special messages that can now be executed in a single Update message:

  • AssignRequest
  • SetStateRequest
  • SetParentSystemUserRequest
  • SetParentTeamRequst
  • SetParentBusinessUnitRequest
  • SetBusinessEquipmentRequest
  • SetBusinessSystemUserRequest

Let’s jump into some sample code.  Before CRM 2015 Online Update 1, this is what it would look like to make an update to a record and then assign it to a different owner.

    var update = new Entity("contact");
    update.Id = contactId;
    update["firstname"] = "Blake";
   
    orgService.Update(update);
   
    var assignRequest = new AssignRequest();
    assignRequest.Assignee = new EntityReference("systemuser", ownerId));
    assignRequest.Target = new EntityReference("contact", contactId);

    orgService.Execute(assignRequest);

As you can see, both the Update message and the Assign message need to be executed.

Now with CRM 2015 Online Update 1 and now CRM 2016, the Assign message can be merged into the Update message and save an extra round-trip to CRM as shown below.

    var update = new Entity("contact");
    update.Id = contactId;
    update["ownerid"] = new EntityReference("systemuser", ownerId));
    update["firstname"] = "Blake";

    orgService.Update(update);

This new feature also has an impact for plug-ins and workflows.  If you perform an Update message that contains the Owner field then any workflow or plug-ins that are registered on Update will trigger once for all non-owner fields and then again for the owner fields.  The same goes when updating state/status fields.

Topics: Microsoft Dynamics CRM Microsoft Dynamics CRM 2015 Microsoft Dynamics CRM 2016

Visualizing Opportunity Data with Dynamics CRM Phone Client

With the move to CRM 2016, on premise customers can now get some of the cool features that CRM Online customers have been enjoying since the spring of 2015. One of these newer features is the updated phone client. Much has already been written about this awesome new client, so I am going to focus on a little nugget I found while testing the client…opportunity calendar visualization!

When looking at your opportunity list, tap the ellipsis ( … ) at the bottom to show the navigation bar. At the bottom, you’ll see Change Visualization action.

opp_phone_menu        opp_phone_menu_change

At first, I thought this had something to do with the native charts, but to my surprise, it was something much cooler. You’ll see that you can show the List/Grid by default, but also have a new Calendar option. After selecting the calendar option, you will now see the opportunities grouped by estimated close date and even have the ability to view by day/week/month.

opp_phone_week       opp_phone_month

And while a bit subtle, notice the dates on the month view change to a blue when opportunities are estimated to be closed on that day (see Jan 18, 2016 in the above example). This helps users know that data exists before tapping a date.

I love the direction the Microsoft team is taking with their mobile client. These small changes make for huge usability  gains for end users and also allow us to rethink how we look at traditional business data.

Topics: Enterprise Mobility Microsoft Dynamics CRM 2015 Microsoft Dynamics CRM 2016

Permissions Issues for CRM 2013/2015 Forms

Today's post is written by Kyle Bippus, an Associate Software Developer at Sonoma Partners.

I was on a support case with a client where a sales representative was getting a strange error from CRM when converting a Lead into a Contact:

Photo one

This case was unusual because the sales representative had the correct Read permissions for the Lead and Contact entities, as well as all other related records on the form.  Furthermore, if the same user had been given the System Administrator role and had attempted to access the newly-created Contact record, then had the role removed, the user could then view the record instead of getting the above error.

Since the error does not give any more information beyond “Insufficient Permissions,” the next step was to scan the trace logs and look for any error messages that look similar.  After some searching I came across this message, which occurred around the time I replicated the error:

Principal user…is missing prvReadComplexControl Privilege

According to the Microsoft Dynamics CRM SDK, the prvReadComplexControl privilege is the Read permission for the ComplexControl entity (also known as Process Configuration).  Below is the SDK’s description for this entity:

This entity is for internal use only. However, users need read access to this entity in order to see the updated experience for lead and opportunity forms.

Essentially what this means is that users need the Read privilege for this entity in order to view the user interface for entity forms in CRM 2013 and 2015.  This applies not only to Lead and Opportunity, but almost all entities in CRM (some entities, such as Resource Group, still retain the look and feel from CRM 2011).  All security roles should have the Read privilege for the Process Configuration entity by default, but sometimes this configuration gets messed up when an organization is upgraded from a previous version of CRM.

So all we need to do is set the Read privilege for this entity to “Organization” for each affected security role.  Below are the steps to do just that:

  1. From your home page, navigate to Settings, then to Security, then to Security Roles
  2. Double-click on the role you want to modify
  3. Click the “Customization” tab, then set the Read privilege on the Process Configuration entity to “Organization” (see picture below)

Photo two

You should no longer see the “Insufficient Permissions” error. I hope this helps! If you have any additional questions, contact us to speak with one of our Microsoft Dynamics CRM experts.

Upgrading to Microsoft Dynamics CRM 2015
Topics: Microsoft Dynamics CRM 2013 Microsoft Dynamics CRM 2015

Introducing Dynabacus – Microsoft CRM Record Count Tool

Today’s guest blogger is Mike Dearing, a Principal Developer at Sonoma Partners.

Ever wanted to get an accurate record count of all of your organization’s companies, contacts, <enter additional entity names here…>?  Well, you aren’t alone.  Your current options to accomplish this are limited. They include doing excel exports, writing reports, or performing SQL count queries (if your deployment is on-premise). We decided to develop a user-friendly, managed solution that you can easily drop into any Dynamics 2015 on-premise or online environment to perform these counts for you.  Dynabacus (the Dynamics-abacus) gives CRM administrators the ability to get the record count of any number of entities (native or custom) simultaneously.  Administrators can also refine these counts further by applying personal and system views if they choose to do so.  Then with the simple click of a button, Dynabacus crunches the numbers for you using supported API calls and returns the results.

clip_image001

And the best part is, it’s available now for free! Download it today and let us know what you think!

Topics: Microsoft Dynamics CRM 2015 Microsoft Dynamics CRM Online

Upgrading to Microsoft Dynamics CRM 2015? Here's What You Should Consider

image

Are you currently working with a version of Dynamics CRM pre-2015?  Have you not yet experienced the new flattened “single window” UI?  Do you not know what a CRM Solution is?  Or even worse, do you still use call-outs and deploy custom web resources to the physical CRM Servers (yikes!)?  If so, it may be time to start thinking of an upgrade to Microsoft Dynamics CRM 2015.

Upgrading any software can be a frightening thought and something you’d rather just put on the back burner.  However, delaying the upgrade has some negative impacts as well:  you obviously miss out on the latest and greatest features, and delaying the current pain of an upgrade may mean more pain down the road if you’re not on top of the latest software. Upgrading from 2011 to 2015 is much easier than 3.0 to 2015.  In other words, your current self can rest easy, but the pain you’re causing your future self is growing by the day. 

How configured are you?

A good consideration to take when you do decide to upgrade is, how much of a beast has your CRM system become?  You may have had multiple vendors, multiple deployments, multiple internal project sponsors with different priorities of a CRM system, and years of band-aiding a system you don’t even want to think about upgrading.

In this scenario, it may be best to take a step back.  Look at the Dynamics CRM upgrade as an opportunity to clean up all the noise that has accumulated in your deployment and revalidate the work that has been done over the years.  Use this as your opportunity to deploy 2015 in a “clean slate” and interview the key business groups as if they don’t have a CRM system at all.  Just because something was built and functionality was added to your deployment, doesn’t mean it’s needed.  Ask the question “why?” and if nobody can provide an answer, seriously consider leaving it behind.

Going through this process means you’ll most likely need to write a process to migrate data from your current version, to 2015.  You don’t want to go through the upgrade process which would automatically take all your current customizations and migrate them to 2015.  Instead, you’ll want to start with a fresh install and reconfigure your environment based on the requirements you obtained during the “revalidation discovery” process.  E.g., there may be fields that drop from your schema going forward.

On the other hand, if your system is small, relatively new, and hasn’t had many deployments to it since go-live, you may want to have the upgrade process perform most of the heavy lifting for you.  This means you won’t have to write a migration process – the upgrade process will automatically perform any data conversion needed for 2015.

If your current system hasn’t been too configured, chances are that the changes you’ve made have been supported.  Therefore, they should automatically upgrade through the upgrade process with not much falling out for you to manually clean up.

Budget is a big driver of this conversation as well.  If you have a massive implementation, it may be quicker for you to start fresh and implement just those features you want to carry forward versus trying to upgrade an old archaic system with a lot of deprecated code.  However, if your implementation isn’t complex, and all your code was supported via the API and nothing is deprecated, an actual upgrade may be quicker versus redeveloping.

Pre 2011 vs. Post 2011

There are a lot of clients out there that aren’t on Dynamics CRM 2011 or greater.  If this is you, you’ll want to definitely consider adding more time to your upgrade process as 2011 introduced some pretty groundbreaking changes to the deployment model.

With 2011, all customizations and configurations are packaged up in a Solution.  This includes any custom web pages, JavaScript files, etc.  With versions prior to 2011, these files were manually deployed to the server which means that they would have to be converted to 2011 format prior to upgrading to 2015.  If you’re on 2011 or later, then that work has been done already for you.  If you’re on a pre-2011 version, then you’ll need to factor that time into your upgrade decision.

Continued Investments into Mobile

Microsoft officially entered the mobile space with Dynamics CRM 2013, and they continue to improve upon that story.  With the release of 2015 they made enhancements to the Tablet Client by introducing an offline story, and making the dashboards more configurable.

Now with 2015 Online Update 1, they have introduced a refreshed phone app that has the same rich functionality that the tablet app has.  There’s still a lot of room for improvement in these apps, and during our time at Convergence 2015, the mobile roadmap looked feature rich.  If mobility is something you’re looking to get into, upgrading to the latest version of CRM could go a long way as you’d get a free mobile app in the process.

Features, features, features

Of course, the main driver for upgrading usually is the features that the new product comes with, and Dynamics CRM 2015 doesn’t fall short in this category.  With 2015, and 2015 Online Update 1 (Carina), Microsoft has continued to add to its already feature-heavy product.  Key notable features rolled out in these latest versions are:

  • Multi Entity Search
  • Business Rules
  • Business Processes
  • Continued Mobile Improvements
  • Hierarchical Security
  • Hierarchy Visualizations
  • Outlook Sync Improvements
  • Folder Level Tracking – Outlook Email Sync
  • Refreshed UI with cleaner Site Map
  • Theming
  • Date Only Fields
  • Office Groups Integration
  • OneNote Integration
  • Immersive Excel
  • Export to Excel Improvements

If any of these features are something you’ve been waiting for in the product, an upgrade now may be a no-brainer.

If your organization is considering a Microsoft Dynamics CRM 2015 upgrade, please let us help you decide the best way to approach the project.

Topics: CRM Upgrade Microsoft Dynamics CRM Microsoft Dynamics CRM 2015

Video: Control Tower by Sonoma Partners

Are you experiencing end user adoption problems within your CRM system? Perhaps you have built out a great CRM system with all the bells and whistles, but you're finding that your people still aren't using it. When companies try to solve their end user adoption problems, they oftentimes have difficulty understanding the scope of the problem.

Most of the time, you can't quantify how many people use your CRM system on a daily, weekly, or monthly basis, nor can you identify what types of records they are using and what they do with those records.

Control tower 2

System Administrators are left to track down rumors about what people are doing in the system and without the information, that quantifiable data, you can't make changes to improve the system to improve end user adoption.

That's where we come in. We've built Control Tower, a cloud-based app that measures end user adoption on a day-by-day basis and helps you answer three important questions:

  1. Who is using your CRM system?
  2. How are people using your CRM system?
  3. What are people working on within your CRM system?

 Watch the demo now to learn more about Control Tower.

 

Have a question about Control Tower? We're here and happy to help you get the answers you're looking for.

Topics: Microsoft Dynamics CRM 2015

Announcing CRM DevTools for CRM 2015 and Update 1!

Last January we released a brand new tool called CRM DevTools for CRM 2013 and 2011 UR12+.  Today we’re happy to announce a new update that supports CRM 2015 and CRM 2015 Update 1.  If you missed the original release, head here for usage information or here for the latest release.

Along with CRM 2015 and Update 1 support, we added a few more handy features.

Note:  Most of these new features will open a new window so be sure enable pop-ups

Form Tab – Record Properties

The Record Properties button on the Form tab brings back the old Properties page from CRM 2011 that still exists but isn’t surfaced anywhere in the UI.  The page displays the permissions on the record and the Created By, Created On, Last Modified By, and Last Modified On.

image

image

Form Tab – Performance Center

The Performance Center button on the Form tab displays the native Performance Center on top of the record form.  The Performance Center is used to debug any performance issues with a record form to see where it can be optimized.

image

image

Debug Tab

The new Debug tab replaces the old DB & Server tab.  The information from the old tab is now within the Environment Info button.  The Debug tab has 5 buttons to provide easy access to native debug pages within your CRM environment.

image

Debug Tab – Diagnostics Page

The Diagnostics Page button opens the native Diagnostics page for your environment.  This page helps debug any network issues and admins can use it to run a latency and bandwidth test.

image

Debug Tab – Environment Info

The Environment Info button opens the native Debug Information page for the CRM environment.  It contains version information for the CRM server and database, along with other settings. 

image

Debug Tab – Default Solution

The Default Solution button is pretty straight-forward and will open up the default solution for the organization.
 

Debug Tab – CRM For Tablets

The CRM For Tablets button will open up the CRM For Tablets app within your browser.  This is very handy to help debug any JavaScript issues with the app.  The native browser developer tools can be used to see any JavaScript errors that might occur within the app.  It can also be used to just see how the app will look with your organization.

image 

We hope you enjoy the latest release of CRM DevTools as much as we do!  Hit us up in the comments with any feedback or suggestions for future releases.

Topics: Microsoft Dynamics CRM Microsoft Dynamics CRM 2015 Microsoft Dynamics CRM Online

Refreshed Dynamics CRM Phone App Available

A few months back, Microsoft announced the new and improved version of their Phone Client would be available with the Spring 2015 release.  However, with releasing any app to the various app stores, they’re not released immediately.

However, recently the app did show up in the Apple app store and we were able to get our hands on it to take a look and compare it to the previous version.  The previous version is still available in the app store, and has been rebranded “Dynamics CRM for phones express.”  A couple years ago we blogged about it’s release and the functionality it provided back then.  I linked to that post so you could compare and contrast the look and feel of the previous express version, to the new and improved version.

The new version, branded “Dynamics CRM for phones”, is now available in the Apple store, Windows store, and Android store.  You can tell the difference in the apps based on the icon and name.

imageimage

Microsoft is moving to a “configure once, deploy everywhere model.”  What does that mean?  That means the life of a configurator is going to be that much better.  More specifically, the form customizations you make in the CRM web client, will now not only be what you see on the CRM Tablet client (as they have been since it’s release), but will also be what you see on the new CRM Phone client.  Therefore instead of having to update the main forms AND the mobile express forms, you’ll just need to update the main form for any changes you make to be applied across the board.

Now to the details.  What does the new Phone Client look like?  Well if you’ve used the Tablet Client before, it’ll look very similar to that.

When you initially log in (requiring only your IFD URL to your organization, user id and password), you’ll see your home page.  This home page is the Sales Dashboard.  However, in the Web Client, you can create additional dashboards that can be selected when you’re on the home page on the Phone Client, and you can also make that dashboard your default dashboard.

image  image

As you can see, from here you’re able to view records that you’ve pinned to your home page.  You can also resize tiles that are on your home page and this makes it super convenient for records with contact information like the Patrick Sands sample contact record above.  You can easily email and call this contact now directly from your home page without having to click into his record.

You can also see at the top of the page the global menu bar which has the following commands from left to right:

  • Back – takes you to previous pages
  • Home – takes you to your home page
  • Search – initiates a multi-entity search
  • Site Map – displays the entities you can navigate to

Also on all pages at the bottom right is an ellipses.  Clicking on this presents more options for the area you’re working in, as well as allows you to create a new record from anywhere you’re at within the application.

image

When you navigate to an entity from the site map, you can create a new record of that entity type by clicking the plus button at the top of the page.

image image

When on a record, you can view the data about the record and related data very easily.  The Phone Client now uses the same exact forms that the Tablet Client and Web Client use (configure once, deploy everywhere).  If you’re going in to talk to a customer, you can navigate to their account and view any open cases or opportunities immediately from the Phone Client.  You can click into an Opportunity to then see the process based form, and where you’re at within the sales process.

image image image

The phone app also allows you to easily create emails and make phone calls by clicking on email address and phone number fields.  The email fields will automatically open your native email client, and the phone fields will automatically initiate your phone client.  The good thing is after you hang up the call, you’re returned to CRM with a new phone form initiated so you can just punch in the details and click save.

image image

image image

The integration between the Phone Client and the native mobile phone doesn’t end there.  Any address field on the application is clickable, and when doing so, you’ll open up the native map application.

The Phone Client also has a disconnected mode just like the Tablet Client.  While the offline mode is better that previous versions, this is still lacking in that it’s not showing you all records that you have access to, but instead, recently accessed records.  You can create new records while offline (called offline drafts), but unfortunately you cannot modify records while offline unless it was one that you just created while offline.  You can view your offline draft records by navigating to them via the Site Map (you’ll see a new “Draft Records” entry with a count of drafts).  Then when you’re back online, you can go into this list of drafts, and re-save them for them to save to the CRM database.  Not ideal, but is much better than nothing, and I’m really looking forward to what Microsoft has in store for vNext.

image image image

It’s great to see Microsoft continue this “mobile first’ mode and add more products to it’s repertoire.  Enhancing the Mobile Express app and making a true mobile phone app now rounds out their suite of products (web, tablet, phone) to all be first class.  Next steps are to add more features to these apps so that functionality that’s available on the web, is also available on these apps (e.g., custom web resources).  I’m also looking forward to seeing how they further improve on their offline story, and hopeful they provide a true offline solution where users can work with existing records while offline, and not only new records they create while offline.

However, as you can see, the application is pretty robust as it stands.  And the best part is the cost:  FREE!  Go ahead and download your copy now and start playing around.

Topics: Enterprise Mobility Microsoft Dynamics CRM Microsoft Dynamics CRM 2015 Microsoft Dynamics CRM Online