Friday, January 16, 2009

MSCRM 4.0 and Internet Explorer 8

I've always been a fan of tabbed browsing, so I was very excited about the release of IE7. When IE8 came out I felt that there were enough features that it was worth trying out the beta on my XP machine. I was interested to see the related tabs feature, saving a session seemed like a neat idea (I'd seen it done on Firefox so I wanted to see how it compared), an embedded find control (finally!), and it boasted faster load times, just to name a few. Needless to say I took the plunge and I've been using it for about 2 months now and I'd say that I've put it through it's paces pretty well.

Of course, being the HUGE CRM nerd that I am, the first web page I brought up was our internal CRM just to see how it handled it. Why I expect it to look different or cooler or something like that I'll never know, but needless to say, I didn't see anything like that. We had just recently upgraded our CRM server to a screaming 64bit server and I had just gotten over the speed improvement from that when IE8 loaded my CRM in record time. I was amazed at how much faster IE8 was loading my CRM pages. I would say it was cutting out a full 1 to 2 seconds on most pages. It was awesome.

Overall I've like my experience with CRM in IE8. However, I do have one major complaint. Every so often, IE8 won't open a certain record that I've been opening and closing consistently. For instance, I work on numerous projects so I spend time looking at each project to make sure everything is ok and there aren't budget or hour problems. However, after I look through a few I would double click on a project watch the frame open and then immediately disappear. My first thought was that some pop-up blocker got it...but wait, I've been opening this page for the last 15 minutes without problem? What's the deal? I've turned off pop-up blockers, set up CRM in every trusted site location I knew of, etc and that did make it better. But the problem still continues on my PC. The only sure fire way for me to get rid of the problem is to completely close IE8 and start CRM back up again. Good thing my CRM is fast or else I'd waste probably 5-10 minutes each time this happened due to the number of CRM windows I'll have open when I'm reviewing my projects, or working on a client's system.

While that is a pretty big gripe I do have to realize that it is beta and that it shouldn't be an issue with the full version. I'm excited about the new release and excited to see the good things coming out about Windows 7 and IE8 together. Hopefully there will be more to come in terms of enhancing productivity through their use together. I'll have to fiddle with it myself, but if anyone has played with the new things coming out and their use with MSCRM, let me know, I'd love to hear your thoughts.

David Fronk
Dynamic Methods Inc.

Friday, January 09, 2009

Keyboard Shortcuts in MSCRM

I'm all about using CRM more efficiently and if I can limit my time going from mouse to keyboard I'm much happier. Here are some keyboard shortcuts that I found to be really useful:

From any CRM Form you may use:
Save - CTRL + S
Save and Close - ALT + S
Save and New - CTRL + SHIFT + S
Delete the record - CTRL + D
Close - ESC or ALT + F4
Expand or Collapse Form Assistant - CTRL + SHIFT + F
Move to next field - TAB
Move to previous field - SHIFT + TAB
Trigger lookup field to autofill (only in CRM 4.0) - CTRL + K
This is where you would type part of the word in the lookup field and instead of tabbing out of the field you can use CTRL + K to trigger the search to run and autofill the field.

All regular Windows shortcuts, such as:
Copy - CTRL + C
Cut - CTRL + X
Paste - CTRL + V
Select All - CTRL + A

You can search the MSCRM Help file for "Keyboard Shortcuts" and you can then find some more.

David Fronk
Dynamic Methods Inc.

Friday, December 19, 2008

Useful Out-of-the-Box SQL Functions for MSCRM

There are some very useful SQL functions that are built into the MSCRM database that are available to be used in the select queries to write reports, pull data into Excel, or just to check the data in your database. Some of the more notable functions, at least from what I think, are the following:

1. F_START_OF_WEEK (gets the first day of a week, and you can specify which day you want to be the start of your week, Monday, Tuesday, etc)
2. fn_LastXMonth (this is what Advanced Find uses, this is fairly easy to replicate with SQL but it gets even easier if there is a function to be used)
3. fn_FindUserGuid (this gets the logged in user's GUID, this is how Advanced Find figures out "Equals Current User")
4. fn_GetMaxUserPrivilege (tells you whether a user has sufficient rights to a specific privilege,)
5. fn_RptBracket (puts numbers in groups, for instance fn_RptBracket(75, 50) would return 50 - 99 . This translates to placing the number 75 into numbers 1-49, 50-99, 100-149, etc. Basically the first number is the number you want to group and the second is the interval at which you want your groupings. Play with it a bit to see how it works. It could be very useful for reporting)

To find all of the functions open up SQL Management Studio and expand the MSCRM database, then expand "Programmability", expand "Functions", and finally, expand "Scalar-valued Functions" to see the full list. Right click a function and choose "Script Function As", "Create To", "New Query Editor Window" to look at the code behind the function.

Some very cool things to find and use, hopefully this makes some report queries much more simple and other data check queries easier to write.

David Fronk
Dynamic Methods Inc.

Friday, December 12, 2008

Reassociating MSCRM Users with Active Directory Users

Back in the version 1.0 and 1.2 days fixing CRM user associations was a huge pain. Users would get deleted from Active Directory or CRM users would need to be reassociated with a different user in Active Directory. These tasks were either impossible to perform or nearly impossible to recover from. In these instances, MS Support had to get involved to reassociate records owned by that user through the back end with some of their utilities.

When version 3.0 came out finally users had the ability to use Deployment Manager to reassociate CRM users to Active Directory users. This helped a lot.

In version 4.0 the ability to reassociate CRM users with Active Directory users through Deployment Manager has gone away. When I discovered this I was very upset because I support numerous companies and inevitably, between all my clients, I will get a handful of these type of issues a year. So, having that utility was a reasonably big deal to me. After some poking around I found that reassociating users in MSCRM 4.0 is actually even easier than it was in 3.0. Since I was expecting some special command or utility I never even noticed it.

If you open up a user's card in CRM in all other versions the Username field has been locked down as soon as you save the record. In 4.0 this is not the case. All you have to do to reassociate the user record with a different Active Directory record is change the username. The autopopulate of the fields still occurs and everything gets reassociated.

Now you're ready to rock and roll and keep all of your users between MSCRM and Active Directory in sync.

David Fronk
Dynamic Methods Inc.

Friday, December 05, 2008

MSCRM 4.0 Rollup 1 is now available

This rollup fixes over some 80 issues with the server, client and email router (each a separate download and install). We've applied this in-house and had no issues as of yet, just improvement. To download click below:

http://www.microsoft.com/downloads/details.aspx?FamilyID=57c6267b-3b13-49dd-bfed-3cc83633aea7&displaylang=en

Also, please note that not all recent hotfixes made it into this rollup. I am aware of at least 2, a hotfix for the deletion service and one for issues with the Word Mail Merge connector. But each of those hotfixes are over 100MB.

I'm a fan of rollup 1 so far but if you're applying to fix specific issues just make sure that the appropriate hotfix is included so that you do actually fix the issue you are having.

David Fronk
Dynamic Methods Inc.

Friday, November 21, 2008

Disabling all fields on a form...dynamically

There have been a number of times where I have had clients request that when certain fields are set one way or another they would actually like to disable the entire form. Or they want to disable the entire form except for a status field, or something like that. For some clients this was a HUGE pain in the neck because every field would have to be done manually. And whenever a new field was added if the script wasn't updated then that new field would be updateable while everything else would stay locked down.

Well, I found this code posted by Michael Höhne from Stunnware and it was exactly what I've been trying to do.


for (var index in crmForm.all) {
var control = crmForm.all[index];
if (control.req && (control.Disabled != null)) {
control.Disabled = true;
}
}

That will disable them all. Pretty sweet. Then if they want to leave a status field or something enabled just manually enable them afterwards:

crmForm.all.new_status.Disabled = true;

And you're all set.

David Fronk
Dynamic Methods Inc.

Saturday, November 15, 2008

Sending Multiple Emails with Attachments

I've received multiple requests on how to add attachments to "canned" emails that you send out. Typically this is requested for the Quick Campaign. While you cannot add an attachment to Quick Campaign emails there is another way to accomplish our goal.

Workflow gives you the ability to send emails and it also allows you to send emails with attachments out of CRM. In workflow you can choose as a step the "Send Email" option and the "Set Properties". You'll see the "Attachment" tab and you can add multiple attachments to the email. Set the workflow to be triggered "On Demand" and you can then send out your emails with their attachments where you like. It is unfortunately only 250 at a time but that's better than none.

David Fronk
Dynamic Methods Inc.