Adding my first custom button in CRM 2011


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 !

New Types in CRM 2011


CRM 4.0 Type CRM 2011 Type
   
CrmBoolean Boolean
DynamicEntity[] EntityCollection
CrmDateTime DateTime
CrmDecimal Decimal
CrmFloat Double
CrmNumber Integer
Lookup, Owner, Customer EntityReference
CrmMoney Money
Activityparty[] ActivityParty[]
Key, UniqueIdentifier Guid
String String
Status ,Picklist OptionSetValue

Sample Code for using IOrganizationService in CRM 2011


Just a sample code for quick reference !

Uri organizationUri = new Uri("http://crmservername/orgname/XRMServices/2011/Organization.svc");
Uri homeRealmUri = null;
ClientCredentials credentials = new ClientCredentials();
// set default credentials for OrganizationService
credentials.Windows.ClientCredential = (NetworkCredential)CredentialCache.DefaultCredentials;
// or
credentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials;
OrganizationServiceProxy orgProxy = new OrganizationServiceProxy(organizationUri, homeRealmUri, credentials, null);
IOrganizationService _service = (IOrganizationService)orgProxy;
try
{
    Entity myAccount = new Entity("account");
    myAccount["name"] = "Test Account";
    _service.Create(myAccount);
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}
}

In case of early-bound, don’t forget to add the following line of code

 OrganizationServiceProxy _serviceProxy = new OrganizationServiceProxy(organizationUri, homeRealmUri, credentials, null);
 // This statement is required to enable early-bound type support.
  _serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
 

For Office 365 check this post
https://nishantrana.wordpress.com/2012/12/06/sample-code-to-connect-office-365-users-to-crm-2011-online/
Bye.


			

Url to edit Connection Role in CRM 2011


Hi,

I had to disable some of the existing connection role and had to define new one.  Was not able to find a page(grid view) from which i could do that easily.So used the following url to edit the Connection Role

http://servser:port/orgname/_root/homepage.aspx?etc=3231

Please let me know from where we can do it easily within CRM UI  itself.

Adding Left Navigation Item to a form in CRM 2011


Hi,

Export solution containing the entity we need to modify.

Find the <form> tag for the form we want to modify within <FormXml> tag

Then use the following sample xml to add the left navigation item.

<Navigation>
<NavBar>
<NavBarItem Id=”navItemID1″ PassParams=”1” Area=”Info” Icon=”testIcon” Url=”http://www.bing.com“>
<Titles>
<Title LCID=”1033” Text=”Custom Nav Item”/>
</Titles>
</NavBarItem>
</NavBar>
</Navigation>

Bye.

Hiding Collaborate,Process and Data group from Contact Entity in CRM 2011


Hi,

 we could make use of following xml definition for that

Hides from Grid

<HideCustomAction Location=”Mscrm.HomepageGrid.contact.MainTab.ExportData” HideActionId=”Sample.HomepageGrid.contact.MainTab.ExportData.HideAction”/>
<HideCustomAction Location=”Mscrm.HomepageGrid.contact.MainTab.Collaborate” HideActionId=”Sample.HomepageGrid.contact.MainTab.Collaborate.HideAction”/>
<HideCustomAction Location=”Mscrm.HomepageGrid.contact.MainTab.Workflow” HideActionId=”Sample.HomepageGrid.contact.MainTab.Workflow.HideAction”/>

Hides from form
<HideCustomAction Location=”Mscrm.Form.contact.MainTab.ExportData” HideActionId=”Mscrm.Form.contact.MainTab.ExportData.HideAction”/>
<HideCustomAction Location=”Mscrm.Form.contact.MainTab.Collaborate” HideActionId=”Mscrm.Form.contact.MainTab.Collaborate.HideAction”/>
<HideCustomAction Location=”Mscrm.Form.contact.MainTab.Workflow” HideActionId=”Mscrm.Form.contact.MainTab.Workflow.HideAction”/>

We can get the Location value from the following sample code of sdk

…….\sdk\samplecode\cs\client\ribbon\exportribbonxml\exportedribbonxml

Hope it helps !