Quantcast
Channel: Dynamics 365 Customer Engagement in the Field
Viewing all 393 articles
Browse latest View live

Use PowerShell: build a redist folder to install Dynamics CRM 2011 without an internet connection

$
0
0

Most likely you’ve read Shawn Dieken’s wildly popular article on how to create a redist folder when installing CRM without an internet connection.  Today I was presented with a customer scenario where a server that should have had internet access did not and thus, we had to install without internet access.  No big deal, however after walking through the article I quickly realized this task, while effective, was pretty monotonous and not a lot of fun.  I caught myself thinking “there must be a better way” – and turns out there was and all we needed to do was bring PowerShell into the mix!

With a few lines of code and a little testing, I had a script to paste in to PowerShell and create my very own CRM 2011 Redist folder with all the pre-requisite files.

Usually you find PowerShell scripts downloadable as PS1 files, but sometimes in scenarios like this I find myself just wanting to, copy my script, open PowerShell, Paste, and Go.  With that in mind, this script can be simply copied and pasted into PowerShell so you can quickly build your redist folder.

Instructions for use:

  1. Open PowerShell on the computer you have internet access on
  2. Copy the script below top to bottom (from the “#begin script” to the “#end script”)
  3. Paste it right into PowerShell – if it doesn’t execute hit enter to run the “Create-CRM2011Redist” function
  4. This will pop up a folder picker, pick a folder and press OK
  5. After you press Ok, the script will create a new Redist folder in the destination you’ve selected it will then proceed to create the directory structure (11 Folders), then download 24 files, this should total about 216MB of disk space when it’s all done.
  6. Finally, once it has completed, copy the redist folder to the install folder containing: Server, Client, EmailRouter, and BIDSExtensions folders
  7. When you’re done copying your install folder should look like the graphic below:

Download the PowerShell Script as a .txt file.

#begin Script 
#Function to Show an Open Folder Dialog and return the directory selected by the user.
function Read-FolderBrowserDialog([string]$Message, [string]$InitialDirectory)
{
$app = New-Object -ComObject Shell.Application
$folder = $app.BrowseForFolder(0, $Message, 0, $InitialDirectory)
if ($folder) { return $folder.Self.Path } else { return '' }
}
#download pre-req function, also creates the folders
function dlPreReq($root, $folderName, $fileName, $url)
{
$fldr = Join-Path -Path $root -Child $folderName
$dest = Join-Path -Path $fldr -Child $fileName

#create folder if it doesnt exist
if((Test-Path -Path $fldr) -ne $True)
{
New-Item -Path $fldr -ItemType directory | out-null
}
Write-Host ("Downloading {0} to path: {1} " -f $fileName, $fldr)
$wc = New-Object system.net.webclient
$wc.downloadFile($url,$dest)
}
#download each pre-req
function Create-CRM2011Redist()
{
$folderRoot = (Read-FolderBrowserDialog "Pick the location to create the Dynamics CRM 2011 redist folder")
if(($folderRoot.length) -gt 0)
{
$folderRoot = Join-Path -Path $folderRoot -Child "Redist"
dlPreReq $folderRoot dotNETFX "dotNetFx40_Full_x86_x64.exe" "http://go.microsoft.com/fwlink/?LinkId=182091&clcid=0x409"
dlPreReq $folderRoot DotNetServicesSDK WindowsAzureAppFabricSDK-x64.msi "http://go.microsoft.com/fwlink/?LinkId=178254&clcid=0x409"
dlPreReq $folderRoot IDCRL wllogin_32.msi "http://go.microsoft.com/fwlink/?LinkId=194721&clcid=0x409"
dlPreReq $folderRoot IDCRL wllogin_64.msi "http://go.microsoft.com/fwlink/?LinkId=194722&clcid=0x409"
dlPreReq $folderRoot MSI45 WindowsServer2003-KB942288-v4-x86.exe "http://go.microsoft.com/fwlink/?LinkID=139114&clcid=0x409"
dlPreReq $folderRoot MSI45 WindowsServer2003-KB942288-v4-x64.exe "http://go.microsoft.com/fwlink/?LinkID=139115&clcid=0x409"
dlPreReq $folderRoot MSI45 Windows6.0-KB942288-v2-x86.msu "http://go.microsoft.com/fwlink/?LinkID=139108&clcid=0x409"
dlPreReq $folderRoot MSI45 Windows6.0-KB942288-v2-x64.msu "http://go.microsoft.com/fwlink/?LinkID=139110&clcid=0x409"
dlPreReq $folderRoot MSI45 WindowsXP-KB942288-v3-x86.exe "http://go.microsoft.com/fwlink/?LinkID=139113&clcid=0x409"
dlPreReq $folderRoot MsoIdCrl msoidcli_32.msi "http://go.microsoft.com/fwlink/?LinkId=221498&clcid=0x409"
dlPreReq $folderRoot MsoIdCrl msoidcli_64.msi "http://go.microsoft.com/fwlink/?LinkId=221500&clcid=0x409"
dlPreReq $folderRoot ReportViewer ReportViewer.exe "http://go.microsoft.com/fwlink/?LinkId=193386&clcid=0x409"
dlPreReq $folderRoot SQLCE SSCERuntime-ENU-x86.msi "http://go.microsoft.com/fwlink/?LinkId=147327&clcid=0x409"
dlPreReq $folderRoot SQLCE SSCERuntime-ENU-x64.msi "http://go.microsoft.com/fwlink/?LinkId=147326&clcid=0x409"
dlPreReq $folderRoot SQLExpr SQLEXPR_x86_ENU.exe "http://go.microsoft.com/fwlink/?LinkId=179623&clcid=0x409"
dlPreReq $folderRoot SQLNativeClient sqlncli_x64.msi "http://go.microsoft.com/fwlink/?LinkId=178252&clcid=0x409"
dlPreReq $folderRoot VCRedist vcredist_x86.exe "http://go.microsoft.com/fwlink/?LinkId=195255&clcid=0x409"
dlPreReq $folderRoot VCRedist vcredist_x64.exe "http://go.microsoft.com/fwlink/?LinkId=195257&clcid=0x409"
dlPreReq $folderRoot WindowsIdentityFoundation Windows5.2-KB974405-x86.exe "http://go.microsoft.com/fwlink/?LinkId=200432&clcid=0x409"
dlPreReq $folderRoot WindowsIdentityFoundation Windows5.2-KB974405-x64.exe "http://go.microsoft.com/fwlink/?LinkId=200430&clcid=0x409"
dlPreReq $folderRoot WindowsIdentityFoundation Windows6.0-KB974405-x86.msu "http://go.microsoft.com/fwlink/?LinkId=190775&clcid=0x409"
dlPreReq $folderRoot WindowsIdentityFoundation Windows6.0-KB974405-x64.msu "http://go.microsoft.com/fwlink/?LinkId=190771&clcid=0x409"
dlPreReq $folderRoot WindowsIdentityFoundation Windows6.1-KB974405-x86.msu "http://go.microsoft.com/fwlink/?LinkId=190781&clcid=0x409"
dlPreReq $folderRoot WindowsIdentityFoundation Windows6.1-KB974405-x64.msu "http://go.microsoft.com/fwlink/?LinkId=190780&clcid=0x409"
}
else
{
write-host "No folder selected, operation was aborted. Run Create-CRM2011Redist to retry."
}
}

#kick off the script
Create-CRM2011Redist

#end script

Performance: Turn off HTC’s and IE Compat Mode mode with Dynamics CRM 2011

$
0
0

After applying update rollup 12 most of us will likely want to take advantage of a setting which disables HTC’s and allows CRM to take advantage of Internet Explorers latest standards based browser mode. 

NOTE: This reference of HTC is not the mobile phone maker but instead DHTML behavior definitions used in IE5 and greater.

Why disable HTC’s?  There are a couple of reasons, the first of which is a general performance boost, anecdotally I’ve noticed that by disabling the HTC’s the perception of responsiveness in CRM seems to improve.  Second, by dropping the HTC’s (used for CRM 4.0 JavaScript API compatibility) you are removing a bunch of extra components from CRM including the forms – again these components specifically support CRM 4.0 javascript API’s.  By removing these behaviors you’re naturally streamlining the app. 

What are the settings and what do they do?

OrgDBOrgSetting UI Setting Label Setting Description
DisableIECompatMode Load pages in the most recent version of Internet Explorer True will attempt to turn off IE’s compatibility mode and allow for the use of HTML5, CRM accomplishes this by sending the X-UA-Compatible Response Header.  As of UR14 the header value (if this is set to true or checked) is “IE=7;IE=8;IE=9;IE=10”.  If False, the header is not set and the compatibility mode is left entirely up to the browser to determine.  Documentation
IncludeHTC Include HTC support in Microsoft Dynamics CRM forms If True (default) the HTC behavior files will be included in the Dynamics CRM UI to support the use of the CRM 4.0 JavaScript API’s – this is strictly in place for JavaScript backwards compatibility. If False will remove the HTC behaviors in CRM 2011. If you have updated your JavaScript to support CRM 2011 API’s this setting can be disabled. Documentation

How do I edit these settings?
You have two different ways to change the settings – both will change the same underlying setting but the second option has you to use an editor which allows for the altering of many other Dynamics CRM 2011 settings.

  1. To toggle the two specific settings listed above, open Dynamics CRM 2011 in the web browser and click Settings, then navigate toAdministration” in the left hand navigation.  Within the Administration navigation page, click “System Settings”.  Once in the System Settings modal dialog click the Customization Tab, you’ll find the two settings displayed as checkboxes under “HTML component support” a screenshot of this dialog can be found here
  2. To access all orgDbOrgSettings (Organization Settings) including the two above: download the Organization Settings Editor (see project page and blog article for more info).  This is a managed solution you import into CRM, then you open the solution in CRM, using the configuration page of the solution you are able to edit the above settings as well as dozens of others used to configure CRM (OnPrem or Online).  First, import the managed solution here.  Once you’ve imported the managed solution: open Dynamics CRM 2011 in the web browser, and click Settings, find and click Solutions in the left hand navigation, in the main solutions grid double click the “OrganizationSettingsEditor” managed solution to launch the configuration and editor page (you’ll want to maximize the editor page so you can see all the settings).  The above two settings, along with many others will be listed and can be edited within this editor page.

What setting values provide the most optimal experience and what are the defaults? To provide a standards based experience in IE and to allow for the user of cross browser mode you’ll should try to have the following settings:

Setting Suggested Value* Default Value
DisableIECompatMode Checked or True Unchecked or False (X-UA-Compatible header is not set)
IncludeHTC** Unchecked or False Checked or True (HTC’s are included)

*The values are suggested for the most optimal experience for users in IE – there are many cases where these settings may not be possible until customizations are updated to use CRM 2011 API’s. 
**If you wish to have cross browser support IncludeHTC must be set to False. However, this should not be used this as a way to restrict usage – if you wish to restrict usage of certain browsers read below.

The benefits: If you test and confirm customizations with these settings you can take advantage of the most recent IE versions and avoid having to be reliant on compatibility mode.  Additionally, Dynamics CRM 2011 can operate in cross browser mode and your customizations will meet standards making the use of your custom components in other browsers much easier to achieve. 

Can I control which browsers CRM allows? You can use the Browser Control solution documented on MSDN: here.  However, you’ll also want to work with your configuration management team – if using another browser isn’t supported in your business you want to make sure you inventory that and manage your software configuration appropriately.  Products like System Center Configuration Manager (SCCM) or for a cloud based approach appropriate for 1 user or thousands of users you can use Windows Intune.

More documentation: I want to call attention to the “Use JavaScript with Microsoft Dynamics CRM” MSDN article, this article does a great job of calling out many of the best practices when coding for Dynamics CRM.  It’s a great reference article and is a good reminder of the JavaScript best practices. The main issue we’ve observed with these settings is non-compliant or CRM 4.0 specific JavaScript.  The second largest issue I’ve observed is with custom pages in iFrames or embedded as WebResources – these pages should be tested to make sure they will render properly in a standards based browser mode and without HTC support. And a friendly reminder, please do not modify the DOM directly this has potential supportability consequences but this also can cause many unintended memory leaks if there are circular references caused by modifying the DOM.

More questions? Please leave a comment and we’ll try to respond as we have time.  If you’re a premier customer talk to your TAM about dispatching a Dynamics CRM PFE (remote or onsite), and if you already have a Dedicated Dynamics PFE make sure to reach out and we can work with you to put together a plan to get your customizations updated allowing you to take advantage of the most optimal settings.  If you don’t have Premier and are interested in working with us – please reach out and we can set you up to talk with someone about Premier.

By testing, preparing, and moving forward you will put yourself in a good position for future updates and upgrades to the CRM platform. Thanks for reading! 

Sean McNellis
Premier Field Engineer

Microsoft Dynamics CRM 2013 – Release Preview Guide is now available!

$
0
0

Bob Stutz posted a blog today highlighting the release of the Microsoft Dynamics CRM 2013 Release Preview Guide!  I recommend that you check out his blog post here and then download the Release Preview Guide for complete details!

We are planning to continuously update this Get ready for the next release site with all the latest information and links to white papers to prepare for CRM 2013.  The white papers to prepare for the CRM Online update and CRM Onpremise upgrade were just posted, so be sure to check them out.

Onpremise: How to Prepare for the Upgrade to Microsoft Dynamics CRM 2013

Online: How to Prepare for the Microsoft Dynamics CRM Online Fall '13 Service Update

The Dynamics CRM Premier Field Engineering team is very excited for CRM 2013 and all the new features and functionality discussed in the CRM 2013 Release Preview Guide. 

We are busy building out new CRM 2013 packaged services and deliveries, so let us know if you are interested in any Workshops, Webcasts, or any other related services.

If you would like to have another Microsoft PFE or I visit your company and assist with the ideas presented on our blog, contact your Microsoft Premier Technical Account Manager (TAM) for booking information.  For more information about becoming a Microsoft Premier customer email PremSale@microsoft.com, tell them CRMInTheField or I sent you.

Thanks!
Shawn Dieken

Microsoft Premier Field Engineer

Dynamics CRM Multi-Series Bar Charting – Returns Secondary Y-Axis

$
0
0

I was recently assisting a customer with some custom charting and dashboards in Microsoft Dynamics CRM 2011. One of their goals was to create a bar chart that allowed them to compare three currency fields by owner for the account entity. One of the features of creating multi-series charts in Microsoft Dynamics CRM is the ability to create charts with a secondary y-axis which allows  each series to have their own measurement scale.

In my customers scenario, because they had three series in their chart rather than two, this secondary axis actually caused an issue where the bars in the chart were appearing incorrectly.

  1. Note that there are two competing y-axis acting as different measurement scales for the different series
  2. The sum of the data being returned, though correct, displays incorrectly in the graph ($35,000 has the highest bar while both $40,000 and $50,000 appear shorter)

111111

In digging in deeper we noticed that the chart was returning a left y-axis and a secondary right y-axis which is deemed “secondary” but added by default to the second series. The 1st series uses the left y-axis and the 2nd series uses the right y-axis and the in their case the 3rd series goes back to the first, causing the appearance of the chart to be inaccurate.

ASP.NET charting allows for a Primary and Secondary X and Y axis, and because we had 3 series this was causing issues with only being allowed 2 y-axis.

There was no way to actually control or edit this from the application, so to edit this chart I exported the XML. You can do this by selecting the “More Actions” menu from the chart area within any entities customizations area and selecting to “Export Chart.”

3333

Upon opening the XML in visual studio I noticed that there that the second series node had the following attached to the end: YAxisType="Secondary"></Series>
    

 1: <Series>
 2:    <Series ChartType="Column" IsValueShownAsLabel="True" Font="{0}, 9.5px" LabelForeColor="59, 59, 59" CustomProperties="PointWidth=0.75, MaxPixelPointWidth=40"></Series>
 3:    <Series ChartType="Column" IsValueShownAsLabel="True" Font="{0}, 9.5px" LabelForeColor="59, 59, 59" CustomProperties="PointWidth=0.75, MaxPixelPointWidth=40" YAxisType="Secondary"></Series>
 4:    <Series ChartType="Column" IsValueShownAsLabel="True" Font="{0}, 9.5px" LabelForeColor="59, 59, 59" CustomProperties="PointWidth=0.75, MaxPixelPointWidth=40"></Series>
 5:  </Series>
 
I went ahead and removed that from that node (YAxisType="Secondary") and saved a copy of the new xml.  I went back into the charting area for the account entity 
and through the same “More Actions” menu chose to import the chart.

After import the chart appears as desired, with no secondary y-axis and the chart data appearing correctly!

222222

If you are interested, our PFE team is ready to help you with this, we can assist with query examples and various other engagements to help you improve your CRM reports and performance. In addition, we have many other services we offer such as reporting workshops, developer training, admin workshops, and code reviews.  If you would like to have another Microsoft PFE or I visit your company and assist with the ideas presented on our blog, contact your Microsoft Premier Technical Account Manager (TAM) for booking information.  For more information about becoming a Microsoft Premier Customer email PremSale@microsoft.com.

Thanks!

Sarah Champ

 

6 Steps to Add a Deployment Administrator in Microsoft Dynamics CRM 2011

$
0
0

I received a call from one of my customers where when a Deployment Administrator, that was recently added, was receiving SQL errors when opening the Deployment Manager console.  The issue was the new Deployment Administrator did not have rights to the MSCRM_Config database.  TechNet has a series of pages, http://technet.microsoft.com/en-us/library/gg197626.aspx, that go through the steps of adding a new Deployment Administrator.  Today I’ll walk you through how to create a security group with the proper security privileges to reduce administrative overhead when adding new Deployment Administrators.  Here is an overview of what is in the CRM IG and Technet Articles:

Microsoft Dynamics CRM 2011 Deployment Manager is a Microsoft Management Console (MMC) snap-in that system administrators and value-added resellers use to manage Deployment Administrator accounts, organizations, servers, and licenses for Microsoft Dynamics CRM deployments.

Important notes:

  • At least one deployment administrator must be defined in each CRM deployment group
  • To run the CRM Deployment Manager and provision tenant organizations, you must be assigned the Deployment Administrator role
  • Deployment Administrators have complete and unrestricted access to perform Deployment Manager tasks on all organizations and servers in a Microsoft Dynamics CRM deployment
  • During Microsoft Dynamics CRM Server Setup, the process automatically assigns the Deployment Administrator role to the user who is running the Setup
  • While you could use the same account, it is recommended that you use separate accounts per CRM deployment group to minimize risk to a security breach
  • Although you should limit the number of Deployment Administrators, the best practice is to enable at least two or three trusted user accounts with this role. This will help prevent potential lockouts that could occur when only using a single account. A second option is to use an additional, separate, service account that would not leave the company and be used to avoid lockout. 

NOTE: The Deployment Administrator role is separate from the Microsoft Dynamics CRM user role.

 

The following walks you through how to create an AD Group to manage Deployment Administrators privileges:

 

1: Creating a New CRM Deployment Administrators Security Group in AD

Create a new Active Directory Security group for the CRM Deployment Administrator(s). This group will be used to assign permissions to the systems and security groups necessary to administer fully the CRM organizations in a CRM deployment. Consider naming this group unique to the CRM Deployment, such as CRMDG01Admins.

2: Adding the Deployment Administrators Group as a Local CRM Server Admin

When you add a Deployment Administrator role to a user, Deployment Manager does not grant the user local administrative rights to the CRM Deployment Administration and database servers. This is required to provision resources properly within the deployment.

  1. Log on to CRMDEP01 using an account that is a member of Domain Administrators group.
  2. Add the ContosoCRMDG01Admins group to the local Administrators group.
  3. Repeat this procedure on CRMSQL01

 

3: Granting CRM Deployment Administrator Permissions to the CRM Active Directory Groups

The user who creates, modifies, edits, and imports organizations in Microsoft Dynamics CRM must have permissions in the following Microsoft Dynamics CRM security groups in Active Directory:

  • PrivReportingGroup {guid}
  • PrivUserGroup {guid}
  • ReportingGroup {guid}
  • SQLAccessGroup {guid}

Note: make sure your various service accounts have the proper group membership, this is documented in our CRM 2011 Setup FAQ, the table in the FAQ is now also listed in the CRM IG.

CRM Deployment Administrator must have permissions to all four Microsoft Dynamics CRM security groups.  The specific permissions a deployment administrator must have on the CRM security groups are as follows:

Basic Permissions

  • Read
  • Write
  • Add/Remove self as member

“Advanced” or Detailed Permissions

  • List Contents
  • Read All Properties
  • Write All Properties
  • Read Permissions
  • Modify Permissions
  • All Validated Writes
  • Add/Remove self as member

The Deployment Administrators group you’ve created will allow you to grant the proper permissions on it and in the future you can save time by adding new CRM Deployment admins to the group we’ve created. To setup the proper permissions for members of this security group:

  1. Log into a computer with Active Directory Users and Computers management console installed 
  2. In Active Directory Users and Computers click the View menu, then check the Advanced Features option
  3. In the left hand navigation expand your domain, for this example: contoso.com.
  4. Click on the organization unit containing the CRM Security groups (as defined during the installation of the first CRM server), The listing pane should display the following CRM security groups:
    • PrivReportingGroup{…}
    • PrivUserGroup{…}
    • ReportingGroup{…}
    • SQLAccessGroup{…}
      *{…} represents the globally unique identifier (GUID) following the group name. The GUID will be unique in every deployment. A representative example group name could be ReportingGroup {4efba72a-232f-44ec-9d95-155eb6ffb1be}
  5. Right-click the PrivReportingGroup security group and then click Properties.
  6. In the Properties dialog box, select the Security tab, and in the Group or user names list, click Add.
  7. In the Enter the object name to select text box, type CRMDG01Admins, click the Check Names button, and then click OK.
  8. With the CRMDG01Admins group selected, click to select the Allow check box for the Write permission. This action causes the system to select automatically the Add/Remove self as member check box.
    • By default, the Allow check box is selected for the Read permission.
  9. Click Advanced.
  10. In the Permission list, select the CRMDG01Admins group, and then click Edit.
  11. Click to select the Allow check box for the Modify Permissions permission.  By default, the Allow check box is selected for the following permissions:
    • List Contents
    • List Object
    • Read All Properties
    • Write All Properties
    • Read Permissions
    • All Validated Writes
    • Add/Remove self as member
  12. Click OK three times.
  13. Repeat the steps in this procedure to grant the CRMDG01Admins permissions to modify the PrivUserGroup, ReportingGroup, and SQLAccessGroup security groups.

4: Grant CRM Deployment Administrators Permissions to CRM SQL Objects

When you add a Deployment Administrator role to a user, Deployment Manager does not add the required permissions on the instance of SQL Server where the Microsoft Dynamics CRM databases are stored. When the user tries to start Deployment Manager, the user might receive an error message that says, "Unable to access the MSCRM_CONFIG database. SQL Server does not exist or access denied." To resolve this issue, you must add the user to SQL log-ins by using Reporting Services. For the new deployment administrator to manage CRM organizations created by other deployment administrators, he or she must be granted db_owner permissions to those databases, or be assigned the sysadmin server role to manage all databases.

  1. Log on to CRMSQL using an account that is a member of Domain Administrators group.
  2. Launch the SQL Server 2008 Management Studio.
  3. On the Connect to Server dialog box, click Connect.
  4. Expand Security.
  5. Right-click Logins and select New Login.
  6. Click the Search button.
  7. In the Select User or Group dialog box, do the following:
    • Click Object Types, and then enable the Groups type.
    • Click Locations, and then select Entire Directory.
  8. Click OK.
  9. In the Enter the object name to select text box, type domain group name (that is, CRMDG01Admins), click the Check Names button, and then click OK.
  10. In the Default database drop-down box, select MSCRM_CONFIG.
  11. From the page list on the left, select Server Roles, enable the sysadmin role for the user, and then click OK.
  12. Expand Databases.
  13. Expand the MSCRM_CONFIG database.
  14. Expand Security.
  15. Right-click Users and then select New User.
  16. In the User name field, type the domain user login name (that is, CRMDG01Admins).
  17. In the Login name field, type ContosoCRMDG01Admins.
  18. In the Database role membership section, select the db_owner check box, and then click OK.
  19. Close the SQL Server 2008 Management Studio.

5: Adding Domain User Account to CRM Deployment Administrators Group

  1. Verify that a domain user account exists for the new deployment administrator. If it does not, create a new account.
  2. Add the new user to the previously created CRMDG01Admins group. Also, ensure this account is also member of the Domain Users group.

6: Add the User as a CRM Deployment Administrator in CRM Deployment Manager

You can add the Deployment Administrator using the either the Microsoft Management Console (MMC) or using a PowerShell Script

Add a Deployment Administrator Using MMC

In the console tree, right-click Deployment Administrators, and then click New Deployment Administrator.

In the Select User dialog box, in the Enter object name to select box, type the name of a user, who must exist in Active Directory, and then click Check Names.

After the user name is accepted, click OK.

To add the Deployment Administrator using PowerShell

The New-CrmDeploymentAdministrator cmdlet adds a new Deployment Administrator to the deployment.

Syntax:

New-CrmDeploymentAdministrator -Name username

where: username is the name of the user being given the Deployment Administrator role. It must be in the form domainusername. The user must exist in Active Directory.

  1. Logon to the CRM server with the Deployment Administrator role, such as CRMDEP01, using the account used to install CRM services.
  2. Launch an administrative Windows PowerShell command window from the quick launch bar, or from the Start menu under Program Files, Accessories, Windows PowerShell, and then Windows PowerShell.
  3. In the Windows PowerShell command window, execute the following commands:

    Add-PSSnapin Microsoft.Crm.PowerShell

    New-CrmDeploymentAdministrator -Name contoso<username>
    Note: No data will be returned upon successful completion, as the call is asynchronously processed.

  4. To verify that the account was properly created, either open the Deployment Manager and confirm the account is displayed in the Deployment Administrators list, or run the following CRM PowerShell cmdlet and confirm the account specified is found in the Name field: Get-CrmDeploymentAdministrator

 

Thanks!
Walter Grow

Microsoft Premier Field Engineer

Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 15

$
0
0

Contents:

We're proud to announce that all packages for Microsoft Dynamics CRM 2011 Update Rollup 15 were released on Tuesday October 8th, 2013 to the Microsoft Download Center!  The Update Rollup 15 packages should appear on Microsoft Update on or about October 22nd, 2013.

Update Rollup 15 Build numbers:

5.0.9690.3731
5.0.9690.3739 (Outlook Client re-release)

Update Rollup 15 Microsoft Download Center page

Here's the "Master" Microsoft Dynamics Knowledge Base article for Update Rollup 15: (KB 2843571). Going forward, the plan is for the Master Knowledge Base article for CRM 2011 Update Rollups to be published a bit in advance of release to aid planning.

On Tuesday, October 8th 2013 at 3 PM Pacific Greg Nichols and Ryan Anderson from the Microsoft Premier Field Engineering provided information about:

  • The release of Update Rollup 15 for Microsoft Dynamics CRM 2011
  • New fixes made available In Update Rollup 15
  • Collateral available about Update Rollup 15 and CRM Update Rollups in general
  • The upcoming release of Microsoft Dynamics CRM 2013

 

on BlogTalkRadio during their Microsoft Dynamics CRM 2011 Update Rollup 15 Podcast.

Note: We have identified a compatibility issue that occurs when you use the Microsoft Dynamics CRM 2011 Client for Outlook with Update Rollup 15 applied against a Dynamics CRM 2013 server. This issue does not affect Dynamics CRM 2011 servers. New Update Rollup 15 client packages were released to address this issue. If you are not in this specific scenario, you will not have to apply the new Update Rollup 15 client package. The new Outlook Client packages follow this naming convention:

CRM2011-Client-KB2843571-v2-ENU-amd64.exe
CRM2011-Client-KB2843571-v2-ENU-i386.exe

And are build 5.0.9690.3739.  Only the Outlook Client packages were re-released.

Note regarding Podcasts: You can make our CRM Premier Field Engineering podcasts available on Zune by using the RSS feed below.  In the Zune software, go to Collection -> Podcasts and click on the Add a Podcast button on the lower left, then enter the url for the RSS feed: http://www.blogtalkradio.com/pfedynamics.rss. After that, you can adjust the series settings like any other podcast, so you can sync with your smartphone or Zune.

Go to Top

The "CRM Update Rollup Collateral Page"

For pointers to download locations, release dates, build information, and CRM Premier Field Engineering blogs and podcasts for all Microsoft Dynamics CRM Update Rollups, visit the "CRM Update Rollup Collateral Page"

Go to Top

Update Rollup 15 News!

Update Rollup 15 provides a few functionality changes you should be aware of, including:

Many important CRM for Outlook Client improvements:

  • It includes a new feature that is also scheduled to be delivered with Microsoft Dynamics CRM 2013
    • This feature moves the CRM client-specific workload into its own process so that it no longer shares memory with the Microsoft Office Outlook process
    • This feature is also known as Process Isolation
  • An upgrade to Microsoft SQL Server for Windows CE 4.0 for better memory management, better caching, and connection enhancements
  • Updates to the CRM for Outlook configuration files to make the CRM for Outlook SDF files compatible with SQL Server for Windows CE 4.0
  • It materializes the Address Book Provider to reduce performance issues that are caused by large address books
  • It limits the amount of active open forms
  • It provides a MAPI Lock time-out
  • It hard codes a previous registry setting that prevented pinned views from pulling down information to local SQL CE cache. This new DisableMapiCaching setting defaults to a value of 1

Go to Top

Update Rollup 15 is of course also is a collection of fixes for issues reported by customers or found by Microsoft's Engineering Team, plus changes to provide support for related technology components.

Update Rollup 15 news that you need to know because Update Rollups are cumulative, so these significant changes are also in Update Rollup 15!

  • UR12 includes the "Microsoft Dynamics CRM December 2012 Service Update"  See:
  • Additional cross-browser compatibility provided
    • The December 2012 Service Update component of Microsoft Dynamics CRM 2011 Update Rollup 12 introduces additional browser compatibility for Firefox, Chrome, and Safari
  • Indexes added to support the Update Rollup 10 Quick Find Optimizations
    • Update Rollup 12 includes new indexes for the following entities in the Quick Find Search Optimization feature. To fully reap the benefits of the platform changes included in Update Rollup 10, indexing is needed.  The indexes created are listed below:
      • Cases
      • Opportunities
      • Competitors
      • Contact (the Phone Number fields)
      • Business Unit
      • Connection
      • Connection Role
      • KB Article
      • Lead
      • Product
      • Sales Literature
    • These indexes are created during the Update Rollup 12 installation and you may notice that part of the installation will take longer to complete. The reason for this is that the indexes need to be populated and based on the size of your dataset the completion time will vary
  • Enhancements to Activity Feeds
    • The enhancements made to the activity feeds include a new feature called Like/Unlike
    • With this feature, you can express your immediate feedback about a post
    • For more information, see Like/Unlike
  • Updated User Experience for Sales and Customer Service and Product Update Functionality for Microsoft Dynamics CRM Online
    • The Microsoft Dynamics CRM December 2012 Service Update introduces a variety of new features and functionality, including an updated user experience. For Sales and Customer Service users, the updated user experience provides a new process flow visualization, which appears at the top of the forms, such as the Opportunity , Lead or Case form. The process flow guides users through the various phases of the sales and customer service processes
    • For trials and subscriptions initiated after December 2012, the updated Sales and Customer Service user experience is included by default. Existing Microsoft Dynamics CRM Online customers have an option of adding the updated user experience to the Opportunity , Lead and Case forms by installing the Product Updates. This lets Administrators install selected feature updates based upon the specific needs of their organizations. The Product Updates are installed by using the Microsoft Dynamics CRM web application; they cannot be installed programmatically
    • For more details, see What's New for Developers for Microsoft Dynamics CRM 2011 and Microsoft Dynamics CRM Online
  • Custom Workflow Activities for Microsoft Dynamics CRM Online
  • Developer Toolkit Support for Microsoft Visual Studio 2012
    • The Developer Toolkit for Microsoft Dynamics CRM 2011 and Microsoft Dynamics CRM Online now supports Microsoft Visual Studio 2012. The installer can be found in the SDK download in the sdktoolsdevelopertoolkit folder
  • Microsoft Dynamics CRM 2011 Software Development Kit (SDK) updated for Update Rollup 12 (version 5.0.17 updated for CRM 2011 Update Rollup 13 and Microsoft Dynamics CRM Online)
  • Bulk Data Load performance enhancements
    • To support bulk data load scenarios, this release introduces the ExecuteMultipleRequest message. This message supports the execution of multiple message requests using a single web method call. ExecuteMultipleRequest accepts an input collection of message requests, executes each of the message requests in the order they appear in the input collection, and optionally returns a collection of responses containing each message’s response or the error that occurred. Processing requests in bulk results in lower network traffic and higher message processing throughput
    • For more information, see Use ExecuteMultiple to Improve Performance for Bulk Data Load
  • Activity Feeds changes
    • Microsoft Dynamics CRM Activity Feeds provide real-time notifications and quick sharing of information through short updates. These updates appear on your personal wall in the What's New area of the Workplace . Activity Feeds enable you to follow and learn about important activities that take place around people, accounts, contacts, leads, and anything else that you care about
    • Updates can be posted manually by you, or automatically based on predefined system rules through a workflow. Activity Feeds can also be posted to by external applications through the Microsoft Dynamics CRM web services API. Activity Feeds expose Microsoft Lync real-time presence functionality so that you can initiate communication activities such as IM, phone calls, and emails. For more information, see Activity Feeds Entities
  • More performance and stability-related fixes, including fixes to the CRM Client for Microsoft Outlook
  • Contains all hotfixes / updates released in earlier Update Rollups
  • Quick Find performance optimizations and EnableRetrieveMultipleOptimization SQL query performance optimizations (originally released in Update Rollup 10)

For Microsoft Dynamics CRM business solutions that include an entity with a large dataset, record retrieval and grid rendering performance can be negatively impacted for users that do not have global access to all records associated with that entity. Code changes to mitigate this behavior first appeared in Microsoft Dynamics CRM 4.0, and have been fine-tuned since then.

With Microsoft Dynamics CRM 2011 Update Rollup 10 and later, big advancements have been made to optimize the performance of queries against large datasets by adjusting specific “statistical” settings to address the issue. Should this fail to achieve desired levels of performance, adjust the value associated with EnableRetrieveMultipleOptimization (ERMO) setting. You may have heard these changes described at this year's Convergence.

A first step in efforts to optimize the performance of queries against large data sets is to make adjustments to the “statistical” settings that affect the behavior of RetrieveMultiple queries. Although you can configure these settings by modifying the Windows Registry (under HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSCRM) on the each of the Web servers that is used in a deployment, we recommend that these settings be configured by using the OrgDbOrgSettings, which will ensure that the configuration applies to a specific organization. For additional information about configuring these settings by using the OrgDbOrgSettings, and to download the tool that makes the OrgDbOrgSettings changes you desire, see the Microsoft Knowledge Base article titled "OrgDBOrgSettings Tool for Microsoft Dynamics CRM 2011" (KB 2691237)

If making adjustments to these settings does not yield satisfactory levels of performance, then consider adjusting the value of the EnableRetrieveMultipleOptimization (ERMO) setting. The ERMO setting is commonly used to limit the duration of certain long running queries; specifically, to overcome issues related to local or deep business unit access within Microsoft Dynamics CRM 2011 security roles.

Many more details describing appropriate scenarios for the available settings are already available via the Microsoft Download Center in a revised version of the whitepaper "Optimizing and Maintaining the Performance of a Microsoft Dynamics CRM 2011 Server Infrastructure", in the sections “Optimizing the Performance of Queries against Large Datasets” and “Optimizing the Performance of Quick Find Queries”. The details will appear in the MSDN version of this whitepaper as quickly as possible.

Go to Top

NEW RELEASE REGARDING OrgDbOrgSettings!

You're probably familiar with the OrgDbOrgSettings command line tool (mentioned above) released by the CRM Product Group in the "Tools" package that is updated and released with each set of Update Rollup packages.  With it, you configure some .xml and call your .xml with the command line utility described in KB 2691237. However, you may be daunted by configuring this .xml, to the point that you may not use the tool, or use it minimally - not exploring the many options outlined in KB 2691237 that may be of use to you.  Well, the Microsoft Dynamics PFE team now has another option for you!  By popular demand, our esteemed CRM PFE colleague Sean McNellis has developed a tool  - a CRM 2011 managed solution - that provides you with an easy-to-use GUI with which you can configure all of the options outlined in the Knowledge Base on a per-tenant basis.  Feel free to download it, install it, and check it out... I sure use it!

This is a FREE downloadable tool - the "Dynamics CRM 2011 Organization Settings Editor".  Check it out; the download page has screenshots and information that will help you make good use of the tool.  Sean has also published a Premier Field Engineering blog: "Azure Mobile + JavaScript + WebResources = Easy Editing of OrgDBOrgSettings in Dynamics CRM 2011!" to share more details on the tool. He will be updating it for the settings available in Update Rollup 15 very shortly.  Thanks, Sean!

Go to Top

NEW NOTE REGARDING "Deferring Database Updates when installing CRM 2011 Update Rollups

My esteemed PFE teammate Sean McNellis published a blog you should be aware of regardi

CRM 2011 Platform Tracing – Registry vs. Windows PowerShell

$
0
0

Should we enable CRM tracing via the Registry or Powershell?

Answer: It depends.

Let me explain.  First, let’s talk about why you would turn on CRM Platform tracing.  If you encounter and error in CRM and you are not able to determine the resolution to the issue by the error message and\or downloading the platform error from the error message; the next step you may want to do is to enable CRM platform tracing.  The CRM platform trace can give you more details about the entire call stack and verbose actions leading up to the error.  This would be true for errors received in the CRM web client and in most cases errors in the CRM Outlook client.  However, there is client side tracing you can enable as well if the error does not appear to be a server side error message.  First let’s focus on server side tracing and then later I will include some details on client side tracing.

Registry

We have a KB article about How to enable platform tracing in Microsoft Dynamics CRM.  This method walks you through enabling CRM platform tracing through the registry.  There are also some third party tools like the Diagnostics Tool for Microsoft Dynamics CRM 2011 available on the Internet that customers and partners have written to automate this process.  Even though those are not official Microsoft support tools, they are very commonly used with customers and partners and I personally haven’t seen any issues using these tools.

The registry is an effective way to enable platform tracing when you are troubleshooting an issue on a single CRM server.  You can add the registry keys and you can leave them in place after you disable tracing, so that you can re-use them if needed at a later time.  To disable tracing, you can simply change the TraceEnabled registry value to 0 and you also have to change the TraceRefresh value to a different number.  I always just increment the decimal number by one.  It’s very important to disable tracing when you are done troubleshooting, or you will fill up your C: drive.

Which leads us to my next point which is that the TraceDirectory is always ignored and no matter what you set this value to, the trace files will always go to  <Install Drive>:\Program Files\Microsoft Dynamics CRM\Trace.  Even if you change this in the registry or in a third party tool, the trace file will always go to the same directory.  Typically this is not too big of an issue, unless you installed CRM on a drive that does not have much available hard drive space and then you have to enable tracing for a long period of time.

Helpful Tips: 

  • You should go check that directory if you have enabled tracing in the past, or inherited this CRM Administrator role from someone else who may not have cleaned up old trace files.
  • When using a Network Load Balanced (NLB) CRM deployment, you should try narrow down the issue to a single server, so that you only have to enable tracing on a single server.  This will also save you from reading through extra trace files on servers that you were not even hitting while reproducing the issue.
  • There are many trace file readers available on the Internet, but here are a few common ones that I have seen customers and partners use.
    • BareGrep – This is a third party tool with a free version and also a registered version.  This works very well if you have several trace files to parse through quickly and do not know which file contains your error.  This is very common if you enabled Verbose tracing on a busy production server.
    • Trace Reader for Microsoft Dynamics CRM – This is a new trace tool that is supposed to work with CRM 4.0, 2011 and 2013, but I haven’t personally used it yet.  However, it was written by tanguy92 who also wrote the Diagnostics Tool for CRM 2011, so I am optimistic this should work well.
    • NotePad – Yes, Notepad.  It’s simple and built in for quick usage.  Turn off Word Wrap (under Format) and just use CTRL+F and search for “Error |” or whatever key word you saw in the error message.

 

PowerShell

Windows PowerShell is another method that you can use to enable CRM platform tracing when you want to quickly enable tracing for an entire CRM deployment.  This can be very effective when you have multiple CRM servers vs. going to each CRM server and enabling tracing via the registry.  This topic is also covered in the How to enable platform tracing in Microsoft Dynamics CRM KB article.

When tracing is enabled via PowerShell you should specify a different trace directory location to store the trace files.  By default CRM is set to use C:\crmdrop\logs, but since it's very likely that location does not exist on your CRM servers, you will think that tracing was not enabled correctly as you are looking in the <Install Drive>:\Program Files\Microsoft Dynamics CRM\Trace folder for the trace files.  You either have to update the TraceDirectory via PowerShell to that default location which already exists, or create a different location manually and specify that location (ie: D:\CRMTrace) using PowerShell.  I recommend this option, so that you do not risk filling up your primary C: drive with CRM trace files.

Helpful Tips:

  • When tracing is enabled via PowerShell, but disabled via the registry; tracing will still be enabled as it’s tracing for the Deployment vs. just a single server. 
  • If tracing is enabled via PowerShell and via the Registry; the Registry will override and the CRM traces will be in the <Install Drive>:\Program Files\Microsoft Dynamics CRM\Trace folder instead of the location you specified via PowerShell.  
  • If tracing is disabled via PowerShell, but enabled via the registry; then tracing will be enabled on that server with the registry key in place and the traces will be going to the <Install Drive>:\Program Files\Microsoft Dynamics CRM\Trace folder.

 

Summary

So, as you can see the answer to use the registry or PowerShell can depend on the scenario you are troubleshooting, type of environment you have an where you want to store the log files.  There is no right or wrong answer, so just use what makes sense for you and your CRM deployment based on the information provided in this blog post.

What about the CRM Outlook client tracing mentioned above?  If you were unable to find the error details in the CRM server platform trace and you suspect it’s a client side issue, you can enable CRM platform tracing on the CRM Outlook client machine.  Keep in mind that this only applies to the CRM Outlook clients and not the CRM web clients.  If you are using CRM through a web browser only, then you would just use server side platform tracing.  That’s why the first thing I do when there is an issue with the CRM Outlook client is to try reproduce the issue in the CRM web client to help reduce the complexity of troubleshooting the issue.

You can enable CRM platform tracing on the CRM Outlook client by going to Start, All Programs, Microsoft Dynamics CRM 2011, Diagnostics.  If you are using Windows 8 or 8.1, you can simply click the Windows key and start typing: Diagnostics.  Then click on the CRM Diagnostics tile.  When you are in the CRM Outlook client diagnostics tool, select the Advanced Troubleshooting tab, and then select Tracing to enable or click to clear Tracing to disable and then click Save.  After you reproduce the issue, disable tracing and the CRM for Outlook tracing files are located in the C:\Users\<username>\AppData\Local\Microsoft\MSCRM\Traces folder.  For additional details on CRM Outlook client tracing, please refer to our documentation on MSDN.

 

Hopefully this helps to clear up some of the CRM platform tracing questions you have, or may have had at some point while working with CRM platform tracing.

As always our CRM PFE and CRM Support teams are ready to help if you need the assistance.  In addition, we have a plethora of other services we offer such as developer training, admin workshops, and code reviews.  If you would like to have another Microsoft PFE or I visit your company and assist with the ideas presented on our blog, contact your Microsoft Premier Technical Account Manager (TAM) for booking information.  For more information about becoming a Microsoft Premier customer email PremSale@microsoft.com, tell them CRMInTheField or I sent you.

Please share any other helpful tips or tools that you use for CRM platform tracing in the comments below.

Thanks!
Shawn Dieken

Microsoft Premier Field Engineer

CRM 2011 Email Router – NullReferenceException error

$
0
0

Lately I’ve been working with a customer on re-configuring their CRM Email Router, which also means addressing a few issues they currently are running into. 

- Issue -

In this case, the customer is using the “Email Router” configuration for incoming emails, meaning that users have their “E-mail access type – Incoming” set to E-mail Router.  If you need an Email Router refresher, the Dynamics CRM Support Blog has a good FAQ.

The problem this particular customer was running into was that intermittently, messages from certain mailboxes would not be promoted into CRM and an error similar to the following would be generated in the application event log:

System.NullReferenceException: Object reference not set to an instance of an object. at Microsoft.Crm.Tools.Email.Providers.ExchangeWSConnector.RetrieveMessage(ArrayList ids, Int32 index, ServiceLogger serviceLogger) at Microsoft.Crm.Tools.Email.Providers.ExchangePollingMailboxProvider.RetrieveNextMessageInternal() at Microsoft.Crm.Tools.Email.Providers.CrmPollingMailboxProvider.RetrieveNextMessage() at Microsoft.Crm.Tools.Email.Providers.CrmPollingMailboxProvider.Run()

In addition, when tracing was enabled for the Email Router as described here, the following error was captured:

#27938 - An error occurred while checking for e-mail messages to process in mailbox test@contoso.com. System.NullReferenceException: Object reference not set to an instance of an object.

   at Microsoft.Crm.Tools.Email.Providers.ExchangeWSConnector.RetrieveMessage(ArrayList ids, Int32 index, ServiceLogger serviceLogger)

   at Microsoft.Crm.Tools.Email.Providers.ExchangePollingMailboxProvider.RetrieveNextMessageInternal()

   at Microsoft.Crm.Tools.Email.Providers.CrmPollingMailboxProvider.RetrieveNextMessage()

   at Microsoft.Crm.Tools.Email.Providers.CrmPollingMailboxProvider.Run()

- Resolution -

After further research, this error was traced back to an issue that was fixed in Update Rollup 14 for CRM 2011.  In this case, this issue was occurring because the email did not have a From field, or it was a Null value.  However, this can also occur if other fields are missing such as Subject, To, CC…etc.  In addition, if this issue is generated, other emails in the mailbox after the problem message may not be processed.  After applying UR14, this issue was fixed and the messages began to flow properly.

If installing UR14 (or greater) is not an option right now, a workaround may be to delete the problematic emails from the user mailbox.  However, while you may be able to identify the mailbox where the issue is happening by enabling tracing for the Email Router, it may not be easily apparent which message in particular is causing the problem.  To capture more detailed information, use Fiddler to capture a trace and review messages there.  Remember that in order for Fiddler to capture Email Router traffic, you will need to change the account the Email Router service is running under to a domain account, and then log into the server with that account.

A simpler option may be just to log into the mailbox and review messages there for any missing fields as well.  Those messages could either be deleted or moved to another folder.

As always our CRM PFE and CRM Support teams are ready to help if you need the assistance.  In addition, we have a plethora of other services we offer such as developer training, admin workshops, and code reviews.  If you would like to have another Microsoft PFE or I visit your company and assist with the ideas presented on our blog, contact your Microsoft Premier Technical Account Manager (TAM) for booking information.  For more information about becoming a Microsoft Premier customer email PremSale@microsoft.com, tell them CRMInTheField or I sent you.

Thanks!

Ryan Anderson @PFEDynamics

Microsoft Premier Field Engineer


Where did my scripts go? How to debug JavaScript in CRM 2011 post-UR15

$
0
0

Chances are, you’ve recently read our Dynamics CRM 2011 Update Rollup 15 overview, read our post covering “what you need to know about UR11CU”, or read a partner blog article discussing UR15.  Each of these highlights how UR15 continues to enhance user experience, be it via the Outlook client or web browser.  As a result, specific changes focused on form load performance have a direct effect on how script libraries are served to the browser.  If you’ve already been developing/troubleshooting JavaScript in an environment updated to UR15, you may have noticed this effect.  Web Resources no longer show up individually by file name in your browser debugger (i.e. Internet Explorer’s F12 developer tools), rather they appear as dynamic scripts.  More on that to come, but first a little background.

Background:

In Update Rollup 12, changes were made so that JavaScript libraries linked to entity forms would be downloaded and processed without blocking the form.  Perceived form load performance increased, but not without a negative side-effect.  Script files weren’t guaranteed to load in a specified order, meaning dependencies between script libraries could lead to intermittent exceptions based on the actual load sequence.  For instance, if the jQuery library takes longer to load than your dependent JavaScript file, any calls referencing jQuery in your form onLoad event handler may throw an “Object Expected” error.

Enter Update Rollup 15 - A Fix:

To address this scenario, Update Rollup 15 again alters the way script library files are loaded to ensure a reliable behavior and address dependency constraints.  While script libraries now load in their intended order, the libraries are treated as dynamic script blocks making for an inconsistent debugging experience across browsers (debugging in Chrome? You won’t see them anywhere, although you can still do live debug by stepping into the functions or forcing a breakpoint in your code).

Form script load behavior by update:

  • CRM 2011 RTM through UR11: uses a method that guarantees script library load order and scripts are displayed as named scripts in browser debuggers.
  • UR12  through UR14: to increase perceived form load performance, introduces a non-blocking pattern to load custom form scripts which does not guarantee load sequence.  This change produced inconsistent behavior when dependencies exist between script libraries.  
  • UR15: uses a balanced approach, derived from the change introduced in UR12, that guarantees the script library load sequence as specified in the entity form definition.  This approach leverages synchronous XmlHttpRequests (XHR) and dynamic script blocks which in turn make browser debugging a challenge.

Now for what you’ve all been waiting for – how to debug entity form JavaScript libraries post-UR15:

Browser Debuggers: Dynamic script content is handled differently across the various browser debugging tools and even between versions.  In the case of Chrome’s debugging tools, you won’t see dynamic script content at all.  But have no fear!  We’ll address circumvent this roadblock by simply traversing up the call stack by one call.  Instead of breaking directly into your function, we’ll start from the point where CRM for script calls custom functions, then step into the custom function.  These calls originate from FormScript.js.aspx.

Note: Another option is to use the debugger statement – by placing it anywhere in a script file it will tell the browser to force a breakpoint and pull open your debugger (as long as script debugging is enabled).  This is not a desirable outcome for production code, so I suggest reserving this technique only for debugging in development environments.  The remainder of this article walks through how to debug without using a debugger' statement, which should be appropriate in all deployment scenarios. 

Debugging script libraries: Previous to UR15, you could simply launch the browser debugging tool, look for a named Web Resource file in the scripts list, and easily set a breakpoint to begin live debugging.  In UR15, the process changes slightly:

  • First open your browser debugger (for IE simply press the F12 key), then open the script debugger tab and make sure you’re actively debugging or attached .
  • Next, instead of looking for your Web Resource file in the document list, search for and select FormScript.js.aspx
    • TIP: This file may be nested under the edit.aspx file. In IE F12 developer tools, you may have to expand edit.aspx to find FormScript.js.aspx

image  

  • Within the FormScript.js.aspx document, you will find your custom function call wrapped in an event handler.  For custom functions registered with the form onLoad event, look for the crmForm_window_onload_handler function.  All registered functions will be called, in sequence, within this wrapper function.  For custom functions registered for field onChange events, look for a wrapper function named [attributename]_onchange_handler.  Other form events will have similarly named event handler functions.
  • Set a breakpoint within FormScript.js.aspx on your function name.  Now when the event is fired, the breakpoint will be hit before your custom function is called, allowing you the opportunity to step into your function.
    • IMPORTANT: If you have more than one event on the form registered to the same function, there will be a separate handler per call!  You may have to set a breakpoint on all instances or use the wrapping function name to determine if the call pertains to your debugging scenario.

image

  • Trigger the event that you want to debug (onLoad, onChange, onSave, etc.).
  • When the breakpoint is hit, press the F11 key to step into your Web Resource code.  From here, you should be in familiar territory – continue debugging as necessary.

image

That’s it!  Hopefully, these tips have helped your post-UR15 script debugging efforts (and avoided an unnecessary headache).  If you have further technical questions about how to debug, post comments or click email blog author.  I am contemplating the creation of a video to walk through three or four common CRM debug scenarios.  If you would find this valuable, please provide that feedback.  As always, our team of Dynamics CRM PFE’s and Dynamics CRM Developer PFE’s are here to help, either remotely or onsite:

  • If you already have a Premier contract let your TAM know you want to work with a Dynamics CRM PFE and they’ll know where to find us
  • If you don’t have a Premier contract and you’re interested in Premier support and/or working directly with a PFE, contact us via our Premier Services contact page or reach out via the email blog author page.

Thanks for reading!
Sean McNellis

Follow me: @seanmcne

Microsoft Premier Field Engineer

CRM 2011 and ASP.NET Single Sign-on: Use WAUTH for Integrated Web Apps

$
0
0

What is 'wauth' and why do your integrated web apps need it to achieve seamless single sign-on (SSO) with Dynamics CRM 2011 (on-premise)? Suffice it to say that simply configuring Windows Identity Foundation (WIF) in your ASP.NET web app and federating it as a relying party (RP) to the same Identity Provider (IdP) targeted by your CRM environment will not always provide a seamless SSO experience. Achieving a seamless experience requires handling a scenario presented by CRM 2011's custom WIF implementation. Don't worry, we'll help you there…but before we show you the "how", let's answer the "what" and "why".

What is 'wauth'?

The passive WS-Federation protocol's wsignin1.0 request message contains an optional parameter, 'wauth', which correlates to a SAML assertion regarding authentication context. When specified, it instructs the IdP's Security Token Service (STS) to use a certain method for authenticating the requestor. This assertion is then incorporated into the SAML security token(s) issued by the STS for subsequent authorization activities. On the other hand, if 'wauth' is not included in the request, the IdP determines the appropriate method (Active Directory Federation Services [ADFS] 2.0 provides the ability to configure the authentication method priority).

Why then, if 'wauth' is optional, do web apps integrated within CRM 2011 need to leverage it?

Think about the process of enabling your CRM environment for claims authentication. There are two primary steps. First, you configure internal claims using a hostname for users to authenticate on the corporate domain (or federated domain) via integrated windows authentication (Kerberos). Second, you configure the Internet Facing Deployment (IFD) with a separate hostname for users that need to authenticate from external locations using the IdP's forms-based authentication process.

How then does the IdP know CRM's desired authentication method for internal and external realms? You guessed it, CRM's authentication module declares a 'wauth' URI in the redirect requests to the IdP! Curious? Open your Internet Explorer Developer Tools (F12) and capture a network trace to view the redirect request URL in both scenarios. In that trace you'll see encoded versions of the following 'wauth' URI's:

  • Internal: wauth=urn:federation:authentication:windows
  • External (IFD): wauth=urn:oasis:names:tc:SAML:1.0:am:password

For custom web apps integrated to CRM via iframe, SiteMap, or Ribbon Action, the user will already be authenticated via either CRM's internal or external realm. Thus, a SAML assertion will have been established regarding authentication context before the user even enters the authentication pipeline of your application. When the IdP receives the authentication redirect request from your web app, it will attempt to use an issued security token for a federated RP as proof that a security token can be safely issued for the requesting RP without requiring a separate submission of credentials by the user. If the authentication context assertion on the previously issued token(s) doesn't apply to the authentication method being employed for the current request, the IdP will ignore the token(s) and attempt to gather the user's credentials before issuing a token for the current RP.

How does this translate to the user experience for your integrated application? Without ensuring that the IdP leverages the same authentication method as was used when authenticating for CRM, the user will encounter an unexpected prompt to supply credentials. If accessing CRM via the external (IFD) URL, this could mean that the user encounters an integrated windows authentication dialog or vice versa depending on the IdP's configuration.

Is configuration an option?

You could specify a URI value for the authenticationType attribute on the wsFederation configuration element in web.config. This will cause all sign-in requests from your RP application to include the 'wauth' parameter using the specified URI. If your CRM deployment only supports one of the two claims-based authentication methods, you may find this acceptable. Otherwise, a programmatic approach to conditionally specify the 'wauth' assertion is your best recourse.

How do I make conditional 'wauth' assertions in the sign-in requests from a relying party web app?

Fortunately, you can reliably handle either authentication scenario without requiring major surgery to your application. You need to first intercept the sign-in request being issued by your application before the user is redirected to the IdP. This can be accomplished by implementing a handler for the WSFederationAuthenticationModule (WS-FAM) RedirectingToIdentityProvider event. Next, within the event handler, you need to determine the appropriate authentication method and conditionally assign the 'wauth' parameter value on the intercepted redirect request. The conditional assignment can occur based on an inspection of the referrer URL hostname to determine if the user accessed CRM via IFD. Without further ado, let's dive into the code:

Pre-requisite(s): The recommendation below assumes that you configured your CRM deployment for claims authentication, have a working knowledge of the basics, and configured WS-FAM for your application. If not, the SDK provides a walkthrough that I recommend you review before proceeding.

In your ASP.NET web application project, add or open the Global application class (Global.asax.cs) file and reference two Windows Identity Foundation (WIF) namespaces.

using Microsoft.IdentityModel.Web;
using Microsoft.IdentityModel.Web.Configuration;

Find the Application_Start event handler and register a new handler for the WIF ServiceConfigurationCreated event.

/// <summary>
/// Handler for application Start event: 
/// register handler for WSFAM ServiceConfigurationCreated event
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Application_Start(object sender, EventArgs e)
{
    FederatedAuthentication.ServiceConfigurationCreated +=
        new EventHandler<ServiceConfigurationCreatedEventArgs>(FederatedAuthentication_ServiceConfigurationCreated);
}

Implement the WIF ServiceConfigurationCreated by registering an event handler for the WS-FAM RedirectingToIdentityProvider event.

/// <summary>
/// Handler for WSFAM ServiceConfigurationCreated event: 
///  register handler for WSFAM RedirectingToIdentityProvider event
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
/// <remarks>
/// IMPORTANT: Must register other WS-FAM event handlers 
/// after configuration has been created
/// </remarks>
void FederatedAuthentication_ServiceConfigurationCreated(object sender, ServiceConfigurationCreatedEventArgs e)
{
    FederatedAuthentication.WSFederationAuthenticationModule.RedirectingToIdentityProvider += 
        new EventHandler<RedirectingToIdentityProviderEventArgs>(WSFederationAuthenticationModule_RedirectingToIdentityProvider);
}

Finally, implement your WS-FAM RedirectingToIdentityProvider event handler. First, compare the CRM Organization name provided as a contextual querystring parameter to the first segment of the referrer's hostname. If there is an exact (case-insensitive) match, it's safe to assume that the referrer origin is external (IFD). In that case, specify the SAML username/password AuthenticationType URI on the SignInRequestMessage. Otherwise, we'll assume the origin was internal and specify the integrated windows authentication type URI.

/// <summary>
/// Handler for WSFAM RedirectingToIdentityProvider event: 
/// infers SAML auth context (wauth) based on referrer URL scheme
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void WSFederationAuthenticationModule_RedirectingToIdentityProvider(object sender, RedirectingToIdentityProviderEventArgs e)
{
    //Assuming this is a CRM embedded app, auth context can be inferred by inspecting CRM referrer URL
    var referrer = HttpContext.Current.Request.UrlReferrer;
    var orgName = HttpContext.Current.Request.QueryString["orgname"];

    //If referrer exists and OrgName query string param is found, attempt to infer SAML auth context
    //Otherwise, let ADFS determine appropriate auth context
    if (referrer != null
        && !String.IsNullOrEmpty(orgName))
    {
        //If the OrgName matches the first sub-domain of the referrer host, 
        //assume external claims (IFD) auth context (User Name/Password)
        //Otherwise, assume internal claims auth context (Integrated Windows)
        if (referrer.Host.Substring(0, referrer.Host.IndexOf("."))
            .Equals(orgName, StringComparison.OrdinalIgnoreCase))
        {
            //Set 'wauth' request param to SAML User Name and Password authentication context
            e.SignInRequestMessage.AuthenticationType = "urn:oasis:names:tc:SAML:1.0:am:password";
        }
        else
        {
            //Set 'wauth' request param to SAML Integrated Windows authentication context
            e.SignInRequestMessage.AuthenticationType = "urn:federation:authentication:windows";
        }
    }

After you've deployed your updated web application, be sure that your hooks into CRM receive contextual details including the Organization name via querystring parameters. Find details specific to your scenario here:

Stay tuned for follow-up posts that continue the discussion of Single Sign-on between custom web apps and Dynamics CRM 2011. For now, let us know about similar scenarios you've faced, general questions, or issues with the recommended solution presented by commenting below or contacting our team directly. We look forward to hearing from you!

 

M. Austin Jones

Follow the conversation:
@maustinjones
@pfedynamics | http://www.pfedynamics.com

We Are Hiring!

$
0
0

Are you ready to be a Rock Star??  Do you enjoy supporting Microsoft technologies and sharing technical information with others?  Are you a motivated individual who enjoys working in a team-oriented environment? Are you passionate about working with customers and solving complex situations? Do you enjoy the thought of providing proactive services to customers to improve the overall health of their Dynamics implementations?  Do you aspire to be the leader that customers and partners look to for technical guidance and mentorship? If so, the Premier Field Engineering team is looking for you to join their team as a Dynamics Premier Field Engineer.

We have multiple positions open detailed below.  If you or someone you know is interested, please use the links below to apply!

Job ID

Title

Product

Location

841736

PREMIER FIELD ENGINEER

Dynamics – AX

United States, TX, Houston/Austin

854764

PREMIER FIELD ENGINEER

Dynamics – CRM

United States, WA, Issaquah

855388

PREMIER FIELD ENGINEER

Dynamics – AX

United States - Non Location Specific

855389

PREMIER FIELD ENGINEER

Dynamics – CRM

United States, NC, Charlotte

855343

PREMIER FIELD ENGINEER

Dynamics – AX

United States, OH, Cincinnati/Louisville

 

amazingthingsBlogbadge 

 

Ryan Anderson

Microsoft Premier Field Engineer

How to install Microsoft Dynamics CRM 2013 without an Internet Connection

$
0
0

This blog article will walk you through installing CRM 2013 without an Internet connection.  We put together a similar article for CRM 2011 that was very popular, so I figured I would do the same for CRM 2013 as it’s not currently in our Implementation Guide for CRM 2013.

The most common scenarios are for virtual (Hyper-V) demo environments and environments with firewalls, and\or other security requirements that block Internet access. 

If you download the CRM 2013 ISO from MSDN, or have a physical DVD that you are installing from, you will already have the Redist folder and all the pre-requisites downloaded.  However, if you downloaded your CRM 2013 installation media from the Microsoft download site, then you will have to manually build this Redist pre-requisite folder structure.  Or, a better option is to use the PowerShell script that Sean McNellis put together in this blog that will automatically create the Redist folder, subfolders and download the pre-reqs into their respective folders as long as you have an Internet connection on the machine you run the PowerShell script from.  However, I still wanted to detail these pre-requisites out, so that you had all the specific links and file names for your deployment.

Note: If you are installing CRM 2013 on a server that has Internet access, the installation will automatically go out and download the pre-requisite files during the install.

Step 1: Create the Redist folder structure at the same level as the Server, Client, EmailRouter and other folders.

IMPORTANT: This step was the most commonly missed one from other customers, so make sure the Redist folder is at the same level as the Server, Client and EmailRouter folders and not within each of those folders.

Once you create the Redist folder it should look something like this:

Step 2: Create the following subfolders directly under the Redist folder

image

Note: This is a Redist setup for all CRM components: Server, Outlook Client, Email Router, SRS Reporting Extensions and Bids.  For the CRM Outlook client, customers are commonly pushing this out via SCCM or other push technologies, so you want to keep the install package as small as possible.  For the CRM Outlook client the only prerequisites that you would need to include are the ones below.  You could even take it a step further and only include the specific OS and architecture components if you are deploying to clients that are all similar in OS and architecture.

1. dotNETFX – Technically only the Microsoft .NET Framework 4 (dotNetFx40_Full_x86_x64.exe) is needed for the CRM Outlook client.

2. IDCRL

3. MSI45 – This is installed already in most cases, so confirm in your deployment before including in your SCCM package.

4. MSOIDCRL

5. ReportViewer

6. SQLCE

7. VCRedist

8. VCRedist91

9. WindowsIdentityFoundation – This is installed already in most cases, so confirm in your deployment before including in your SCCM package.

10. SQLEXPR - Only needed if installing offline CRM Outlook clients

Step 3: Download the pre-requisite files and copy them into the appropriate subfolders

Note: The following download links are for US English (1033), but you can change the language you want to download if you search for the filename and go to the actual download page. Also, these download links will always have the latest update for the prerequisite software regardless of whether I have the correct name listed below. The reason for this is that I may just not have had time to update the Prerequisite name below for every Service Pack or Cumulative Update that is released.

Now you have all of the pre-requisites downloaded and saved in the correct folder structures, so you can continue with the CRM 2013 installation without an Internet connection.

Hopefully this saves those of you who run into this scenario some time!

Thanks!
Shawn

Shawn Dieken

Follow the conversation:
@sdieken
@pfedynamics | http://www.pfedynamics.com

   

Automate creating a CRM 2013 Redist folder to install CRM 2013 without an internet connection

$
0
0

We’re back for another round of using PowerShell to automatically create a Redist folder, but I’ve recently updated it for CRM 2013 (you can find the 2011 version here and for more information on the 2013 downloads go to our other blog post here which lists each file with the detailed download URL).  You’ll notice there’s a couple of new pre-requisites and a couple that are no longer needed.  Simply take the script from the bottom of the post and paste it into a PowerShell console on a computer that has internet access, it will prompt you for a location to create a “REDIST” folder, it will also automatically create all the subfolders and download all the pre-requisites for you.  Once completed this Redist folder can be dropped into the files extracted from the CRM 2013 Trial download – this step will allow the installation to use locally downloaded pre-requisite installation files instead of downloading them from the internet which can save time and is required for installing the CRM Server bits on servers that do not have direct internet access.

Instructions on how to use PowerShell to build your CRM 2013 Redist Folder:

  1. Open PowerShell on the computer you have internet access on (NOTE: if your CRM Server installation language is different from 0x409 & ENU – make sure to update them in the script , here is a list of hex codes and use the matching language identifier from your CRM installation)
  2. Copy the script below top to bottom (from the “#begin script” to the “#end script”) or optionally download the script as a txt file
  3. Paste it right into PowerShell – if it doesn’t execute hit enter to run the “Create-CRM2013Redist” function
  4. This will pop up a folder picker, use this to choose the location of the Redist folder
  5. After you press Ok, the script will create a new Redist folder in the destination you’ve selected it will then proceed to create the directory structure (14 Folders), then download 30 files, this should total about 350MB of disk space when it’s all done.
  6. Finally, once it has completed, copy the redist folder to the install folder containing: Server, Client, EmailRouter, and BIDSExtensions folders
  7. When you’re done copying your install folder should look like the graphic below including your newly created Redist folder:

image

Download the PowerShell Script as a .txt file.

Sean McNellis

Follow the conversation:
@seanmcne
@pfedynamics | http://www.pfedynamics.com

   


PowerShellCreateRedistFolderCRM2013.txt script:

#begin Script 
#Function to Show an Open Folder Dialog and return the directory selected by the user.
function Read-FolderBrowserDialog([string]$Message, [string]$InitialDirectory)
{
$app = New-Object -ComObject Shell.Application
$folder = $app.BrowseForFolder(0, $Message, 0, $InitialDirectory)
if ($folder) { return $folder.Self.Path } else { return '' }
}
#download pre-req function, also creates the folders
function dlPreReq($root, $folderName, $fileName, $url)
{
$fldr = Join-Path -Path $root -Child $folderName
$dest = Join-Path -Path $fldr -Child $fileName
#create folder if it doesnt exist
if((Test-Path -Path $fldr) -ne $True)
{
New-Item -Path $fldr -ItemType directory | out-null
}
Write-Host ("Downloading {0} to path: {1} " -f $fileName, $fldr)
$wc = New-Object system.net.webclient
$wc.downloadFile($url,$dest)
}
#download each pre-req
function Create-CRM2013Redist()
{
$linkRoot = "http://go.microsoft.com/fwlink/?LinkId="
$langCode = "ENU"
$LHex = 0x409 #must match above langCode
$folderRoot = (Read-FolderBrowserDialog "Pick the location to create the Dynamics CRM 2013 redist folder") #folder root
if(($folderRoot.length) -gt 0)
{
$fr = Join-Path -Path $folderRoot -Child "Redist"
dlPreReq $fr dotNETFX "dotNetFx40_Full_x86_x64.exe" $linkRoot"182091&clcid="$LHex
dlPreReq $fr dotNETFX "NDP40-KB2600211-x86-x64.exe" $linkRoot"299426&clcid="$LHex
dlPreReq $fr WindowsIdentityFoundation Windows5.2-KB974405-x86.exe $linkRoot"200432&clcid="$LHex
dlPreReq $fr WindowsIdentityFoundation Windows5.2-KB974405-x64.exe $linkRoot"200430&clcid="$LHex
dlPreReq $fr WindowsIdentityFoundation Windows6.0-KB974405-x86.msu $linkRoot"190775&clcid="$LHex
dlPreReq $fr WindowsIdentityFoundation Windows6.0-KB974405-x64.msu $linkRoot"190771&clcid="$LHex
dlPreReq $fr WindowsIdentityFoundation Windows6.1-KB974405-x86.msu $linkRoot"190781&clcid="$LHex
dlPreReq $fr WindowsIdentityFoundation Windows6.1-KB974405-x64.msu $linkRoot"190780&clcid="$LHex
dlPreReq $fr SQLNativeClient sqlncli_x64.msi $linkRoot"178252&clcid="$LHex
dlPreReq $fr SQLSharedManagementObjects SharedManagementObjects_x64.msi $linkRoot"293644&clcid="$LHex
dlPreReq $fr SQLSystemCLRTypes SQLSysClrTypes_x64.msi $linkRoot"293645&clcid="$LHex
dlPreReq $fr ReportViewer ReportViewer.exe $linkRoot"193386&clcid="$LHex
dlPreReq $fr SQLExpr SQLEXPR_x86_$langCode.exe $linkRoot"179623&clcid="$LHex
dlPreReq $fr SQLCE SSCERuntime_x86-$langCode.exe $linkRoot"253117&clcid="$LHex
dlPreReq $fr SQLCE SSCERuntime_x64-$langCode.exe $linkRoot"253118&clcid="$LHex
dlPreReq $fr MSI45 Windows6.0-KB942288-v2-x86.msu $linkRoot"139108&clcid=0x409"
dlPreReq $fr MSI45 Windows6.0-KB942288-v2-x64.msu $linkRoot"139110&clcid=0x409"
dlPreReq $fr VCRedist vcredist_x86.exe $linkRoot"195255&clcid="$LHex
dlPreReq $fr VCRedist vcredist_x64.exe $linkRoot"195257&clcid="$LHex
dlPreReq $fr VCRedist9SP1 vcredist_x86.exe $linkRoot"299417&clcid="$LHex
dlPreReq $fr VCRedist9SP1 vcredist_x64.exe $linkRoot"299585&clcid="$LHex
dlPreReq $fr IDCRL wllogin_32.msi $linkRoot"194721&clcid="$LHex
dlPreReq $fr IDCRL wllogin_64.msi $linkRoot"194722&clcid="$LHex
dlPreReq $fr Msoidcrl msoidcli_32bit.msi $linkRoot"317650&clcid="$LHex
dlPreReq $fr Msoidcrl msoidcli_64bit.msi $linkRoot"317651&clcid="$LHex
}
else
{
write-host "No folder selected, operation was aborted. Run Create-CRM2013Redist to retry."
}
}

#kick off the script
Create-CRM2013Redist

#End Script

Configuring SQL Server 2012 AlwaysOn Availability Groups with Dynamics CRM

$
0
0

Over the past few weeks, I’ve had the need to test a Dynamics CRM environment using Always On Availability Groups (AO AG) from SQL 2012.  While SQL 2012 is fully supported for both CRM 2011 and 2013, and normally a fairly straight-forward installation, adding AO AG to that mix can cause some complexity.  This is especially true when attempting this configuration in a stand-alone test environment where you might not have easy access to shared storage such as a SAN.  In my test environment, I used Hyper-V virtual machines and Microsoft iSCSI software for shared storage.

During my setup and configuration, I kept a list of resources I used and have created a new “curation” over at the new Curah! website from Microsoft.  The curation should provide you with enough resources to get a SQL 2012 AO AG environment up and running with CRM databases.  I would suggest reading the Set configuration and organization databases for SQL Server 2012 AlwaysOn failover first.  The other links in the curation then support that article.

In the end, the diagram below roughly shows what my environment looks like.  With the two SQL Servers as nodes in a Windows Failover Cluster.  Along with AO AG enabled on these with SQL Server 1 acting as the Primary and SQL Server 2 as the secondary.  Dynamics CRM is then configured to point to the SQL AG Listener.

 

SQLAlwaysOnCRMnoFCI

 

Ryan A. Anderson

Follow the conversation:
@pfedynamics | http://www.pfedynamics.com

   

FetchXML Exception Reporting in Microsoft Dynamics CRM 2013

$
0
0

Want to know what accounts in Dynamics CRM have no related opportunities? How about which contacts haven’t had any activities in the last few months? Exception reporting using the FetchXML data processing extension is one feature that in previous versions of CRM, has not been possible.  With the introduction of Microsoft Dynamics CRM 2013, the capabilities of a left outer join is possible, therefore customers can now perform custom exception reporting with the FetchXML DPE out of Microsoft Dynamics CRM.

In CRM 2011 Fetch cannot express queries of the form:

· Find all Accounts that have no Opportunities

· Find all Accounts that have no Contacts

· Display a list of contacts who did NOT have any campaign activity within the last X months

The following syntax in CRM 2011 doesn’t work exactly as expected for Fetch XML.

 1: <fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true">
 2:   <entity name="account">
 3:     <attribute name="name" />
 4:     <link-entity name="opportunity" from="customerid" to="accountid" alias="ab" link-type="outer">
 5:       <filter type="and">
 6:         <condition attribute="opportunityid" operator="null" />
 7:       </filter>
 8:     </link-entity>
 9:   </entity>
 10:  

This FetchXML converts to the following SQL:

SELECT account.Name
FROM Account as Account
LEFT OUTER JOIN Opportunity
ON (account.Accountid  =  Opportunity.Customerid and (Opportunity.Customerid is null))

Since the filter condition is appended to the ON, this query does not work as expected.

In CRM 2013 this scenarios can be addressed as follows:

An alias must be defined for a link-entity in order for it to be used in the filter. In the filter element, the value of the attribute (customerid) is the field of the form entityname (ab) which must have been already defined as an entity name or alias or a link-entity name or alias.

 1: <fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true">
 2:   <entity name="account">
 3:     <attribute name="name" />
 4:     <link-entity name="opportunity" from="customerid" to="accountid" alias="ab" link-type="outer">
 5:        <attribute name="customerid" />
 6:     </link-entity>
 7:     <filter type="and">
 8:         <condition entityname = "ab" attribute="customerid" operator="null" />
 9:     </filter>
 10:   </entity>
 11: </fetch>
 12:  

This Fetch XML would result in SQL equivalent to:

SELECT account.Name
FROM Account as account
LEFT OUTER JOIN Opportunity ab
ON (account.accountid  =  ab.customerid)
WHERE ab.customerid is null

Note that the filter has moved from the ON clause to the WHERE clause.

Another example, here including more than one filter, returning all accounts that either don’t have any related activities or they don’t have any open related activities:

 1: <fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true">
 2:     <entity name="account">
 3:         <attribute name="name" />
 4:         <link-entity name="activitypointer" from="regardingobjectid" to="accountid" alias="ab" link-type="outer">
 5:             <attribute name="regardingobjectid" />
 6:             <attribute name="statecode" />
 7:         </link-entity>
 8:         <filter type="and">
 9:             <filter type="or">
 10:                 <condition entityname="ab" attribute="statecode" operator="ne" value="0" />
 11:                 <filter type="or">
 12:                     <condition entityname="ab" attribute="regardingobjectid" operator="null" />
 13:                 </filter>
 14:             </filter>
 15:         </filter>
 16:     </entity>
 17: </fetch>

Here is a summary of the considerations:

· Filter on the LEFT OUTER JOIN should apply to the WHERE clause when converted to SQL.

· Entity alias can be used in the filter clause.

· In the link-entity node of a Fetch XML query, an alias can be specified. This alias should be supported in the filter node when performing a LEFT OUTER JOIN.

FetchXML involving a Join are not editable in the Advanced Find editor or customization settings from the application.

• However, this can be executed via SDK or imported as part of a solution.

If you are interested, our PFE team is ready to help you. We have many services we offer such as reporting workshops, developer training, admin workshops, and code reviews.  If you would like to have another Microsoftclip_image002 PFE or I visit your company and assist with the ideas presented on our blog, contact your Microsoft Premier Technical Account Manager (TAM) for booking information.  For more information about becoming a Microsoft Premier Customer emailclip_image002[1] PremSale@microsoft.com.

Thanks!

Sarah Champ

Microsoft Premier Field Engineer


Creating SSL Certificates for CRM Test Environment

$
0
0

When working on a CRM Test environment there are many scenarios where I need to add SSL to the CRM web site such as testing Claims Authentication. Instead of getting a certificate from a 3rd party certification authority I will just use IIS to generate my own certificates. This allows me to quickly create certificates for my testing that will valid on other test machines. Below are the steps to configure the Active Directory Certificate Service so that you can easily test SSL in your CRM environment. I will also include steps on how to install the root certification on other machine so that the certificates are valid for test clients.

Install Active Directory Certificate Services Role

Before a certificate can be created for CRM the Active Directory Certificate Services Role must be installed on the IIS Server. In these steps I am installing the role directly on the CRM Server.

a. Open Server Manager from within Administrative Tools.

clip_image002

b. Within Server Manager Click on Roles – Add Roles.

clip_image004

c. Click Next to get to the “Server Roles” page within the Add Roles Wizard.

clip_image006

d. Select the “Active Directory Certificate Services” Role and Click Next twice to get to the Roles Services window.

clip_image008

e. Select Certification Authority on the Role Services Window and Click Next.

clip_image010

f. Choose Enterprise for the Setup Type and Click Next.

clip_image012

g. Choose Root CA for the CA Type and Click Next.

clip_image014

h. Select Create a new private key, Click Next until the confirmation screen.

clip_image016

i. Click Install on the Confirmation window.

clip_image018

Create the Domain SSL Certificate

Now that the Active Directory Certificate Services role is installed you can generate a domain certificate for the CRM website. These steps show how to generate a wildcard certificate for the awc.local test domain that I am using. This wildcard certificate will then work with the various test orgs on this environment.

a. Open IIS Manager on the CRM Server that the Active Directory Certificate Services role was installed.

clip_image020

b. Open Server Certificates from the IIS Manager Home Page.

clip_image022

c. Click Create Domain Certificate with in the Server Certificates window.

clip_image024

d. Enter the Certificate Properties. Common name is for the name of the certificate. Since I am creating a wildcard I will enter *.awc.local for the Common name. Once all data is populated, Click Next.

clip_image025

e. Select the Online Certification Authority. The Certification Authority that was created should be displayed when you choose the Select button. Enter a Friendly name to identify the certificate and click Finish.

clip_image026

Add SSL Certificate to the CRM Website

Now that the certificate is created a SSL binding can be created for the CRM Web Site. Since this will be the only SSL site within IIS we will use the default port 443.

a. Open IIS Manager on the CRM Server.

clip_image020[1]

b. Navigate to Microsoft Dynamics CRM from the list of Web Sites and Click Bindings within Actions on the upper right side of the window.

clip_image028

c. Click Add on the Site Bindings Window.

clip_image030

d. Select HTTPS from the Type drop down menu and then Select the Wildcard certificate from the SSL Certificate menu, Click OK and Close.

 clip_image032

At this point the certificate is bound to the CRM website and you can open CRM to test the new SSL binding. Open a browser and enter the CRM URL. In this case I will enter the Fully Qualified Domain Name (FQDN) for my server (https://crmsql.awc.local/CRM). If you are using an alias you will need to create the necessary entries in DNS. CRM should open properly with the SSL URL. The SSL certificate will show up as valid. When clicking on the certificate information I can see the wildcard cert that was issued by my server.

clip_image034

Install CA Root Certificate on Test Client Machine

This binding will work from other test machines, but will initially be prompted because the CA Root Certificate is not trusted. clip_image036

clip_image038

The following steps will show how to install the CA root certificate so that it’s trusted and the CRM site opens without any prompts. Opening CRM without any prompts will be needed to successfully test SSL for components on other machines such as the Outlook Client or Email Router.

a. First we need to export the CA Root Certificate.

i. Open CRM using the SSL URL on the Server that the certificate is working properly.

ii. Click on the SSL Icon and choose View certificates.

clip_image040

iii. Click the Certification Path on the Certificate window. Select the Root Certificate tab and Click View Certificate.

clip_image042

iv. Click the Details Tab for the Root Certificate and Click Copy to File. This will allow you to export the root certificate so that it can be copied and installed on another machine.

clip_image044

v. On the Certificate Export Wizard, Click Next.

clip_image046

vi. Select Cryptographic Message Syntax Standard – PKCS #7 Certificates (.P7B), Click Next.

clip_image048

vii. Specify a name/location to save the exported certificate, Click Next.

clip_image050

viii. Click Finish to complete the export of the Root Certificate. The certificate is now ready to install on other machines.

clip_image052

b. The following steps explain how to install the root certificate on another machine.

i. Copy the certificate file to the test machine that was receiving the certificate error. Right click on the certificate and choose Install Certificate.

clip_image054

ii. Click Next on the Certificate Import Wizard.

clip_image056

iii. Select Place all certificates in the following store and Click Browse.

clip_image058

iv. Select the Trusted Root Certification Authorities Store and Click OK.

clip_image059

v. Click Next and Finish on the Import Wizard.

vi. Click Yes on the Security Warning asking if you want to install the certificate.

clip_image061

vii. Click OK on the prompt stating that the Import was successful.

clip_image063

v. Open the CRM website using the SSL address and now the site should open without any certificate warnings.

clip_image065

Hopefully this will help out if you ever need to test SSL for your environment without wanting to spend money on a 3rd party certificate.

Thanks!

Jeremy Morlock

Microsoft Premier Field Engineer

Podcast and Overview: Microsoft Dynamics CRM 2013 Update Rollup 1

$
0
0

Contents:

We're proud to announce that all packages for Microsoft Dynamics CRM 2013 Update Rollup 1 were released on Monday, December 16th 2013 to the Microsoft Download Center!  The Update Rollup 1 packages should appear on Microsoft Update in January, 2014.

Update Rollup 1 Build number:

6.0.0001.0061

Update Rollup 1 Microsoft Download Center page

Here's the "Master" Microsoft Dynamics Knowledge Base article for Update Rollup 1: (KB 2891271). Going forward, the plan is for the Master Knowledge Base article for CRM 2013 Update Rollups to be published a bit in advance of release to aid planning.

On Thursday December 19th 2013 at 12:30 PM Pacific Time Greg Nichols and Mike Gast from the Microsoft CRM Premier Field Engineering Team provided information about:

  • The release of Update Rollup 1 for Microsoft Dynamics CRM 2013
  • What's new and very cool in Microsoft Dynamics CRM 2013
  • New fixes made available In Update Rollup 1
  • Collateral available about Update Rollup 1 and CRM Update Rollups in general

on BlogTalkRadio during their Microsoft Dynamics CRM 2013 Update Rollup 1 Podcast

BlogTalkRadio and Internet Explorer 11 compatibility

If you're having trouble viewing the podcast when using Internet Explorer 11,

  • View the Podcast in Compatibility View
    • in IE 11, select Tools (the upper right "Gear" icon) -> Compatibility View Settings -> add the blogtalkradio.com website, or
  • Use the "New Window" link on the Blogtalkradio page

Note regarding Podcasts: You can make our CRM Premier Field Engineering podcasts available on Zune by using the RSS feed below.  In the Zune software, go to Collection -> Podcasts and click on the Add a Podcast button on the lower left, then enter the url for the RSS feed: http://www.blogtalkradio.com/pfedynamics.rss. After that, you can adjust the series settings like any other podcast, so you can sync with your smartphone or Zune.

Go to Top

The "CRM Update Rollup Collateral Page"

For pointers to download locations, release dates, build information, and CRM Premier Field Engineering blogs and podcasts for all Microsoft Dynamics CRM Update Rollups, visit the "CRM Update Rollup Collateral Page"

Go to Top

RAMP UP ON CRM 2013!

As we're just getting started with Microsoft Dynamics CRM 2013, I'll provide some pointers to directly accessible ramp-up resources and some insight into what people are most excited about regarding this new major release:

Recommended Ramp-up materials:

Most Popular Features in Microsoft Dynamics CRM 2013!

  • Flat User Interface (modern look UI)
  • Process driven UI
  • Quick create and quick view forms
  • BingMaps / Skype / Lync integration
  • Social and mobile integration
  • Server side sync

Business Process UI

  • Rich and guided UX to implement end to end business scenarios
  • Reduced number of clicks and pop ups to complete transactions
  • Ability to span the process UI across entities
  • Security modelling and ability to assign processes to security roles
  • Ability of accessing the UI using MoCA clients

The new ‘skin’ of CRM 2013

  • Flat and modern UI avoiding frequent pop ups
  • Inline editing
  • Quick view form enabling parent entity details in child record
  • Form level notifications where errors, warnings and information can be viewed inline in the field
  • Avoiding redundant ribbon buttons thus showing only which is really required
  • Header controls to highlight the most relevant data of the entity
  • BingMaps embedded control

Configuration & Customization

  • Synchronous Workflows will help developers to quickly configure workflow instead of using a plug-in (writing code/deploying)
  • Actions enable multiple operations which are frequently used to be created as single action and can be re-used to minimize Dev cycle
    • Power to create custom actions such as schedule, Escalate and Route Lead are highly beneficial as well
  • Portable Business Logic This easy way avoids lots of scripting for easy validations and enables CRM functional analysts to quick add validations without touching the code base

Yammer Integration

  • Native integration with Yammer and thus enabling social collaboration
  • Private and Public settings to control the activity feed stream

Mobility

  • MoCA (Mobile Client Application) clients and Mobile clients make the long awaited dream a reality
  • Support across expected devices and browsers
  • Availability of process bar and new UI in the tablet clients
  • UI in MoCA clients is highly appreciable, survey shows many of them like the MoCA UI more than the native web UI

General

  • Quick create forms to accelerate the record creation
  • Light weight command bar UI
  • Multi activity support in the collaboration area

Go to Top

Important CRM 2013 Update Rollup considerations!

A common question I get is “if I either upgrade from CRM 2011 or install the RTM version of CRM 2013 (build 6.0.0000.0809), what is the equivalent CRM 2011 Update Rollup level I have?" The answer is: essentially Update Rollup 14.

Some specific port requests for post-Update Rollup 14 fixes for CRM 2011 were included the original (RTM) release of CRM 2013, and port requests for other post-Update Rollup 14 CRM 2011 fixes can be requested via the normal Support process.

One set of port requests that you may be wondering about are the dramatic changes to the Microsoft Dynamics CRM Client for Microsoft Office Outlook

  • They were released via CRM 2011 Update Rollup 15 and the Critical Update for Microsoft Dynamics CRM 2011 Update Rollup 11 CRM Server and CRM for Outlook Client
  • These post-Update Rollup 14 changes WERE included in the RTM version of CRM 2013, and include:
    • A feature that moves the CRM client-specific workload into its own process so that it no longer shares memory with the Microsoft Office Outlook process
      • This feature is also known as Process Isolation
    • An upgrade to Microsoft SQL Server for Windows CE 4.0 for better memory management, better caching, and connection enhancements
    • Updates to CRM for Outlook configuration files to make the CRM for Outlook SDF files compatible with SQL Server for Windows CE 4.0
    • Materialization of the Address Book Provider to reduce performance issues that are caused by large address books
    • Limits to the amount of active open forms
    • A MAPI Lock time-out
    • Hard coding of a previous registry setting that prevented pinned views from pulling down information to local SQL CE cache

Go to Top

General Upgrade Rollup Notes:

  • Testing CRM 2013 Update Rollups: Best Practices
    • Microsoft Dynamics CRM Premier Field Engineering recommends doing all the standard testing you generally do for all Update Rollups, which could be the functional and performance testing that you would do with a new major release or a subset of that test plan
    • The “general rule of thumb” for test plans for Update Rollup installs are:
      • Test any changes in a pre-production environment BEFORE introducing into your production environment. Manage your risk!
      • Consider using the Performance Toolkit for Microsoft Dynamics CRM to simulate your production user load in your testing environment, to shake out any performance-related issues early. The CRM 2011 version is currently being evaluated against CRM 2013
      • Test using the permissions your most restrictive end-user roles have. Testing with CRM Administrator permissions, for example, does not give you the complete picture
      • Concentrate on your SDK customizations, JavaScript, ISV add-ons – basically anything that’s not OOB functionality or customizations done from within the UI

Microsoft Dynamics CRM 2013 Custom Code Validation Tool

  • Consider familiarizing yourselves with this tool!
  • The Custom Code Validation tool for CRM 2013 is mostly the same as the Code Validation Tool for CRM 2011 UR12; the 2011 version has been deprecated and is no longer available. We added some additional checks for code that references the 2007 endpoint or other functionality that has been deprecated in CRM in 2013. And, most of the checks in the tool were built into the CRM 2013 Server installer as validation checks
  • Note that the URL for the CRM 2011 version of the tool now directs to the CRM 2013 version
  • Use the Microsoft Dynamics CRM 2013 Custom Code Validation Tool to identify potential issues with custom JavaScript in JavaScript libraries and HTML web resources. When using JavaScript code in Dynamics CRM, it is possible that some code will stop working or cause an error when you upgrade. The Microsoft Dynamics CRM 2011 Custom Code Validation Tool helps identify potential problems so that a developer can fix them

Go to Top

NEW RELEASE REGARDING OrgDbOrgSettings!

You're probably familiar with the OrgDbOrgSettings command line tool (mentioned above) released by the CRM Product Group in the "Tools" package that is updated and released with each set of Update Rollup packages.  With it, you configure some .xml and call your .xml with the command line utility described in KB 2691237. However, you may be daunted by configuring this .xml, to the point that you may not use the tool, or use it minimally - not exploring the many options outlined in KB 2691237 that may be of use to you.  Well, the Microsoft Dynamics PFE team now has another option for you!  By popular demand, our esteemed CRM PFE colleague Sean McNellis has developed a tool  - a CRM 2011 / CRM 2013 managed solution - that provides you with an easy-to-use GUI with which you can configure all of the options outlined in the Knowledge Base on a per-tenant basis.  Feel free to download it, install it, and check it out... I sure use it!

This is a FREE downloadable tool - the "Dynamics CRM 2011 Organization Settings Editor".  Check it out; the download page has screenshots and information that will help you make good use of the tool.  Sean has also published a Premier Field Engineering blog: "Azure Mobile + JavaScript + WebResources = Easy Editing of OrgDBOrgSettings in Dynamics CRM 2011!" to share more details on the tool. It is currently updated with settings for CRM 2011 Update Rollup 16 and CRM 2013 Update Rollup 1, and he takes pride in keeping it updated as new Update Rollups are released. Thanks, Sean!

Note: there is a code issue with the CRM Client for Microsoft Outlook that was resolved in Update Rollup 16 Client packages.  Do not set either the AddressBookMaterializedViewsEnabled or DisableMapiCaching settings in the Organization entity metadata via the OrgDbOrgSettings tool in the Update Rollup Tools package or the Organizational Settings Editor on Codeplex if you are not running CRM 2011 Update Rollup 16 or higher on the Client.  Also, do not set this key prior to the next major release of CRM 2013.

Go to Top

Update Rollup 1 packages are available for download via: 

to update the Dynamics CRM Product installations listed in this Microsoft Knowledge base article:

Microsoft Dynamics CRM Installations, Updates and Documentation

Note: Microsoft Dynamics CRM 2013 Updates will be pushed via Microsoft Update as Important updates

  • Client packages installed manually by downloading the packages and running install will require local administrator privileges. If the client packages are installed via Microsoft Update or SCCM (System Center Configuration Manager), they will not require local administrator privileges
  • Consider using Windows Server Update Services (WSUS) or similar software distribution technologies to distribute Dynamics CRM Update Rollups internally.  WSUS is a locally managed system that works with the public Microsoft Update website to give system administrators more control. By using Windows Server Update Services, administrators can manage the distribution of Microsoft hotfixes and updates released through Automatic Updates to computers in a corporate environment
  • For help with installation please see the Installation Information section of the Service Pack 1 Update Rollup 2 "master" Microsoft Knowledge Base article
  • Please review my former teammate Jon Strand's blog posting "CRM 2011: Silently Installing Update Rollups" which provides details on installing CRM Outlook client update rollups "silently" in order to limit end-user interruption, which also applies to CRM 2013 and CRM 2015 Update Rollups and Service Packs

Go to Top

Microsoft Dynamics CRM 2013 Update Rollup 1 Prerequisites:

  • Essentially the prerequisites listed in the Microsoft Dynamics CRM 2013 Implementation Guide download for the various CRM components serviced

Go to Top

Issues resolved via Microsoft Dynamics CRM 2013 Update Rollup 1: 

Microsoft Dynamics CRM 2011 Update Rollup 1 is the first of a series of cumulative Update Rollups that include fixes for the issues that are or will be documented in the "Master Knowledge Base Articles" for CRM 2013 Update Rollups.  As they are cumulative, Update Rollup 2 will contain all fixes shipped via Update Rollups 1 and 2... you get the idea.

Hotfixes and updates that were released as individual fixes before the Update Rollup 1 release:

No issues were fixed and delivered to requesting customers prior to Update Rollup 1 release as Critical On Demand (COD) fixes.

Fixes released via CRM 2013 Update Rollup 1:

  • Publishing a CRM report fails as the parent report already links to another report with same name
  • Invalid Argument when navigating to view with related entity lookup
  • The chart (for any other entity) does not display in Korean due to System.ArgumentException: "Value of 'Malgun Gothic, Segoe UI, 9.5px' is not valid for 'units'."
  • Script error occurs when moving from a form. "Unable to get property 'get_filterType' of undefined or null reference"
  • Disabling checkbox fields using the JavaScript API does not work
  • Creating a workflow to update an appointment with fields from the regarding Lead field fails. "An unexpected error occurred."
  • Hiding the last field of a section does not hide the section. Hiding the last field of a tab does not collapse the tab
  • Unable to create automatic full address field workflows, as the spaces and tabs are removed if there are no other symbols like comma
  • Using the Quick Search in Outlook and clicking Advanced Find right afterwards, the Advanced Find filter is populated with irrelevant criteria
  • Re-import of existing solution fails with The label for base language code 1033 is not set
  • Users cannot associate multiple records at once for N:N relationships
  • CRM 2013 no longer warns you when you are about to delete a parent record that child records with cascade delete set on their relationships to the parent will also be deleted
  • Unable to set a web resource to visible in script if 'Visible by default' not set in the Designer
  • You´ve created a new business process flow and assigned that process flow to the security role of "sales manager", "system administrator" and "system customizer"
    • You publish this modification and expect the process the be visible only for these security roles
    • Instead, the BPF business process flow is hidden for all users
  • When data is entered into a form, the Save button can be clicked multiple times which results in multiple of the same record being created
  • For a custom duration field Xrm.Page.getAttribute("durationfield").getValue() method returns a formatted value like 30 minutes instead of 30 as expected
  • When organization is deleted and then immediately imported back, import organization wizard unexpectedly displays a warning about version mismatch
  • Autosave off: Entity form loses command bar after navigating away and re-opening
  • Consider you've created a Business Process for cases having a related task stage with several steps and you'd like to translate all stages to different language
    • Your solution contains task and case entity as well as Business Process
    • You're exporting translation files and try to edit those
    • You'll find all stage names from case entity, but you do not find those of the related task step
    • Therefore you cannot translate those
  • "Email a link" URL does not navigate to the specified entity if opened in existing browser tab
  • Errors occur when using different country formats with currency attributes
  • When browsing to various locations in CRM, a JavaScript exception is thrown that reports "Object expected"
  • The .addCustomFilter javascript function does not work properly
  • Workflow triggered on Before Delete event cannot be imported in a new organization
  • When email activity with unresolved email recipient is created and saved, on load on email, value in TO field is hidden, field is empty
  • Not able to see "Page Index" on subgrids from dashboards
  • Published customization changes do not roll down to mobile client consistently
  • Opportunity closed as won does not take custom status reason while closing
  • Notes control shows time but not date for notes created before yesterday
  • Mobile clients crash with UI Error: "We're sorry. Sorry, something went wrong while initializing the app. Please try again, or restart the app"
  • Access team does not use correct metadata driven by Advanced Find view and hence fails in Mobile Clients
  • If you create a new email message in the Microsoft Dynamics CRM 2013 web application, you discover that you cannot modify the Description field when using the latest version of Google Chrome

Go to Top

Hotfixes and updates that you have to enable or configure manually

Occasionally, updates released via Update Rollups require manual configuration to enable them. Microsoft Dynamics CRM Update Rollups are always cumulative; for example, Update Rollup 2 will contain all fixes previously released via Update Rollup 1 as well as fixes newly released via Update Rollup 2. So if you install Update Rollup 2 on a machine upon which you previously installed no Update Rollups, you will need to manually enable any desired fixes for Update Rollups 1-2:

  • Update Rollup 1: no updates requiring manual configuration

Go to Top

Mismatched Update Rollup versions within a Microsoft Dynamics CRM deployment

In a scenario where you may be running many client workstations with Microsoft Dynamics CRM 2013 for Microsoft Office Outlook, a common question is whether it is supported to run mismatched versions. For example, where Update Rollup 2 has been installed on the CRM Server but the Outlook clients are still on Update Rollup 1, or where Update Rollup 1 is on the CRM server but due to updates available to the Outlook client you have decided to install Update Rollup 2 on the clients without installing Update Rollup 1 on the server.

The general rule of thumb is to try to keep the versions in sync as much as possible, and deltas of more than one version between client and server are not supported.  So ideally, you would be running Update Rollup 2 (when it is released) on your CRM Servers with Update Rollup 1 or 2 on your Outlook clients. However, it is permissible (though not recommended as a long-term solution) to run mismatched Update Rollup versions on Outlook client and server, as Microsoft does do some testing of such combinations.

However, regarding the other Update Rollups (for example Update Rollups for the Microsoft Dynamics CRM 2013 Email Router or Microsoft Dynamics CRM 2013 SSRS Data Connector), it is not supported nor recommended to run mismatched versions. A best practice is to update these components at the same time you update your CRM Server.  Do the best you can to keep these Update Rollup versions in sync.

For more information, see the blog posting "User experience while accessing CRM 2011 application servers while Update Rollups are being applied", which still applies to Microsoft Dynamics CRM 2013

Go to Top

Microsoft Dynamics CRM compatibility with technology stack components: Internet Explorer, Windows Client and Server, Office, .NET Framework, and more

The Microsoft Dynamics CRM Engineering team consistently tests Microsoft Dynamics CRM 2013 against pre-release and release versions of technology stack components that Microsoft Dynamics interoperates with. When appropriate, Microsoft will release enhancements via future Microsoft Dynamics CRM 2013 Update Rollups or new major version releases to assure compatibility with future releases of these products. This compatibility matrix is updated via this Microsoft Knowledge Base article: Microsoft Dynamics CRM Compatibility List.

 

Greg Nichols
Dynamics CRM Senior Premier Field Engineer
Microsoft Corporation

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Microsoft Dynamics CRM 2013 White Papers & Technical Documentation

$
0
0

Updated: 10/27/2014

The CRM 2011 White Paper & Technical Documentation blog post that I wrote with all the links to the white papers was very popular, so I am doing a similar post for CRM 2013.  I will try to update this blog post quarterly with new white papers as well.

I am often finding myself searching for CRM 2013 White Papers & Technical Documentation URL’s to reference or send to customers and while Bing works well to find these individually, I thought it would be nice to just try include them all in a single URL for easy reference.  There are some other good blogs out there with similar lists, but I can’t update those, so I wanted my own list.  I will try keep this updated as new white papers are released also.

Enjoy!

Shawn Dieken

Follow the conversation:
@sdieken
@pfedynamics | http://www.pfedynamics.com

 

Titles Date Published

Microsoft Dynamics CRM 2013 Implementation Guide (Download)
Microsoft Dynamics CRM 2013 Implementation Guide (Online)

(Updated Quarterly)
Microsoft Dynamics CRM 2013 Software Development Kit (SDK) (Download)
Microsoft Dynamics CRM 2013 Software Development Kit (SDK) (Online)
(Updated Quarterly)
Training & Adoption Kit for Microsoft Dynamics CRM and Microsoft Social Listening 10/23/2014
Microsoft System Center Management Pack for Dynamics CRM 2013 9/30/2014
Microsoft Dynamics Marketing Spring '14 Resources 9/19/2014
Microsoft Dynamics Marketing Spring '14 Software Development Kit (SDK) 9/15/2014
Microsoft Dynamics provides retail solutions for Microsoft Store 9/8/2014
Microsoft Institute Best Practice Experience: Dynamics CRM At Microsoft 8/30/2014
Top 10 reasons to trust Microsoft in the cloud 8/13/2014
Integration Guide: Microsoft Dynamics CRM Online and Office 365 6/26/2014
Configuring Claims-based Authentication for Microsoft Dynamics CRM Server 6/25/2014
Connector for Microsoft Dynamics installation guides 6/22/2014
Explore enterprise social scenarios 6/17/2014
Microsoft Dynamics CRM 2013 for E-mail Router Installing Guide for use with Microsoft Dynamics CRM Online 5/30/2014
Social care Sample Application for Microsoft Dynamics CRM 2013 SP1 and Microsoft Dynamics CRM Online Spring ’14 5/29/2014
Microsoft Dynamics CRM Online deployment, administration, and migration documentation 5/29/2014
Manage Your Microsoft Dynamics CRM Online Subscription 5/11/2014
Microsoft Dynamics CRM Automated Transition Planning Guide 5/5/2014
Microsoft Dynamics CRM Transition Planning Guide for Enterprises 5/5/2014
Microsoft Dynamics CRM Online Service Description 4/4/2014
Deployment and Operational Guidance for Hosting Microsoft Dynamics CRM 3/24/2014
Microsoft Dynamics CRM Online Data Migration to Microsoft Dynamics CRM on-premises 3/6/2014
Microsoft Dynamics CRM 2013 Performance and Scalability Documentation 3/5/2014
Integration Guide: Microsoft Dynamics CRM Online and Office 365 2/25/2014
Process Enablement with Microsoft Dynamics CRM 2013 1/27/2014
Microsoft Dynamics CRM 2013 Logical Entity Relationship Diagrams 1/17/2014
Manage Your Microsoft Dynamics CRM Online Subscription 12/6/2013
Access Teams with Microsoft Dynamics CRM 2013 12/4/2013
Scalable Security Modeling with Microsoft Dynamics CRM 2013 11/7/2013
Microsoft Dynamics CRM 2013 Performance Counters 10/25/2013
Connectivity and Firewall Port Requirements for Microsoft Dynamics CRM 2013 10/25/2013
Delivering an Extensible CRM Solution Using Agile Development 10/24/2013
Using multi-tenancy in Microsoft Dynamics CRM 2013 to address challenges in enterprise business environments 9/25/2013
Microsoft Dynamics CRM Online security and service continuity guide 9/2013 (Refreshed)
Microsoft Dynamics CRM Online security and compliance planning guide 9/2013 (Refreshed)

Announcing RAP as a Service for Dynamics CRM

$
0
0

I am pleased to announce the General Availability of RAP (Risk Assessment Program) as a Service for Dynamics CRM. This Microsoft Premier Service takes our existing Health Check to the next level with on-demand data collection and analysis to give you the flexibility to check and re-check the state of your system whenever you want as many times as you want with regular updates to best practice guidance for up to a year.*

The best part is you still get to work with the same experienced Dynamics CRM Premier Field Engineers who deliver Health Checks today to make sure you understand the assessment results in the context of your specific deployment and make sure your questions get answered.

This service is available for a single deployment of Dynamics CRM 2011 with up to 5 Organizations and up to 5 Dynamics CRM Application Servers.**

Support for Dynamics CRM 2013 and CRM On Line should be available later in 2014 - I'll provide an update when dates are determined.

What is available in RAP as a Service for Dynamics CRM?

We are checking the following categories:

  • Dynamics CRM system configuration and settings
  • SQL Server and database configuration
  • Event logs information
  • Operating system information and settings
  • Operational Excellence

Learn more about RAP as a Service here:

https://services.premier.microsoft.com/assess

Talk to your Microsoft Technical Account Manager (TAM) if you’re interested in getting started with RAP as a Service for your Dynamics CRM environment or if you just want to know more about it.

* An active Microsoft Premier Support contract is required to use the online portal and tools.

** RAP as a Service for Dynamics CRM can be used to assess a single Dynamics CRM deployment. This service is available for deployments with more than 5 Organizations / Application servers, but these are considered custom engagements that must be scoped with an engineer.

Thanks,

Brian Bakke

Microsoft Premier Field Engineer

Blank page with no content is displayed when trying to view the Microsoft Dynamics CRM 2013 Implementation Guide (IG) .chm file

$
0
0

I recently ran into a problem when trying to view the Microsoft Dynamics CRM 2013 Implementation Guide (IG) .chm file.

I was able to view the contents in the left hand navigation and also search for content, but I was only able to see a blank white screen on the right hand side.  This is because of a built in Windows security feature that's implemented on certain file types downloaded from the Internet.  This KB article has more details on this security feature.

I ran into a similar security problem with the CRM 2011 Implementation Guide, so it was easy to fix, but I know this could be troublesome for others as well.  So, I wanted to share this blog post with you in case you run into this issue.

I had to right click and go to the Properties of the .chm file and click Unblock.  Then I was able to view the CRM 2013 IG .chm file successfully.

Hope this helps!

Thanks!
Shawn Dieken

Follow the conversation:
@sdieken
@pfedynamics | http://www.pfedynamics.com

 

Here are the detailed steps to resolve this issue:

image

 

1. Navigate to the folder you extracted the Implementation Guide files | Right Click on the .chm file | Select Properties.

2. Select the 'Unblock' button at the bottom of the General tab and then click OK.

image

 

You should now be able to view and search the CRM 2013 Implementation Guide chm file successfully.

image

Viewing all 393 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>