Monday, September 24, 2012

AttributeMap with ID Does not exist

First post in almost 3 years!

I will preface this article by saying two things: First, the following procedure is neither recommended or supported by Microsoft or we here at Armanino Consulting and is intended for informational purposes only. Second, we do not take responsibility for the potential damaged to your database that this procedure may cause.

With that said, I was uninstalling some managed solutions when I came across this gem which would not allow me to uninstall the managed solution: Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: attributemap With Id = d1ae5a02-096e-e111-a4fe-000c294e53dd Does Not ExistDetail:

After digging into the SQL tables I located the offending AttributeMapBase row. After taking a backup of the database, I forcefully deleted the row to see what would happen. Unfortunately I received a different error: EntityMap with ID = …. Does not Exist. After restoring the database I took a look at the deleted row and grabbed it’s corresponding EntityMapID. I pulled up that row in the EntityMapBase table. Trying again I deleted both that row and the row from the AttributeMapBase table and attempted to delete the solution again. I received the same error as before but got a different ID this time.

Looking at the ID’s I could see that they were all related to that particular solution so I took a scorched earth approach and wrote a couple of queries to nuke out all of the entitymap entries and attributemap entries for the solution. First thing I did was get the guid of the appropriate solution which is on the AttributeMapBase entry. Then I plugged it into the following two queries:

delete from entitymapbase where EntityMapId in (select distinct entitymapid from AttributeMapBase where SolutionId = 'Insert Solution ID Here')

delete from AttributeMapBase where SolutionId =  'Insert Solution ID Here'

Once the entries were deleted, I was able to successfully delete the solution (although it took longer than normal).

Thursday, October 29, 2009

CRM Training Videos

Microsoft has released a great series of videos that are perfect for helping that new employee become familiar with Microsoft CRM. They are geared for toward CRM Online but will work just as well for any On Premise implementation.

Microsoft CRM Training Videos

Friday, October 23, 2009

Windows 7 and CRM 4.0 Rollup 7

As you may have heard, Windows 7 was launched worldwide by Microsoft today. We here at Gateway Solutions have been testing Windows 7 internally for several months and have found that it is not only faster than its predecessor, but has a number of features that makes it the best Microsoft desktop operating system yet.

In our internal testing we did not find any issues running the CRM 4.0 outlook client and Windows 7. That said, Microsoft released Update Rollup 7 for CRM 4.0 today to coincide with the Windows 7 launch. This release introduces major changes to the way the CRM client interacts with Outlook. It also adds official support for Windows 7. Below you will find the download link for Update Rollup 7. Please let us know if you would like assistance in installation or if you had any other questions about Windows 7 or CRM.

Download Link: Microsoft CRM 4.0 Rollup 7

Wednesday, August 19, 2009

Excel to CRM

We recently started a project with a client who had some very complex spreadsheets. They wanted the data from a complex spreadsheet to reside in CRM but the algorithms and formatting frequently changed. Essentially they wanted us to build a tool that was able to keep this data in CRM but was flexible enough to handle significant changes.

We got the idea to create an excel add-in that took in the appropriate data from the sheet and to write that data to CRM. Our initial thought was to create a CRM entity that contained the schema for a particular sheet. One particular fields' data was held in Cell X123 and so on. However, when I started the project it became clear that this might become a bit of a nightmare to maintain so instead we came up with the idea to use user defined functions (UDF's).

We wrote a series of UDF's that would store each piece of information for an entity and when triggered, write them all to CRM. The greatest part is that its completely dynamic. You only need to enter the name of the field, the entity and the value and the data is written into a temporary data structure. For example, the main UDF takes the value as its first argument, the field name as its second and the entity as its third. The function uses the Metadata service to verify that the field is a valid field and then stores the value. When the user presses the Write to CRM button, all of the data stored in the data structure is written directly to CRM. Since many users are familiar with excel and excel functions, it makes it an easy way for an end-user to import complex data into CRM as well as gives them the ability to create their own customizable interface.

Monday, June 22, 2009

Adding Information to Print Preview

Unfortunately there isn't a way to customize the print preview form in CRM. Users often find that the convenient little print button at the top of every window rarely contains the information needed. For example, you want to print out an e-mail that "proves" it was sent on the day it was sent. You click the print button and find out regretfully that there is no date information!

The information is there but you just have to know a little bit about the print preview form to display it. Print preview simply displays every piece of information that is located on the form itself. For example, in an e-mail history record, the ever important Date field is actually the actual end field. Simply modifying the e-mail form, placing actual end on the form, changing the field title to Date and publishing the form will net you a date on your print preview. Pretty easy.

Friday, May 15, 2009

Installing the Data Migration Manager on the same Server as CRM

We often find ourselves doing a lot of our work remotely. That said, we don't often have much access to any other machines on a foreign remote network beyond the CRM server itself which can make it difficult if we want to use utilities such as the Data Migration Manager to pull data directly into CRM.

Why is it difficult? Well, the Data Migration Manager(DMM) isn't intended to be installed on the CRM server itself. In fact, if you attempt to install it on the server, the following error appears when you designate an install location: "The path is not of a legal form". This is annoying to say the least.

Why is this error showing up? I'm not sure if this was written into the installer as a way of dissuading people to install the DMM on the same machine as the CRM server or for some other purpose. The reason it shows up is that it is attempting to find out where CRM server is installed by querying the "InstallLocation" string located here:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\059DD8CB00184F24E99A62CF4D6109FA\InstallProperties]

The problem is that this registry string is blank! By simply adding in the proper path to your CRM installation (C:\Program Files\Microsoft Dynamics CRM) in the "InstallLocation", the installation will proceed without a hitch.

One word of warning, I have not had this happen personally but I have seen it cautioned that if you attempt to uninstall the DMM after installing it this way, it may uninstall files needed by your CRM Server install. Uninstall at your own risk.

Wednesday, April 8, 2009

MSCRM and Outlook Keyboard Shortcuts

I had a customer ask me recently about keyboard shortcuts for Microsoft CRM. Shortcuts are documented in the CRM help file but here is a quick list of MSCRM and Outlook shortcuts.

CRM Shortcuts
Select all text in current fieldCTRL-A
Close the current windowALT-F4
Move to next fieldTAB
Move to previous fieldSHIFT+TAB
Save current formCTRL-S
Save and CloseALT-S
Save and NewCTRL-SHIFT-S
Open/Close Form AssistantCTRL-SHIFT-F
Cancel edits and close FormESCAPE
Delete recordCTRL-D


Outlook Shortcuts
Switch to mailCTRL-1
Switch to InboxCTRL-SHIFT-1
Switch to CalendarCTRL-2
Switch to (Outlook) ContactsCTRL-3
Switch to TasksCTRL-4
Create new AppointmentCTRL-SHIFT-A
Create new ContactCTRL-SHIFT-C
Create new TaskCTRL-SHIFT-K
Check SpellingF7