Missing Command Bar Buttons for Products in Dynamics 365

Zoe Sands, 26 April 2017

I recently developed a Dynamics 365 CRM system that would be used for both English and German users. Both sets of users would have access to Products, but only the German users could not see the necessary command bar buttons even though they had the necessary permissions.

image

image

I had a look at the buttons display and enable rules and found this rule on them “Mscrm.IsUserUsingBaseLanguage”. The rule checked if the current user’s language setting were the same as the organisation base language. If it wasn’t then the button would be hidden.

image

When I removed this rule, and tried creating a product while using Dynamics CRM in German I was presented with this error:

Rows with localizable attributes can only be created when the user interface (UI) language for the current user is set to the organization's base language.

This meant that anyone who wants to create products must be using the CRM organisations base language and I had to put the button back.

Field localisation allows you to define translations for data, it’s not reserved only for schema. Forcing entities with localised fields to be created in the organisation base language ensures that there is a base line for any records to be created / languages that will be used.

Some things to note when working with localised field labels:

1.    A user does not need to have the System Administrator security role. If they have permission to update the entity they can change the labels.

2.    Records with localized fields are read-only unless your preferred language is the organization’s base language.

3.    You can only create records with localized fields if you are using the organization’s base language.

4.    If you update the base language value for a localizable field any localized values for that field are not changed.

5.    If you set the base language value to null or an empty string, all localized values for that property will also be cleared. Even if they have an updated localised field label.