Friday, December 13, 2013

Developing Client Specific Solutions

I can keep elaborating on each and every customizations and configurations in MS CRM but my goal here is to review the implementation information flow so I'll keep at it, as you can always find several online blogs that discuss various customizations and configurations within MS CRM.

A Design phase can be simple or elaborate depending upon implementation time, customer requirements and the amount of customizations and configurations from 'Simple' straightforward ones to 'Complex' Custom client-specific ones. The clearer the design phase, the quicker is the development phase of the project, else you would see yourself wind up in circles.
A good template becomes necessary here, and it is important for the client to recieve one version and the developer/application specialist to recieve another. Now, it is pertinent for the functional/solution specialist to understand customizations, configurations, and data transformations thoroughly so he/she can generate such a template.

CRM Integration can be well managed by a solutions specialist using visual products for such data transformations such as simego's CRM-Integration. Our Business Intelligence specialist works with this tool populating the tables/views out of our data warehouse and feeds them into the CRM using Simego's tool. It compares data from source or target and creates/updates as necessary, does both full & delta loads for over a million records. Will post on its performance when we use it to its complete capacity, and elaborate more on data topics when I start posting for deployment.

The development phase comprises customizations, configurations, code development and concludes with deployment to test environment. Business validation and testing is then followed by User Acceptance Testing.
I will elaborate on version control and solution management when describing the deployment phase, however, moving the MS CRM solution from the development environment to a test environment also needs to be done with care and keeping versions under control. One must pay attention to the publisher and versions under solution management in Microsoft dynamics CRM especially when you are working with more then one solution. Documenting all seperate data loads be it for products, or any other special entities thru the CRM or thru your own custom utility/tool can be a productive checklist for data loads be it test environment or production, as it will be a good staging set up/test.

CRM Solution Lifecycle Management white paper can be downloaded from here, it describes CRM solution concepts including updating layers, merge behaviors, shared publishers, solution management, hotfixes management, in a complete SDLC. The white paper also includes links to other useful downloads.
I will review local adoption groups and more in my next blog on User Acceptance Testing.

Sunday, March 17, 2013

Customizing Queues in CRM 2011

When users need access to multiple custom entities, the system queues feature provides a way to organize it.
Say a user needs access to leads and opportunities to support sales, case entity to support maintenance, and campaigns in support of new marketing efforts, this is an ideal situation to use the queue feature to group these entities together.

Creating Queues: Activities and Cases go into queues as a native dynamics feature. To get Leads, Opportunities, in a queue customize each entity by making sure that the Queues option is selected in the entity definition. You cannot reverse a queue relationship for an entity once established.

Add to Queue: The 'Add to Queue' button appears on the ribbon when this relationship is published. Simply select the entity and select all the individual records to 'add to queue'.

If only a couple entities are added to this queue, it can be easily managed. As more entities get added, this queue becomes long and unmanageable again.  In such a situation, the most effective way is to categorize them based on the entity type and create a personal view.

Creating Views for Queues: A personal view 'My Leads Today' for example can be created when you create a view and specify the related object 'Leads' in the details section.
Now these queues can be easily managed by creating such personal views by entity.
Screenshot details for the use of queues can be obtained here from Mark AuCoin's blog.

Queue Item Security: being a child entity of queue is owned by the user of the queue. So if you need to create, update or delete a queue item, you need 'Append To' privilege on the queue.

Personal Dashboard default page: Now the user can create a dashboard and Set it as his start page with all his personal queue views information on different entities he is working throughout that day, to get his day started.


Sunday, February 3, 2013

Customizing Site Map & Ribbon


The application navigation pane is controlled by the site map, which is the node in the customizations.xml of an unmanaged solution. It is affected by the user's security privileges that is, if a user does not have read access to a particular entity in the Site Map, then the navigation option will not be displayed to the user. 
SiteMap also has its own privilege settings which are very useful for specifying privilege requirements to view a page that is not related to a specific entity.

Editing the sitemap is quite a time consuming task - because you have to create solution, add component, export, update Xml and reimport the solution to update the SiteMap.
Any syntax errors will cause the SiteMap not import correctly and then if you don’t like the changes or you have done it wrong then you have to go through the export/change/import procedure all over again.

SiteMap Editor

SiteMap Editor for Microsoft Dynamics CRM 2011 helps developer and customizers to configure the Site Map in a graphical way.

This excellent tool makes editing the SiteMap is a lot easier, you can load the SiteMap into the editor, make the changes and then export them back.
You can get the SiteMap editor on codeplex here. Tanguy also has written other tools and you can take a look at them in his blog here.


There is also the Ribbon editor which can be used to edit the Ribbon using a graphical tool rather than hand editing XML files again. You can download the tool here


Ribbon Editor
Microsoft Dynamics CRM 2011 introduces the ribbon, similar to controls in the Microsoft Office. The ribbon acts as the primary location of controls that are used to perform actions in the application

Working with Ribbons
Create a solution for each entity you want to modify the ribbon. To add or hide buttons, the first step is to export the entity definition. Note that it is recommended to create a solution for each of the entities for which you want to modify the ribbon. That way, the size of the customization file will be smaller and easier to manage. Also, for the purpose of editing the ribbon, you do not have to include the required component in the solution that you are going to export.

Hiding a Ribbon element
To hide a ribbon element, follow the same steps above to export the ribbon. Then locate the Location and the ID of the control that you want to hide from the exported<entity>Ribbon.xml. Finally, specify the control that you want to hide, in the CustomActions area.

Ribbon Editor makes it easier for developers and customizers to edit Microsoft Dynamics CRM 2011 ribbons. With this tool, you have to understand how ribbon works even if you do not have to memorize all its capabilities to customize it.
This application is not a wizard, it is really an editor. There are no consistency checks until you try to import back the ribbon. The download link for this project is in Alpha version; there are also other tools available to edit ribbons online like this one, here among others that offers more operations than just strictly ribbon customization.


Friday, January 4, 2013

Customizations and Custom Development Tools & Utilities

Found this remarkable post, a power point presentation for the CRM 2011 Walkthrough, that takes you through UI customizations options, Solution Management, Web Resources, Processes (Workflows, Dialogs), Custom Activities, Queue Enhancements, Multiple Forms per entity, Security features, Cloud Services, Upgrading from CRM 4.0, and What's not there in CRM 2011 by Jukka Niiranen.

There are many tools & utilities that can be used to boost your customization & developer productivity, custom development. A Microsoft Dynamics CRM 2011 Development Resources wiki page contains some useful tools & utilities in addition to other valuable information, that includes:


There are many more useful CRM Tools & Utilities for CRM 2011, and these are freeware or open source utilities. You may test them in your development & see if it will meet your needs. The list is also available in Excel file which you can download here


Name:Category:Short description:Type:


Slider Form Control
Form ControlsSlider control for use in formsManaged Solution
Star Rating ControlForm ControlsStar rating control for use in formsManaged Solution
Silverlight CRM Image AttachmentForm ControlsProvides a simple way to add a changable image to a CRM 2011 form/entity. The image is stored in the notes, leveragin core CRM.Silverlight App
CRM 2011 Lookup PreviewForm ControlsControl that shows the preview of selected lookup recordManaged Solution
CRM2011 TreeView for LookupForm ControlsWill enable users to use TreeView control to select Lookup data where Lookup is having Self Joined (e.g. account entity  having Parent Account)Managed Solution
CRM2011 TreeView for Dependant PicklistForm ControlsEnables Users to use Dependent Picklist data in TreeView form. Having data displayed in TreeView form makes data selection easier and fasterManaged Solution
File upload control – MS CRM 2011Form ControlsMS CRM 2011, adding a custom control for File Uploading purpose inside the forms, by using the features of MS CRM itself.JavaScript
MS CRM Rich Text boxForm ControlsThis plug-in gives you the feature of adding Rich text box in MS CRM 2011 forms without using any server side HTML or JS or Aspx page.JavaScript
CRM2011 User Settings UtilityForm ControlsUpdate user settings for multiple users from one location.Desktop App
Related records explorerForm ControlsSilverlight tree control to see the related records(upto any level) of current opened record in form. The entities and the relationships to display is configurable.Managed Solution
MS CRM 2011 Twitter IntegrationForm ControlsDisplay recent 10 twits related to customer in MS CRM 2011.Web Resource
LINQPad Plugin for Microsoft Dynamics CRM 2011General DevelopmentHelps write and execute LINQ queriesDesktop App
CRM 2011 OData Query DesignerGeneral DevelopmentSilverlight app that allows you to build OData queries and execute them and view the ATOM and JSON data returned.Managed Solution
Connection ControlsGeneral DevelopmentConnection Controls for Microsoft Dynamics CRM 2011 makes it easier for developer to implement discovery and authentication mechanism in their winform projectVS library
CRM2011 Code SnippetsGeneral DevelopmentA set of JavaScript and C# code snippets to facilitate common Microsoft Dynamics CRM 2011 development for Visual Studio 2010.JavaScript and C# snippets
Developer ToolkitGeneral DevelopmentEnables integration with Visual Studio and is focused on accelerating the development of custom code Solution components. Included in the SDK.VS addin
Bulk Delete CRM AttributesGeneral Developmentself-explanatoryDesktop App
BingMaps BrowserIntegrationBing Maps Silverlight control for Microsoft Dynamics CRM 2011Managed Solution
Skype Connector for CRM 2011IntegrationAllow you to communicate via Skype (outbound calls) directly from a CRM contact recordManaged Solution
InfoPath to CRMIntegrationEnables you to accept emailed InfoPath forms and convert them to entitiesManaged and Unmanaged Solution
google maps viewerIntegrationManaged Solution for Dynamics CRM 2011 for embedding google maps in any address formManaged Solution
Skype Connector for Dynamics CRM 2011IntegrationSkype Connector for Dynamics CRM 2011 enables you to integrate inbound Skype calls with Dynamics CRM. Projects consists of two components: agent tray application & Solution for CRM 2011 (Unmanaged or managed).Managed Solution and Desktop App
JavaScript Web Resource ManagerJavaScript DevelopmentHelps CRM developers to extract javascript web resources to disk, maintain them and import changes back to CRM databaseDesktop App
CRM 4 to CRM 2011 JavaScript ConverterJavaScript DevelopmentHelps convert scripts to the latest CRM 2011 Form scripting modelDesktop App
MS CRM Javascript Intellisense GeneratorJavaScript DevelopmentProvide intellisense in Visual Studio for CRM scripting modelVisual Studio include file
Toggle visibilityJavaScript DevelopmentControl visibility of controls, sections, tabs, navigationJavaScript
Change color of form header and footerJavaScript Developmentself-explanatoryJavaScript and CSS
XrmServiceToolkitJavaScript DevelopmentJavaScript library for easier JS development. Enables you to execute REST, SOAP methods and other common functions neededManaged and Unmanaged Solution
XrmSvcToolkitJavaScript DevelopmentXrmSvcToolkit is a small JavaScript library that helps you access Microsoft Dynamics CRM 2011 web service interfaces (SOAP and REST). Managed and Unmanaged Solution
CRM 2011 JavaScript Model GeneratorJavaScript DevelopmentThis tool will increase developer productivity as well as performance in regards to client-side scripting on CRM 2011 entity forms.Console App
CRM 2011 Visual Studio ToolsJavaScript DevelopmentThe tool will listen to the Traffic and when it identifies a JavaScript WebResource file, it will exchange it with your local copy. So you can edit and test the Script directly after you saved the file on your harddrive. You can test the script inside CRM without the need of uploading it to CRM.VS addin
CrmXpress Trace HelperMaintanance & AdministrationHelps you to enable/disable tracing for CRM components with few clicks. Also gives you the option to manage the trace files from within a single window.Desktop App
Diagnostics ToolMaintanance & AdministrationHelps you enable trace and devErrors on CRM server. It also generates an HTML report file with information about the CRM deploymentDesktop App
CRM2011 Maintenance Job EditorMaintanance & AdministrationThis utility is to be used for editing the CRM 2011 maintenance jobs which are automatically scheduled by the installation of CRMDesktop App
CrmXpress OptionSet ManagerMaintanance & AdministrationTool to manage all your Option Sets in your CRM 2011 system. It lets you create new Option Sets, update Options in existing Option Sets and delete OptionsDesktop App
Multiple Attachment Download ApplicationMaintanance & AdministrationMS Dynamics CRM 4.0 & 2011 don’t have a way for Administrators to Export attachments from database to local machine. This Application allows you to do soDesktop App
Role UpdaterMaintanance & AdministrationAdd or remove privileges to multiple security roles in one operationDesktop App
Count CRM usersMaintanance & AdministrationGet a count of the number of users across all of your organizationsDesktop App
CRM 2011 Silverlight Web Resource for User SettingsMaintanance & AdministrationThis utility allows a User with certain permissions to Update User Settings such as DefaultCalendarView, PagingLimit and ShowGetStartedPage. Managed Solution
Searchable Property UpdaterMaintanance & AdministrationMakes it easier to bulk change the "Active for advanced find" property of entities attributesDesktop App
CRM2011 Duplicate Detection ToolkitMaintanance & AdministrationContains a set of stored procedures that allow to obtain a list of duplicates that can then be consolidated in a report.Stored procedures & report
CRM 2011 Bulk Disassociation of 1:N relationship recordsMaintanance & AdministrationCRM Solution which will allow User to remove child records from Parent Entity form and they need not go to individual child record formManaged and Unmanaged Solution
Export Import User ViewsMaintanance & AdministrationSilverlight application for Exporting and Importing user views between different Microsoft Dynamics CRM 2011 environmentsManaged Solution
Bulk refresh of user details from ADMaintanance & AdministrationBulk update of user details from AD. Exposed as a ribbon buttonJavaScript
CRM Powershell Management packMaintanance & AdministrationSet of additional cmdlets to manage CRM systemPowershell Snap-in
MetablastModelling & DocumentationRuns through the CRM API to automatically generate a CSV file with all of the data fields for the entities that you specified.Console App
XRMVisioERModelling & DocumentationGenerates ER model in Visio based on your CRM metadataDesktop App
CRM 2011 Visio add-in: Business Unit Org ChartModelling & DocumentationThis Visio 2010 addin connects to CRM Server, fetches all business units in the organization and draws an org chart.Visio add-in
Metadata Document Generator for Microsoft Dynamics CRM 2011Modelling & DocumentationMetadata Document Generator makes it easier for Dynamics CRM 2011 integrators to generate documentation about entities and attributes metadata. Desktop App
CRM 2011 Metadata BrowserModelling & DocumentationSilverlight 4 application that is packaged as a Managed CRM 2011 Solution. Allows you to view metadata within CRM including Entities, Attributes and Relationships. Can export to ExcelManaged Solution
CRM 2011 ERD DesignerModelling & DocumentationSilverlight 4 application that is packaged as a Managed CRM 2011 Solution. Allows you to build ERD (Entity relationship diagrams) that are dynamically updated based on the published CRM entities and Fields. Supports printing.Managed Solution
CrmXpress RunAs GUIOtherAllows you to create profiles with username and password reducing time for testing with different usersDesktop App
Dynamics XRM ToolsOtherToolset containing following utilities: Odata Query Designer, MetadataBrowser, Trace Tool, Statistics, CRM4 To CRM2011 JS ConverterManaged Solution
MSCRM 2011 – Send report in pdf format as attachment in emailOtherSend report in pdf format as attachment in email. The main idea for creating it as console application was the ability to run it with windows task scheduler on a timely basis.Console App
Quickly Create Users in AD from CSVOtherCreates Active Directory users from CSV listpowershell script
CRM 2011 Autonumbering SolutionPluginsThis is a Solution for crm 2011 for autonumbering the configurated entity. Unmanaged Solution
CRM 2011 Plugin Testing ToolsPluginsThis Solution is meant to make unit testing of plugins in CRM 2011 a simpler and more efficient process.Plugin and VS class
Plugin Registration Console ApplicationPluginsYou can now register your plugins and custom workflow activities from a command line, within Visual Studio from the post-build event or from a TFS Build post-build event.Console App
Microsoft CRM PluginQuickDeployPluginsThis tool is made for speeding up your plugin development against Microsoft CRM 2011.Console App
Advanced CRM 2011 Auto NumberPluginsAdvanced CRM 2011 Auto Number is the most advanced auto number Solution for CRM 2011 Online, On-Premise and Partner Hosted (IFD).Managed Solution
Solution ImportSolution ManagementMakes it to import a Solution Zip file or a extracted Solution folder to the server in one single operationDesktop App
Dynamics CRM 2011 VersionhandlerSolution ManagementGetting all you customizations under versioncontrol in TFS has never been more simple. Requires Team ExplorerPlugin
SiteMap EditorUI customizationFor editing sitemapDesktop App
CRM 2011 Visual Ribbon EditorUI customizationFor editing ribbon, shows preview as wellDesktop App
View Layout ReplicatorUI customizationHelps copying the layout of a view and pasting it to the layout of other views in the same entityDesktop App
CRM 2011 Workflow UtilitiesWorkflowsCustom workflow activities for CRM 2011 for: Delete record, Share or “unshare” a record, Insert hyperlink to a CRM record, Managed Solution
CRM Manipulation LibraryWorkflowsSet of custom workflow activities to solve equations, date calculations, manipulates strings, perform regex ) formatting & matchingCustom Workflow Activity
CRM2011 Views and Filters ToolkitWorkflowscustom workflow activities to help manage views, filters, filter templates and local data groupsManaged and Unmanaged Solution
CRM 2011 Distribute Workflow ActivityWorkflowsThis plugin allows to execute a workflow for each entity that has a 1:N or N:N relationship to a given entityManaged and Unmanaged Solution
Workflow AutomationWorkflowsSchedule worfklows via Task SchedulerConsole App
CRM 2011 Share Record Code ActivityWorkflowsA simple custom workflow activity to share any record that can be shared or remove sharing to any record in CRM 2011.Custom Workflow Activity

Wednesday, January 2, 2013

Technical Design from Functional Design Document

Diagnosis & analysis phases yield the functional design document in this 'Design' Phase. This document is then handed-off to the technical crew to produce the technical design document followed by development, testing and deployment.
Depending on the complexity of the customization, configuration and XRM specified in the requirements, roles can be assigned for development, testing and deployment in your internal environment, followed by testing & deployment on the customer’s training/sandbox environments.
Now for some art & science on this topic: J Work breakdown structure defining all the technical components and resource assignments furnishing details of the team lead and technical team for each component will help with large enterprise efforts. And this WBS must be an aligned effort by you (partner source) and your (customer source) so that it facilitates information flow for collaborative decisions/executions. Enterprise efforts may involve third party integrations of applications with MS CRM such as Call Center, Email Marketing, Social Networking, etc.,
However, a ready to deploy product (solution) with few customizations and configuration efforts can be technically designed & managed by the technical consultant who also estimates the timeframe to do development, testing. Form changes, web control changes, data modifications, process modifications, security strategy summary, roles-based security (summarizing privileges, entry points, permissions, and sub-roles) will be some of the details furnished and completed during this phase.

I will discuss some commonly used customizations, configurations, and technical design related information in the next post.