Using JavaScript in a custom button in CRM 2011

Now let us built on our existing example of adding custom button.

http://nishantrana.wordpress.com/2010/11/04/adding-my-first-custom-button-in-crm-2011/

Now on click of the button I want to show alert message “Hello World” i.e. call JavaScript.

This is our existing Button Definition

<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/>

(Add a new Jscript web resource to the solution named MyJavaScript)

function HelloWorld() {

alert(‘Hello World’);

}

Now add a Command attribute to Button

    <Button Id=”B_MyFirstButton


Command=”Cmd_JavaScript


                            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“/>

Now we need to define this Command.

This is how we can define it

<CommandDefinitions>

<CommandDefinition
Id=Cmd_JavaScript>

<EnableRules/>

<DisplayRules/>

<Actions>


<JavaScriptFunction
Library=$webresource:new_MyJavaScript
FunctionName=HelloWorld>

</JavaScriptFunction>

</Actions>

</CommandDefinition>

</CommandDefinitions>

However if we zip and import this solution, the button would appear disabled.

To enable it we need to add EnableRule to it.

<CommandDefinitions>

<CommandDefinition
Id=Cmd_JavaScript>


<EnableRules>

<EnableRule
Id=Mscrm.Enabled/>

</EnableRules>

<DisplayRules/>

<Actions>

<JavaScriptFunction
Library=$webresource:new_MyJavaScript
FunctionName=HelloWorld>

</JavaScriptFunction>

</Actions>

</CommandDefinition>

</CommandDefinitions>

Now after importing and publishing it

The final RibbonDiffXml looks like this

<RibbonDiffXml>
<CustomActions>
<CustomAction
Id="CA_MyFirstButton"
Location="Mscrm.Form.account.MainTab.Save.Controls._children"
Sequence="31">
<CommandUIDefinition>
<Button
Id="B_MyFirstButton"
Command="Cmd_JavaScript"
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>
<CommandDefinition
Id="Cmd_JavaScript">
<EnableRules>
<EnableRule
Id="Mscrm.Enabled"/>
</EnableRules>
<DisplayRules/>
<Actions>
<JavaScriptFunction
Library="$webresource:new_MyJavaScript"
FunctionName="HelloWorld">
</JavaScriptFunction>
</Actions>
</CommandDefinition>
</CommandDefinitions>
<RuleDefinitions>
<TabDisplayRules/>
<DisplayRules/>
<EnableRules/>
</RuleDefinitions>
<LocLabels/>
</RibbonDiffXml>

Hope it helps!

7 thoughts on “Using JavaScript in a custom button in CRM 2011

  1. I gave namespace in javascript and gave full path name. But button is disabled. When I gave on function name, it is enabled but no action on click. How do I give function name if I use namespace in JScript?

  2. Note that if you copy paste code from this blog, you must replace the “ and ’ characters by ” and ‘ respectively.

    I advice the author to not use these characters when posting code.

  3. I tried your example but for some reason me javascript is not executing, Following is what i did:
    1. Exported Account Entity
    2. Added following in Tag

    3. Added following in Tag

    4. Created a Web Resource with new_Helloworld name.
    5. Imported the zipped file.
    The button did got visible but onlick the javascript did not get executed. Any comments would be of great help.

  4. When trying to import the sollution after editing, I recieve an error because of invalid XML. Looking at Technical Details, it states the following:

    The import file is invalid. XSD validation failed with the following error: ‘The ‘command’ attribute is not declared.

    Do you know why this happens?

    Thanks

  5. Pingback: Showing Custom Button on Update in CRM 2011 « Nishant Rana's Weblog

Share your thoughts

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s