How to Uninstall Microsoft Dynamics CRM 4.0 for Outlook Client

There may be a time when you need to uninstall Microsoft Dynamics CRM 4.0 for Outlook from your computer. This can be due to an upgrade or due to a troubleshooting process. This blog will walk through the steps to remove the Microsoft Outlook client for both Windows 8 and Windows 7.

Uninstall the Outlook client on Windows 8

  1. Press the Windows key and the X key on your keyboard. This will pop up window in the lower left corner of your screen.Uninstall Microsoft Dynamics CRM 4.0 Outlook Client
  2. Click on Programs and Features. This will cause another screen to pop up.
  3. Scroll down until you have selected Microsoft Dynamics CRM 4.0 for Microsoft Office Outlook. Double click on Microsoft Dynamics CRM 4.0 for Microsoft Office Outlook. This will bring up yet another pop-up screen.
  4. Click on the radio button to uninstall, then click the OK button at the bottom of the page.
  5. This will open a pop up that will ask you to confirm the uninstall. Click Yes.
  6. Now you'll see a status screen. After it's done uninstalling, click Close to finish.

Uninstall the Outlook client on Windows 7

  1. Click the Start button in the bottom left of your screen.
  2. Click on Control Panel.
  3. Click on Uninstall a Program.
  4. Scroll down until you are on Microsoft Dynamics CRM 4.0 for Microsoft Office Outlook and double click on it. Double click on Microsoft
  5. On the new pop-up screen, select the Uninstall radio button, then click Uninstall at the bottom of the page. This will open a pop up that will show the progress bar of the uninstall.

  1. Click Close to finish the uninstall.

Congratulations! You have successfully removed Microsoft Dynamics CRM 4.0 for Outlook Client! We also have instructions on how to install the Outlook Client should you want to reverse your actions.

Happy CRM'ing!

Use JavaScript in Dynamics CRM to Set the Value in Read-Only Field on a Form

We've covered some great ways to use JavaScript in Dynamics CRM 2011 in previous posts. This post focuses on a use that we recently employed for a client. In Microsoft Dynamics CRM 2011 or 4.0, you may want to use JavaScript in to set the value in read-only field on a form. However, you may have noticed that after the JavaScript sets the field to Read-Only, it does not save the value when the record is saved.

To clarify, consider the following scenario.

On the Account form, your goal is to have the "Account Number" field become Read-Only if a checkbox is checked. In this example, we'll name the checkbox "Freeze." What you may do to accomplish this is to have the "Account Number" field become Read-Only onChange of the "Freeze" checkbox. You would also want this JavaScript to fire onLoad as well. This will accomplish what you're attempting to do…almost.

Now, when you deploy this code (to a test system of course), you find something strange happens. Let's say a user edits the "Account Number" field, then checks the "Freeze" box immediately after. Upon saving the record, the "Account Number" field reverts back to the previous value. Why is this? Well, prior to checking the "Freeze" field, the "Account Number" field was editable. If we edit that field on the form, the actual field in the database is not modified until we save the record. So, if we edit the field, check the "Freeze" box then Save the record, the value will not be changed because the "Account Number" field was set as Read-Only as soon as we check the box (from the onChange event) prior to saving the record.

To meet this requirement, you could use option #1 below, or use a combination of the two.

#1    Have the JavaScript code fire onLoad of the form ONLY. Not onChange of the "Freeze" field.

Here is the code for the onLoad event:

function accountNumberReadOnly()
{
var freeze = Xrm.Page.data.entity.attributes.get("po_freeze");
var optionSetValue = freeze.getValue();
var optionSetText = freeze.getText();
if (optionSetText == "yes")
{ Xrm.Page.ui.controls.get("accountnumber").setDisabled (true) }
else
{ Xrm.Page.ui.controls.get("accountnumber").setDisabled (false) }

The downside of this method alone is that even though the user checks the box, the Account Number field is not yet Read-Only. To resolve this, add step #2 to the equation.

#2    In your onChange event for the "Freeze" field, instead of using the code above, simply utilize some code to "Save" the record. When a user checks the "Freeze" box, the record is saved and reloaded. The code in #1 will then fire onLoad, thus setting he "Account Number" field as Read-Only.

Here is the code for the onChange event:

function saveRecord()
{
var freeze = Xrm.Page.data.entity.attributes.get("po_freeze");
var optionSetValue = freeze.getValue();
var optionSetText = freeze.getText();
if (optionSetText == "yes")
{ Xrm.Page.data.entity.save(); }
}

Didn't get your fill of JavaScript yet? Here are some more posts on how to use JavaScript in Dynamics CRM:

Happy CRM'ing!

Thinking about moving Microsoft Dynamics CRM in the cloud? Need some incentive?

Moving your Microsoft Dynamics CRM in the cloud

If you currently have a Microsoft Dynamics CRM 4.0 On-Premise implementation, you may want to take a serious look at this current incentive by Microsoft and sweetened by PowerObjects to move Microsoft Dynamics CRM in the cloud.

For a limited time, you can get the great price of $39/user/month AND take advantage of the Big Easy promotion that will pay you back 15% of your annual subscription costs. And, if you work with PowerObjects to 'Make that Move', PowerObjects will double your money and MATCH the 15% rebate. You will get a total of 30% of your subscription costs back to help you 'Make the Move'.

(PowerObjects rebate will be in the form of a professional services credit when your organization designates PowerObjects as your Partner of Record and elects to use PowerObjects services to 'Make the Move'.)

PowerObjects has created a streamlined process for moving Microsoft Dynamics CRM 4.0 On-Premise implementations to CRM 2011 Online. The process, called PowerMigrate is a blend of proven process and pre-built tools that we've used to help many organizations like yours upgrade to the cloud in an efficient, fast and affordable way.

For an in-depth look at PowerMigrate, take a look at our Client Case Study of Sohpicity's move to the cloud.

But wait, just like TV, there's MORE….as a customer of PowerObjects you will also receive your choice of a FREE PowerPack solution which will make your Dynamics CRM system even better!

Sound good? If you have any questions or would like to get all the details, contact the Microsoft CRM Experts at PowerObjects today. This offer is only available for a limited time.

NOTE: The Big Easy offer expires December 31st 2011.

Download a copy of our 'Make The Move' Brochure.

Microsoft Dynamics CRM Report Drill-thru action to CRM Record

A cool capability of Microsoft Dynamics CRM reporting is to add an action to open a CRM record from a report. Not only is this cool from a CRM Superhero perspective but can save you time and mouse clicks. In this example report is a list report for a custom entity. I have a custom relationship to Accounts from the custom entity and I would like to allow the user to click on the Account name and launch the CRM Account record. This will work for both CRM 2011 and CRM 4.0

In your report development environment add a parameter for the CRM_URL. This is a unique CRM parameter that will discover the organization url and pass in the string we dictate later.

CRM Expert

Next, determine which entity you will be launching. You can find it the sdk, the medadata browser or simply opening a record and hitting Ctl+N – this will reopen that CRM record in a new window with the Internet Explorer tool bar and you should find the Object Type Code or Entity Type Code. This number immediately follows the 'etc='

System entities will start at 1 (Accounts) and go up to 4 digits.

Custom entities will start at '10000' – such as the example below:

Back in the report development, locate the cell that contains the field that represents your selected entity. Right-click and select 'Text Box Options':

CRM Report

- Select 'Action', click the 'Go to URL' radio button and click the formula/expression button

Microsoft Dynamics CRM Report

- Paste in the following text:

=IIF(IsNothing(Parameters!CRM_URL.Value),system.dbnull.value,Parameters!CRM_URL.Value & "?ID={" & Fields!new_account.Value.ToString()& "}&OTC=1")

- Two elements need to be set for the link: The field and the OTC (same number as the ETC in the URL)

Microsoft Dynamics CRM Report Drill-thru

- Click 'OK'

- Save and publish the report.

- Run the report to test (previewing in your report development environment will not launch the window)

- Click the Account name in the report:

- Voile, the Account record will open!

CRM Reporting How To

CRM Reports can range from simple to complex so please reach out to our CRM Experts if your organization needs some help.

Happy CRM'ing!

CRM 2011 Form Load Performance Tip – Collapsing Tabs

One of the things we ran into with our recent upgrade projects (Microsoft Dynamics CRM 4.0 to CRM 2011) is that there are a lot of tabs with IFRAMEs to custom pages on the contact form. The CRM 2011 form load performance was very slow after the upgrade where we are loading all the IFRAMEs on load of the form by default. Then we tried adding code to load these IFRAMEs on the "TabStateChange" event of the corresponding tabs. To accomplish this, we followed the following steps:

1. The tabs should be collapsed by default.

CRM 2011 Form Load Performance

2. And also, the URL for the IFRAME in the form customization should be set to "about:blank" so that nothing loads by default. When the user clicks on the tab link in the Left navigation on the form, the tab will be automatically expand in the CRM UI

CRM Form Load

3. Here is the code snippet we added to the TabStateChange Event function call.

function tab_custom_onstatechange() {

if (Xrm.Page.ui.tabs.get("tabname").getDisplayState() == "expanded") {

var IFrame = Xrm.Page.ui.controls.get("IFRAME_Name");

IFrame.setSrc('Custom URL for the destination page');

}

}

4. Added this code to a JavaScript library and attached it to the "OnTabStateChange" event:

5. We repeated this for all the tabs with IFRAMEs which are custom and where delaying the load of the form and the ones which are not on the main tab of the form

On doing this, the performance change was drastic since the client had lots of tabs which contained more than one IFRAME. Way to go JoeCRM!

As always, we hope this tip helps you as you journey through the wonderful world of Microsoft Dynamics CRM. Feel free to contact the CRM Experts at Powerobjects if you need help with any projects related to Dynamics CRM.

Happy CRM'ing

PowerMove – Moving CRM 4.0 on premise to CRM 2011 Online

So you already have CRM and have been running it in house….you've seen the great new features in 2011 and want to take advantage of them….you check with IT and the servers you have are 32 bit and they tell you no for new 64 bit servers. Seems like you might be stuck, but hey why not let Microsoft take over – I mean at $44/user you can't go wrong and you don't need to buy new servers – now you just need to migrate to the cloud. PowerObjects has recently developed a streamlined process for moving a MSCRM 4.0 implementation on premises to CRM 2011 online. The process is relatively pain free. Below are the steps in moving a crm 4 to CRM 2011 Online.

  1. Analyze. The first step is to analyze the CRM 4 solution. Does it have any legacy isv code, any plugins that need re-written, any JavaScript? What is the database size? Right away at step 1 we will know the exact amount of work necessary to move your CRM on premises to online. Items to take into consideration are:
    1. JavaScript
    2. Plugins
    3. Data synchronizations
    4. SRS reports
    5. 3rd party components
  2. Upgrade. A CRM 4 to 2011 upgrade is performed at this step. This step is often done at PowerObjects data center, so you do not have to acquire 64bit hardware and sql 2008. And your CRM 4 environment remains untouched.
  3. Import Customizations. At this step your recently upgraded customizations will be imported into CRM 2011 online. The CRM 2011 online will now look exactly like your system.
  4. Convert. Step 4 is where our developers convert any needed plugins/reports/JavaScript. This step varies quite a bit depending on the client. Some clients have little to no conversions needed while others that have obsolete 3rd party components need a bit of work. The amount of work is already know based on item analyzes phase.
  5. Verify. At this step we ask the client to verify all system functionality. The system should now be an upgraded CRM 2011 system with test data.
  6. Migrate the data. Using a proprietary internally developed tool, PowerObjects now migrates all of your data from your database to CRM 2011 online. All out of the box and custom entities, attachments, activity, etc is moved. All data!!!
  7. Test UAT – Go/NoGo. The final step is another round of testing to determine if there are any known issues. Since the CRM 4 environment remains untouched there is always a back out plan.

Does it seems a little daunting? That's what we are here for – we do this day in and day out so leave the heavy lifting to us – reach out and we can get the process started for you! PowerObjects Contact

Happy CRM'ing

Reports and Activities appearing in an iFrame in the CRM 2011 client

PowerObjects recently ran into an issue where the CRM 2011 client was displaying Activities, Reports, and Queues in an iFrame, rather than the new CRM 2011 look. The one thing in common was all the CRM 4.0 organizations that were upgraded from CRM 4.0 to CRM 2011.

Organizations that were not upgraded from 4.0 to 2011 work correctly in the same client.

This is a screen shot of the issue.

The following is a screenshot is after applying the sitemap changes.

We were able to determine what was causing this issue, as well as how to resolve the issue. The problem was indeed in the Site Map, particularly with the URL tags of the entities in question. We were able to both reproduce the issue in a clean environment, as well as resolve the issue in a broken environment, by updating those Site Map URL values. Below are the steps to resolve this for each of the affected entities:

Reports:

Within the Site Map, the following line exists: <SubArea Id="nav_reports" Entity="report" Url="https://v8k3f3n4.rocketcdn.me/CRMReports/home_reports.aspx" DescriptionResourceId="Reports_Description"> We do not expect to see a URL value provided here, and removing this does resolve the issue. The line should appear as follows: <SubArea Id="nav_reports" Entity="report" DescriptionResourceId="Reports_Description">

Old value: <SubArea Id="nav_reports" Entity="report" Url="https://v8k3f3n4.rocketcdn.me/CRMReports/home_reports.aspx" DescriptionResourceId="Reports_Description">

New value: <SubArea Id="nav_reports" Entity="report" DescriptionResourceId="Reports_Description">

Queues:

For queues we see the following: <SubArea Id="nav_queues" Entity="queue" Url="https://v8k3f3n4.rocketcdn.me/workplace/home_workplace.aspx" DescriptionResourceId="Queues_SubArea_Description"> The URL here is not correct and should be set to "/_root/homepage.aspx?etc=2029". This would make the line appear as follows: <SubArea Id="nav_queues" Entity="queue" Url="/_root/homepage.aspx?etc=2029" DescriptionResourceId="Queues_SubArea_Description">

Old value: <SubArea Id="nav_queues" Entity="queue" Url="https://v8k3f3n4.rocketcdn.me/workplace/home_workplace.aspx" DescriptionResourceId="Queues_SubArea_Description">

New value: <SubArea Id="nav_queues" Entity="queue" Url="/_root/homepage.aspx?etc=2029" DescriptionResourceId="Queues_SubArea_Description">

Activities:

The issue with activities is the same as the one with queues, as the URL is incorrect. Currently this is listed as <SubArea Id="nav_activities" Entity="activitypointer" DescriptionResourceId="Activities_SubArea_Description" Url="https://v8k3f3n4.rocketcdn.me/Workplace/home_activities.aspx" /> however the URL should be "/_root/homepage.aspx?etc=4200". This makes is appear as follows: <SubArea Id="nav_activities" Entity="activitypointer" DescriptionResourceId="Activities_SubArea_Description" Url="/_root/homepage.aspx?etc=4200" />

Old value: <SubArea Id="nav_activities" Entity="activitypointer" DescriptionResourceId="Activities_SubArea_Description" Url="https://v8k3f3n4.rocketcdn.me/Workplace/home_activities.aspx" /> New value: <SubArea Id="nav_activities" Entity="activitypointer" DescriptionResourceId="Activities_SubArea_Description" Url="/_root/homepage.aspx?etc=4200" />

As updating the Site Map is different in CRM 2011 than it was in 4.0, We have also included steps below to make the change:

1. First, export the Site Map by going to Settings > Customizations > Solutions > New.

2. Create a new solution for the Site Map, and click Save.

3. From the Add Existing dropdown, select Site Map. Be sure to add required components if prompted.

4. Save your changes, and export the solution.

5. Extract the results and edit the customizations.xml file.

6. Zip the results and import the updated Site Map back into CRM. Note: If you are unable to import the solution, check to verify that it was zipped properly. The three .xml files will need to be at the root level of the .zip folder, as opposed to being held within another folder.

7. Publish customizations, restart Outlook, and the issue should now be resolved.

Right now we are going through and doing a ton of upgrades – we continue to learn and find little things that help us make the process go smoother for our clients. If you are looking for assistance please reach out as we have some fixed fee options for getting your organization migrated. You can contact PowerObjects and the CRM Expert here.

Happy CRM'ing

PDF In Document Libraries in IFrame – Open in New Window

Many of our clients have a SharePoint document library displayed in an iframe in various entities, such as accounts, contacts, projects, etc. This works great, but often one complaint is that if a pdf file is opened, there is no way to 'go back' and user has to navigate away from the entity.

A quick solution is to set PDF to always open in a new window. This can be done by changing the settings right in PDF.

  1. Open any pdf document, and go to Edit, then Settings:
    PDF
  2. In the Internet area, uncheck the 'display pdf in browser' option.
    PDF

This change will cause all opened pdfs from links including inside SharePoint document libraries to open in a new window.

Welcome to the #1 Dynamics CRM Partner in the World - How can we help you achieve your Microsoft Dynamics CRM success story today?

PowerObjects, an HCL Company is the Proud winner of the 2015 Microsoft Partner of the Year for Cloud Customer Relationship Management, PowerObjects is the preferred partner for implementing, supporting, and growing CRM solutions. Through unparalleled offerings of service, support, education, and add-ons, PowerObjects can help tailor custom solutions for your business.

Happy CRM'ing to all our wonderful readers!

Working with a distributed Sales Force and creating a win win situation

What is my pipeline? Who are my prospects? What are my potential opportunities? Who are my key accounts for each of my distributed sales reps? Etc., etc., etc.

Questions like these are all too familiar when working with a distributed sales force. Sales managers often find themselves scrambling at the end of the month to track down each of their reps to find out any and all information they can for sales pipeline management. If your distributed sales force sells multiple product lines, then it is even more challenging. At best, this information is partial and may be several weeks old. At worse, a rep has moved on to a competitor along with their precious customer information.

Distributed sales reps tend to hold information close and look at their personal customer information as their insurance card for why corporate needs them. So, how does management get insight into prospect/customer details such as: pipeline, sales trends, key customer details, etc. while still allowing the distributed sales team a sense of autonomy and information ownership?

There are a couple options that come to mind. On one hand, management could demand all client information from their reps and if they don't comply then out the door they go. Of course, this would not sit well with a distributed sales force since many times they sell multiple competitor products and the competitor companies they work for do not have such hard-lined requirements leading to a lose-lose situation.

A better option is a simple "sample request portal" integrated with Dynamics CRM. Many reps require some kind of product samples for customers to evaluate. The request would specify what product and for which customer or potential customer. A sample request portal would provide an easy way for reps to requests product samples and allow management to see who the request was for. All this information would be tied back to the CRM account record for reporting, etc. The sample request portal would only be a starting point and certainly not an end-all when it comes to gathering customer information. The sample request portal would automate the capture of at least some relevant information around your customer base.

Sales reps tend to be competitive by nature, so future versions of the portal could include dashboards showing sales by region, or sales by rep, etc. The portal could even expose specific CRM information to portal users and allow them to interact and update that information. The overall goal of the portal would be a starting point for increasing the willingness of your distributed sales force to communicate more information from the field to management and enabling them with tools that will help them achieve their sales goals.

If you have an idea for a portal and want to see what the crm experts at PowerObjects can do – let us know.

Happy CRM'ing

Dynamics CRM 2011 Dashboards Go Way Beyond Simple Charts

PowerObjects has been providing our PowerDashboard feature within CRM since 4.0. That said, Microsoft has really upped the ante with the new dashboard functionality within CRM 2011 and I expect them to be even more refined by the final build. You will have a tremendous amount of flexibility on how to create your ultimate dashboard, keeping in mind that a core tenant of CRM 2011 is the idea of productivity. In addition to simple charts and graphs, you can flex your creativity and think of many unique combinations and use cases. Think "CRM User Mission Control Center".

When creating dashboards, you can essentially choose a layout from the choices here:

Then you can build out the layout with any combination of 4 choices:

Here are some samples of what each might be used for

As you can see, there are few limits to what you can do with the new dashboard capabilities - we are just scratching the surface. As always the Microsoft Dynamics CRM experts at PowerObjects are here to help – just reach out!

Happy CRM'ing

Optimizing Complex Report Performance in Microsoft CRM 4.0

Recently I had a privilege to work on a xRM project utilizing CRM 4.0 and SQL Reporting Services to create very complex Business Intelligence reports base on transactional records which were housed inside MS CRM.

We had approximately:

Simplified, the relationships looked like following:

Basic requirement of reporting was to slice and dice sum of transactional data based on users or some account level information.

Some Important findings:

Performance of FilteredViews degenerates fast with more complex queries involving multiple entities. For example, query giving user-grouped sum ran in 20 seconds. Below a simplified core of the query:

select
SUM(po_amt),

    po_useridname

from     filteredpo_transaction,

FilteredAccount

where ( po_accountID = AccountID )

group
by po_useridname

A requirement for adding user title came up, we can do this by joining systemuser table to the query. This does not seem like a large change, but performance fell to 250 seconds. Below is the simplified core of that query:

select
SUM(po_amt),

    fullname,

    jobtitle

    from filteredpo_transaction,

FilteredAccount,

filteredsystemuser

    where ( po_accountID = AccountID )

    and     po_userid=systemuserid

    group
by FullName, jobtitle

Doing the similar comparison with non-filtered views, we experience drop from 15 seconds to 120 seconds, which helps but is not enough for user-friendly performance.

Account-TransactionAccount-Transaction-User
Filtered20s250s1250%
Non-Filtered15s120s850%

Note that when using Non-Filtered Views, you will need to account for security yourself in the report criteria/filtering.

Custom Indexes

While MSCRM has indexes of its own, when you create custom relationships, these relationships are not indexed by default. In my example case, if I create custom indexes for transaction data and also for the system user assignment, the numbers will change drastically:

Account-TransactionAccount-Transaction-User
Filtered20s15s-25%
Non-Filtered5s2s-60%

The interesting details are that by introducing extra table to query actually improves query performance in this example. This is due to better utilization of indexes. Similarly the Account-Transaction filtered query did not benefit from the index at all.

Note that adding Indexes may slow down the creation and updating of the records.

Final Words

This example shows quite a dramatic improvement from unusable 250s report to blazing fast 2s report. While the results will vary, it shows that you do not have to accept slow performance as direct result of large number of rows or complex data model. With correct planning and design, the speed can be improved.

If this is something you are looking for help on let the CRM Experts at PowerObjects know – we have many tools to help you get the reporting you need out of your MSCRM system.

Happy CRMing

Kinect: Live the Technology at PowerObjects

OK – I know most of our posts are about Microsoft Dynamics CRM … but today is a special day and I get to share a little bit about why I love this place. PowerObjects lives and breathes it core values * Always add value * Think Team * Love What You Do * Live the Technology * Do the right Thing, and today we got to live the technology.

If you haven't been living under a rock, you probably know that today was the day Microsoft release the Kinect for the Xbox360. Well we had to wait for the store to open, but we rushed out and picked up the big one with the 250gb hard drive and brought it to it's new home at PowerObjects.

The excitement built as we took it over to what we like to call the annex that has our hang'n and chill'n living room with a new 60 inch LCD that has been lonely and waiting for this day for over a month. The box was opened and the setup began!

After plugging in the cables…really just HDMI and power – we connected to the wireless network and had to do a little update. Talk about seeming like forever….we've waited months for this day to arrive and now we have to update!!! Ok it probably only took 3-4 minutes, but this was gaming time I was missing.

Once she was fully loaded and connected it was time to take her for a spin. Figured out the interface pretty quick and away we went.

I had planned on writing a longer blog about this, but I think I need to go back to the annex and play a little bit more J.

We are still here to help with all you MS CRM needs, and possible hook up online if you want to get a little gaming in as well!

Happy CRM'ing Kinect'ing