Microsoft CRM Configuration Files

There are two key files that we need to understand before customizing Microsoft CRM. These are:

  • Inetpubwwwrootweb.config

  • Inetpubwwwroot\_Resourcesisv.config

Both files are essentially XML files that Microsoft CRM references to determine certain application behaviors as well as to know which customizations to display.

web.config

The web.config file consists of a group of application settings that Microsoft CRM uses to determine behavior of the application. Table 14.1 lists the setting or “keys” housed in the web.config by default.

Table 14.1. web.config Application Settings
KeyOverview
Help Catalog NameThis is the name of the Index Server Catalog to use when executing queries from Help. Default Setting: Microsoft CRM Help
Aggressive Browser DetectionAttempt to detect the user's browser Service Pack Version. Currently, this only tests for IE 5.5 Service Pack SP2. This is optional because the test is done client-side and its accuracy cannot always be guaranteed. If clients are successfully running IE 5.5 SP2 or higher but are receiving error messages about their browser version, you might want to turn this feature off.

Recommended Setting: On

Values: On or Off
Error Event LoggingThis option determines whether server-side errors are written to the Web server's Event Log. Currently, the non-developer error messages in Microsoft CRM are very light (most say only an error has occurred) in terms of the information they provide. For this reason, it is a good idea to leave this setting on. Other than taking a very small amount of disk space to house errors in the event log, the benefits of having this option on far outweigh the costs.

Recommended Setting: On

Values: On or Off

Show Developer ErrorsIf a server-side error occurs, this setting determines whether Debug error messages are rendered to the user. Because of their descriptive nature, Debug error message are not recommended for production environments. However, they are extremely useful when developing or troubleshooting Microsoft CRM.

Recommended Setting: Off

Values: On or Off

Launch in App ModeDetermines whether MSCRM should be loaded in a browser window that does not have address, tool, and menu bars. Turning this feature On makes the application easier to use, as the User is presented with less options and the Application itself (not the browser) becomes the focus of their experience.

Recommended Setting: On

Values: On or Off

ISV IntegrationUsing the \_resourcesisv.config file, it is possible to add custom menus and tool bars throughout the application. This setting tells Microsoft CRM to refer to the isv.config file and display the customizations it references. This setting is provided as a performance optimization. When there are no customizations to be rendered this setting should be Off.

Recommended Setting: Off (Unless you have customized the isv.config file)

Values: On or Off

Render Quick Create ControlDetermines whether the Left Bar, Quick Create Control, is available to users. As far as we can tell, this option was added with the thought that the Quick Create control could allow users to bypass the validation of required fields. However, in version 1.0, all fields that are marked as Business Required or Business Recommended are displayed on the Quick Create screen. The only potentially valid reason for turning this setting off is that it may free up some screen space for users running with their screen resolution set to 800 x 600.

Recommended Setting: On

Values: On or Off


NOTE

It is possible to create custom keys in the web.config file if you want a place to allow administrators to change settings on your customizations. Note that the values are case-sensitive—which means, for example, that where On is a valid value for certains keys, on is not.


isv.config

The isv.config file contains information about the installed customizations and their locations in the server's filesystem. It is in this file that you will create custom entries to tell Microsoft CRM what customizations you have created, where they should be displayed within the application, and where the supporting files exist on the CRM server.

The structure of the isv.config file is

<configuration>
        <Root>
            <MenuBar>
                <CustomMenus/>
            </MenuBar>
            <Areas>
                <Home code="home" />
                <Workplace code="workplace" />
                <Sales code="sfa" />
                <Service code="cs" />
                <Reports code="reports" />
            </Areas>
        </Root>
        <Entities>
            <entityname> (i.e. the CRM objects; Accounts, Contacts, Leads, etc.)
                <MenuBar>
                    <CustomMenus/>
                </MenuBar>
                <ToolBar/>
                <NavBar/>
        </entityname>
    </Entities>
</configuration>
					

Microsoft CRM allows us to add the following components to the standard interface:

  • Custom Menus in the main UI areas (Home, Workplace, Sales, Service, Reports)

  • Custom tabs on the left navigation pain of the main UI areas

  • Custom menus on the individual CRM object screens (for example, Contacts, Accounts, and so on)

  • Custom buttons on the individual CRM object screen toolbars

  • Custom tabs on the individual CRM object screen left navigation panes

The following example XML illustrates the entire contents of an isv.config file with one of each of the customizations listed previously. In each case the custom menu option, toolbar button, or tab launches an external Web site. The address of the external Web site is written in the URL property. It is just as easy to have the the custom menu option, toolbar button, or tab point to a custom page under the Web server's wwwroot directory.

<configuration>
    <Root>
        <!-- The main Menu Bar located at the top of all root level areas -->
        <MenuBar>
            <!-- Custom Menu Bar Items that appear between the Goto Menu and the Help Menu -->
            <CustomMenus>
                <Menu Title="Custom Menu">
                    <MenuItem Title="Custom New Window" Url="http://www.msn.com"/>
                    <MenuSpacer/>
                    <SubMenu Title="Custom Sub Menu">
                        <MenuItem Title="Modeless Dialog" Url="http://www.msn.com"
 WinMode="2"/>
                        <MenuSpacer/>
                        <MenuItem Title="Modal Dialog" Url="http://investor.msn.com"
 WinMode="1"/>
                    </SubMenu>
                </Menu>
            </CustomMenus>

        </MenuBar>
        <!-- The left areas for each section in the application -->
        <Areas>
            <Home code="home">
                <NavBarItem Icon="/_imgs/ico_18_debug.gif" Title="Custom Tab" Url="http:/
/www.msn.com"
Id="navIsv1"/>
            </Home>
            <Workplace code="workplace"/>
            <Sales code="sfa"/>
            <Service code="cs"/>
            <Reports code="reports"/>
        </Areas>
    </Root>
    <!-- Microsoft Customer Relationship Management Entities (Objects) -->
    <Entities>
        <account>
            <MenuBar>
                <!-- Custom Menus that you may add -->
                <CustomMenus>
                    <Menu Title="Custom Account Menu" ValidForCreate="0" ValidForUpdate="1">
                        <MenuItem Title="Coming Soon..." Url="http://www.msn.com"
 PassParams="0" WinMode="1"/>
                        <MenuSpacer/>
                        <SubMenu Title="Custom Account Sub Menu">
                            <MenuItem Title="Custom Account Sub Menu" Url="http://www.msn.com"
PassParams="1"/>
                        </SubMenu>
                    </Menu>
                </CustomMenus>
            </MenuBar>
            <!-- The Account Tool Bar -->
            <ToolBar ValidForCreate="0" ValidForUpdate="1">
                <Button Title="Custom Account Button" ToolTip="Info on Test" Icon="/_imgs
/ico_18_debug.gif"
Url="http://www.msn.com" PassParams="1" WinParams="" WinMode="0"/>
                <ToolBarSpacer/>
                <Button Title="Custom Account Button 2" ToolTip="Custom Button Tool Tip"
Icon="/_imgs/ico_18_debug.gif" Url="http://investor.msn.com" PassParams="1" WinParams=""
 WinMode="1"/>
            </ToolBar>
            <!-- The Account Left Nav Bar -->
            <NavBar ValidForCreate="0" ValidForUpdate="1">
                <NavBarItem Icon="/_imgs/ico_18_debug.gif" Title="Account Tab" Url="http:/
/www.msn.com"
Id="navItem"/>
            </NavBar>
        </account>
        <contact/>
        <lead/>
        <opportunity/>
        <incident/> <!-- Case -->
        <quote/>
        <salesorder/> <!-- Order -->
        <invoice/>
    </Entities>
</configuration>

Let's take a look at the elements in the isv.config XML file, which are shown in Table 14.2:

Table 14.2. isv.config File Elements
ElementDescription
TitleIncluded in several of the custom entries, this is the caption the user sees when viewing a custom menu, menu option, tab, or button
URLThis is the location of the start page to be called by the customization. It can be any valid URL.
WinModeUsed only with menu options because these options launch new windows. WinMode determines whether the new window will be modal or modeless. If the window is modal, the user will not be able to click or select anything in any other window until he or she closes the modal window. Dialog boxes and messages are usually modal. Modeless windows allow the user to interact with other windows while the modeless window is open.

0— Open a regular browser window with all menus, buttons, etc., accessible

1— Modal Dialog

2— Modeless Dialog

PassParamsThis flag tells the CRM platform whether to pass the record's unique identifier and also the entity type (for example “1” for account, “2” for lead, “3” for opportunity, and so on) to the custom page.

0— Do not pass the record's unique identifier and entity type

1— Pass the record's unique identifier and entity type

ValidForCreateThis flag tells the CRM platform whether the custom button should appear on the toolbar when creating a new record

0— do not display button on the object's create screen

1— display the button on the object's create screen

ValidForUpdateThis flag tells the CRM platform whether the custom button should appear on the toolbar when editing an existing record

0— do not display the button on the object's edit screen

1— display the button on the object's edit screen

IdUnique identifier for the custom menu item or button
IconThe URL for the icon to be displayed with this option
WinParamsThis parameter indicates how the customization window should be displayed. For example, the width and/or height of the window can be specified. For more details on this parameter, consult the Features section of the Web page found at http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/open_0.asp

Now that we know more or less what we can do with customization, let's dive right in and go through some real-life Microsoft CRM customization examples.

Because the possibilities of Microsoft CRM customization are literally endless, we've compiled several examples to provide ideas of what can be done and how to do it.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.15.27.30