Differences between CRM2011 and CRM2013/2015 Ribbon/Command Bar

If you are upgrading to CRM 2013 and you make use of ValueRules in your Ribbon customisations you may need to make some modifications to your customisations if you have ValueRules that:
1.Use null values
2.Use option set values

Null Values

Previously a ValueRule that used Null values might have looked like:
<EnableRule Id="new.new_valuerulestest.EnableOPtionSetNull.EnableRule">
        <ValueRule Field="new_optionsetabc" Value="null" Default="true" />
</EnableRule>
Prior to UR12 you didn’t need to set the ‘Default’ property to true. Essentially what is happening here is rather than picking up a special ‘null’ value the value rule is failing to pickup a value because it is Null and so it is defaulting to returning True.

In CRM2013 you will need to specify an empty string for the value. In the Ribbon Workbench you need to add a blank space and then delete it to specify a null string.
<EnableRule Id="new.new_valuerulestest.EnableOPtionSetNull.EnableRule">
<ValueRule Field="new_optionsetabc" Value="" Default="true" />
</EnableRule>

Option Set Values

In CRM 2011 you had to specify the Optionset value in the Value attribute:
<EnableRule Id="new.new_valuerulestest.EnableOptionSetB.EnableRule">
<ValueRule Field="new_optionsetabc" Value="100000001" Default="false" />
</EnableRule>
In CRM 2013 you must specify the text name of the OptionSet value rather than it’s integer value.
<EnableRule Id="new.new_valuerulestest.EnableOptionSetB.EnableRule">
<ValueRule Field="new_optionsetabc" Value="B" Default="false" />
</EnableRule>

If you have multiple languages, you will need to use an Or Rule:
<EnableRule Id="new.new_valuerulestest.EnableOptionSetB.EnableRule">
        <OrRule>
          <Or>
            <ValueRule Field="new_optionsetabc" Value="B" />
          </Or>
          <Or>
            <ValueRule Field="new_optionsetabc" Value="GermanB" />
          </Or>
        </OrRule>
</EnableRule>

Feedback and Knowledge Base