DST Update strikes again

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

I thought we were all through with the Daylight Savings Time (DST) issues, but I was wrong.

One of my customers purchased a newer, more powerful, SBS 2003 box and we had to migrate CRM 3.0 from the old server to the new server.

Overall, everything went fine. Redeployment manager did it's job, CRM installed to the existing database ok, but I ran into an issue when I attempted to install Hotfix Rollup 2.

It wouldn't install and kept crashing at the Checking necessary disk space step ( or something close ).

After digging around a bit, I found the following article:

An update for the 2007 daylight saving time changes is available for Microsoft Dynamics CRM 3.0 and for the Microsoft Dynamics CRM 3.0 client for Outlook

The article's possible issues and resolutions are some of the strangest I've ever seen:

1) Well, it could be crashing because it can't find a Time Zone registry entry.

2) Well, it could also crash if it found a Time Zone registry key that it didn't expect?

From the KB article: Use the same command on another Microsoft Dynamics CRM server on which update 925874 was successfully installed.

Huh? What if I don't have another CRM Dynamics server?  Luckily, I did.

Anyway, it turns out that on the new server, it was issue #1, which I found to be with the Central Brazilian Standard Time time zone which was missing data.

Ah, those crazy Brazilians. :)>

Anyway, I hope to never see this issue again because I hope to be installing CRM 4.0 from here on out.

MVP Summit Recap

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Holy Cow Batman!  Did I have fun last week or what? 

Without a doubt, the MVP Summit 2008 was the most fun and productive conference I've ever attended.

Not only did we get to hang out with the CRM Product Group for two full days, but the CRM MVPs had an absolute blast hanging out together and sharing war stories, best practices, etc.

I think I can speak for the group in saying that a good time was had by all ( except for Frank, who had a cold; and even he seemed to be enjoying himself a good bit of the time ).

Anyway, I just want to say thanks again to Jim Glass for the organization of events and the whole CRM team for rolling out the red carpet for our visit and sharing their time, thoughts, and information with us.

See you again next year.

Mitch

CRM 4 Metadata: Working with Labels

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 3 out of 5)
Loading ... Loading ...

As you know, CRM 4.0 introduced multi-language features into the product.  This means a slight change in the way we retrieve metadata related to Entity names.

The DisplayName property for an Entity has been changed slightly to ensure that you always have access to the localized version of the Entity name.  A sub-property called UserLocLabel has been added to retrieve the label for the language of the current user.

The only issue is sometimes that value does not exist ( a very rare event, but you need to code for it anyway ).

Modifying code from the CRM 4.0 SDK, I've created the following method to return either the localized label for the Entity or just the logical name, should the actual label not exist:

private string RetrieveDisplayName(EntityMetadata entity)
{
    string displayName = string.Empty;

    if (entity.DisplayName.UserLocLabel != null)
    {
        displayName = entity.DisplayName.UserLocLabel.Label.ToString();
    }
    else
    {
        displayName = entity.LogicalName.ToString();
    }

    return displayName;
}

Small issue with CRM Online Discover Service URL

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

I found a minor issue with the URL that allows you to generate WSDL for the CRM Online Discovery Service.

If you navigate to Settings, Customization, Download Web Service Description Files, you're presented with the following set of links:

image

The Discovery Web Service link is:

https://crm.dynamics.com/MSCrmServices/2007/Passport/CrmDiscoveryService.asmx

when it should be:

https://dev.crm.dynamics.com/MSCRMServices/2007/Passport/CrmDiscoveryService.asmx

A minor issue but hopefully this note will save a little confusion. Microsoft has been advised of the issue as well.

Final note: The CRM 4.0 SDK documentation clearly states the correct URL in the walk-throughs and other sample code.  It is only this one link on the actual CRM Online site that is a problem.

Items not being deleted from CRM 4.0 Queues

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5 out of 5)
Loading ... Loading ...

I ran into an issue this morning testing one of my CRM add-ons.  Basically, I was processing items from an inbound, email-enabled Queue within CRM. When the processing was completed, I delete the Queue item - but it still remained in the Queue.  You could not longer open it, and as far as CRM was concerned, it was "deleted," but it was still visible.

After digging around the Internet a bit, I found the answer to the issue, which seems to only appear if you have upgraded from CRM 3.0 to 4.0.

 

Step 1: Disable the t_update_queueitembase trigger

Using SQL Server Management Studio, open the CRM database and locate the QueueItembase table.  Expand the Triggers group.

Right-click on the t_update_queueitembase trigger and select Disable.

image

This will effectively turn off the trigger and future queue items will be removed as expected ( and the way CRM 3.0 functioned ).

Note: It does not appear that a fresh installation of CRM 4.0 has this trigger, which is probably why this procedure works.

But, that doesn't take care of existing queue records that where created and "deleted" before you disabled the trigger.  The next steps will correct that issue.

Step 2: Find semi-deleted queue records

Using SQL Server Management Studio, perform the following query on the CRM database:

select * from queueitembase
WHERE
QueueId = 'GUID for queue'
AND
DeletionStateCode = 0


 

Note: Replace GUID for queue with the GUID for the queue in question.

 

Step 3: Removing semi-deleted queue records

If any records are returned, you will need to perform the following query to clear them from the queue list:

UPDATE dbo.QueueItemBase
SET DeletionStateCode = 2
WHERE
QueueId = 'GUID for queue'
AND
DeletionStateCode = 0

 

Note: Replace GUID for queue with the GUID for the queue in question.

This will change the status to "deleted" and remove them from the queue.

Updated Quote Template for CRM 4.0

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

My friend Steve Noe has updated the standard Quote template that ships with CRM 4.0 to correct some design issues.

Check it out.