April 2009 Archives

MS CRM 4.0 Upgrade

| No Comments | No TrackBacks
I am currently working on upgrading MS CRM (Microsoft Customer Relationship Manager) software; the company are upgrading from MSCRM 3.0 to MSCRM 4.0. Thrown into the project to perform the upgrade while maintaining the configurations of the existing application, I worked with a consultant and created a structure for the upgrade process. All facts were gathered and certain individuals' laptops were upgraded to cope with the upgrade.

Additionally, separate and special user accounts needed to be created in order to make changes to the system; configurations should be linked to the particular user account. There were instances of users creating major configurations to the system who then left the company; the configurations became unusable after their accounts were disabled. (The user who installs CRM 3.0 must install CRM 4.0.)

The rough upgrade process is detailed below:

1. If MSCRM is installed on the server, ensure that it is removed and restart the machine.

2. Restore the test databases for MSCRM 3.0

3. Ensure that the SQL 'Reporting Services'are set up and can be retrieved through a web URL (http://databaseserver/ReportServer). Connect to ReportingService in SQL Management Console and give the group permission.

a. Make sure that the user who has been set up is in the CRM_REPORTS_CONTENTMGRACCESS group so the user has permissions to the ReportsServices.

4. Ensure that IIS is installed on the server where you plan to install MSCRM.

5. Ensure that the user who will be doing the installation has the correct user permissions to complete the installation.

6. Ensure that the user who will be doing the installation is a db_owner for the MSCRM databases / METABASE database. The user also needs to be sysadmin on the database server.

7. Do the changes for the build version revision number. This is in the database in the BuildVersion table. Revision number column should be the number. Version 3.0.5300.9 is used for this installation. Format: MajorVersion.MinorVersion.BuildNumber.Revision.

8. Change the organisation name in the database. This table is called OrganisationBase and the column is 'Name'. This should be the name of the database. 

Before the installation, complete the following change to regedit so the database works. The error "MachineName value [server_name]\[instance_name] is invalid" exists. The following is an email excerpt.

The following steps will allow you to install CRM 3.0 to a named instance of SQL Server.

*Please note: After performing these steps you will still get the same error message, but the "Next" button will be enabled and you will be able to continue with the installation.

**Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall your operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk. To resolve the problem, add the IgnoreChecks registry key to the Microsoft CRM server. To do this, follow these steps:

1.  On the Microsoft CRM server, click Start, click Run, and then type regedit .

2.  Open the following registry key:


3.  If the MSCRM registry key exists, go to step 6. If the MSCRM registry key exists, go to step 4.

4.  Right-click Microsoft, point to New, and then click Key.

5.  Type MSCRM as the name of the registry key.

6.  Right-click MSCRM, point to New, and then click DWORD value.

7.  Type IgnoreChecks as the name, and then press ENTER.

8.  Right-click IgnoreChecks, and then click Modify.

9.  In the Value data box, type 1 , and then click OK.

10.  In the Environment Diagnostics Wizard, click the Back button, and then click the Next button to run the Environment Diagnostics Wizard again. You will still receive the error message. However, the Next button will now be available. Click Next. Ignore the error messages. 

*Note You should use the IgnoreChecks registry key only to bypass the error message that is mentioned in the "Scope" section. Correct any other problems before you continue trying to install Microsoft CRM.

  1. Start to install MSCRM 3.0.
    1. Type in the key and click 'add'. Select the terms and conditions.
    2. In Organisation name, type in the name of the database, as above in step 8. 
    3. Select the default website or a new website for running the web-based version of MSCRM.
    4. Type in the database. If the database can not be connected to and no tables appear, make sure you have set up user permissions correctly, as per step 6.
    5. Select the ReportServer: (ie: http://Databasename/ReportServer)
  2. Run the workflows cleanup SQL script on the MSCRM database.
  3. Apply MSCRM 3.0 rollup 2. It may ask if it's ok to restart some running services - click OK.
  4. Test MSCRM works by logging onto the server and checking the web address. If the application comes up, then it has worked.
  5. Install the hotfix and complete the following:

Note If the default values are small, you may have to create or change the OleDbTimeout value and the ExtendedTimeout value. Then, the MSCRMFastReassign.exe tool can process all the records. To do this, follow these steps.

Create or change the OleDbTimeout value

1.       In Registry Editor, locate and then click the following registry subkey:


2.       Double-click the OleDbTimeout value. 

Note If the OleDbTimeout value does not exist, create an OleDbTimeout value. To do this, follow these steps:

a.       Right-click MSCRM, point to New, and then click DWORD value.

b.       Type OleDbTimeout.

3.       In the Edit DWORD Value dialog box, click Decimal, type 600 in the Value data field, and then click OK

Note The value of 600 represents 600 seconds. By default, the value is 30 seconds.

Create or change the ExtendedTimeout value

1.       In Registry Editor, locate and then click the following registry subkey:


2.       Double-click the ExtendedTimeout value. 

Note If the ExtendedTimeout value does not exist, create an ExtendedTimeout value. To do this, follow these steps:

a.       Right-click MSCRM, point to New, and then click DWORD value.

b.       Type ExtendedTimeout.

3.       In the Edit DWORD Value dialog box, click Decimal, type 5400000 in the Value datafield, and then click OK

Note The value of 5400000 represents 5,400 seconds. By default, the value is 900 seconds.

To install this hotfix, follow these steps:

1.       Move the MSCRMFastReassign.exe file to the following folder:

C:\Program Files\Microsoft CRM\Tools

2.       Log on to the Microsoft Dynamics CRM server as a user who has the Administrator role.

3.       Run the MSCRMFastReassign.exe file.

4.       In the Entity Reassignment Tool dialog box, select the user in the Current User list from whom you want to reassign the records.

5.       In the New User list, select the user to whom you want to reassign the records.

6.       Click Reassign

Note You cannot undo this action.

After you finish the reassignment process, you receive the following message:

You have successfully reassigned all entities to the new user. 
Previous User: User1
New User: User 2


  • The User1 placeholder represents the actual user who you select in the Current User list.
  • The User2 placeholder represents the actual user who you select in the New Userlist.
  • The tool may take 90 minutes or longer to reassign 900,000 records or more records, depending on the performance of the Microsoft Dynamics CRM server and the Microsoft SQL Server that are used.
  • To determine the number of records that a user has, you must run a query against the Microsoft Dynamics CRM database in SQL Query Analyzer or in SQL Server Management Studio. You must run the query as a Microsoft Dynamics CRM Administrator, because the records that are displayed depend on which records the user has access to or has the visibility to see. If you want to see the records that are owned by the user for other entities, you must change FilteredContact toFiltered_EntityNameEntityName is the name of the other entity, such as FilteredAccount. This query estimates how long it will take the MSCRMFastReassign.exe tool to assign records from one Microsoft Dynamics CRM user to another Microsoft Dynamics CRM user. If accurate estimates of the time to run this tool are required, you should run this tool in a test deployment that contains a copy of the Microsoft Dynamics CRM production databases on similar hardware. To determine the number of records that a user has, run the following query against the Microsoft Dynamics CRM database in SQL Query Analyzer or in SQL Server Management Studio, as a Microsoft Dynamics CRM Administrator.
·                SELECT OwnerIdName, count(*) as 'RecordCount'
·                FROM FilteredContact
·                GROUP BY OwnerIdName
·                ORDER BY 'RecordCount'


  1. Turn on log tracking - the following link explains how: http://support.microsoft.com/kb/907490
  2. Make sure that workflows, custom reports, etc are working
    1. All users should see reports in the GUI. (There is currently a problem with this displaying to certain users, and there is no fix found for this yet.)
  3. Delete workflows by going into the 'workflow manager' and deactivating and deleting the workflows.
  4. Delete old reports in the CRM user interface under 'Reports'
  5. Apply MSCRM roll up 3 (it will stop and start services that are running) and test that the system works.
  6. Run the MSCRM 4 upgrade.
    1. Make sure that the name is correct
    2. Select GBP in currency (Pound)
    3. Report server - URL
    4. There will be an error with SQL; ignore it. Higher level above sysadmin (server admin) is needed on the database.
  7. Ensure that the tracking is still set up. NOTE: Logs are installed under the Trace folder where MSCRM is installed.
  8. Install rollup 2 for MSCRM.
  9. Install rollup 3 for MSCRM.
  10. Under the web location, browse to ISV. Create a folder called [Name].
  11. In the zipped file, extract the files and put them underneath the [Name] directory created in the step above.
  12. Modify the security on the RSR folder and all sub-files and sub-folders. Add 'Autjhenticated Users' and give FULL CONTROL.
  13. Copy the DLL into the directory: [CRMWEB]/bin. And set the permissions on this one as above.
  14. In the [Name] folder, open web.config file and the CRMServer should be correct to what is installed, and change the OrgName to the name of the database as earlier defined. (For this, remove the port number 5555).
  15. In the web.config file, need to enable GET/POST for web services. Add this:
            <add name="HttpGet"/>
            <add name="HttpPost"/>


  1. In the web-based software, browse Settings>Import Customisations.
  2. Click Browse to locate the customisations.zip file. Then click UPLOAD.
  3. The customisations will be displayed. Select all of them except for InstallBase. (InstallBase does not import) and click on 'Import Selected Customisations').
  4. Go to Settings>Customise Entitites. Select 'publish all customisations' under actions.
  5. Go to settings>administration>system settings. Select the tab 'Customisation' in the popup. DLR is the prefix. Ensure that the box contained Web App, Outlook, and Outlook Offline.
  6. Test!

An additional issue I noticed was when viewing the web-based tool was the file blank.aspx kept displaying. A quick fix for this issue is to remote-access into the CRM server, and open Blank.aspx in notepad.  (note: Blank.aspx can be found in: My Computer -> Program Files -> Microsoft Dynamic CRM -> CRMWeb -> _root -> Blank.aspx). On the header of Blank.aspx, add the word test (or a blank space) and save Blank.aspx. Restart IIS, and then clear the temporary internet files of the user with the issue.

One of the projects that I had been working on (part-time) in the past few months was to replace the visual interface and functionality of an internal web-based application. The application was developed in .NET around a framework developed by an external IT company. The software had a lot of bugs that needed to be ironed out, and there was also a problem with a lack of a user interface expert in the external IT company. The application was being designed by programmers. Eek!


Now, I am a firm believer that most core programmers do not have knowledge in visual design and usability, and most probably wouldn't bother to learn or be any good at this area. That is why User Interface Developers come in to review the work being carried out, understand the client's needs, and assist the developers in getting it 'right'.


The application was mainly centred around data forms and workflows. Improvements consisted of:

·         Form layout was improved; data became more concise and grouped coherently to make the most of the screen real estate.

·         Auto-completion and validation was introduced to prevent data entry errors and saving employee time by filling in data that the system already had access to.

·         The 'home' page was set up to display user-centric data with specific views, such as how many tasks are outstanding and which forms have been approved or not approved.

·         Visibility of data was greatly improved.

·         Reduction in the number of clicks.

·         Users found the new system easier to learn and easier to use.


One of the other features that I introduced was a colour-coded overview of which tasks were due/nearly due/overdue, so the user could immediately see areas of concern.


The most ludicrous change that I suggested quite early on when I first saw the redesign that the programmers had put together was the removal of a cartoon 'wizard' from the main screen. My colleagues and I still joke about this to this day.


In short, every Development company needs a User Interface expert to work with the clients and to nicely tell the programmers not to include cartoon wizards in corporate software.

Tasty Chocolate Packaging

| No Comments | No TrackBacks
This post is inspired by some contemporary chocolate packaging designs that I keep seeing in the shops. Chocolate packaging can encompass rich, warm colours that virtually 'taste' delicious, so creating with these colours is always enjoyable and sensual. I enjoy the contemporary styles that leap off the shelves. Bloomsbury have created some very nice designs for their chocolate, and I've also included some other good chocolate packaging designs here.

From top to bottom:

100 Percent Chocolate: http://www.meiji.co.jp/sweets/choco-cafe/

Original Beans Chocolate: http://www.originalbeans.com/

Akinosie Chocolate: http://www.askinosie.com/

Chocolatea: http://www.thelovelyroom.com/tag/packaging/page/2/

Co Coutoure: http://www.cocouture.co.uk/

Chocolate Pie Chart: http://chocolate-editions.com/s_pc

Chocolate Organiko: http://www.chocolateorganiko.es

Bloomsbury: http://www.bloomsberry.com/


Here's a few more package designs from the Bloomsbury chocolate range.



Recent Comments

  • jenn: Thank you. read more
  • Murge: Amazing post. read more
  • Herbert: good post. site read more
  • Frank Quake: Hey, This is great when you said that I had read more
  • Chappy: You mention peptides here? I have had first hand experience read more
  • jenn: Thanks! I love the work. I have got more recent read more
  • Fanakapan: Thanks for the write up. This was some of my read more
  • jenn: Yes.... but that's only for the islands. Mostar and Montenegro read more
  • jenn: Hello, the code is not mine to hand out. I'll read more
  • pantich: More info about the best day trips from Dubrovnik can read more
OpenID accepted here Learn more about OpenID