Difference between Dynamics CRM 2011 update rollup 12 Versus Polaris for Dynamics CRM Online

I’m sure several people were confused like me when they first heard about Update Roll up 12 and Polaris updates for Dynamics CRM.

In summary: Rollup 12 is the latest roll up for Dynamics CRM on-premise deployments while Polaris is the codename for the December 2012 Q4 release for Dynamics CRM Online.

Both updates have common features but Polaris have additional features that are not available for on-premise deployments and are not included in Roll up 12. This is mainly because changes applied online could massively affect on-premise deployments due to the nature of these changes.

To summarise the common new features between Dynamics update roll up 12 (On premise) and update code named Polaris for Dynamics CRM online: * Cross-browser support for web access allowing CRM access from browsers other than Microsoft such as Chrome, Firefox, etc.

* Update Rollup 12 includes new indexes for the following entities in the Quick Find Search Optimization feature:

•Cases

•Opportunities

•Competitors

•Contact (the Phone Number fields)

•Business Unit

•Connection

•Connection Role

•KB Article

•Lead

•Product

•Sales Literature

 

* New Dynamics CRM UX interface with different loading images from how it was before (this new design was needed for cross browser support).

* Update Rollup 12 also contains changes for SDK, metadata, and Activity Feeds.

The major features that is only available on Polaris for Microsoft CRM Online is the new process forms for the Sales and Service entities, which provide a flat user interface designed to keep everything on one screen and eliminate pop-ups. As part of this update, most of the core entities will have a new flat form that shows the information in a more intuitive way without the need to click on buttons or switch between popups. This includes the removal of the ribbon buttons (only for this form). This is just a new form and the original classic form is still available and can be switched back from process form to the new process form.

Here is a screenshot of the new process Customer Form from Polaris (CRM Online only):

 

New Process Forms

 

 

In more details, Dynamics CRM Online Polaris update includes:

• Changes in the Sitemap. • New Activity Feeds filters for better display of feeds data. • New process form with new structure and components (This was originaly called “Flow UI”) • The possibility of switching between New Process forms and Classic forms. • Extending case management functionality. • Ability to create leads for existing accounts.

You can download and install Update roll up 12 for on-premise MS CRM deployments here: http://www.microsoft.com/en-nz/download/details.aspx?id=36229

The following URL has more details about the difference between both updates: https://community.dynamics.com/crm/b/magnetismsolutionscrmblog/archive/2013/02/19/what-is-polaris-and-rollup-12-in-dynamics-crm-2011.aspx

Scribe Insight (v 7.6) Bulk Delete and Bulk Insert into Microsoft Dynamics CRM and other products

Four years ago, I wrote a blog post about a way to do bulk delete of Microsoft Dynamics CRM records using Scribe Insight:http://www.mohamedibrahim.net/blog/2009/09/23/microsoft-dynamics-crm-bulk-delete-methods-using-scribe-insight-for-bulk-delete-dynamics-crm-records/

The post has been popular for a work around to do bulk delete before CRM 2011 came with the bulk delete system job (that wasn’t available before). Just recently, Scribe has released new version update which is Scribe Insight 7.6 and which includes bulk delete and bulk import functionality for its steps.

These new features have proven to be very popular amongst Scribe technical users and have recently been voted as the most required functionality in Scribe.

The advantage of bulk delete is clear where you can just delete all records of a specific entity in Dynamics CRM case.

The bulk insert into Dynamics CRM is even more useful as it means that Scribe will insert all records in one open connection rather than row by row if you select the just “insert” option. This means that Scribe will open one connection to Dynamics CRM API and insert all records then close the connection in contrast to inserting row by row if the bulk option is not selected.

Here is a screenshot of how the new bulk insert and bulk delete features look in Scribe Workbench DTS Step configuration:

 

Scribe Insight 7.6 Bulk Operations: Bulk Insert & Bulk Delete
Scribe Insight 7.6 Bulk Operations: Bulk Insert & Bulk Delete

 

 

Microsoft Dynamics CRM building developing and creating multiple Dependant pick lists / Option Sets / drop down menus

There are many different ways of how to create Dynamics CRM dependant picklist (option sets). Dependant optionsets is a common requirement where values in one option set field need to be filtered by a value chosen in another option set field. (For example: Multiple option set categories and sub categories based on value selected in the category field picklist).

Option 1:

The “official” approach to develop dependent picklists is explained in the CRM 2011 SDK here:
http://msdn.microsoft.com/en-us/library/gg594433.aspx

This article refers to the managed solution DependentOptionSetsSample_1_0_0_0_managed.zip from the CRM SDK available in this location: SDK\SampleCode\JS\FormScripts

The rest of article shows how to implement this solution.

Option 2:

In my view, the following managed solution is the easiest way as it provides a SilverLight application to create a Dependent Picklist by using a user friendly interface.

You can see the details of this managed solution in the following MSDN blog post (by Microsoft France):
http://blogs.msdn.com/b/paf/archive/2011/04/21/how-to-easily-create-dependent-picklist-in-crm-2011.aspx

There is also another post related to this solution that provides solution to some issues:

http://blogs.msdn.com/b/paf/archive/2011/09/29/dependent-picklist-recurrent-problems.aspx

Option 3:

Finally, the third way of configuring dependant option sets in Dynamics CRM is to do it via JavaScript. This can be done in various ways but below is one way of doing it (code provided by Palak Sheh):

First function : To only show options related to the selected value in another option set:

FilterOptionSet = function (OptionSetFieldName, filterOptionsText, failOnError) {

try {
   var arroptions;
   var arrfilteroptions;
   var control = Xrm.Page.ui.controls.get(OptionSetFieldName);
   if (typeof (control) == 'undefined' || control == null) {
   return !failOnError;
  }
  arrfilteroptions = filterOptionsText.split(",");
  if (control.getControlType() == 'optionset') {
  arroptions = control.getAttribute().getOptions();
  for (var i = 0; i <= arroptions.length - 1; i++) {
  var removeItem = true;
  for (var j = 0; j <= arrfilteroptions.length - 1; j++) {
  if (arrfilteroptions[j] == arroptions[i].value) {
  removeItem = false;
  break;
 }
}

if (removeItem) {
 control.removeOption(arroptions[i].value);
   }
  }
 }
}
 catch (e) {
 if (!failOnError) {
    return true;
 }
 alert('Error FilterOptionSet: ' + e.message);
 return true;
 }
};

Second Function : To refresh the optionset everytime

RefreshPicklist = function (OptionSetFieldName, failOnError) {
try {
 var arroptions;
 var arrfilteroptions;
 var control = Xrm.Page.ui.controls.get(OptionSetFieldName);
 if (typeof (control) == 'undefined' || control == null) {
 return !failOnError;
 }
if (control.getControlType() == 'optionset') {
   arroptions = control.getAttribute().getOptions();
   control.clearOptions();
   for (var i = 0; i <= arroptions.length - 1; i++) {
   control.addOption(arroptions[i]);
   }
  }
  }
  catch (e) {
   if (!failOnError) {
   return true;
  }
  alert('Error RefreshPicklist: ' + e.message);
  return true;
 }
};

 

Thanks

M