Archive

Archive for the ‘Dynamics CRM 2011’ Category

Outlook Client: Cannot find any organizations on the server. Try entering the URL again

ISSUE

We took the database backup of production CRM and restored in UAT and imported the organization to create UAT CRM environment.  Users would like to connect Outlook client to both Production and UAT, but when user tries to add the second environment (it doesn’t matter which order), we get below error message:

Cannot find any organizations on the server. Try entering the URL again. If the problem persists, contact your system administrator.

CAUSE

Whenever an organization is configured in outlook there will be an entry in the registry with that organization GUID and the outlook client automatically detects there is one organization with the GUID of the first organization and therefore, while configuring the second organization with the same GUID, the CRM outlook client does not detect the organization ID

WORKAROUND TO COME ACROSS

  • Restore the production organization database as TempUAT on the UAT server
  • Build TempUAT organization in UAT server
  • Backup the TempUAT and restore it as UAT on the UAT server
  • Build UAT organization on UAT server
  • Then the outlook client will identify both the organizations
Advertisements

Disable Trace in CRM 2011

January 11, 2013 Leave a comment

Recently our testing server was getting loads of data through CRM Trace. When we check the trace properties all the keys mentioned as part of the Microsoft article are disabled.

We tried by

  • Updating the registry entries Enable/Disable
  • Removed all the Trace related entries
  • Restarted the IIS and Machine for some times
  • Used Diagnostic Tool to do the same jobs again

Still no luck….

At the end after some research on CRM Files/Database/Registry and Bing found that after Update Roll Up 6 these settings were moved to MSCRM_CONFIG database.

Here are the queries to check or to update the Trace settings

select * from OrganizationProperties where ColumnName =‘TraceEnabled’

update  OrganizationProperties set BitColumn =‘0’where ColumnName =‘TraceEnabled’

Hope this helps some body 🙂

December 2012 Service Update with Improved User Experience

January 11, 2013 Leave a comment

As part of the Update Roll Up 12, Microsoft released Updated User Experience for Sales and Customer Service. This will give an option to work with the forms without using much pop ups, but main problem is we cannot control the forms with Java Script. This is a limitation as of now but we can expect some enhancements in near future or in the next releases.

In the below Lead screen shot user can work on Lead through Contact and Opportunity without having a pop up. This is so nice of CRM.

Polaris UI, CRM 2011 new UI

Microsoft has given the flexibility to go for it or continue with classic UI. This can be installed from Product Updates section under System Settings, once installed this can not be rolled back but user can inter change  between classic and updated form at any time while accessing the forms.

Here is the video from Microsoft on Polaris/December 2012 Service Update

CRM 2011 SDK 5.0.13 Available with Improvements

CRM 2011 SDK 5.0.13 has been released with improvements. Here are some improvements

–          ExecuteMultipleRequest.  This request gives the ability to send multiple requests to the CRM service so that the requests can be executed in order without needing to come back to the client after each request.  This is a significant performance boost especially when loading thousands of records into CRM. Use ExecuteMultiple to Improve Performance for Bulk Data Load

–          Metadata Service.  Previously had the option of returning a single attribute or entity metadata or retrieve all entity metadata.  With the latest SDK, we now have the same flexibility when retrieving metadata that we do when querying records.  Metadata can be filtered by entity, attribute, or even by the properties of the entity or attribute and even specifying which properties are returned.

–          The Plug-in Registration tool executable file can now be found in the Bin folder of the SDK download. The source code for the tool has been removed from the SDK download. These topics were updated to reflect that change.

–          Added information about the new getClientUrl method. This method returns the base URL that was used to access the application. This is now the recommended method to use to access the organization URL. The getServerUrl method is deprecated. This method is new in Microsoft Dynamics CRM 2011 Update Rollup 12 and the Microsoft Dynamics CRM December 2012 Service Update

–         Use JavaScript with Microsoft Dynamics CRM 2011, Updated the topic to include information related to support for browsers other than Internet Explorer.

The above are on a high level, Download here and get into it.

2012 in review

The WordPress.com stats helper monkeys prepared a 2012 annual report for this blog.

Here’s an excerpt:

600 people reached the top of Mt. Everest in 2012. This blog got about 8,500 views in 2012. If every person who reached the top of Mt. Everest viewed this blog, it would have taken 14 years to get that many views.

Click here to see the complete report.

Categories: Dynamics CRM 2011

Get away from “Error – Subreport could not be shown”

October 10, 2012 Leave a comment

As part of development we used to restore CRM organization many times. Recently we found that the out of the box reports are giving problems which have sub reports.

When we try to open a report it is giving “Error – Subreport could not be shown” whereever there is reference to sub report.

Problem here is the relation between parent report and sub report got disturbed and CRM doesnot able to link these two reports.

Resolution (atlease in my case):

  • From Reports section select the sub report and click on edit
  • Remove the value in Parent Report look up field
  • Map Parent Report again

This would solve the problem. But in some cases we may need to re-publish the reports. Below steps will help us in publishing the reports again

  • Open command prompt on CRM application server
  • Go to Microsoft Dynamics CRM\Tools folder
  • PublishReports.exe NameOfYourOrg
  • Ex: C:\Program Files\Microsoft Dynamics CRM\Tools\PublishReports.exe mytestcrm

Hope this helps 🙂

Maintain performance by monitoring shared records

September 25, 2012 1 comment

Let me just give you a background on Sharing before we go into details.

Whenever a record is shared against a User or a Team, CRM will be tracking those entries in PincipalObjectAccess table and same will be queried using FilteredView.

If we see the FilteredView definition we can find how CRM uses this PincipalObjectAccess table.

-- object shared to the user
or
[Account].[AccountId] in
(
select  POA.ObjectId from PrincipalObjectAccess POA
join SystemUserPrincipals sup (NOLOCK) on POA.PrincipalId = sup.PrincipalId
where sup.SystemUserId = u.SystemUserId and
POA.ObjectTypeCode = 1 and
((POA.AccessRightsMask | POA.InheritedAccessRightsMask) & 1)=1
)

The code snippet above was picked from FilteredAccount’s where condition. Here this view is getting the records by querying the PrincipalObjectAccess table

And it’s a known fact that POA is to cause performance bottlenecks.  POA is one of the reasons why complicated business unit structures and extensive sharing is not recommended.

Refer to Microsoft Support article wherein we get the symptoms of Timeout issues. The large is the POA table size the more is the problems list.

Please refer to a nice article on “Why Large-Scale Sharing is Bad

Here are some queries by which you can track and monitor how the organization sharing is being handled.

–Get the total number of shared records

SELECT COUNT(0) FROM PrincipalObjectAccess

 –Get the total number of shared records grouped by Entity

SELECT  EV.NAME AS [ENTITY NAME],COUNT(POA.OBJECTTYPECODE) AS [RECORDS COUNT]
FROM PRINCIPALOBJECTACCESS POA
INNER JOIN ENTITYLOGICALVIEW EV ON EV.OBJECTTYPECODE = POA.OBJECTTYPECODE
GROUP BY EV.NAME
ORDER BY 2 DESC

 –Get the total number of shared records grouped by User

SELECT  SU.FULLNAME AS [USER NAME],COUNT(POA.OBJECTTYPECODE) AS [RECORDS COUNT]
FROM PRINCIPALOBJECTACCESS POA
INNER JOIN SYSTEMUSER SU ON POA.PRINCIPALID= SU.SYSTEMUSERID
GROUP BY SU.FULLNAME
ORDER BY 2 DESC

–Get the total number of shared records grouped by Entity and User

SELECT  SU.FULLNAME AS [USER NAME],EV.NAME AS [ENTITY NAME],COUNT(POA.OBJECTTYPECODE) AS [RECORDS COUNT]
FROM PRINCIPALOBJECTACCESS POA
INNER JOIN SYSTEMUSER SU ON POA.PRINCIPALID= SU.SYSTEMUSERID
INNER JOIN ENTITYLOGICALVIEW EV ON EV.OBJECTTYPECODE = POA.OBJECTTYPECODE
GROUP BY SU.FULLNAME,EV.NAME
ORDER BY 1

Refer to Support Article on controlling PrincipalObjectAccess table growth and cleaning it up

Update Rollup 6 and later will clean the POA table by deleting the unshared records.

Hope this helps 🙂