Archive

Archive for the ‘Tools’ Category

CRM 2011–Custom Application Version Info

February 20, 2012 3 comments

In scenarios where there are parallel development going on for single CRM Organization in UAT and Production,  many time it would be confusing to know which version is currently deployed on UAT and Production environment, so I thought of creating small WebResource based utility which can be used to update and show Version Info about currently deployed solution on Target environment.

Like CRM version info, this also shows up in Jewel Ribbon (as shown in following Screenshot)

image

 

Clicking on “Custom App Version Info” will show up window with Version Information in it

image

 

Information shown in Pop-up window in dynamically read from XML based Web Resource.

<root>

  <Title>

    <!–Give single line not more than 50 characters–>

    <LanguageCodeid=1033>OpsMF Version Number 1.12.09.06</LanguageCode>

    <LanguageCodeid=1043>OpsMF Version Number 1.12.09.06</LanguageCode>

  </Title>

  <Description>

    <!–`Give para not more than 350 characters–>

    <LanguageCodeid=1033>Learn about extensions to the core SDK that offer additional capabilities and a different developer experience. Currently there are two: Developer Extensions and the Portal Development Toolkit. Developer Extensions are essentially a wrapper around the existing SDK assemblies, providing you with extra functionality on top of existing functionality. </LanguageCode>

    <LanguageCodeid=1043>OpsMF release targeted for US Subsidiaries</LanguageCode>

  </Description>

</root>

 

Here is how to do it.

    1. Import unmanaged solution available here ShowAppVersion_1_0_0_0_ForShipping.zip
    2. Export a Solution with Application Ribbon in it.
    3. Extract customization.xml file from exported .zip solution.
    4. Find RibbonDiffXml element in customization.xml file
    5. Paste following XML string under <CustomActions> tag

<CustomActions>

<CustomActionId=Mscrm.Jewel.Help.Version.CustomActionLocation=Mscrm.Jewel.Help.Menu._children>

<CommandUIDefinition>

<MenuSectionId=Mscrm.Jewel.Help.Section.1000Sequence=500DisplayMode=Menu16>

<ControlsId=Mscrm.Jewel.Help.Section.1000.Controls>

<ButtonId=Mscrm.Jewel.Help.VersionNumberSequence=10Command=Mscrm.Jewel.Help.Version.CommandLabelText=Custom App Version InfoToolTipTitle=Version InfoToolTipDescription=“”

Image16by16=$webresource:verinfo_/IMG/PNG/versionNumber_info.png />

</Controls>

</MenuSection>

</CommandUIDefinition>

</CustomAction>

</CustomActions>

  1. Zip solution file and import it in CRM.

For changing content of Version Info, edit versioninfo_/XML/AppVersion.xml file

General practice can be adding versioninfo_/XML/AppVersion.xml file, every time there is new export created for deployment.

Hope this utility is some way helpful to you.

Categories: CRM 2011, Tools

CRM 2011 – Bulk Export of Unmanaged Solutions

January 8, 2012 1 comment

As a developer I take a backup of all my CRM Customization everyday. This was my safe guard against any unintended crashing of CRM Development environment. However as count of my solution was increasing I found it time consuming to manually selecting each unmanaged solution and them exporting it.

To avoid these repeating steps for each solution I created a small utility to export solution using CRM SDK.

This solution is available at CodePlex

[Updates 11-Feb-2012] Updated version 1.4.0.0 is now uploaded on CodePlex, it has better Connection Control which allows Connection with On-Premise, Online and IFD deployments.

Its very simple utility, opens with Windows Form

image

After entering CRM URL it loads all the Unmanaged solution into Grid View

Once loaded one can set folder path where backup needs to be saved and select Solutions that needs to be exported from Grid View

image

Clicking “Export Selected Solution” will save.zip files to selected folder location.

File name used for saving .zip file is [Solution’s Unique Name]_[Date Time in MM_dd_YYYYT_HH_mm format]. For example: Default_01_08_2012_T22_22.zip. Having DateTime stamp ensure that each time separate copy is maintained.

image

Categories: Bulk Export, CRM 2011, Tools

CRM 2011–TreeView Control

October 27, 2011 21 comments

MS Dynamics CRM allows us to have an entity with Self-Join that is we can establish Parent-Child relationship with itself. This relationship makes it easier to store hierarchical data in single CRM entity. This type of relationship can be used to store Taxonomy data. For Example Area-Region-Subsidiary-Country or Sales Territories.

I have developed a CRM 2011 WebResource which will render self-joined Entity data in Tree View structure and which can be used to assigned to Lookup attribute on CRM 2011 form.

This Utility has 3 parts

1. Mechanism to render data from Self-Joined entities and convert it to XML Web Resource form.

2. On CRM form bind XML Web Resource data to TreeView control

3. Wiring event to populate Lookup attribute on CRM form when User select one of the Tree View Node.

Demo Screen 1

This WebResource is easily portable on CRM Form and it needs just one JavaScript call to set Lookup Attribute for which data need to be rendered.

Let me know if anybody interested in having CRM Managed Solution for this WebResource and I will be glad to share it.

Any ideas to improve this TreeView control is welcomed.

[Updates: 11/03/2011]

Thanks all those who showed interest in TreeView utility. I am currently working on Packaging the Utility into CRM 2011 Managed Solution, once completed with Testing I will share the Managed Solution

 

[Updates: 11/07/2011]

Finally I could complete packaging Beta releases for two separate Projects !!!

These projects are now available in CodePlex. In case you come across any issues send me an email.

CRM 2011 TreeView for Lookup

CRM 2011 TreeView for Dependent Picklist

CRM 2011 Lookup Preview on CRM Form

October 10, 2011 3 comments

When we put Lookup control on CRM 2011 form, by default it shows only one attribute (mostly name attribute) of the Lookup entity. If User wanted to see more detail information about Lookup record, they can click it and open Lookup details form. Although this serves the purpose, it’s still an extra click that user have to make to see the details of Lookup field.

It would have been good if User don’t have to click and can see Lookup entity fields data in Child form itself. CRM does provide Entity Mapping which allows to Pre-populate mapping attributes at the time of creation of Child record, however it has its own limitations. To overcome some of the limitations of Entity Mapping I have created a Web Resource Utility which can be found at CRM 2011 Attribute Mapping

I also developed more light weight Web Resource Utility which does not required any Entity Mapping and still give Lookup Entity field data on CRM 2011 main form.

Following screen shot demonstrates the utility

Demo Screen:1

Demo_Screen_1_thumb3

Each Lookup field can have their corresponding Web Resource on form. With the help of my JavaScript library CRM Customizer can decide attributes of the Lookup entity to be shown on form in tabular format.

Web Resource can be placed anywhere on the form.

Demo Screen: 2

Demo_Screen_2_thumb3

If Lookup attribute is empty, Utility will still show the Empty Web Resource.

Demo Screen: 3

Demo_Screen_3_thumb3

Utility does cover error situations. In case CRM customizer have incorrectly set parameters in JavaScript Library or if columns got deleted from Lookup attribute after it is configured in child form JavaScript library, utility does show appropriate message to take corrective action.

Instructions

Managed Solution contains following components

1. lookupr/Scripts/jquery_1.6.4.min.js

2. lookupr/Scripts/SDK.RetrieveData.js

3. lookupr/Scripts/LookupPreviewScript.js

4. lookupr/Lookup_Preview.htm

Steps

1. Open the form on which you wanted to put Lookup Preview.

2. Add a Web Resource to form

Instruction_1_thumb1

    1. Select Web Resource as lookupr/Lookup_Preview.htm
    2. Give Name and Label to Web Resource, note exact name of WebResource for later use.
    3. In “Formatting” tab select Number of rows, minimum 2 rows are required, but depending upon data length this number can be increased.
    4. Unselect “Display border”.

3. Save the Customization.

4. In form Properties, select JavaScript web resources as shown below

Instruction_2_thumb1

5. Event Handler

Instruction_3_thumb1

On Form OnLoad even select library as lookupr/Scripts/LookupPreviewScript.js and function as LoadLookPreviewDelayed

Function LoadLookPreviewDelayed takes following arguments

1.Web Resource Name : This is Name of Lookup_Preview.htm that was give in earlier step

2. Lookup Attribute Id: AttributeID of Lookup Attribute for which Lookup Preview is required.

3. Attribute Set: This is pipe (|) separated list of Label and attribute name from Lookup entity which needs to be shown in Lookup Preview. Label and Attribute Name must be separated by#

Example for Attribute Set is ‘Job Title#jobtitle|EmailId#emailaddress1|Telephone#telephone1|Language#new_preferredlanguage|DoNotEmail#donotemail’

Video Demo

 

 

Download CRM Managed Solution 

Silverlight Web Resource for User Settings (TimeZone, HomePageArea, HomePageSubArea)

Most of the time when new User is added to CRM, first thing they have to do is set there Preferences, which can be done by individiual User from CRM.

However there is no way to set this preferences in Advance even before User starts using CRM and currently there is no way to set it in Bulk. So I thought of creating simple Silverlight Web Resource which will all System Administrator or User with certain privileges to Bulk Edit User Settings for All Users in CRM.

CodePlex Project Link

Follow

Get every new post delivered to your Inbox.