Tip #303: Name your relationships

Scott “Captain Redlaces” Sewell reminds us to name our relationship display names responsibly. Say you have multiple contact lookups on the account form. If you go with the default naming for the related entity navigation, this will create multiple navigation links with the same name. You might be able to get away with this in browser, but it will be a big problem in the phone or tablet apps. When someone looks at a contact, the related record section of the form will show multiple links with the same name, and users won’t know which to use.

To avoid this, use a custom label for the navigation pane item in the relationship definition. Give the relationships a descriptive name.

relationship name

 

 

Tip #302: Optimize CRM by updating statistics and reorganizing indexes

Another SQL nugget from Gayan “Mr Performance” Perera:

If you’re running CRM (any variant) on-premise you can optimize the speed of the system by setting up two management jobs inside SQL. First, update statistics of the organization_MSCRM database every day (outside business hours). Second is to reorganize the indexes of the organization_MSCRM database every 2-4 days.

Unlike #foxnewsfacts, Tipp Jarr would not take this unchecked:

T-SQL for both, please?

GP: Umm, no t-sql for it, it can be done via Maintenance Plan > Drag and drop the Update Statistics task/Reorganize Indexes task from the toolbox

Tipp Jarr: I thought that there is statistic update job already in CRM?

GP: As far as I know the scheduled jobs only does a reindex. Reindex does update statistics as well but it’s a sledge hammer on a nail. Better to update statistics and then reorganize. It’s also faster so doesn’t block.

Tip #301: Using a team for system administrator access

Gustaf (not V) Westerlund mentions that while it may be attractive to create a team with System Administrator role to simplify security administration, the “inherited” approach is not sufficient to grant users all privileges that they need as System Administrator. For example, users cannot publish Business Rules if they don’t have a user role that grants them this privilege.

To better understand the limitations of CRM team security, read this classic from Adam “it’s not really inheritance” Vero.

Tip #300: Adding a specific activity type subgrid

Occasionally I get a design requirement to have a subgrid on a form that only includes a certain type of activity. For example, a grid of scheduled appointments on the account form.

This sounds simple, but due to the mysteries of the activity pointer, it is not so straightforward.

If you add a subgrid and select one of the activity entities, such as appointments or tasks, the subgrid will display correctly; however, when a user adds a new record by hitting the “new” button, the regarding field on the created record will not be set.

Alternatives

Instead of creating a subgrid that is pointed to the specific activity entity, make a grid of activity pointer records and set the view for the subgrid to a view filtered to the desired activity type. Records created from this grid will have regarding object set. The downside is that when a user clicks the “new” button, the user will have to choose the type of activity to create. If they select an activity type outside of the subgrid filter, the created activity will not appear in the subgrid after it is created.

Another option is expose the create button for the desired activity type on the command bar using the ribbon workbench. Way back in 2011, the ribbon contained create buttons for each type of activity. These still exist in 2015, but they are hidden by default. Unhide the button and teach users to create records from the command bar.

Tip #299: Schedule CRM on premise reports

Jim “Sourdough Master” Steger sent us a fresh reminder that, despite all the advantages of CRM Online deployments, on premise installations have a few aces up their sleeves when it comes to reporting, and here is one of them:

Don’t forget about the ability to schedule SQL Server Reporting Services (SSRS) reports when using CRM on premise. This is a great way to do automated alerts across multiple records or more complex results without having to rely on a custom solution. Create a report in Dynamics, then publish for external use. Then go into SSRS and create a dynamic data subscription to the appropriate users.

Tip #298: Living in the past

’m currently on CRM 4.0. How should I upgrade to CRM 2015?

First of all, it is possible to upgrade your CRM environment database to 2015, but it is multiple steps. There is no direct upgrade path — you cannot take a 4.0 database and import into CRM 2015 as an organization.

The upgrade path would be:

  1. 4.0 —> 2011
  2. 2011 —> 2013 SP1
  3. 2013 SP1 —> 2015

The important question is should you upgrade your database, or should you start fresh?

Important considerations:

  • You will need to set up a CRM 2011 server (and SQL and SSRS) and a CRM 2013 SP1 server (and SQL and SSRS) to use for intermediate upgrade steps.
  • You will need completely new server architecture for 2015.
  • For each upgrade environment, you will need to upgrade the database 3 times. Each of these upgrades has potential to take a long time and multiple points at which the upgrade can fail. In most deployments the upgrade happens 3 times (dev, UAT, and Production), so that would be 9 upgrades for most deployment.
  • After the upgrades, all JavaScript, Plugins, forms, and custom security roles will need to be rebuilt.

Given the amount of work required to upgrade from 4.0 to 2015, and that your configuration will ultimately need to be rebuilt anyway, in many cases a company still on CRM 4.0 may be better off starting with a clean, fresh deployment of CRM 2015, rebuild your configuration, and import the data that you wish to keep using the Kingswaysoft SSIS adaptor or Scribe Insight. In many 4.0 environments, the cost of starting fresh in 2015, rebuilding the configuration, and importing data is less expensive than doing the multi-step database upgrade.

Benefits to this approach:

  • This approach can make it easier to incorporate business rules, hierarchical security, rollup fields, and other new features that will result in less complex customization.
  • This approach eliminates legacy artifacts that remain after an upgrade.
  • This approach makes going online an attractive option.

This may not be the answer for every 4.0 environment—if you have a very complex configuration with a large amount of data, upgrading may be your best option; however, if you are an average sized company with simple to moderate complexity customization, a fresh start may be the best option.

Tip #297: What to consider before changing your CRM partner

It’s not you, it’s me

This is not a novel way to start a new year but sometimes we do need a fresh start, and that means saying sayonara to the existing partner, would it be either your spouse or your CRM partner. To discuss this sensitive topic, we invited some experts in the field of CRM customer psychology to stop by the Tipping Truckstop.

truckstop

Jamie “Xerox” Miley:
I was wondering about how to advise larger, heavily customized clients on things to consider when switching partners. The following is a list of three things that stand out right off the bat, but I was wondering what other considerations and concerns people have seen that need to be taken into account.

Issue: Custom Source Code Location
Current Partner is using an in-house Team Foundation Server system when they sent us custom source code for the plugins and other custom solutions. The question that raises is whether or not current partner was diligent in keeping customers internal source code version control repository up to date with the latest code at all times.

Mitigation:
Ask current partner if they had a clear process they have been following in order to update your source control repository, whether followed or not, request the latest copy of the source code for all custom code that pertains to your implementation.

New Partner would prefer to have customer version control (if TFS) be the repository for all source code after the Partner switch. If no Team Foundation Server system is available, we do have an in-house TFS that can be used for source code version control.

Issue: Hosting
While the implementation at customer may be on-premise, you should validate with current partner that there are no components hosted by current partner that need to be migrated to a different location

Mitigation:
Ask current partner whether or not any customizations or items are being hosted by them in proprietary environments. Even if something is missed, it will be discovered in the upgrade regression testing process and can be retrieved and re-hosted at a later time.

Issue: Partner of Record Change / Support Considerations
Partner of Record is held with current partner which leaves them as the main contact with Microsoft for your account for support and/or any Microsoft Partnership considerations.

Mitigation:
Formal partner of record change form completion and submission to Microsoft with new partner and associated Partner information. New Partner will help you with this process when the time comes.

Gayan “Not Daddy” Perera
Couple of other things we’ve noticed:

  • Add-on solutions / licensing of those add-ons
  • Open source solutions that are installed without proper licensing considerations / no migration paths
  • Networking side of it (DNS, Routing, Certificates, Security etc)
  • SQL server licensing (especially going from SPLA to On-Prem or version jumping)
  • Lack of system documentation which might cause you to miss hidden services
  • SharePoint integration / migration of data responsibilities

To add to the source control issue, we’ve come across situations where the code provided by the previous vendor doesn’t match the code running on the server. When this happens on web resource it’s not such a big deal but on plugins and integrations it becomes a nightmare comparing compiled assemblies…

Anne “Ex-MVP” Stanton
You might recommend that they leverage a tool that can export the documentation of their solutions. This will allow them to see if the partner documented the custom fields within the system and they can then potentially leverage that information to ask for more documentation or to get a discount on services to provide more documentation. Additionally requesting any other documentation that might be available.

David “British Scientist” Jennaway
Source control is a big issue. For plugins and web resources, one other mitigation is to attempt a import into a separate, test deployment, and check if all functionality still works. Of course, this does depend on having sufficient documentation of what the expected functionality is, but it can give hints of potential problems.

Integrations is another big one, which can throw up major technical issues, but also challenges regarding responsibility for each integration with another system.

Neil “Lagavulin” Benson
Not much to add, but I encouraged one of my customers to switch from their previous partner’s source control system to a Visual Studio Online system managed by the customer. All our consultants we able to access VSO at no charge to the customer because we all had MSDN licenses. Customer sleeps better at night knowing that their source code is tucked safely under their pillow.

Tip #295: New entities and attributes in CRM 2015

Julie “Nighteye” Yack asked the other day:

Is there a magical list somewhere (that I have failed to find after half an hour of binging, or banging?) of new entities and new attributes on existing entities for 2015?

Everhelpful Jim “Mr SDK” Daly chimed in:

The metadata browser allows you to filter by entities using the IntroducedVersion property, but you would have to open each entity to filter attributes using IntroducedVersion. It doesn’t help with that kind of search.

The attached New Attributes.zip includes an Excel file with information about all the attributes with IntroducedVersion = “7.0.0.0”, in the context of the entity.

Many of these new attributes are for internal use only and there is usually not a use case for using the internal use only attributes. I would categorize this information as “interesting but not important” because as a whole it doesn’t help you do a particular task. But I expect experts will appreciate seeing this and will probably find something interesting in it. Possibly things we didn’t know they would be interested in.

Most new attributes that are relevant to specific things people might do in code are documented in the context within the relevant subsection of the  Model your business data area in the SDK.

I just modified our existing Sample: Dump entity metadata to a file sample to generate the XML and then opened it in Excel.

Please note that it does not include any Intersect entities and virtual attributes are excluded.

Tip #294: Role playing in marketing

Both, year 2015 and Microsoft Dynamics Marketing 2015 are in full swing by now. What’s more, MDM trials can now be easily provisioned (just select one of the marketing roles and follow the wizard).

tl;dr

If you are missing a menu item, a link or an option in MDM, try selecting a different user role in the Welcome Dialog.

I like reading

Some people reported that during the trial they are unable to create any marketing list except for the query type.

Dynamics Marketing follows the footsteps of CRM and welcomes you with its own version of the First Thing First Woman. Don’t be quick to dismiss it though – unlike its CRM counterpart this dialog is interactive and allows you to select the role that will shape your user experience and set of available permissions.
MDM Welcome Dialog
Default role is Creative and, as it turns out, this role for some mysterious reason is limited to creation only query list types.

To change your role mid-flight, click on the cogwheel then click Welcome Dialog.
Invoke Welcome Dialog
On the Welcome Dialog select All as your role and click OK. Now you should see a smorgasbord of the marketing lists available for creation:
All marketing list types are available