Pages

Saturday, 23 November 2013

CRM 2013 (Orion): Administration and Management Features in Dynamics CRM 2013

Dynamics CRM 2013 - Administration and Management Updates


Performance Optimisation Feature
Microsoft has released a new feature in Dynamics CRM 2013 to optimise the performance of the Quick Find queries. Every 24 hours, Quick Find Views are processed to add or remove indexes based on the Find Columns.

Dynamics 2013 Best Practises Analyser (BPA)
Best Practises Analyser (BPA) is a diagnostic tool that performs the following

Gathers information about server roles that are installed on that server.
Determines if the configurations are set according to the recommended best practises.
- Reports on all configurations, indicating settings that differ from the recommendations.
- Indicates potential problems in Dynamics CRM 2013 server features installed.
- Recommends solutions to potential problems.

PowerShell Changes
Microsoft has made some enhancements to the available PowerShell Commands, remote execution of PowerShell commands is now possible.

Data Encryption
All new and upgraded organisations will have data encryption enabled and cannot be disabled. Data encryption prevents the Database administrator from accessing encrypted data.

Three new privileges to manage SQL encryption
o   Manage SQL Encryption key – Read
o   Manage SQL Encryption key – Change
o   Manage SQL Encryption key – Activate

Yammer Integration
Microsoft introduced Yammer integration with the December 2012 service update for Dynamics CRM Online. With the release of Dynamics CRM 2013, Microsoft has made the same functionality available for the on-premise deployments. 

Activity Feeds
Activity Feeds is now part of core solution and cannot be un-installed.

When Activity Feeds functionality is enabled for an entity
o   Follow and Unfollow buttons appear on the form.
o   Post tab appears on the social pane within the form.

VSS Writer Service (Data Protection Manager)
Microsoft Dynamics CRM 2013 introduces new functionality for backup and restore of Dynamics CRM database through Volume Shadow Copy Service framework. However, it is dependent on System Centre 2012 Data Protection Manager (DPM) –earlier versions of System Centre Data Protection Manager are not supported


For more information, Please refer to Microsoft's documentation. 

Tuesday, 5 November 2013

CRM 2013 (Orion): Upgrade

Upgrade/Re-implement Legacy features


The following legacy features will no longer be supported in Microsoft Dynamics CRM 2013
  • CRM 4 plug-ins and custom workflow activities
  • CRM 4 client-side scripting
  • 2007 web service endpoint
  • ISV folder for custom web applications
Following two tools can be used to detect the legacy features/custom code.

Legacy Feature Check Tool - On-Premise Only
It detects the use of the server side code such as CRM 4 plug-ins, custom workflow activities and the ISV folder (for custom web applications). 

Dynamics CRM 2011 Custom Code Validation Tool - CRM Online and On-Premise
This tool is focused on detecting the use of unsupported client-side code in the JavaScript web resources (includes CRM 4 client APIs).

Upgrade Methods

  • Migrate by using a new instance of SQL Server (recommended by Microsoft)
  • Migrate by using the same instance of SQL Server
  • In-place Upgrade (simply run Dynamics CRM 2013 Setup on Dynamics CRM 2011 application server) - Optionally choose to upgrade one organisation database (only one database can be upgraded with the server upgrade), all other organisations will be disabled during the upgrade process and will need to be upgraded separately. 

   The only supported upgrade path to Microsoft Dynamics CRM 2013 is from Microsoft Dynamics CRM 2011.

   Refer to Microsoft's documentation for further information.

Wednesday, 4 September 2013

CRM 2011: Integration using SQL Server Integration Services (SSIS) 2008 throws an error "The Identity check failed for the outgoing message"


Error:

The Identity check failed for the outgoing message. The remote endpoint did not provide a domain name system (DNS) claim and therefore did not satisfied DNS identity 'user.name@domain'. This may be caused by lack of DNS or CN name in the remote endpoint X.509 certificate's distinguished name.

Resolution: 

Modify the parameter passed in the EndpointIdentity.CreateDnsIdentity() method call.

Update the following

EndpointIdentity.CreateDnsIdentity(string.Format("{0}@{1}", UserName, Domain)

to 

EndpointIdentity.CreateDnsIdentity("xyz")

Saturday, 31 August 2013

CRM 2011: Integration using SQL Server Integration Services (SSIS) 2008 throws SOAP Security Negotiation Exception

Objective: 

Microsoft Dynamics CRM 2011 Integration using Microsoft SQL Server Integration Services 2008 (SSIS)

Issue:

SOAP security negotiation with 'http://CRMServer/Org/xrmservices/2011/Organization.svc' for target 'http://CRMServer/Org/xrmservices/2011/Organization.svc' failed. See inner exception for more details.

Server stack trace: 
   at System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation(TimeSpan timeout)
   at System.ServiceModel.Security.SspiNegotiationTokenProvider.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Security.CommunicationObjectSecurityTokenProvider.Open(TimeSpan timeout)
   at System.ServiceModel.Security.SecurityUtils.OpenTokenProviderIfRequired(SecurityTokenProvider tokenProvider, TimeSpan timeout)
   at System.ServiceModel.Security.SymmetricSecurityProtocol.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Channels.SecurityChannelFactory`1.ClientSecurityChannel`1.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICallOnce.Call(ServiceChannel channel, TimeSpan 

timeout)
   at System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeSpan timeout, CallOnceManager cascade)
   at System.ServiceModel.Channels.ServiceChannel.EnsureOpened(TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan 

timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at NECCrmProxy.Crm.IOrganizationService.Create(Entity entity)
   at NECCrmProxy.Crm.OrganizationServiceClient.Create(Entity entity)
   at ScriptMain.Input0_ProcessInputRow(Input0Buffer Row)
   at UserComponent.Input0_ProcessInput(Input0Buffer Buffer)
   at UserComponent.ProcessInput(Int32 InputID, PipelineBuffer Buffer)
   at Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.ProcessInput(Int32 inputID, PipelineBuffer buffer)

Resolution: 

Change EndpointIdentity.CreateUpnIdentity() to EndpointIdentity.CreateDnsIdentity() in your code.

Wednesday, 14 August 2013

CRM 2011: Impersonation in Plug-ins

Impersonation is used in Microsoft Dynamics CRM platform to execute the business logic on behalf of a system user, this includes the custom code execution governed by Microsoft Dynamics CRM security privileges of the impersonated user. Pre-entity and Post-entity images as passed to plug-ins as the execution context on behalf of the impersonated user.

Plug-ins not executed by sandbox or asynchronous service execute under CRMAppPool Identity service account. By default, CRMAppPool uses Network Service account but it can be changed by the administrator. If it is changed then administrator will need to add this identity account to the PrivUserGroup in the Active Directory.

Impersonation during Plug-in Registration

A user can be impersonated during the plug-in registration, administrator can specify a user account to execute the plug-in.
If the plug-in is getting registered programmatically then impersonation can be done by setting the property ImpersonatingUserId to a specific user, web service calls made by the plug-in execute on behalf of the impersonated user.

Impersonation during Plug-in Execution

Impersonation defined at the registration level can be overridden at run time during plug-in execution. 
For security purposes, the plug-ins can also be impersonated as the user who actually initiated this process/plug-in (by doing a specific action within the CRM application) by using the property InitiatingUserId. 

// Get a reference to the Organization service.
IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof IOrganizationServiceFactory));
IOrganizationService service = factory.CreateOrganizationService(context.InitiatingUserId);

Refer to Microsoft's documentation for more information.