Suppose we want to add a button next to “Save & Close” button in Account Entity’s form.
To do that we need to define a CustomAction child element to CustomActions element within RibbonDiffXml.
Export the solution containing the account entity.
Attributes for CustomAction are
ID– Give it any unique id.
Location– For defining location we first need to find out the id for Save group within the MainTab of the form and then append _children to it.
_children needs to be defined to add a custom button to an existing group.
Open the accountribbon.xml file within
.. sdk\samplecode\cs\client\ribbon\exportribbonxml\exportedribbonxml\
There we can find the following info.
<Groups Id=”Mscrm.Form.account.MainTab.Groups“>
<Group Id=”Mscrm.Form.account.MainTab.Save“ Command=”Mscrm.Enabled“ Sequence=”10“ Title=”$Resources:Ribbon.Form.MainTab.Save“ Image32by32Popup=”/_imgs/ribbon/save32.png“ Template=”Mscrm.Templates.Flexible2“>
<Controls Id=”Mscrm.Form.account.MainTab.Save.Controls“>
<Button Id=”Mscrm.Form.account.SaveAsComplete“ ToolTipTitle=”$Resources:Ribbon.Form.MainTab.Save.SaveAsComplete“ ToolTipDescription=”$Resources(EntityDisplayName):Ribbon.Tooltip.SaveAsComplete“ Command=”Mscrm.SavePrimaryActivityAsComplete“ Sequence=”10“ LabelText=”$Resources:Ribbon.Form.MainTab.Save.SaveAsComplete“ Alt=”$Resources:Ribbon.Form.MainTab.Save.SaveAsComplete“ Image16by16=”/_imgs/ribbon/SaveAsCompleted_16.png“ Image32by32=”/_imgs/ribbon/SaveAsCompleted_32.png“ TemplateAlias=”o1“
/>
Sequence : For sequence first find out the sequence defined for Save & Close button.
<Button Id=”Mscrm.Form.account.SaveAndClose“ ToolTipTitle=”$Resources:Mscrm_Form_Other_MainTab_Save_SaveAndClose_ToolTipTitle“ ToolTipDescription=”$Resources(EntityDisplayName):Ribbon.Tooltip.SaveAndClose“ Command=”Mscrm.SaveAndClosePrimary“
Sequence=”30″
LabelText=”$Resources:Ribbon.Form.MainTab.Save.SaveAndClose“ Alt=”$Resources:Ribbon.Form.MainTab.Save.SaveAndClose“ Image16by16=”/_imgs/ribbon/saveandclose16.png“ Image32by32=”/_imgs/ribbon/saveandclose32.png“ TemplateAlias=”o1“
/>
So now our CustomAction should look like this
<CustomAction Id=”CA_MyFirstButton“ Location=”Mscrm.Form.account.MainTab.Save.Controls._children“ Sequence=”31“>
Now we next need to define CommandUIDefinition and Button child element to our CustomAction
<CommandUIDefinition>
<Button
Id=“B_MyFirstButton”
LabelText=“My First Button”
ToolTipTitle=“My First Button Tool Tip Title”
ToolTipDescription=“My First Button Tool Tip Description”
TemplateAlias=“o1”
Image16by16=“/_imgs/ribbon/saveandclose16.png”
Image32by32=“/_imgs/ribbon/saveandclose32.png”
/>
</CommandUIDefinition>
Here we are using the existing icon of Save and Close button.
Save the file, zip it as a part of the solution and import and publish it.
Final definition should look something like this.
<RibbonDiffXml> <CustomActions> <CustomAction Id="CA_MyFirstButton" Location="Mscrm.Form.account.MainTab.Save.Controls._children" Sequence="31"> <CommandUIDefinition> <Button Id="B_MyFirstButton" LabelText="My First Button" ToolTipTitle="My First Button Tool Tip Title" ToolTipDescription="My First Button Tool Tip Description" TemplateAlias="o1" Image16by16="/_imgs/ribbon/saveandclose16.png" Image32by32="/_imgs/ribbon/saveandclose32.png"/> </CommandUIDefinition> </CustomAction> </CustomActions> <Templates> <RibbonTemplates Id="Mscrm.Templates"/> </Templates> <CommandDefinitions/> <RuleDefinitions> <TabDisplayRules/> <DisplayRules/> <EnableRules/> </RuleDefinitions> <LocLabels/> </RibbonDiffXml>
Hope it helps !
Hi,
I’ve done all the settings and the code correctly here. Rechecked the syntax also many times.Still the button is not appearing in the Account form. Could you let me know what is pending here to do?
Regards,
Prakash
LikeLike
Hi,
I’ve done all the settings and the code correctly here. Rechecked the syntax also many times.Still the button is not appearing in the Account form. Could you let me know what is pending here to do?.
Regards,
Prakash
LikeLike
Hi,
Can I pass a dynamic value to to be passed as a query string to the URL, where the dynamicValue is field on the entity form?
Thank you.
Charles
LikeLike
Hi Charles,
You can make use of JavaScriptFunction tag in RibbonDiff on click of button and in the JavaScript function we can fetch the value of the fields in form and append it as a query string.
https://nishantrana.wordpress.com/2010/11/04/using-javascript-in-a-custom-button-in-crm-2011/
Regards,
Nishant Rana
LikeLike
Thank you for this information. What would cause the button to be greyed out?
LikeLike