Recent twitter entries...

  •  

Using and Installing Mobile Express for Microsoft Dynamics 4.0

Posted by AnonymousDeveloper | Posted in CRM Configuring, CRM General, CRM General Resources | Posted on 15-07-2009

0

Before you start, you should have a complete installation of CRM4.0 on a server. In this demonstration, the server is running Server 2003 and SQL 2005. An existing installation of CRM is being used as the test environment.

Introduction

Mobile Express for Microsoft Dynamics CRM 4.0 has finally been released by Microsoft. The intention is to provide a mobile solution for accessing a company CRM from any device regardless of platform. Mobile Express doesn’t just work on Microsoft platforms, but also Apple ones. All you need is a browser and the component to be installed on the server. However, during this investigation of the component, it has become apparent that there are a few more steps in between. In theory, installation of the mobile client should be relatively quick, but there are several configuration considerations.

1) The installation of CRM needs to be IFD (internet facing) which can be a difficult process to achieve especially when you consider that IFD requires the use of SSL and HTTPS to make it entirely secure.

2) The installation of the component automatically installs Update Rollup 5 on the server which cannot be avoided or reversed. Up until now, customers have been advised not to install Rollups unless they address a specific issue that the customer is experiencing. Unfortunately, Microsoft have given no choice in the matter and Update Rollup 5 is a pre-requisit of the installation procedure.

3) I have found no way of removing the component from a server. The component does not appear in the Add/Remove programs or anywhere else. So, this is a one way procedure. Once Mobile Express has been installed on the server, it cannot be reversed. The only option I have found so far is to physically hide the link to the configuration pages in SiteMap. Whilst this doesn’t remove the component, it does at least remove it from view.

With all that in mind, I have been asked to investigate the viability of the Mobile Express component with a view to offering it commercially to customers in the near future. Here is a step by step tutorial on how to install it.

Step By Step

For the purposes of demonstration, I am installing this in a VPC image. The VPC is a standard installation of CRM4 with configuration options that will common to most installations. In other words, I have tried to make the VPC as ‘vanilla’ as possible to avoid conflicts.

1) Download the component from the following URL (http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=f592ec6c-f412-4fd5-9a80-cd3bcbd26d8b#tm)

2) Move the 13mb file you have just downloaded onto the VPC image. It doesn’t matter where you put this, the desktop is fine.

3) Double click the file and run the installation process. Once it has been completed, you will be asked to reboot the server so advanced warning for the customer might be useful.

Walk through the wizard and reboot the server

image

image

image

5) Now the component has been installed, you can customise it. By default, only those fields that are ‘required’ by CRM will be shown in the Mobile Express Client, but generally, you would require many more fields to be shown. Navigate to the ‘Customise Mobile Express’ screen under the ‘Customisation’ menu in CRM.

image

6) Choose which entities will be visible to users of the Mobile Express client

image

7) Double click on each entity to view the attributes that will be available to users of the Mobile Express client

image

8) Notice that only ‘Business Required’ attributes are shown. Add as many more as you like

image

9) Publish the newly defined selected entities from the main screen

image

That’s it. You have successfully configured the Mobile Express Client . However, the users wont be able to access the server to view this information without a few additional set up steps. We need to make the installation IFD or Internet Facing. This procedure usually involves the setting up of SSL and server certificates, as well as the configuration of the CRM, but for the purposes of this demonstration, I am going to access the server via WiFi on my mobile device from within the network.

IFD Deployment

Usually, the company who is setting up the CRM knows in advance that the installation needs to be IFD, but sometimes, you need to do this after the fact. In order to manage this, you can download the IFDTool from here (http://support.microsoft.com/kb/948779)

1) Download the zip file from the link above

2) Copy the zip to the VPC (or the server that is r unning CRM)

3) Extract the contents of the zip file to the following destination : drive:\Program Files\Microsoft Dynamics CRM\Tools

image

4) Double click the CRM4IFDTool.exe

5) Make the ‘Authentication Strategy’ box display IFD+OnPremise

ref="http://wookiecrm.typepad.com/.a/6a00e5522eea818834011571137464970c-pi">image

6) Complete the IFD Internal Network Address and Subnet Mask boxes

image

7) Click the ‘Add Button’

image

8) Complete the AD and IFD Domain Scheme values

image

9) Apply changes

image

10) Finally, ensure that the users who have access to the mobile client have the appropriate ‘Go Mobile’ security privilege.

image

Accessing the Mobile Express client from your phone

Once the IFD deployment has been completed, you will be able to use your usual internet client on your phone to access the CRM.

1) Open up your browser and enter a URL similar to the one below

http://192.168.100.50:5555/<YourOrganisationName>/m

Note that the above URL uses the IP address of your CRM server and the Organisation Name of the installation, not the Friendly name. For the curious, you can find some of the installation files for this component under the directory called ‘m’ in the CRMWeb site.

2) If you IFD installation is correct, you will be presented with a login screen, complete the details as you would normally

image

3) If your login was successful, you will see a list of available entities

image

I have tried this on various browsers and so far I have established that only Safari and IE seem to be sophisticated enough to handle this application. My Iphone has a lightweight browser that I use often and this just isn’t good enough. Another obvious point to note is that if you have any Javascript customisations, these will not be executed by the Mobile Express client.

This can present something of a problem if you have a heavily customised installation where data integrity is governed by Javascript in the OnLoad and OnSave events. Unfortunately, the mobile client doesn’t seem to understand the concept of read-only fields so any field that is read-only in full client, will be open to edits on the mobile client. This could cause issues with data integrity.

Another major draw back of the mobile client is the lack of support for Lookup fields. Most entities have related entity fields and unless you know the exact value that should go into this field, the Mobile Express client will throw an error if you enter a value that it cannot resolve.

image

The good news is that plugins are executed as normal. In this installation, I have a plugin that assigns the value of a particular field on Create of the Opportunity. The field that is usually read-only and is populated by the plugin is of course, open for editing in the mobile client, but even though I enter some rubbish that could cause a breach of data integrity, the plugin fires when the Opportunity is posted to the server and the spurious value is overridden.

Further things to note should be :

1) Not all entities are available to the Mobile Express client. Although you can add all the entities in the list, only the ones in Bold Black font will actually be viewable on your phone. So, competitors, Addresses, Contract Lines, Discounts, Campaign Activities etc are not available.

2) Likewise, not all related entities are available even to the entities that are included. So, Competitors from Opportunities are not shown. In fact, even though I have added all available entities to the installation, only those shown below are actually available to an Opportunity.

image

3) You can write notes, they are actually available to the entity as long as you include the Note entity.

image

4) Views are also available but unfortunately, you only get the first two columns. In the Iphone this is handled slightly better by the interface as you get a jog wheel to choose the drop down

image

image

5) Picklists are also handled in a similar fa
shion

image

6) You can also view user information but not edit it

image

Conclusion

After spending a couple of hours with the Mobile Express client, I have to conclude that it is very limited in it’s application. Although the ability to add records to each entity is available, it would be highly inadvisable if data integrity is of any interest to the customer. The opportunity for corrupting or entering spurious information is just too great. The only way to limit access is by using the native security roles of the user, but this presents it’s own problems. You do not have a choice of levels of access based on client, so it is not possible to restrict access from Mobile Express whilst allowing access from OnPremise. The only way to achieve this is to have two security roles for each person or a system where ‘outdoor sales people’ download the accumulated information from the day and people with appropriate security roles upload the information. Both options cause more cost than would be necessary if Microsoft were to add another level of security which identified the client as well as the user.

If we exclude the ability to add new records to the database for reasons of data integrity, then we are left with only the ability to view existing information. While this is undoubtedly useful, there are other more efficient ways to accomplish most of what is required in most cases. For instance, contact information, addresses, phone numbers are far more efficiently handled by Outlook and if the mobile client is synced with Exchange and using Push, then all this information is already to hand for the user rather than having to access it using the mobile client. In a real world situation, it is most likely that the mobile client would be used by Outdoor sales people so the lack of a Google maps integration is disappointing to say the least.

Unfortunately, there is another major limitation. As many users would perhaps be engineers etc, the inability to review service activities is an issue. The user can read them, but not write to them, presumably because of the multiple lookups and complexity of the scheduling engine. Inexplicably, Competitors are omitted from the list of available entities as are additional addresses. Likewise, History views are not available along with accompanying activities so there is no way to see what has been done on a case for instance. Most scarily of all, it is entirely possible to delete accounts from the CRM using the mobile client! The lack of customisation for the grid is terrible. I know that phone screens are very narrow, but the ability to scroll left or right is an absolute must. By limiting the user to only the first 2 columns in the grid, a whole plethora of problems could arise if the data is not rigourously controlled and there are multiple entries with the same information in those two columns.

I hope you’ve enjoyed this walk through.

Installation and Configuration Problems with Outlook Client

Posted by AnonymousDeveloper | Posted in CRM Configuring, CRM General, CRM General Resources, CRM Installing | Posted on 08-12-2008

0

Here is the first of four planned articles on the Outlook Client and Email in general within CRM. I have focused on known issues as well as the odd few that I have personally come across. This article is a compilation of various sources of information as well as personal experience. Many thanks to those who contributed if only passively.

Obligatory Disclaimer

To the best of my knowledge this information is correct, but the author takes no responsibility if you follow any of this advice and subsequently, your installation fails to work. Proceed at your own risk

Overview

Microsoft Dynamics CRM for Microsoft Office Outlook enables access to the same data through Outlook as the Microsoft Dynamics CRM Web client. Microsoft Dynamics CRM for Outlook is targeted at Microsoft Dynamics CRM users who need access to CRM data while using the familiar Outlook application. There are two user interfaces:

· Microsoft Dynamics CRM for Outlook. Install this on workstations (including computers shared by several users) that have a permanent connection to the local area network (LAN) or the Internet, but that are not used for travel. If a computer is being shared by several users (that is, each user has a separate log on account and is a valid Microsoft Dynamics CRM user), Microsoft Dynamics CRM for Outlook must be configured, by running Microsoft Dynamics CRM for Outlook Setup, for each user.

· Microsoft Dynamics CRM for Outlook with Offline Access. Install this on computers for users who travel, or are not always connected to the LAN. With Microsoft Dynamics CRM for Outlook with Offline Access, those users who require offline support, while they work in the field, will have access to their customer data.

Microsoft Dynamics CRM for Outlook can be used to perform the following tasks:

· Deliver received e-mail messages to Microsoft Dynamics CRM.

· Send e-mail messages generated from Microsoft Dynamics CRM.

Microsoft Dynamics CRM for Outlook no longer requires E-mail Router to process Microsoft Dynamics CRM e-mail messages.

Important If Microsoft Dynamics CRM for Outlook with Offline Access is installed on a computer, Microsoft Dynamics CRM for Outlook cannot also be installed and used on the same computer.

Installation

There are three steps that you must complete before you can run Microsoft Dynamics CRM for Outlook. The steps are as follows:

1. Install Microsoft Dynamics CRM for Outlook. To complete this step, run SetupClient.exe in the Client folder on the installation media.

2. Configure Microsoft Dynamics CRM for Outlook. To complete this, run the Configuration Wizard.

3. Configure User E-mail Settings. To complete this step, you configure the incoming and outgoing options on the User form in the Microsoft Dynamics CRM Web application. By default, Microsoft Dynamics CRM for Outlook is selected for both incoming and outgoing e-mail messages. In addition, you should verify the tracking options. By default, only e-mail messages in response to a Microsoft Dynamics CRM generated e-mail message are tracked.

Use the following procedures in this section to install Microsoft Dynamics CRM for Outlook.

1. Meet all Microsoft Dynamics CRM for Outlook requirements in the System Requirements chapter of the Installation Guide and make sure all Microsoft Office security hot fixes are installed.

2. Log on to the computer as a user who has Local Administrator privileges.

3. Double-click SetupClient.exe, which is located with the installation files in the following folder:

<Drive:>\Client\

4. Either click Install Microsoft Dynamics CRM for Outlook (Recommended) or click Install Microsoft Dynamics CRM for Outlook with Offline Access (Advanced).

5. On the License Agreement page, review the information and, if you accept the license agreement, select I accept this license agreement, and then click I Accept.

6. If Setup detects that components are missing, the Install Required Components page appears.

If you have already installed the required components listed, this page will not appear.

If you have not installed the required components listed, you can install them now. Click Install. When the components are installed, the status column will change from Missing to Installed, and you can click Next to continue.

7. The Select Installation Location page appears only when you install Microsoft Dynamics CRM for Outlook with Offline Access. On this page, select the file installation location. Click Next.

8. The System Requirements page appears. This page is a summary of all system requirements for a successful Microsoft Dynamics CRM for Outlook installation. Failed checks must be corrected before installation can continue to the next step. If there is a problem that will take time to correct, cancel Setup at this point, fix the problem, and restart Setup. When all checks are successful and you are ready to install, click Install.

9. On the Microsoft Dynamics CRM for Outlook Setup Completion page, click Close.

10. Run the Configuration Wizard.

After you complete Microsoft Dynamics CRM for Outlook Setup, run the Configuration Wizard to complete the installation. The Configuration Wizard configures client settings, such as the location of the Microsoft Dynamics CRM server. To start the Configuration Wizard, click Start, point to All Programs, point to Microsoft Dynamics CRM, and then click Configuration Wizard.

Follow these steps to configure Microsoft Dynamics CRM for Outlook.

1. On the Welcome page, click Next.

2. On the Select where you want to sign in to Microsoft Dynamics CRM page, select one of the following options, and then click Next.

· My company. Select this option if you will connect to a Microsoft Dynamics CRM server at your company by using the Internet.

· An online service provider. Select this option if you will connect to Microsoft only through the Internet.

3. On the Specify the Web addresses to use to connect to the Microsoft Dynamics CRM server page, type the URL for the server in the Intranet address box. In addition, if you connect to your company or partner-hosted site over the Internet, you can clear Use the same Web address when the system connects over the Internet and type the URL in the External Web address box. You must do this if you use a different URL to connect to your Microsoft Dynamics CRM server through the Internet. Click Next.

Important If you have server roles installed on separate computers, you must specify the Web address of the computer where the Discovery Service server role is installed.

4. On the Select Organization page, select the organization that you want to connect to in the list, and then click Next.

5. On the Help Us Improve the Customer Experience page, select whether you want to participate in the Customer Experience Improvement Program, and then click Next.

6. The System Requirements page appears. This is a summary of all system requirements for a successful Microsoft Dynamics CRM for Outlook installation. Failed checks must be corrected before configuration can continue. If a problem will take time to correct, cancel the Configuration Wizard at this point, fix the problem and restart the Configuration Wizard. All errors must be resolved. If no errors occur, or if only warnings appear, you can continue with the configuration. To do this, click Next.

7. On the Configuration Complete page, click Finish. If there was a problem that occurred during the installation, click View the log file to review the log file for information about the configuration.

User and Queue E-Mail Configuration

The
e-mail messaging incoming and outgoing options can be set differently for each user or queue. These incoming and outgoing options are configured on the User form. To open a user form, in the Navigation Pane, click Settings. Under Settings, click Administration. Then, in the Administration area click Users, and then double-click the user that you want.

Note By default, Microsoft Dynamics CRM sets both the incoming e-mail server type and the outgoing e-mail server type to Microsoft Dynamics CRM for Outlook. For more information about these types, see the following section.

The incoming e-mail configurations that can be used when a user or a queue receives Microsoft Dynamics CRM e-mail messages are as follows:

· None. Use this option for users or queues that do not use Microsoft Dynamics CRM to send e-mail messages.

· Microsoft Dynamics CRM for Outlook. This option requires that Outlook be installed on the user’s computer. This option does not require the E-mail Router component. However, to process Microsoft Dynamics CRM e-mail messages, Outlook must be running. .

· Forward Mailbox. To use this option, you must install the E-mail Router. This option requires a “sink” mailbox, which must be created by the administrator. The E-mail Router processes e-mail messages that are forwarded to this mailbox. Although this option does not require users to run Outlook, it does require that a server-side rule be deployed for the user. If you are using Exchange Server to process incoming e-mail messages, you can deploy the rule by using the Rule Deployment Wizard.

· E-mail Router. This option delivers Microsoft Dynamics CRM e-mail messages directly to Microsoft Dynamics CRM, without the need of a forward mailbox. The e-mail system that is used to process messages can be Microsoft Exchange Server 2003, Exchange Server 2007, or a POP3-compliant server.

Note that incoming and outgoing options are essentially the same but the Forward mailbox is not available for the outgoing mail configuration.

Troubleshooting Installation and Upgrade

This section describes how to troubleshoot installation and known issues.

Setup creates log files that can be reviewed and used for troubleshooting. By default, the location of the log files, where User is the account of the user who ran Setup, is as follows:

· Windows XP: <systemdrive>:\Documents and Settings\<User>\Application Data\Microsoft\MSCRM\Logs\

· Windows Vista: <systemdrive>:\Users\<User>\AppData\Roaming\Microsoft\MSCRM\Logs\



Known Issues

Error message when you try to install, upgrade or configure a Microsoft Dynamics CRM client for Outlook computer (KB948312)

When you try to install or upgrade a Microsoft Dynamics CRM client for Microsoft Office Outlook computer, you receive the following error message:

Action Microsoft.Crm.Config.Client.InstallAbpAction failed.
Access is denied. (Exception from HRESULT: 0×80070005 (E_ACCESSDENIED))

This problem may occur if the Microsoft Dynamics CRM data file was not completely removed, and if the Microsoft Dynamics CRM address book provider (ABP) contacts were not completely removed.

Resolution

To resolve this problem, use one of the following methods, and then try to install or upgrade a Microsoft Dynamics CRM client for Outlook computer.

Method 1: If you have Microsoft Office Outlook 2007 installed

1. Start Outlook 2007.

2. On the Tools menu, click Account Settings.

3. Click the Data Files tab.

4. Click Microsoft CRM, and then click Remove.

5. Click the Address Books tab.

6. Click Microsoft CRM Address Book, and then click Remove.

7. Exit Outlook 2007.

Method 2: If you have Microsoft Office Outlook 2003 installed

1. Exit Outlook 2003.

2. Click Start, click Control Panel, click User Accounts, and then click Mail.

3. In the Mail Setup dialog box, click Data Files.

4. Click Microsoft CRM, click Remove, and then click Close.

5. In the Mail Setup dialog box, click E-mail Accounts.

6. Click View or change existing directories or address books, and then click Next.

7. Click Microsoft CRM Address Book, and then click Remove.

8. Click Close to close the Mail Setup dialog box.

Resolution 2

Follow these steps:

1. Start Outlook.

2. On the Tools menu, click Options.

3. On the Mail Setup tab, click Email Accounts.

4. On the Data Files tab, select Microsoft CRM- Not Available, and then click Remove.

E-mail messages are not sent from Outlook Web Access, from Outlook Mobile Access, or from Outlook Rules after you open the Microsoft Dynamics CRM 4.0 client for Outlook (KB950088)

You open the Microsoft Dynamics CRM 4.0 client for Microsoft Office Outlook. If Outlook does not use the cached Exchange mode, e-mail messages are not sent from Outlook Web Access (OWA), from Outlook Mobile Access (OMA), or from Outlook Rules.

This problem is fixed in Microsoft Dynamics CRM 4.0 Update Rollup 1.

952858 (http://support.microsoft.com/kb/952858/ ) Update Rollup 1 is available for Microsoft Dynamics CRM 4.0

The Microsoft Dynamics CRM menu still exists on the Outlook menu bar after you uninstall the Microsoft Dynamics CRM 3.0 client for Outlook (KB949087)

Symptom 1
After you uninstall the Microsoft Dynamics CRM 3.0 client for Microsoft Office Outlook, the Microsoft Dynamics CRM 3.0 menu still exists on the Outlook menu bar.
Or, after you uninstall the Microsoft Dynamics CRM 3.0 client for Outlook, and you try to install the Microsoft Dynamics CRM 4.0 client for Outlook, the Microsoft Dynamics CRM 4.0 client installation tries to perform an upgrade.
Symptom 2
When you open the Microsoft Dynamics CRM 4.0 client for Outlook, you receive the following error message:

An error occurred loading Microsoft Dynamics CRM functionality. Try restarting Microsoft Outlook. Contact your system administrator if error persists.

If you click OK in the error message, the CRM toolbar is listed two times in the Outlook menu bar.

This problem occurs because the Microsoft Dynamics CRM 3.0 client is not completely uninstalled.

To resolve this problem, follow these steps (remember to backup the registry first):

1. Close Outlook. In Task Manager, verify that the Outlook.exe process and the Microsoft.crm.application.hoster.exe process are not running.

2. In Add or Remove Programs, uninstall the Microsoft Dynamics CRM 4.0 client for Outlook, or uninstall the Microsoft Dynamics CRM 3.0 client for Outlook.

3. If the following directories exist on the client computer, delete the directories:

o drive:\Program Files\Microsoft Dynamics CRM directory

o drive: \Program Files\Microsoft CRM

4. Click Start, click Run, type regedit, and then click OK.

5. Open the following registry key:

HKEY_Current_User\SOFTWARE\Microsoft

6. Delete the MSCRMClient hive if it exists.

7. In Control Panel, double-click Mail, and then click E-mail Accounts.

8. Click the Address Books tab,
select the Microsoft Dynamics CRM address book, and then click Remove.

9. Click the Data Files tab, select the Microsoft Dynamics CRM data file if it exists, and then click Remove.

10. Click Start, click Run, type regedit, and then click OK.

11. Open the following registry key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates

12. Delete the Microsoft Dynamics CRM 3.0 registry hive if it exists.

13. Rename the Outcmd.dat file to Outcmd.dat.old.
Note By default, the Outcmd.dat file is in the following folder:

C:\Document and Settings\User\Application Data\Microsoft\Outlook

Note Outlook re-creates the Outcmd.dat file. However, all the custom menus that you created on the Outlook menu bar are removed.

14. Verify the Microsoft Dynamics CRM Outlook addin is removed. To do this, follow these steps:

1. For Outlook 2003

a. Open Outlook, click Tools, click Options, click the Other tab, click Advanced, and then click COM Addins.

b. Select Microsoft Dynamics CRM, click Remove, then click OK.

c. Click Tools, and then click Customize.

d. Select Microsoft Dynamics CRM, and then click Delete.

e. Click Reset, and then click Close.

f. Close Outlook.

g. Click Start, click All Programs, click Microsoft Dynamics CRM 4.0, and then click Diagnostics.

h. Click Run Diagnostics.

i. Open Outlook.

For Outlook 2007

j. Open Outlook, click Tools, click Trust Centre, click Add-ins, and then click Go.

k. Select Microsoft Dynamics CRM, click Remove, and then click OK.

l. Click Tools, and then click Customize.

m. Select Microsoft Dynamics CRM, and then click Delete.

n. Click Reset, and then click Close.

o. Close Outlook.

p. Click Start, click All Programs, click Microsoft Dynamics CRM 4.0, and then click Diagnostics.

q. Open Outlook.

In addition to these 3 known problems, a number of other issues have been brought to light over the last few months.

The Outlook Client has not installed correctly and you are unable to remove this from the Add/Remove Programs dialogue box or re-install the client over the top of the existing installation.

You have installed the Outlook client but it has not installed correctly. You have attempted to de-install using the Add/Remove programs dialogue but this has failed and another install has not fixed the issue.

· Download the Windows Installer Cleanup Utility and remove the Outlook Client completely from the target computer.

· Download Windows Installer Cleanup Utility

Missing Folders in the Outlook Client

After the Outlook Client has been installed, the user can only see ‘Deleted Items’ and ‘Search Folders’ under ‘Microsoft CRM’ in the folder pane. In addition, the user can access the CRM through the webclient and all other configuration settings are correct.

Resolution

1) Right click ‘Microsoft CRM’

2) Select ‘Properties’

3) Select ‘Home Page’

4) Ensure the URL is correct and present. It should resemble the following example : http://<server>/_root/stage.aspx?url=SiteMapNavPage.aspx&id=root

5) Restart the Outlook Client

Outlook Freezes and Context Menus do not work as expected

General errors and issues like this are often the result of a corrupted or missing patch. Complete the following as a matter of course.

1) Download and re-install MSXML4.0 SP2 (Download MSXML4.0 SP2)

The Microsoft CRM Toolbar at the top of the Outlook Client is greyed out

From time to time, users may experience the phenomenon of the Microsoft CRM toolbar being ‘greyed out’ and therefore unusable. This is most often the result of the user disconnecting from the network and then re-connecting again. The Outlook Client does not always detect the reconnection and therefore does not re-initialise the interface. Try one of the following :

1) Attempt to reconfigure the Client

2) Close Outlook

3) Click Start

4) Click All Programs

5) Microsoft CRM 4.0 Configuration Wizard

6) Reboot and restart Outlook

Alternatively, a refresh of the plugin is necessary. To complete this procedure, do the following :

1) In Outlook 2007, click settings,

2) Click Trust Center

3) Click Addins

4) Click the “go” button on the bottom of the form to manage COM plug-ins

5) Click the check box next to the outlook plugin, then click ok

6) Log out of Outlook

7) Log back in to Outlook, go back to the trust center, re-enable the plugin

8) Close outlook, reopen Outlook.

Further, there is a known issue with IE7 and the Microsoft Outlook Client when they exist on the same machine. If the Microsoft Outlook toolbar is greyed out AND the user can still access Accounts, Contacts and other data elements, then the following procedure may be appropriate. Note, this procedure is a last resort and only to be performed if the registry has been backed up first.

1) Click Start, click Run, type regedit in the Open box, and then click OK.

2) Locate and then click the following registry subkey: HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_SUBDOWNLOAD_LOCKDOWN

3) Right-click Outlook.exe, and then click Modify.

4) In the Value data box, type 0, and then click OK.

Outlook Client hanging and general connectivity errors

The user receives several error messages when initialising the Outlook client and messages are not being processed from the Drafts folder. This is often caused by the interaction between the Outlook client and various third party software programs. Try the following :

1) Disable all popup blockers

2) Add the Microsoft Web Client URL to the Trusted Sites within Internet Explorer

3) Remove Google Toolbar completely

4) Ensure that the Microsoft CRM URL is added to any trusted list within an Anti-Virus program and that all emails from the Forward Mailbox (if exists) are trusted.

5) Clear the Internet Explorer Cache of Temp Files and Cookies

You cannot view any e-mail messages in the folders after you install the Microsoft Dynamics CRM 4.0 On-Premise client for Outlook

After you install the Microsoft Dynamics CRM 4.0 On-Premise client for Microsoft Office Outlook, you can select different folders in Outlook. However, you cannot view any e-mail messages in the folders. In the area where the e-mail messages should be displayed, Outlook displays “loading.”

This issue has been identified by Microsoft as being relatively common. The resolution for this issue is to install the Update Rollup 1 (Update Rollup1 – KB952858)

Exam Retirement Alert

Posted by AnonymousDeveloper | Posted in CRM General, CRM General Resources, General Information | Posted on 13-11-2008

0

For all those people out there pursuing a certification path, you should be aware that Microsoft are retiring a whole bunch of core exams on the 31st March 2009. Specifically, the following :

Exam 70-300: Analyzing Requirements and Defining Microsoft .NET Solution Architectures

Exam 70-301: Managing, Organizing, and Delivering IT Projects by Using Microsoft Solutions Framework 3.0

Exam 70-305: Developing and Implementing Web Applications with Microsoft Visual Basic .NET and Microsoft Visual Studio .NET

Exam 70-306: Developing and Implementing Windows-Based Applications with Microsoft Visual Basic .NET and Microsoft Visual Studio .NET

Exam 70-310: Developing XML Web Services and Server Components with Microsoft Visual Basic .NET and the Microsoft .NET Framework

Exam 70-315: Developing and Implementing Web Applications with Microsoft Visual C# .NET and Microsoft Visual Studio .NET

Exam 70-316: Developing and Implementing Windows-Based Applications with Microsoft Visual C# .NET and Microsoft Visual Studio .NET

Exam 70-320: Developing XML Web Services and Server Components with Microsoft Visual C# and the Microsoft .NET Framework

Exam 70-330: Implementing Security for Applications with Microsoft Visual Basic .NET

Exam 70-340: Implementing Security for Applications with Microsoft Visual C# .NET

Microsoft SQL Server exams that retire on March 31, 2009

Exam 70-228: Installing, Configuring, and Administering Microsoft SQL Server 2000 Enterprise Edition

Exam 70-229: Designing and Implementing Databases with Microsoft SQL Server 2000 Enterprise Edition

This might present something of a problem for those of us who are going for Microsoft Certified Business Management Solutions Professional Developer for MSCRM qualifications as at least two of the retired exams are requirements of this qualification! As yet, there doesn’t appear to be any alternatives to those exams which achieve the same result, so I suggest that we all get our skates on and sit the required exams before the 31st March 2009. 

Best of luck!

Microsoft Dynamics CRM Plug-in Template for Visual Studio

Posted by AnonymousDeveloper | Posted in CRM Configuring, CRM Development, CRM General Resources | Posted on 30-10-2008

0

Peter Hecke has created a Dynamics Plugin template for Visual Studio. This is extremely helpful not just for experienced developers but also for people just starting out with CRM plugin development as the SDK can be a little coy in places regarding the HOW of actually implementing something. You can read Peter’s original post HERE

 

Thanks Peter!

Microsoft Dynamics SDK ver 4.0.7 now available

Posted by AnonymousDeveloper | Posted in CRM Development, CRM General, CRM General Resources, CRM Partner Resources | Posted on 09-10-2008

0

Just a quick note to advise that the new SDK is now available HERE

Some highlights are….

A very popular technical article is the Developer Ramp up Kit. This is a collection of videos, presentations and labs that introduce you to developing with CRM.

Another popular technical article is an Intro to Plug-in Development.

Count Activities / History

Posted by AnonymousDeveloper | Posted in CRM Configuring, CRM Development, CRM General, CRM General Resources, Javascript Snippets | Posted on 11-08-2008

0

This script (again by Jim Wang) will ‘count’ the number of activities and history records there are for a record and show the results Hotmail style as a bracketed number in the link.

 
var buXml = GetRegardingActivity();
 
if(buXml != null)
{
    var buNodes = buXml.selectNodes("//BusinessEntity/statecode"); // CRM 3.0
 
    //var buNodes = buXml.selectNodes("//BusinessEntity/q1:statecode"); // CRM 4.0
    var iActivity = 0;
    var iHistory = 0;
 
    if(buNodes != null )
    {
        /*get values*/
        for( i = 0; i < buNodes.length; i++)
        {
            switch(buNodes[i].text)
            {
                case "Open" : iActivity++; break;
                case "Scheduled" : iActivity++; break;
                case "Completed" : iHistory++; break;
                case "Canceled" : iHistory++; break;
            }
        }
 
        if(document.getElementById('navActivities') != null)
        {
            document.getElementById('navActivities').getElementsByTagName('NOBR')[0].innerText = document.getElementById('navActivities').getElementsByTagName('NOBR')[0].innerText + " (" + iActivity + ")";
        }
 
        if(document.getElementById('navActivityHistory') != null)
        {
            document.getElementById('navActivityHistory').getElementsByTagName('NOBR')[0].innerText = document.getElementById('navActivityHistory').getElementsByTagName('NOBR')[0].innerText + " (" + iHistory + ")";
        }
    }
}
 
function GetRegardingActivity()
{
    var xml = "" +
    "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
    "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
    " <soap:Body>" +
    " <query xmlns:q1=\"http://schemas.microsoft.com/crm/2006/Query\" xsi:type=\"q1:QueryExpression\" xmlns=\"http://schemas.microsoft.com/crm/2006/WebServices\">" +
    " <q1:EntityName>activitypointer</q1:EntityName>" +
    " <q1:ColumnSet xsi:type=\"q1:ColumnSet\">" +
    " <q1:Attributes>" +
    " <q1:Attribute>statecode</q1:Attribute>" +
    " </q1:Attributes>" +
    " </q1:ColumnSet>" +
    " <q1:Distinct>false</q1:Distinct>" +
    " <q1:Criteria>" +
    " <q1:FilterOperator>And</q1:FilterOperator>" +
    " <q1:Conditions>" +
    " <q1:Condition>" +
    " <q1:AttributeName>regardingobjectid</q1:AttributeName>" +
    " <q1:Operator>Equal</q1:Operator>" +
    " <q1:Values>" +
    " <q1:Value xsi:type=\"xsd:string\">" + crmForm.ObjectId + "</q1:Value>" +
    " </q1:Values>" +
    " </q1:Condition>" +
    " </q1:Conditions>" +
    " </q1:Criteria>" +
    " </query>" +
    " </soap:Body>" +
    "</soap:Envelope>" +
    "";
 
    var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
    xmlHttpRequest.Open("POST", "/mscrmservices/2006/CrmService.asmx", false);
    xmlHttpRequest.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2006/WebServices/RetrieveMultiple");
    xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
    xmlHttpRequest.send(xml);
 
    var resultXml = xmlHttpRequest.responseXML;
    return resultXml;
}

I have tested this myself and it causes the same problems as described here. You should note that this script should be modified with a switcher to take account of the differences in XMLHttpRequest handling between the browser versions.

Use Javascript to execute a CRM Workflow

Posted by AnonymousDeveloper | Posted in CRM Configuring, CRM Development, CRM General, CRM General Resources, Javascript Snippets | Posted on 11-08-2008

0

I love this method. Thanks to Jim Wang for this very useful script.

/* the function */
ExecuteWorkflow = function(entityId, workflowId)
{
    var xml = "" + 
    "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + 
    "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" + 
    GenerateAuthenticationHeader() +
    "  <soap:Body>" + 
    "    <Execute xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" + 
    "      <Request xsi:type=\"ExecuteWorkflowRequest\">" + 
    "        <EntityId>" + entityId + "</EntityId>" + 
    "        <WorkflowId>" + workflowId + "</WorkflowId>" + 
    "      </Request>" + 
    "    </Execute>" + 
    "  </soap:Body>" + 
    "</soap:Envelope>" + 
    "";
 
    var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
    xmlHttpRequest.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
    xmlHttpRequest.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/Execute");
    xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
    xmlHttpRequest.send(xml);
    var resultXml = xmlHttpRequest.responseXML;
    return(resultXml.xml);
}
 
/* call */
var theWorkflowId = "3FD2DD58-4708-43D7-A21B-F0F90A0AA9F2"; //change to your workflow Id
ExecuteWorkflow(crmForm.ObjectId, theWorkflowId);

However, further to my previous post about XMLHttp request, it should be noted that you will require a ’switcher’ to differentiate between browser versions that use this function.

See here

Validating CRM 4.0 Customizations Files

Posted by AnonymousDeveloper | Posted in CRM Development, CRM General, CRM General Resources, General Information | Posted on 06-08-2008

0

Do you get this screen whenever you change the ISV file?

BrokenFile

Annoying isnt it, especially if you don’t know where you’ve gone wrong.

Well, there is an easy way to validate your XML before you attempt to import it into the CRM.

1) Open XMLNotepad

2) View –> Schemas

3) Add the following three files which you can find in your CRM installation folder.

a) wwroot\_Resources\customizations.xsd

b) wwwroot\_Resources\isv.config.xsd

c) wwwroot\_root\sitemaptype.xsd

 

Once you have these three files installed, any invalid XML will give a warning in the error listing on the main screen.

WebException (HTTP 401) thrown in 4.0 plug-ins

Posted by AnonymousDeveloper | Posted in CRM Configuring, CRM Development, CRM General, CRM General Resources, CRM Implementation, CRM Partner Resources, CRM Source Information, General Information | Posted on 30-07-2008

0

Last week I identified a need for an auto-incrementing numbering system and so I hunted around for something to use. At first, I used the old stand by of a basic UTC date conversion but it quickly became apparent that this was inadequate.

So, I came across a free auto-increment counter on this site which uses a plugin. Yay!

I installed the plugin on my development environment and it worked a treat. After some further testing, I then moved it to my Production environment which is where the problems started. No matter what I did, I kept getting a 401 Unauthorised Error. Round and round I went playing with IIS, changing permissions, re-installing the plugin, rebooting until I finally gave up and emailed the writers of the plugin.

Long story short, it seems that there is a bug within CRM 4.0 that causes the plugin to execute permissions using the Organization Friendly Name rather than the Organization Unique Name. Since, like most companies, our friendly name was just that, friendly, complete with spaces, I could see why the plugin was throwing an exception. The exact answer is reproduced below for you interest and also for future reference since this is rather a fundamental bug which could see you throw yourself out of the window in frustration.

 

Problem

The cause of the problem is that the wrong version of the organization name is being passed to the plug-in by the platform. The organization’s friendly name is being used instead of the unique name. A friendly name can contain spaces while the unique name cannot. The platform expects an organization’s unique name when doing authentication. The organization name is used internally by the CreateCrmService and CreateMetadataService methods of the IPluginExecutionContext class to authenticate the user in Microsoft Dynamics CRM. This problem only occurs if an organization name containing one or more blank spaces was specified when Microsoft Dynamics CRM 4.0 was installed.

Workaround

(Option 1) Use Deployment Manager to change the name of the organization to remove any blank spaces in the organization’s display name. You must first disable the organization in Deployment Manager before you can edit the display name in the Edit Organization Wizard. An easy approach to guarantee using a correct organization name is to simply copy the value in the Name field of the wizard and paste it into the Display name field. After making the change in Deployment Manager wizard and clicking the Apply button, enable the organization and reset IIS. This option fixes the problem without requiring any plug-in code changes and does not change plug-in performance.

(Option 2) Do not use the CreateCrmService or CreateMetadataService methods in your plug-in to obtain an ICrmService or IMetadataService instance. Instead, create an instance of the Web service proxy using the CrmService or MetadataService class just as you would if you were calling Web services outside of a plug-in. When setting the CrmAuthenticationTokenValue property, remember to strip out any spaces in the organization name that you have obtained from the IPluginExecutionContext.OrganizationName property which is passed to the plug-in’s Execute method. When a hotfix is made available for this bug, you should change your code back to using the CreateCrmService or CreateMetadataService methods for improved plug-in performance. This option will reduce the performance of your plug-in.

The following sample code is taken from the Walkthroughs\Plugin\CS\AccountCreate SDK sample and shows the affected lines of code.

// Create the task on the Microsoft CRM server.

ICrmService service = context.CreateCrmService(true);

service.Create(followup);

Replace the above code with the following code to implement option 2 for the sample plug-in.

// Workaround to bug #33458.
 
CrmAuthenticationToken token = new CrmAuthenticationToken();
 
token.AuthenticationType = AuthenticationType.AD;
 
token.CallerId = context.UserId;
 
 
 
// Remove any blank spaces in the organization's name.
 
token.OrganizationName = context.OrganizationName.Replace(" ", "");
 
 
 
// Instantiate the CrmService Web service. 
 
CrmService service = new CrmService();
 
service.UseDefaultCredentials = true;
 
service.CrmAuthenticationTokenValue = token;
 
 
 
// Obtain the service Url from the registry.
 
service.Url = (string)(Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\MSCRM").GetValue("ServerUrl"));
 
service.Url += "/2007/crmservice.asmx";
 
 
 
// Create the task on the Microsoft CRM server.
 
service.Create(followup);
 

You will also need to add a using statement (using Microsoft.Win32) to the sample plug-in.

This same technique applies to any plug-in that is affected by this particular bug.

 

Personally, I favour Option 1 which is to change the Organization Friendly Name to match the Organization Unique Name and hope that Microsoft bring out a hotfix shortly. This is exactly what I did and hey, it works. Option two is something to be aware of if you are developing your own plugin, but for the purposes of my exercise, option 1 would suffice.

The method for implementing Option 1 is the following :

1. Launch Deployment Manager on the Web server

2. Select the Organization, Right Click ->

Disable 3. RightClick Again and Click Edit Organization

4. Change the Organization Name and FriendlyName to be the same

5. Click Next and Finish.

You can view the Knowledge Base article on this issue HERE

Queries, Saved Views and Fetch XML

Posted by AnonymousDeveloper | Posted in CRM Configuring, CRM General Resources, Javascript Snippets | Posted on 15-07-2008

1

This is one of those very cool and incredibly useful tips you will want to make a note of.

One of the things that I had to do quite recently, was to change the view that were available to an entity in the GridView. Well, it is just a query afterall, so lets start by going to the Advanced Find button at the top of the page.

 

image

 

Now, Click the <Find> button to return the results…

image

Go ahead and build yourself a query. In this case, I want to view all accounts that have activities which are open (dont ask me why, it’s a long story). When you are finished, you should have something like this…

image

Now for the fun bit. Press the F11 Key twice to pop out of Application Mode and paste the following piece of javascript into the resulting URL bar.

javascript:void( new function() { var s=""; function f(p){ s+= p + "=" + eval("advFind." + p) + "\n\n" };f("FetchXml");f("LayoutXml");f("EntityName");f("QueryId");f("QueryObjectType");alert(s) } )

Or this….

javascript:alert(resultRender.FetchXml.value);

But by using the ‘prompt’ command, this is better…

javascript:prompt("my query:", resultRender.FetchXml.value);

 

Or even this…

Javascript:void( alert( document.getElementsByName("fetchxml")[0].value ))

 

image

When you hit <enter> you will see the following popup…

image

This will work for any query. The Advanced Find dialogue is pretty powerful and you can design quite intricate queries with it, but the best of the lot is that you get to see the actual code being output. This lends itself to being embedded in your custom webpages or external websites.

Finally, this can be used to build custom lookups….