Detect enhanced service capabilities available with product updates

 

Applies To: Dynamics CRM 2013

Microsoft Dynamics CRM 2013 Service Pack 1 (SP1) and the Microsoft Dynamics CRM Online Spring ‘14 release include enhanced customer service capabilities. Every new organization created after this release will have these capabilities enabled. Several of these capabilities use new entities described in Enhanced service entities. For an overview of these new capabilities, see What's new in this release.

Because these enhanced service capabilities might disrupt the experience for organizations using the pre-existing service capabilities, any organizations who upgrade to Microsoft Dynamics CRM 2013 Service Pack 1 (SP1) or Microsoft Dynamics CRM Online Spring ‘14 must choose to install product updates before the enhanced service capabilities will be enabled. More information:Implementation Guide Topic: Install Product Updates.

In This Topic

Detect whether enhanced service capabilities are enabled

Generate a new organization without product updates installed

Detect whether enhanced service capabilities are enabled

When an organization is upgraded to Microsoft Dynamics CRM 2013 Service Pack 1 (SP1) or Microsoft Dynamics CRM Online Spring ‘14, all the new entity metadata to support these features are created. However, the application user interface isn’t updated to provide access to these entities, so most users won’t be able to see them. People who browse the metadata will note these new entities, but the descriptions for these entities will be “For internal use only” until product updates to enable them are applied. Checking for the presence of these entities is not a valid way to determine if the product updates are applied.

Product updates are applied through installing a special system solution. This solution isn’t displayed in the user interface. To detect whether the enhanced service capabilities are enabled you must query the solutions entity for a solution named “ServiceEnhancements610”.

Note

In the next major release of Microsoft Dynamics CRM Online and Microsoft Dynamics CRM (on-premises), this solution won’t be present; all the capabilities found in it will be part of the application.

The following queries define conditions that will return a record when product updates for these customer service enhancements are enabled:

  • LINQ

    var query = from s in SvcContext.SolutionSet
    where s.UniqueName.Equals("ServiceEnhancements610")
    select new {s.UniqueName};
    
  • OData

    Organization URL/XRMServices/2011/OrganizationData.svc/SolutionSet?$select=UniqueName&$filter=UniqueName eq 'ServiceEnhancements610'
    
  • QueryByAttribute

    QueryByAttribute ServiceEnhancementsSolutionQuery = new QueryByAttribute("solution"){
    ColumnSet = new ColumnSet("uniquename")};
    ServiceEnhancementsSolutionQuery.AddAttributeValue("uniquename", "ServiceEnhancements610");
    
  • QueryExpression

    QueryExpression ServiceEnhancementsSolutionQuery = new QueryExpression("solution"){
     ColumnSet = new ColumnSet("uniquename")};
    ServiceEnhancementsSolutionQuery.Criteria.AddCondition(
     new ConditionExpression(
      "uniquename",
      ConditionOperator.Equal,
      new String[] { "ServiceEnhancements610" }
     )
    );
    
  • FetchExpression

    String FetchString = @"
     <fetch distinct='false' no-lock='false' mapping='logical'>
       <entity name='solution'>
         <attribute name='uniquename' />
         <filter type='and'>
           <condition attribute='uniquename' operator='eq' value='ServiceEnhancements610' />
         </filter>
       </entity>
     </fetch>";
    FetchExpression ServiceEnhancementsSolutionQuery = new FetchExpression(FetchString);
    

Generate a new organization without product updates installed

All new organizations will have the product updates with the enhanced service capabilities installed by default. These updates can’t be removed. For development and testing it’s valuable to have an environment that represents an organization that has upgraded to Microsoft Dynamics CRM 2013 Service Pack 1 (SP1) but hasn’t installed the product updates. With an on-premises deployment you can modify settings on the server so that new organizations created won’t have products updates installed by default.

Use the following PowerShell script on your server to change the OptinProvisioningEnabled setting to 0.

        add-pssnapin Microsoft.Crm.Powershell 
$itemSetting = new-object 'System.Collections.Generic.KeyValuePair[String,Object]'("OptinProvisioningEnabled",0) 
$configEntity = New-Object "Microsoft.Xrm.Sdk.Deployment.ConfigurationEntity" 
$configEntity.LogicalName="Deployment" 
$configEntity.Attributes = New-Object "Microsoft.Xrm.Sdk.Deployment.AttributeCollection" 
$configEntity.Attributes.Add($itemSetting) 
Set-CrmAdvancedSetting -Entity $configEntity

If you need to change this back, modify the script to change the setting back to 1.

After you change this value, you must then use the Microsoft Dynamics CRM Deployment Manager application on the server to generate a new organization. A new organization can also be created using PowerShell. More information:Implementation Guide topic: Create an organization (PowerShell).

See Also

Service entities (contract, incident, knowledge base)
What's new in this release
Enhanced service entities
Implementation Guide Topic: Install Product Updates