Knowledge found and lost while working with Microsoft Dynamics CRM
RSS icon Home icon
  • Viewing How Users Have Configured CRM

    Posted on October 29th, 2009 mitch Print Print No comments

    We ran into an issue last week where a user was creating an Order directly, instead of from the Opportunity, where they should have been creating it.  We traced the problem to the fact that the somehow, the user’s CRM profile had been changed and they were seeing navigation items normally hidden from them.

    Reporting on your user’s configuration

    I created the following process to review how each user had their CRM environment configured.

    I started by running the following SQL script:

    SELECT
        s.fullname,
        u.homepagearea,
        u.homepagesubarea,
        u.userprofile
    FROM
        usersettingsbase u
        INNER JOIN systemuserbase s ON u.systemuserid = s.systemuserid
    ORDER BY
        s.fullname

    Which results in a report something like this:

    image

    So what does this tell us?

    Well, the first column is the user’s name, of course.

    The second and third columns instruct CRM what to display as the user’s “Home” page when they first start CRM.  These settings are found on the General tab of the Personal Options dialog when the user selects Tools, Options:

    image

    The final column defines how the user’s Workplace will appear:

    image

    When you select one of the checkboxes in the Select Workplace Areas box, it will add that group to the user’s Workplace area.  The Preview area on the left allows the user to see how the Workplace will look after the changes have been saved.

    When you look in the database, the Profile column will contain a comma-delimited list of those groups that should be shown in the Workplace.  Here is the list:

    Display Value Internal Value
    Sales SFA
    Marketing MA
    Service CS
    Scheduling SM

     

    Changing the User’s Environment

    The only problem with knowing how the user has their CRM environment configured is there is no way to make a global change unless you write an application to do it.  If you don’t feel like writing an application, you’ll need to fix the any issues by logging into CRM as that user.

     

    Security Considerations

    If you would like to prevent your users from changing their settings, you can remove the Write right from the User Settings section in their security role:

    image

    Administration, Dynamics CRM
    1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
    Loading ... Loading ...
    391 views
  • Duplicate Checking Process Flow in CRM 4.0

    Posted on October 28th, 2009 mitch Print Print No comments

    Recently, we ran into an issue with some custom JavaScript code that we had added to an Opportunity form.

    The issue didn’t surface until with enabled duplicate checking on the Opportunity and it took a call in to Microsoft and about three days of work to track down the issue, it’s cause, and find a work around.

    That’s what you sometimes get when you add unsupported code to your solution. :)

    Anyway, I learned a lot about how the CRM 4.0 Duplicate Checking feature actually works and thought I’d share it with you today.

     

    The Duplicate Checking Process

    Believe it or not, much of the duplicate checking process doesn’t actually happen when you Save a record, it actually happens when you Load the record.  That is what cause me so much pain and anguish because.  I was looking at the OnSave event not the OnLoad event.

    Here’s how it works behind the scenes:

    1) You click one of the Save buttons on the form.

    2) If duplicate checking us turned on, and you do have a duplicate, the following exception will be generated:

    Crm Exception:

    Message: A record was not created or updated because a duplicate of the current record already exists.

    ErrorCode: –2147220685

    3) When the CRM Form is reloaded, it checks to see if the save operation generated an error with an ErrorCode of:  0×80040333.  This is the hexadecimal version of –2147220685.

    4) If that ErrorCode was indeed generated, it knows that a duplicate was detected.  Some extra JavaScript is injected into the CRM Form page load and the duplicate checking dialog is displayed.

    Note: During this process, CRM will scan the CRM Form and send any field containing data to the duplicate checking dialog. ( or so it appears )

    5) When the Duplicate dialog is displayed, you have two options: Save Record, Cancel.

    5a) Clicking Save will save the record and reload the form.

    5b) Clicking Cancel will simply dismiss the Duplicates dialog.

     

    What Got Us into Trouble

    As I mentioned earlier, we were doing some unsupported customizations on the form to provide the users with a specific experience.  This involved adding a custom control to the form via JavaScript.

    We got into trouble in Step 4, above, because CRM was:

    1. Collecting that form field
    2. Looking in the database for that field
    3. Not finding it
    4. Throwing an exception

    Unfortunately, the exception was never shown on the screen.  All you saw was the spinning progress indicator on a blank Duplicate Detection dialog – that never went away.

    We simply modified the time and place where we were creating the custom field and since it was moved out of the OnLoad event, it didn’t interfere with the Duplicate Checking.  And, since the CRM Form reloads after a save operation, the custom control was not present during the Duplicate Checking operation and caused no further issues.

    Dynamics CRM
    1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
    Loading ... Loading ...
    403 views
  • Of Naps, Things, and Stuff

    Posted on October 27th, 2009 mitch Print Print No comments

    We don’t get much in the way of Fall in this part of North Texas but Sunday afternoon here was truly excellent. 

    I was at my girlfriend Jenny’s house enjoying a beautiful day of bright sunshine and moderate temperatures. Something that can only be fully appreciated by taking a long walk in the high-country through tall trees fully-dressed in their Autumn attire.  Or a nap.

    Since we are rather short on high-country, tall trees, and autumn attire, I decided on a nap.

    And man was it good.  The windows were open, a slight breeze was flowing and afternoon sun lit up the room.  Absolutely perfect.

    Until I woke up, that is.

    This is what I heard: Rolf, Rolf, Rolf.  Yip, Yip, Yip.  Whikka, Whikka, Whikka.

    Over, and over, and over again.  Until I finally got up, having shed whatever balance bestowed to me during my nap, to check on the source of the calamity.

    Leo, Jenny’s large, white, annoying, Great Perenese was inside, not taking his nap. Instead, he was barking at the little yippy dogs of the neighbor, who evidentially keeps a pack of small annoying yippy dogs in case they run out of food and need a quick snack or something ( why else would you keep small yippy dogs? ).

    Jenny, on the other hand, was laying out the couch watching TV squeezing the new football that she got Leo to play with. The one he doesn’t like because the squeak is not right and it bothers him – generally making him behave and/or stop barking.  Which generally works, except for Sunday afternoons when I’m taking a nap and the little yippy dogs are outside enjoying the sunshine and keep calling Leo to come play the “Run up and down the fence barking” game.

    A dark, foul mood enveloped me.  A perfectly wonderful afternoon and an excellent nap were totally wasted.  Only two things can fix a wasted nap – the second of which is margaritas.

    So, leaving the barking, yipping, and squeaking at home, I bundled up the girl and off we went to our favorite cantina for some chips, salsa, and margaritas. And balance to my little corner of the universe was restored.

    The End.

    Meanderings
    1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
    Loading ... Loading ...
    75 views
  • CRM 4.0 Hotfix Rollup 7 Released

    Posted on October 22nd, 2009 mitch Print Print No comments

    Read about it on the CRM Team Blog.

    Dynamics CRM
    1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
    Loading ... Loading ...
    274 views
  • New Utility Release: Data Validation for Dynamics CRM

    Posted on October 6th, 2009 mitch Print Print No comments

    We’ve just released a new commercial add-on for Microsoft Dynamics CRM that provides a variety of data analysis and cleanup tasks including:

    • User interface validation: Analyze your entities to ensure your data entry forms are properly configured and that the custom attributes you created are actually being used.
    • Duplicate email checking (across Lead, Contact, and Account entities)
    • Locate invalid email addresses
    • Locate CRM user emails that are located in Lead, Contact, and Account entities

     

    For more information, please visit the product page.

    Dynamics CRM
    1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 4.00 out of 5)
    Loading ... Loading ...
    550 views