Hi,
Suppose we have to disable “Add New related record” button for a SubGrid of a custom entity A. The condition is that it should get disabled based on the value of one of the option set in the form (of Custom entity B) to which it is associated with.
AddNewStandard button is the one which we need to refer to do that.
In the ValueRule new_approvalstatus field is an optionset with the corresponding value (2233770000) for which we want to disable the button in the ribbon.
We can use the below RibbonDiffXml to achieve that.
<RibbonDiffXml> <CustomActions> <CustomAction Id="MyOrg_CustomAction" Location="Mscrm.SubGrid.new_promotiondefinition.AddNewStandard"> <CommandUIDefinition> <Button Id="Mscrm.SubGrid.new_promotiondefinition.AddNewStandard" Command="MyOrg_Command" Sequence="20" LabelText="$Resources(EntityDisplayName):Ribbon.SubGrid.AddNew" Alt="$Resources(EntityDisplayName):Ribbon.SubGrid.AddNew" Image16by16="/_imgs/ribbon/NewRecord_16.png" Image32by32="/_imgs/ribbon/newrecord32.png" TemplateAlias="o1" ToolTipTitle="$Resources(EntityDisplayName):Mscrm_SubGrid_EntityLogicalName_MainTab_Management_AddNewStandard_ToolTipTitle" ToolTipDescription="$Resources(EntityDisplayName):Mscrm_SubGrid_EntityLogicalName_MainTab_Management_AddNewStandard_ToolTipDescription" /> </CommandUIDefinition> </CustomAction> <HideCustomAction Location="Mscrm.SubGrid.new_promotiondefinition.AddExistingStandard" HideActionId="Mscrm.SubGrid.new_promotiondefinition.AddExistingStandard.HideAction" /> </CustomActions> <Templates> <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates> </Templates> <CommandDefinitions> <CommandDefinition Id="MyOrg_Command"> <EnableRules> <EnableRule Id="MyOrg_CustomEnableRule" /> </EnableRules> <DisplayRules></DisplayRules> <Actions></Actions> </CommandDefinition> </CommandDefinitions> <RuleDefinitions> <TabDisplayRules /> <DisplayRules /> <EnableRules> <EnableRule Id="MyOrg_CustomEnableRule"> <ValueRule Default="true" Field="new_approvalstatus" InvertResult="true" Value="223770000"/> </EnableRule> </EnableRules> </RuleDefinitions> <LocLabels /> </RibbonDiffXml>
The thing to remember is that it will override the existing command definition and the rules and actions defined in it. So here we would need to copy those displayrules, enablerules and actions if we want those functionality.
Hope it helps.
Good one
LikeLike
hi,
if i click on subgrid it wil shw the Ribbon up on the page –but here i am having two subgrids on same entity,if i click on first subgrid ribbon must be hide and if i click on second subgrid it must be visible—Can pls post the solution for this
LikeLike