Here’s my track schedule at CRMUG 2017 Summit. You will be able to find me at these tracks, the medic both and MVP Sessions! Looking forward to engaging with you.
Please join me and the rest of the DXC, Tribridge, and Eclipse teams for the CRMUG Summit 2017 in Nashville.
CRMUG Summit is the premier CRM event of the year, with topics and tracks for all users of your Dynamics 365
system. I will be covering MVP, Medic Tent, Upgrade and ADFS sessions, along with a community showcase with my
colleague Donna Edwards.
Here’s a video about what Summit is all about! Register early to get a discount! Stop by and say hello!
CRMUG Summit 2017
Microsoft Dynamics CRM has been rebranded as Dynamics 365 as of November 1.
We have been battling for years the Microsoft CRM and ERP products did not talk to each other out of the box, requiring integrations like Scribe, EOne or KingswaySoft. Other competitors provided seamless tools that often noted this as a weakness.
Microsoft has responded with Dynamics 365 or a 360 degree of customer across CRM and ERP. And they didn’t stop with that. Now, the Common Data Model will be integrated across all products and be exposed to PowerApps, PowerBI and other products. An Appstore, along with the ability to provide Micro Apps will be a great way for developers to extend Dynamics 365 and get direct audience with the users needing these apps.
Why is this important to me as a developer? Lot’s of opportunity to not only extend Dynamics 365, but also to use XRM as your development platform and get access to all these great feature sets.
It’s that time of the year again when Microsoft MVP’s in the October renewal cycle get their Award status. I’m proud to say I have been renewed again, for my 5th consecutive year. I would like to take a moment to thank my family, co-workers and Tribridge to give me the time and opportunity to support the community I love.
A lot of people do not realize that an MVP renewal is not guaranteed each year. You must work for it each year, showing and providing details of your efforts to be involved in the community. Most of us have no problem as we love to engage with the community and love to continue learning.
This year same as last year I will be splitting time between Dynamics 365 and Azure topics, as well as launching the Azure Medics monthly meetings to help the Azure community. CRMUG Medic calls will also continue quarterly.
Speaking of learning, Dynamics 365 blitz going on right now, with the launch for Dynamics 365 at the CRMUG Summit in Tampa FL October 11. Don’t miss it or join us remotely via the link below.
While not very common, there are times when a customer or client requests two servers for the CRM SRS data connector/SSRS to be installed and have load balancing configured for the servers. The idea here is failover; when one server hosting SSRS crashes, all incoming requests are routed to the secondary server. There are a couple of ways to do this, but the following method is the most straightforward and simplistic way.
1. Create a Virtual IP(VIP) to route to each SSRS server.
In order for this method to work, a virtual IP will need to be created. The virtual IP will accept incoming data packets, then route the requests to each of the IP addresses of the physical servers that will have SSRS installed.
2. Install and configure SSRS on each server.
Install and configure SSRS on each server as you typically would by pointing to the SQL server and/or instance where you would like the report server databases to be located.
3. Install the CRM SRS data connector on each server.
Grab the installation files for your respective version of CRM and install the data connector on both servers. Install the data connector as you would for a typical CRM deployment.
4. Configure the host file on each SSRS server.
On both SSRS servers, open the host file: C:\Windows\System32\Drivers\etc\hosts. Edit the host file by adding the IP and DNS name of the virtual IP created in step 1:
5. Add the BackConnectionHostNames registry key with the server name and FQDN.
Open Registry Editor on one of the SSRS servers, and locate the following registry key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0.
Right click MSV1_0, point to New and then click Multi-String Value. Type BackConnectionHostNames, then press ENTER.
Right click BackConnectionHostNames, then click Modify.
In the Value data box, type the host name of the VIP and FQDN of the VIP, and click OK.
Repeat these steps for the other SSRS server.
6. Add hostname and URL root values.
On one of the SSRS servers, make a backup of the reportserver.config file located here: C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer.
Right click the original reportserver.config file and choose edit.
Modify the hostname and URL root tags of the .xml file located under the service tag by adding the FQDN of the VIP as shown below:
Save the file after making the changes.
Repeat these steps for the other SSRS server.
7. Restart both SSRS servers.
8. During the import or new creation of an organization in CRM, specify the name of the VIP.
Use the VIP created in step 1 when prompted for the reporting services URL during a new org creation or an org import:
An error occurred. Contact your administrator for more information” error when accessing CRM with ADFS/IFD set up.
After completing ADFS/IFD setup where ADFS is installed on a Windows Server 2012 R2 machine, you receive the below error:
To resolve this issue you must enable Forms Authentication:
1. Connect to the ADFS server
2. Open the ADFS management console and click Authentication Policies
3. Under Primary Authentication, click Edit next to Global Settings
4. Put a check mark in the Forms Authentication option on the Extranet and Intranet sections
5. Click OK
6. You should now be able to log in to CRM successfully
Thanks to Ian Holton, Client Field Engineer at Tribridge for putting this together!
A customer of ours had come to us facing a rather interesting issue. Every night around 1am their CRM database log file would grow to 31GB and cause the log drive to fill up. When users would log into CRM in the morning, they would receive SQL errors stating that their transactions could not be completed. Given that this issue occurred on a regular schedule, we determined that the issue had to be attributed to some sort of automated job.
Figuring the first place to check would be the out-of-the-box CRM Maintenance Jobs, we downloaded the Job Editor from Codeplex
(https://crmjobeditor.codeplex.com/ – Very useful tool that everyone should be using) and got to investigating.
Right off the bat, we saw our error on the Deletion Service:
Deletion Service encountered an internal error: System.Data.SqlClient.SqlException (0x80131904): Invalid object name ‘SubscriptionTrackingDeletedObject’
From here we moved to SQL and queried the SubscriptionTrackingDeletedObject table of our CRM database.
What we found was astounding – the table contained 137 MILLION records. Basically after seeing this we knew that the job had to just be timing out – we tested our theory by running the job manually and immediately saw the log file grow to the expected 31GB.
It was decided to clean this table up manually via truncating it. Before you say “Oh no! Don’t delete records via SQL directly!” let’s explain what this table actually is.
When records are deleted from CRM, there are also records that get inserted into this SubscriptionTrackingDeletedObject table. This table gives the Deletion Service Job ObjectIDs that have been removed so that further cleanup can be performed asynchronously. So essentially, it is just a table of deleted records which gives the Deletion Service knowledge to clean up some other areas of CRM (e.g. POA records, duplicate detection records, etc…) if necessary. Once cleaned up, the records from the table are removed. We understood this and decided the need to clean this table outweighed having the other areas of CRM cleaned up (as you will learn later, this wasn’t a concern for us because of how the records got in there).
Please note we cannot condone the practice of editing SQL manually without full knowledge of the possible repercussions. Always consult with Microsoft support if in doubt and remember what works in one scenario, may not work in all.
After the table was truncated, CRM was tested and the deletion service job was run manually – this time not failing with the error above and the log did not grow to 31GB. Before calling this case closed, we still needed to understand what caused this problem in the first place. What could have possibly created so many records in such a short period of time? Luckily, we had the right people involved on the customer’s end and were able to determine that there had been a malfunctioning Scribe job that was running for a while unnoticed. It was a job that was bulk creating and deleting 50,000 records at a time within CRM but the job had since been fixed. Case closed.
Several-out-of-the-box entities in Dynamics CRM (including Case, Lead, and Opportunity) contain a field that represents a customer, which can either be an Account or a Contact. In CRM, these fields have the Customer data type, which is a special kind of lookup field for these two specific entities. Previously, system customizers couldn’t add a Customer field to their own entities. As part of this feature, Customer is available as a custom field data type that can be added to any entity, system or custom.
One of our MVP’s Shan McArthur, now with Microsoft leading the the Microsoft ADX Portal development as been fighting for this feature for a long time. In memory of that fight, we will refer to these field type as a “ShanMC Field.”. Thanks for your support throughout the years Shan!
Microsoft has announced the general availability of Dynamics CRM 2016 Spring Wave. You can see the preview
guide by click on the image! Enjoy!
Over the last few weeks my colleagues and fellow MVP’s have been working on a few CRM 2016 systems. Our general thought is that a lot of this code is from the CRM Online 2015 code base, and should really be production ready. However, the Microsoft CRM team has been hard at work delivering new features, so looks like we introduced a few bugs.
I’m going to recommend that you wait for update rollup 1 before deploying to your production system. There’s still plenty of time to test and install in your dev and test systems as you wait for these fixes. Here’s the main areas:
- Overall Outlook 2016 Client Configuration and Usage Issues – Support Recommended to stay with 2015 client
- New Form Rending Engine slowing overall form performance – fix in the works for update roll up 1
- Tweaks to the 2016 Solution Engine, breaking some backwards capability while importing solutions – fix in the works for update roll up 1
- Mobile Client performance issues
So we will re-test about the update roll-up 1 and provide future recommendations when we feel this is ready for production. Remember that there are some best practices and one is two wait until the first update roll-up is available. Stay tuned.