US States Picklists Values

How many times have you had to make a picklist for the US states on a CRM 4.0 form? Well, rather than having to manually add each of the 50 states (52 if you count DC and Puerto Rico), I’ve got an XML file pre-made with the values of the US States that I copy into the customizations.xml for the particular picklist attribute I’m editing. I thought I’d share it here to save you some time as well.

Download it here.

To use it, export the XML for the entity you are working with, and open it in Visual Studio or your favorite XML editor (Notepad will work). Do a find to locate the picklist attribute you want to edit, and look for the node under it. It should look something like this:
Copy the contents of the downloaded file and then select everything from the starting
tag to the ending tag in the customizations.xml and paste the contents of your clipboard into it. Verify that the XML looks correct, save your customizations.xml and import it back into CRM. Publish the entity and, voila, you have all 50 states available from your picklist.

Agent Communications Panel for CRM – Call Center Functionality Using OCS

Microsoft recently released the “Agent Communications Panel for Microsoft Dynamics CRM 4.0” which provides an out-of-the-box integration with Office Communications Server for call center functionality within CRM.

The Agent Communications Panel for Microsoft Dynamics
CRM 4.0 is an application add-in to Microsoft Dynamics CRM 4.0. It works with
Microsoft Dynamics CRM and Microsoft Office Communications Server 2007 R2, and
enables agents to manage their communications (make calls, receive calls,
conference, and chat) from their Microsoft Dynamics CRM system. The Agent
Communications Panel is an XAML browser application (XBAP). It is published to a
Web server and opened from a Web browser.”

I haven’t had a chance to set it up and play with it yet, but it looks like it’s a logical extension to CRM that should be well-received. You can download it here.

Error Importing Customizations

On a development environment where I had imported a new organization, the developer was getting an error when trying to import customizations from another system (both on Update Rollup 3), and was unable to publish any customizations either. On importing, he got the following error:
“Failure: customeraddress: A SQL Server error occurred. Try this action again. If the problem continues, check the Microsoft Dynamics CRM Community for solutions or contact your organization’s Microsoft Dynamics CRM Administrator. Finally, you can contact Microsoft Support.”

In the event log on the server was an error that said:

EventID: 19457
Source: MSCRMWebService
Customization Import failed. Error: Could not find stored procedure ‘p_PublishMetadata’.

In digging into the database in SQL Server Management Studio, I saw that this sproc and another called ‘p_PublishLabelsByObjectId’ were listed not as dbo owned like the rest of the stored procedures, but user owned (DOMAIN\Username.p_PublishMetadata, for example).

I changed the ownership using the following query and publishing and importing started to work:

sp_changeobjectowner ‘p_PublishLabelsByObjectId’, ‘dbo’

and then the same for the other stored procedure:

sp_changeobjectowner ‘p_PublishMetadata’, ‘dbo’

(You’ll get a caution about changing ownership that you can ignore.) Close SQL Management Studio and re-open it to verify that the ownership has changed (refreshing didn’t work for me for some reason).

Somehow, when this organization was imported, the ownership didn’t get set correctly on these two stored procedures. Tip of the hat to Luke Rogers for the tip on changing ownership of stored procedures one at a time.

Environment: SQL Server 2008 Standard, Microsoft CRM 4.0 UR3 Professional with the original organization disabled, and a new organization imported.

Re-Awarded MVP for CRM

Got the email today notifying me that I was re-awarded MVP status for CRM! This makes it 4 years running. I’m extremely grateful to Microsoft and the CRM community – it’s been an incredible experience working with CRM and getting to know a lot of the folks on the product team. The MVP program has been tremendously helpful in growing my knowledge and professional development. The CRM team and the other CRM MVPs have been a great group of people to work with and get to know.