CRM 2015 – Where Is Everybody?

Just installed the preview of the Fall ‘14 updates to Microsoft Dynamics CRM 2015. i first wanted to add some additional users (ME!), so i went to SETTINGS, ADMINISTRATION where Users have always been. not only was Users no longer, it looked pretty empty in general. So, i went searching. Eventually found a new sub-area under SETTINGS named Security. Opening that up I found (many of) the items missing in Administration, plus a couple of new ones, Positions and Hierarchy Security. More on those later. For now “my Administrator” has made me a User. YEA!

Unexpected Error When Accessing Some Accounts in MSDYN CRM 2013 Revisited

Back in February I blogged about fixing an Unexpected Error When Accessing Some Accounts. The fix was to set the Merged field in the AccountBase table to 0 where the current  value is Null (http://msmvps.com/blogs/larrylentz/archive/2014/02/12/unexpected-error-when-accessing-some-accounts-in-msdyn-crm-2013.aspx). That seemed to work, for awhile, but then it returned. i checked and there were no Accounts with Merge = 0. Then I did a query on the ContactBase table and found 350 Contacts where Merged = Null. i changed the table in the original fix to ContactBase

UPDATE A
SET A.Merged = 0
FROM ContactBase A
WHERE A.Merged = null

This seems to have  done the trick. I no longer get the error when attempting to access certain Accounts. I’m guessing the relationship between Account and Contact links the problem from the associated Contacts. I wonder what other tables may be causing a similar problem. I’ll blog if I run into any others.

CRM 2013 Access Teams in a Nutshell

In CRM 4 and before we had Teams. These provided a way to share records with a number of users in a single operation. As members were added to or removed from a team, their access to the records shared with the team would be granted or removed. With the advent of CRM 2011, teams were given the additional ability to OWN records as well as being granted access via sharing. In CRM 2013, these are now termed “Owner Teams”.

In CRM 2013, Access Teams have been added. These implement the same functionality as teams in versions before CRM 2013, with a few new wrinkles. There are three ways an Access Team can be created. First, an Owner Team can be converted. This allows upgrade capability from CRM 2011 teams that may have been created just to have records shared with them, rather than owning records.

Access Teams can be manually created, much as they were in previous versions. And much as Owner Teams are created, selecting Access instead of Owner creates an Access Team. Manually created Access teams, as mentioned above, function just like teams of old, they can have members added or removed and records may be shared with the team. Each sharing describes the specific privileges the sharing provides to each member of the team.  This is how teams worked before CRM 2011.

New to CRM 2013 are System Generated Access Teams. These are based on an Access Team Template which describes the permissions granted to members of the team. Users must have at least User level access to each of the permissions granted by the template to be added to the team. But users aren’t added to a system generated team the same as a manual team.

System generated teams are formed by first having, or creating an Access Team Template which describes the actions (Read, Write, Delete, Append, Append To, Assign, Share…) that the team provides, then adding a sub grid to the form of the entity that it applies to. The sub grid needs to display User records that will be team members FOR THIS RECORD.  Other resources can provide you the details for implementing this sub grid.

When you access a record that has an Access Team sub grid included on the form, and there are no members of that Access Team, the team does NOT yet exist. Having the team on the form allows us to add members to the team. When the first user is added as a team member, a system generated team is created with the privileges granted by the Access Team Template. The team will provide access to THAT SPECIFIC record only. The name of the newly created team will include the GUID of the SPECIFIC record it was created to share. When the last user is removed as a member of the team, the team will be deleted.

So, system created Access Teams are formed automatically for a record when the first user is added as a member, and removed when the last user is removed. The access permissions are those specified in the template.

So, why so many team types? Well appears each has different affects upon the system overhead. Owner teams have much more than Access teams.

To learn more about Access Teams, download Access Teams with Microsoft Dynamics CRM 2013 at  http://www.microsoft.com/en-us/download/details.aspx?id=41190

Order Product Price Locking in CRM 2013

When I teach CRM classes, my daily rate is often tied to the number of student in the class. When I create an Order in CRM 2013 for a class, I use the pricing for the course in my Product Catalog. This pricing is based on the normal class size. If the actual registrations are more or less, I need to change the Order Product pricing.

On the Order form in the Products section Command Bar, you will see a padlock symbol. One would think, at least I did, that clicking on that padlock, which then swings open, would unlock pricing. However, if you look at Prices Locked in the Summary section, you will see that is says “No”.

image

If you click on the padlock, it will display an OPEN padlock. One, me , would think this would mean the prices were unlocked. Un-so as you’ll see in this screen shot. Prices Locked is now Yes.

image

Apparently that little padlock in the Products grid Command Bar represents the action that will be taken if it is clicked, not the current status.

 

Nothing Happens When Selecting CASES from SERVICE Area of CRM 2013 Navigation Bar

My personal CRM system has been upgraded from version to version since version 1.2 back in 2004. That may explain the funky behavior I’m about to describe. When I attempt to select CASES from the SERVICE area on the Navigation Bar, nothing happens. Well, it does now because I fixed it. i don’t use Cases as much as I used to so I let the problem slide while I pondered it. Today I was struck with the bright idea of having a look in the Site Map which controls the Navigation Bar of CRM 2013. (I’ll leave editing the Site Map for you to find on other blogs.) I noticed that the Cases subarea line <SubArea Id="nav_cases" Url="/CS/home_cases.aspx" Entity="incident" /> included a Url item. None of the other, working, subareas in this section did. I removed the Url item making it <SubArea Id="nav_cases"  Entity="incident" /> and now it works as well.

Certificate Not Yet Valid or Has Expired

I recently started getting the error The security certificate presented by this website has been expired or is not yet valid when I attempted to access my Microsoft Dynamics CRM website. I was able to ignore the error in Internet Explorer, but my CRM client for Office Outlook would not connect. Outlook does not have the ability to alert the user to ignore such an error. However, the web certificate was very much in its valid range (Feb 2014 to Feb 2016)

I searched on the web but most of the posts recommended checking the Date/Time. No joy there. I finally discovered that the problem was the Certificate Authority certificate had recently expired! I was using a self-signed certificate from my SBS 2008 server. This has worked flawlessly for years, until in expired. Tried to renew the certificate, which I believe I did successfully, but was unable to update the clients with the new CA certificate in the Trusted folder.

I finally gave up and bought a new commercial certificate (I’m cheap and hate doing that for my personal stuff). Fortunately that worked a charm. I am now up and running and all the stuff I had been doing in the Outlook client is now synced back to my CRM server.

Unexpected Error When Accessing Some Accounts in MSDYN CRM 2013

I recently upgraded my Microsoft Dynamics CRM 2011 On-Premises to CRM 2013. I did a Migration Upgrade, moving from CRM 2011 on Windows Server 2008 R2 & SQL 2008 R2 to CRM 2013 on Windows Server 2012 & SQL 2012. All appeared to go well, at first. Then I started getting Unexpected Error when I attempted to access Account records. At first I thought my database was corrupt (and I hadn’t yet started my backups) (I know, I know…) I could go back to my 2011 (with backups) but then I’d have to figure out what updates I’d made in 2013 and re-enter them (or not). I did notice that it only occurred on some Account records. So I decided to do a Bing search to see what might be there. Much to my delight I quickly found an article from another with the same problem. But he had solved it! His article is here.

Seems this error occurs on CRM 2013 databases that have been updated from version 2011, like mine. The Merged attribute in the AccountBase table should be either a 1 or a 0. But with the upgrade, some records come over with a null instead of a 0. The solution is to run a simple SQL script that looks for Accounts where the Merged attribute is null and set it to 0. I had to modify the database references to run in SQL Management Studio. Here is the script I used (basically the same as in the article I found, but with database reference):

UPDATE A
SET A.Merged = 0
from  My_Organization_MSCRM..AccountBase A
WHERE A.Merged is null

Note, there are 2 dots between _MSCRM and AccountBase

I’ve tried this on a few records that had previously produced the error and they opened fine. Hopefully that will continue. And yes, I have instated my Maintenance Plan with a daily backup.

Installing CRM 2011 on Windows Server 2012

I am in the process of trying to install CRM 2011 onto a Windows Server 2012 with SQL Server 2012. There are many blogs/posts on the subject so I won’t repeat those here. However, I ran into a problem which will likely be encountered by others. After doing all the front end work recommended by other blogs, I started my install. After accepting the End User Licensing Agreement (EULA) the install just seemed to hang or stall. The EULA window remained and nothing progressed. Looking in the setup log I found that the problem was failure to install the Visual C++ Runtime (Installation of Microsoft Visual C++ Runtime failed. Exit code: 5100. Result: Asia). A web search found the answer, provided by CRM Diva and fellow CRM MVP Donna Edwards. Actually she was addressing another problem but her fix suited my situation as well. The problem is that the CRM installation program tries to install the C++ Runtime because it doesn’t recognize the later version installed by Windows Server 2012. When it tries to install it, it fails. So we must uninstall the existing Visual C++ Runtime so the CRM install can install it. An additional wrinkle is that there are two versions of the Runtime, x86 and 64 bit so be sure to uninstall all existing versions of the Runtime before attempting to install CRM.

Now if I can only resolve the Reporting Server issue that is now preventing the install. I’ll let you know how that works out.

CRM Field Guide – Hot Off the Presses

After 1029 days, the much awaited “The CRM Field Guide – How to CRM Like an MVP with Microsoft Dynamics CRM” is released! This 945 page book is the combined efforts of 19 MVP authors and MVP Julie Yack, our editor and publisher. It is comprised of 25 chapters that pretty well cover the CRM landscape. Yours truly authored Chapter 9 – Marketing Automation Best Practices.

The book is available at http://www.CRMFieldGuide.com in both Print and E-Book formats. It is also available at Amazon.com.

Setting Caller (Sender) Field Dynamically in CRM 2011 Workflow

CRM 2011 added the feature of Team ownership of records. This was a much asked for addition, but it does present some unexpected issues. Today I was playing with creating a Phone Call in a workflow. One of the fields in a Phone Call is the Sender (I prefer ‘Caller’). In version 4 workflow I would have used the Form Assistant to dynamically insert the record’s Owner in the Sender field. That still works in CRM 2011 UNLESS the owner is a Team! If it is a team, the workflow will experience an error.

 image

Instead select in the Look for dropdown Owning Team (Team) and then select Administrator

image

You can also select Owning User with the record type in the Look for. If the record is owned by a user that value will be used.

image

To cover all the bases include both: Select Owning Team(Team) Administrator and then <record type>Owning User. If a team is the owner, the team’s administrator will be used, otherwise it will fall through and use the Owning User instead.

image