Tip #512: Yes or no in the workflow

The best tips always come from the users, people who, unlike me, use CRM daily. Today’s awesome post is from our almost regular Matt Johnson.

Recently I discovered a little quirk that has been introduced somewhere around 2015 Update 1 Online (at least that’s where I found it).

When you’re creating a workflow and you come to set a Yes/No field with a value, it works as expected when the field is visible on the form. However, the moment you make the field invisible (either by removing it or unchecking Visible by default in it’s properties) so it shows up in the Additional fields section, the workflow will not save the value you selected.
Setting hidden field
The strange thing is, let’s say you select Yes as your value and press Save. Everything seems fine and it will work as you expect. However if you then reopen your workflow you will notice that it’s forgotten your previously saved value and the field is blank. Then when you save it again you’ve lost your value. So as you can imagine, it’s quite easy to muck up what you intend your workflow to be doing without realising you’ve done it.

Before save
Boolean before save
After reopening workflow form
Boolean after reopening
There is a workaround. Using the Default value instead of just selecting Yes or No with the radio button itself will save the value and you can also see it’s still saved when reopening the workflow.
Setting boolean default
Before save with default
Don’t know if this is useful to you. Might save someone a headache or two.

Tipp Jarr’s Double Dipp

You bet, Matt, it is useful! Bookmarked this post as a reminder. Please continue sending us good stuff by dropping it into jar@crmtipoftheday.com.

Tip #511: Should you shrink your MSCRM database?

So you delete a bunch of records from your CRM database, but the size of the data file is still its original size. Should you shrink the MSCRM database?

No. OK, I mean rarely.

When this topic comes up, I always point people to the classic Why you should not shrink your data files by Paul S Randal. Paul is a SQL Server MVP and former program manager for SQL server 2008 at Microsoft. As one of the people responsible for the shrink button, he knows what he is talking about.

His recommendation for moving tables to different file groups is not supported when dealing with MSCRM databases, but his warnings are valid. Does this mean that you should never ever shrink your database size? There definitely are cases where shrinking your database makes sense. For example, if you are almost out of space on your SQL server with no good options to increase it, shrinking may be your only option. Say you had a data load go bad and create a million records that you don’t need, and your database will never grow to that size again. After you delete the records, shrinking won’t be the end of the world as long as you can take the time to rebuild your fragmented indexes afterwards.

However, if your database has grown through normal usage, and you are running out of space, shrinking the database will only be a temporary bandage, and in that case, your database will quickly regrow to its bloated size. Instead of shrinking the database, invest in more storage.

 

Tip #510: Make the Connection with the CRM Product Team

This week, your humble tipsters (and also George) are meeting with the Dynamics CRM Product team in Redmond, WA. This annual pilgrimage to the Advanta building is an opportunity to hear from the good people who make CRM great – and to attempt to sway their opinion through reasoned feedback, repetition of opinions, repetition of opinions, and attempted bribes of Tim-Tams. – We’ll try pretty much anything short of building barricades and singing “One Day More” – (although we came close during “The Great Read-Optimized Uprising” a few years ago.)

I say all this to confess that you – (yes YOU!)- have the real power to make a difference in the direction of Dynamics CRM.

During meetings with the product team, whenever we see slides listing features the team is investing in for upcoming releases, inevitably there’s also a number by each feature indicating how many user votes have been cast on that suggestion.  Although the number of votes isn’t the sole deciding factor, it’s definitely used as ‘evidence’ when weighing options for the next release.

How do you gain this great power? By joining the Dynamics Suggestions Program for CRM on Microsoft Connect – and letting your voice be heard. Continue reading

Tip #509: Pumpkin-Spiced CRM

Themes in CRM are a subtle, but nice way of making CRM visually adapt to your Organization.
(Themes are available in CRM Online beginning with the Spring 2015 release – and on premise they are expected in the CRM 2016 release.)

Using the very cool online tool: CRM Theme Generator created by the talented Guido “Han Shot First” Preite , you can test and share your creations before committing.  (Also see Tip #483 for a nice demonstration of how to create/update themes in CRM.)

CRM Theme Generator

A simple thing is to change the title bar color in DEV vs PRODUCTION – I always want a BOLD indicator that I’m working in DEV – And, when you have users in a separate Training environment. – Give it a BOLD and distinct color to ensure that they are less likely to enter production data in training – or vice versa.

It can also add some variety and visual interest – but that’s a boring, corporate-marketing speak way of describing it. – Why not amaze friends and annoy colleagues by adding ‘holiday-themes’!

Here’s a Pumpkin-Spiced-Latte CRM Theme – Let’s just say “I dare you”.

PSL Theme
If you have a great color-combination theme or one that celebrates a holiday, football franchise or a theme that is otherwise visually arresting – share a link to it in the comments.

 

Tip #508: Tipster guide to exporting and importing product catalog

It’s Friday and time for another… What? We don’t have one? The camera was stolen? And the producer is missing? Let me start again.

It’s Friday and time for another ¡Como estas amigos! from our good friend Pablo “CRMGamified” Peralta. After reading this you’d have to agree that this walkthrough is just as good as any video. So without further ado.

Step-by-step Guide to Exporting and Importing the New Product Catalog with Configuration Migration Tool

Introduction

Situation

You’re using CRM 2015 (Onprem or Online). You’ve already created your product catalog, including all family structures and price listings. Now you wish to export it into your testing or development environment, taking it toward production.

The bad news: unlike previous versions, you can no longer export and import with Excel. If you do this, your family hierarchy will be left behind.

The good news: you can export and import the Product Catalog using a new tool introduced into the CRM SDK as from CRM 2015, called Configuration Migration Tool.

In this article, I’ll share a step-by-step guide on how to do this. These are the steps I recently followed to carry the Product Catalog from one environment to the next for a client, so I hope they work for you as well.

Prerequisites

You need to download the Dynamics CRM 2015 SDK, in case you haven’t already. Once you’ve downloaded and extracted the package, you’ll find the tool we need inside SDK\Tools\ConfigurationMigration with the file name: DataMigrationUtility.exe.

Exporting Our Catalog from its Original Environment

We then open SDK\Tools\ConfigurationMigration\DataMigrationUtility.exe.

  1. Create Schema
    Create schema
  2. Connect to your CRM
    Connect
  3. Select your solution (or default solution) in order to select the Currency entity (transactioncurrency) and then click on “Add Entity”.
    Select solution
  4. In Tools > Configure Import Settings, we select the fields we’re going to consider as unique identifiers for the Upsert when we import. In other words, we can choose they key (one or several fields) to figure out if the destination record already exists -or not- and, in this way, determine if the application needs to insert or update.
    Select fields
    Additionally, we can choose to deactivate plugins during the import, in case any of the selected entities have associated plugins.
    Deactivate plugins
  5. We validate the schema in Tools > Validate Schema
    Validate schema

    Validate schema

  6. Save and Export. Doing this we’ll be prompted to name the file. Let’s call it “Currency”.
  7. We then agree to export all data and name the data file (i.e. “Currency.zip”)
  8. The end result should look like this:
    Export end result
  9. We then repeat steps 1 through 8 for the Price Listing entity.
    Price listing entity
  10. We again repeat steps 1 through 8 for the Product entity, in order to export products.
    *** IMPORTANT ***
    Products, families and sets must be Active in order to be exported. Drafts will be ignored when exporting. So make sure you individually activate all products or each family hierarchy before running.
    Product entity
    If you’re not using entitlements or sales literatures, you’ll want to remove all relationships to at least avoid alerts (do this by right-clicking on Relationships – “Remove Relationship”).
    Remove relationship
  11. We once again repeat steps 1 through 9 for the Price Listing Element entity. This way, we can export all prices for each product in each price listing.
    Price Listing Element - 1
    Price Listing Element - 2
    Price Listing Element - 3

(Phew! Half way there! – t.j.)

Importing the Catalog into the Destination Environment

  1. Once inside the application, go to “Import data”.
    Import data
  2. Continue
  3. We log on and select the destination organization.
  4. We first import Currency. We select the corresponding zip file (Currency.zip)
  5. We then repeat steps 12 through 15 to import Price Listings (I had 3 in my case)
    Import Price listings
  6. We can now import Products (repeating steps 12 through 15 for the Product zip file). It’s important to first import currency and price listings before importing our products. Why? Because if we already have price listing elements, then the first price listing associated with a product is considered its default price listing and, therefore, creates a dependent lookup.
    Import products
  7. Last but not least, we import the Price Listing Elements, which actually include the prices for each product in each listing. We should attempt to import these once currencies, price listings and products have already been imported.
    Import Price Listings Elements
  8. That’s it – we now have our catalog up and running!
    Hurray! Product catalog is up and running

Troubleshooting and warnings

Not everything works this wonderfully. If we receive any errors or warnings, here’s how we can see their details:

First we must go back to the application’s home page. We can then check import logs in the Log menu:
Accessing import log - 1

Accessing import log - 2

The error in this example shows that there is not “dyn_cd_producto” field in the destination schema. Therefore, here’s a good tip: if you customized any of these entities (i.e. added new fields), then you need to make sure that you apply the corresponding solutions so that the original and destination structures are the same.

For more information on the Configuration Migration Tool, click here.

I hope this was useful! As always, let me know about your experience in the comments or leave a message in the community technical forum if you need any help.

Cheers!

Tipp Jarr’s Double Dipp

¡Ay, caramba!

Tip #507: Move Access Team templates in style

Back in Tip 322 (When upgrading, do a dry run), I referenced an issue with Access Teams. The team templates don’t move with customization. So if you use Access Teams in your configuration, when you move your customizations to a new org, the team templates won’t be there, and you will get an error on the form. Even if you manually create team templates in the new organization, it will not work, as the new team templates will not have the same record ID. You have to move the team templates before you import your customization. However, there is no easy way to do that. You cannot add them to your solution, you cannot move them with the import utility, and you cannot move them with the Configuration Migration Utility in the SDK. Unless you have a third party tool, such as KingswaySoft or Scribe, there is no free way to move them.

Until now. Lucas Alexander has recently released a plugin for the XRM Toolbox that is the easiest possible way to move access team templates. Not only will it move the templates, it also give you the option to enable access teams on the entity in the target if they are not already enabled (something that I have forgotten to do many times).

Download the plugin here.

Read more about it and see the pretty pictures on Lucas’ blog.

Tip #506: Knowledge management best practices

We don’t do full truckstops very often but when we do, they are full of wisdom and knowledge. Knowledge, that needs to be managed. Today we have some distinguished truckies sharing their views on the subject: Mitch “Only in Texas” Milam, Nicolae “Almost Tesla” Tarla, Adam “Parature” Hong and Shan “I used to be an MVP” McArthur.

truckstop

The Dynamics CRM team recently announced fantastic knowledge management features coming in Dynamics CRM 2016.

Now that we have excellent knowledge management functionality that can be extended to almost every entity in CRM, my question was what are the best practices for using this feature.

How does a company start building out their KB content if they don’t have any? How do they select the appropriate levels of granularity and classification?

We received some great suggestions on this topic:

Mitch Millam

In all honesty, all you have to do is create a new article for any problem or question encountered that is not already in the KB.

  1. Support Professional creates the article, after finding a topic that meets the criteria.
  2. Technical Lead for the validates the information and process documented within the article.
  3. It goes in to an internal–published state for additional review (product team)
  4. Assuming approval, it gets published.
  5. Visibly can be: Internal, Private, or Public, depending on the nature of the topic.

Nicolae Tarla

We use “librarians” to define taxonomy and metadata structures to organize KM. This used to be a practice that was being used almost exclusively on SharePoint, but in the last few years it became relevant for CRM also, and we now see a split down the middle on resource allocation.

The following books are very helpful ion this topic:

  1. Managing Electronic Records: Methods, Best Practices, and Technologies, ISBN: 978-1118218297
  2. Document Management for the Enterprise: Principles, Techniques, and Applications, ISBN: 978-0471147190

Adam Hong, Microsoft

I’ve found that the knowledge management process can be very similar to development processes, and like development processes, the KM process can vary quite a bit from organization to organization.

At its core KM is about the following cycle:

  1. Identifying knowledge gaps. Knowledge gaps defined as content that needs to be available to your customers/employees/whatever audience)
  2. Creating/Refining your knowledge accordingly based on knowledge gaps (this can have its own workflow)
  3. Analyzing data related to knowledge to gain insight. This can be accomplished by looking at:
    • Searches performed
    • Ratings
    • Feedback
    • Views
    • Any big data kpi related to your customers/audience
  4. Use the insights to get back to step 1, identify knowledge gaps.

Knowledge should be one of the most important aspects that an organization maintains due to employee churn, and the impact that good knowledge can have on onboarding and how efficient each employee/customer is, among a myriad of other reasons knowledge is important.  One client that is very effective with knowledge management has a team that is dedicated to keeping track of when articles expire, which then kicks off a review process for each article. Employees are categorized as SMEs for each article. When articles are up for review, an SME will review the article for updates, which will notify the KM team if its still valid or if it needs changes. From there they will work with the SME to get the content correct if needs to be revised. They do this every month to maintain their KB.

Shan McArthur

My recommendation is to keep the ‘process’ as thin and light as possible. If the process is a burden, the article will not be written and you will have a poor KB.

Keep the process light and make it easy to publish.  You can always review and reorganize as you get new content and find better ways of breaking it up.  The same can be said about standard formats – the more rigid your format and structure is, the more resistance you are going to have to get people to use it.  That is why I love our portals – you can just start with a blank page and type – no format is required.  Add pictures if you want, or even add them later.  Then build out your instructions, supplement them with KB articles.  Hook up feedback to those pages so that you can review things and improve them immediately.  Allow your customers to suggest an article.  Review search terms that customers use.  Take cases and add a field to ‘recommend as article’.  All of these things will help you properly target your content, which is really helpful.  Just remember, that in the end, your knowledge system will be build one article at a time.  It always starts out sparse, but if you keep it agile, easy, and respond quickly to feedback, it won’t be long before it gets filled out and becomes very valuable.

Tip #505: Set active — what’s it good for?

set active You may notice that in CRM 2015 Update 1, when you click to a different stage in the process flow, the “Next” button changes to “Set Active.” But you may also notice that it is grayed out and doesn’t do anything. The “Set Active” button is designed to allow users to jump back to an already completed stage. if you click on a stage in the past, you can click “Set Active” and move back to the completed stage. It cannot be used to move ahead to a different stage. Thanks to Chris Treptow for helping solve the mystery.

Tip #504: Calculated Fields Min/Max Values

When setting up a Calculated Field it is imperative that you are aware of the Minimum/Maximum Values in the fields that make up the Calculated field. The Wizard will not prevent you from creating a calculated field that is dependent on fields that allow input that will be outside the min/max values allowed for the calculated field.

In the example below Field A and B allow Minimum values of less than Zero (0). However the Minimum Value for the Calculated field is set for Zero (0). You won’t discover this issue until users start entering data into the form. They will not be able to Save the record.

Calculated Field Out of Range Error

Calculated Field Out of Range Error

Calculated Field Min Max Values

Calculated Field Min Max Values