| Profilo di AaronAaron Elder's Web LogBlogElenchi | Guida |
|
|
15 marzo My CRM Blog is moving...Hey everyone...
We just released our new corporate website and as part of this effort added a blog! Going forward, I will be making all of my Microsoft CRM related posts on this new site. For all of you with RSS feeds to this site, you may want to update your feed to point to this new site's RSS feed.
I will continue to post random development items and non-corporate or CRM things here... but for all my readers interested in Microsoft CRM, I encourage you to update your links.
Cheers 16 febbraio Microsoft Dynamics CRM 3.0 Virtual PC DemonstrationIf anybody out there is using the Microsoft Dynamics CRM 3.0 Virtual PC Demonstration that is available here:
You should be aware of a few minor issues with this image.
Issue #1 - Its a bit bloated
Typically, sales people will use this image to demo Microsoft CRM and all its wonderful features. Unfortunately, most sales peoples don't have laptops with 2GB+ of RAM. This image, as currently configured, requires at least 1GB of RAM allocated to it to run. This is because this image has SharePoint, Exchange, Microsoft CRM, SQL Server 2005, SRS and the Outlook Client on it. In addition, it has a few things on it that really aren't needed in a "demo" environment. Here is a quick list:
All told, turning off a lot of this stuff can free up an quick 120MBs of RAM that can really make a difference on a slow laptop.
Issue #2 - Odd installation locations
Typically CRM is installed here: C:\Program Files\Microsoft CRM
But on this image it is installed here:
C:\Program Files\Microsoft CRM Client
Which makes for the really confusing location of the CrmWeb folder here:
C:\Program Files\Microsoft CRM Client\Microsoft CRM Server\CRMWeb
Note the "server" files under the "Client" folder... adding to this confusion... there is also an invalid CrmWeb folder here: C:\Program Files\Microsoft CRM\CRMWeb
Issue #3 - MSXMLSQL.DLL is not installed correctly
Building on Issue #2, SQL Server seems to be installed in two locations.
C:\Program Files\Microsoft SQL Server
and
C:\Program Files\Microsoft CRM Client\Microsoft SQL Server
The problem is that the MSXMLSQL.DLL is not installed in the location that SQL Server expects. This means that if you write code that makes use of this DLL and uses SQL XML, you will get the error: "Failed to load MSXMLSQL.DLL". Fortunately, the files are on the image... they are just in the wrong place. The following script will fix this issue:
copy "c:\Program Files\Microsoft SQL Server\90\Shared\msxmlsql.dll" "c:\Program Files\Microsoft CRM Client\Microsoft SQL Server\90\Shared"
copy "c:\Program Files\Microsoft SQL Server\90\Shared\Resources\1033\msxmlsql.rll" "c:\Program Files\Microsoft CRM Client\Microsoft SQL Server\90\Shared\Resources\1033"
Updated (02.17.2006) Issue #4 - SharePoint has not been updated.
Overall this is an excellent tool that Microsoft has provided the partner community.
Cheers, 14 febbraio You ever get this error?I get this error all the time in Microsoft CRM 3.0 when loading an entity from the Settings | Customization | Customize Entities page:
"Error: An error has occurred. For more information, contact your system administrator." If you turn on "Dev Errors" you see the following additional details:
The error seems to be some form of timing issue. If you wait for the "Customize Entities" page to fully load and then give it a second... the Entity Editor loads perfectly every time. If however, you try to load an entity before the page is 100% done loading, you will get this error. A quick look into the cause, shows that the URL that loads is different depending on whether or not you wait for the page to finish:
URL if you don't wait - This gives an error
URL if you wait - This one works
The work around is simple: Wait for the "Customize Entities" page to load and try loading the "Entity Editor" again.
Upgrading Supported Microsoft CRM 1.2 Environments to Microsoft CRM 3.0"This white paper reviews the key components for you to prepare in your environment for a successful upgrade from Microsoft CRM 1.2 to Microsoft CRM 3.0. This white paper is a supplement to the Microsoft CRM Implementation Guide."
This is definately a good read. 06 febbraio CRM 3.0 - Closing a Task generates an error
05 febbraio Updated Microsoft CRM 3.0 SDK Released (3.0.3)The Microsoft UE team has released another update to the Microsoft CRM 3.0 SDK. This is version 3.0.3 and has a release date of February 1st, 2006!
The new SDK is available here:
Here are the release notes:
25 gennaio CRM SDK Bug - How to upload files into CRM 3.0The current CRM 3.0.1 SDK has several samples that explain how to make use of the following messages:
And they all provide samples that look something like this:
string data;// Variable declared outside of using statement
// Create an instance of StreamReader to write text to a file. // The using statement also closes the StreamReader. using (StreamReader sr = new StreamReader("temp.txt")) { // Read in the file's contents TextReader reader = sr; data = reader.ReadToEnd(); } // Encode the data using base64 byte[] byteData = new byte[data.Length]; byteData = System.Text.Encoding.UTF8.GetBytes(data); string encodedData = System.Convert.ToBase64String(byteData); // Create the Request Object UploadFromBase64DataAnnotationRequest upload = new UploadFromBase64DataAnnotationRequest(); // Set the Request Object's Properties upload.AnnotationId = annotationId; upload.FileName = "temp.txt"; upload.MimeType = "text/plain"; upload.Base64Data = encodedData; // Execute the Request UploadFromBase64DataAnnotationResponse uploaded = (UploadFromBase64DataAnnotationResponse) service.Execute(upload); Unfortunately, there is a bug in this code (highlighted in RED). The problem is that if you try to upload binary data the method by which the data is read from the file system and encode is in adequate. Using the above code will result in files that only contain a portion of the binary file that intended to attach. I am partly to blame for this (as I helped write this sample) and the above sample works great if you are uploading plain text (as our unit tests proved
// Get a pointer to the file and open up a stream
FileInfo pointer = new FileInfo(file); FileStream fileStream = pointer.OpenRead(); // Encode the data using base64
byte[] byteData = new byte[(int)fileStream.Length]; fileStream.Read(byteData, 0, (int)fileStream.Length); string encodedData = System.Convert.ToBase64String(byteData); // Close the stream
fileStream.Close(); Basically, this approach to loading the into the Byte Array actually works for binary data (thanks MSDN). Now that we have all encodedData loaded correctly, the rest of the code works as expected.
Cheers,
16 gennaio Debugging CRM and "Break into the debugger"One of my favor features in the Microsoft Visual Studio debugger is the ability to have it "break into the debugger" when any exception occurs. I find this feature to be a great way to quickly identify where an exception occurring in my code without having to set break points and step through it. I can just say "break whenever you find an exception". I then run my code as normal, when the exception occurs, VS will stop execution of the process and break into the source code where the problem occurs. I can then go about my normal business of debugging.
You can read about this feature here:
Now, it is all fine and good that I like this feature, but why is this important when debugging code that calls the Microsoft CRM 3.0 platform? The answer is that CRM 3.0's web services have a nasty habit of throwing an exception almost every time they are called. Here it is:
Image:
A first chance exception of type 'System.ObjectDisposedException' occurred in system.dll
Additional information: Cannot access a disposed object named "System.Net.Sockets.NetworkStream".
As a developer working on the Microsoft CRM application team, we simply got use to it and got into the habit of simply hitting "continue" (instead of break) whenever the platform threw this "bogus" exception. I know the platform team did some research (and I am fuzzy on the details) but it turns out that this is actually a problem with the .NET Framework and the team made the call to not try to fix/workaround the issue (given the risk, the scope of the fix, the ship date, etc.) As a note, I completely trust that decision and you should too
Anyway, I am posting this today so that people know about this exception and know that it is safe to ignore when it comes from a CRM 3.0 web service call. Hopefully some developer that has run into this problem, will do a quick Google (or MSN) search, find this posting and save him/her self a good many hours chasing down a bogus exception.
Cheers, 08 gennaio More - Localized versions of CRM 3.0 on MSDNMore Russian and Dutch versions are available on the MSDN subscriber download page.
01 gennaio Microsoft releases localized version of CRM 3.0Happy new year everyone!
A small bit of news... the Spanish, Italian, Danish and Portuguese versions of Microsoft Dynamics CRM 3.0 SBE are now available for MSDN subscribers.
28 dicembre Microsoft CRM v1.2 - Hot Fix Update Rollup #2Update Rollup 2 for Microsoft CRM 1.2 (KB904435)Brief Description"Update Rollup 2 is a tested, cumulative set of updates for Microsoft CRM Server 1.2, Microsoft CRM Sales for Outlook 1.2, and Microsoft CRM-Exchange E-mail Router 1.2, including performance enhancements, that are packaged together for easy deployment."
It is pretty safe to assume that this will be the last rollup for CRM v1.2 for a while and I would generally recommend it for all existing CRM v1.2 installs.
You can read about all the fixes in this release here: http://support.microsoft.com/default.aspx?kbid=904435
Microsoft Dynamics CRM 3.0 Virtual PC DemoMicrosoft has put together a nice VPC with the good old "Adventure Works Cycle" demo on it!
Check it out:
It is pretty big and you need to have Microsoft Virtual PC 2004 installed to use it. Here are the details:
"Microsoft Dynamics CRM 3.0 release Virtual PC Demonstration. This demo is a one computer setup with Microsoft CRM 3.0 server and Microsoft CRM 3.0 client for Outlook. This demonstartion also contains Microsoft Exchange Server 2003, Microsoft SQL Server 2005, and Microsoft Visual Studio 2005."
Posted: 12.19.2005
Size: About 3.8GB Compressed
26 dicembre Microsoft CRM 3.0 Implementation Guide UpdateThe Microsoft Implementation Guide has been updated. The new version is 3.0.3 and has a posting date of 12.22.2005.
14 dicembre Microsoft CRM 3.0 and IE7This is sort of a non-event... but I think it is pretty cool that Microsoft CRM 3.0 seems to work perfectly under Internet Explorer 7.0 Beta 1 (7.5112.0). I know the team did a bit of testing for IE7 compatibility during the final months before shipping and it appears that this worked paid off.
04 dicembre Microsoft CRM 3.0 Pricing and LicensingMicrosoft has released a "Web Seminar" for partners that describes the licensing and pricing of Microsoft CRM 3.0. This information is publicly available to anybody who registers:
Microsoft CRM 3.0 Pricing and Licensing Update - Sales Series 1 of 3
http://www.msreadiness.com/wscart.asp?eid=3457
Estimated Retail Pricing (US Only): These prices are estimates only and vary based on your MSFT licensing program, geography, Software Assurance terms and other factors. You can get exact pricing through a CRM partner like Invoke Systems.
02 dicembre Microsoft CRM 3.0 SDK RTM Build ReleasedThe "RTM" version of the SDK is now up on MSDN. This of course is not the "final" release, as they will be updating this SDK as new content is added and improvements are made. Here it is:
Kudos to the CRM SDK Team for getting this out! 30 novembre Microsoft CRM 3.0 - Release HistoryRTM- Released November 2005
EAP - Released October 2005
RC1 - Not released to public
TAP3 - Released August 2005
TAP2 - Released June 2005
TAP1 - Released February/March 2005
13 novembre New CRM 3.0 SDK AvailableThe Microsoft CRM 3.0 SDK has been updated (11.08.2005) and you can get it here:
Many of you may not know, but the SDK will no longer ship "in the box" when Microsoft CRM 3.0 is finally released. Since the SDK is ever improving and the team did not want to hold up shipping the actuall application bits because of any last minute SDK changes, the team decided to ship the SDK only online via MSDN.
The SDK includes:
The Microsoft CRM 3.0 SDK is for developers, system customizers and report writers. It contains the following sections: 06 giugno Microsoft CRM v1.2 Database Purge ScriptThe time may come when you want to "purge" your CRM database. Generally, you would want to do this on a test environment that you use repeatedly (like when you are testing a data migration) or perhaps in a client environment after you entered a bunch of test data prior to "going live". When this happens, you have several options. First, you can restore a previous database, second, you can reinstall CRM, third, you can try to use CRM to delete all the records (not always possible and certainly time consuming). The fourth option of course, is to run the handy SQL script below.
Before we get to the script, we have to get the formalities out of the way:
Now that we have that out of the way, let us move on to the script. The "magic" of this script is knowing what to do delete, what not to delete and the order in which to perform the delete. Generally speaking, we stayed away from anything "security related" (Business Units, Users, Roles and Teams), this is for safety and to prevent the 1001 bugs that would probably occur from such a brute-force assault on the CRM security model. (Perhaps a future script will dare to venture down that path) Additionally, this script avoids most "system level objects" including Templates and Views. --
-- Remove Service Related Items -- Remove Sales Items -- Clean up the Product Catalog -- Remove Core Objects -- Remove Other Items -- Do not delete "User" private and WIP queues, as this will mess up
01 maggio Troubleshooting Microsoft CRM Callouts
With this entry I hope to provide you with the 16 things that I have seen cause callout failures, links to places where you can get additional help on callouts and a handy "Troubleshooting Workflow", which will walk you through the steps of isolating what and where you callout trouble may be. 16 things you may be doing wrong (in no particular order):
Troubleshooting Workflow: The following diagram attempts to walk you through the process of troubleshooting your callout. The workflow works by the process of elimination. If you can rule out what isn't the problem, the root of your problem generally becomes obvious.
Helpful URLs: Michaeljon Miller's - Callouts are just plain hard to write
|
|
|