Four Easy Ways to Save a Rocky CRM Relationship

June 28, 2011

 Today, I am pleased to introduce our guest blogger Luke Christianson. Luke is  an Application Sales rep based out of Minneapolis, MN.  You can find him on LinkedIn and follow him on Twitter. In any relationship, sooner or later, the exc…

Read the full article →

SugarForge POTM is back, and we want to hear what you think it should be.

June 27, 2011

Since the beginning of SugarForge back in 2005, we’ve crowned a SugarForge POTM ( project of the month ) each month to recognize the most outstanding and innovative add-ons, plugins, and extensions created by our vast Sugar community. It has also been a showcase of how extensive the Sugar platform is, helping provide ideas on [...]

Read the full article →

FAQ for Customer and Partner Portals

June 27, 2011

This post addresses the most common issues that occur with the Customer and Partner Relationship Management Portals. If the problem you’re running into is not in the list below, please post a message to the CRM Labs Solutions Forum here: http://social.microsoft.com/Forums/en-US/crmlabs/threads?filter=alltypes.

1. Solution Import

1.1 Getting started with the portals

Portal installation instructions are as follows:

  1. Download the cab file from the marketplace and save it to disk
  2. Unpack the cab using instructions above
  3. Navigate to the “Documentation” folder
  4. Follow instructions for On Premise or Azure Deployment

1.2 Unpack the cab file downloaded from the marketplace

The cab file can be unpacked in two ways:

  1. If you have a third party unzipping program, you can right click on the cab file and use the unpacking tool.
  2. If you don’t have a third party tool, follow these steps:
    1. Open a command prompt. Start->run-> “cmd”
    2. Navigate to the location you stored the cab file
    3. “md CustomerPortal”
    4. “expand CustomerPortal.exe.cab –f:* CustomerPortal”

1.3 Solution Import: Error about cab files not being signed

“The cab file is not signed or digital signature cannot be verified”.

This error occurs for one of two reasons:

  • The incorrect cab file is being imported
    MicrosoftXrmCustomerPortal.cab
    and MicrosoftXrmPartnerPortal.cab are the solution cab files. Please make sure you’re importing one of these. They are in the root directory once you’ve unpacked CustomerPortal.exe.cab or PartnerPortal.exe.cab.
  • The root cab file was not unpacked correctly
    Please follow instructions above for unpacking the cab file

1.4 Solution Import: Schema validation error when importing the correct cab file

"The selected file is corrupted or it does not use the correct schema. Either select another file or modify the file to use the Microsoft Dynamics CRM migration template schema"

This error occurs when you are running on pre-RTM version of Microsoft Dynamics CRM 2011. The portals were developed against version 5.0.9688.583, so please make sure you’re running on a build greater than that.

Note: You can check the build you are running by going to your CRM client and navigating to File -> Help -> About Microsoft Dynamics CRM.

1.5 Installing both Customer and Partner portals in the same CRM instance

The steps are as follows:

  1. Install Partner Relationship Management Portal following the Partner Portal Deployment Guide. The PRM solution contains all the necessary components that are required for both portals to work.
  2. Install the Customer Portal website. Note – don’t install the CRM solution, just host the website on Azure. Skip to step #3 in the Deployment Steps section of the Customer Portal Deployment Guide.

You can install both solutions in step 1 as well if you’d like.

2. Live ID/Azure Setup

2.1 Getting the device id and password

Device ID and password are strings 12-22 characters long and are related to the live id so you can come up with any strings that meet the criteria. Please make sure note them down as you will need these values every time you connect to CRM Online with that particular Live ID.

2.2 Live-ID changes

Live ID no longer requires domain verification, so we don’t need to download the txt file and add it to the azure project. Additionally, the UI is different. Please refer to the updated Step 8 of the documentation here:

Customer Portal

Partner Relationship Management Portal

3. Partner Portal Access Issues

"You do not have sufficient permissions to view this page." in the Partner Portal

  1. Set the Parent Customer of the Contact (customer accessing the portal) to a Partner
  2. Set Account Relationship Type to "Partner"
  3. Invalidate the Cache
  4. Set access permissions for that contact following instructions in the documentation

4. Changing Membership Provider

If you’d like to use AD or IFD instead of Live ID for authentication, you can follow the steps in this blog:

http://www.shanmcarthur.net/crm/developers-corner/customer-portal-modifications-for-demo-vpc-without-internet-connectivity

While it is written for CRM 4, the process is identical for the CRM 2011 Portals as well.

The portals are designed to follow ASP.NET conventions. They should work with any legacy SSO solution that uses the IPrincipal mechanism of ASP.NET, or any membership provider that you plug into your site including the Active Directory or SQL membership providers distributed with ASP.NET.

5. WebsiteCopy.exe Utility fails when using Claims/IFD authentication
          OR
cannot connect to datacenters outside the US

WebsiteCopy.exe UI that was released with the portals on the Microsoft Dynamics Marketplace does not support Claims or IFD authentication. The UI will not allow providing only a username and password in the scenario where you have CRM installations with Claims/IFD auth. It also doesn’t connect to non-US organizations.

You can use one of two solutions for this:

  • Use the command line interface
  • Download CRM SDK version 5.0.3 or greater. The issue has been fixed in WebsiteCopy.exe released in the SDK

6. Language problems

The portals are English-only. We have not tested them in other languages.

If you are successfully able to import the Portal solution into your system and cannot activate workflows, you can try installing the English Language pack to your system. Alternatively, you can write your own workflows since the logic is pretty trivial.

6.1 System.NullReferenceException when trying to create/view a case

This issue occurs only in CRM orgs that do not have English as the base language. The *WEB* keyword needs to be in the service description and the case default subject and priority needs to be translated to the target language.

Palak Kadakia

Read the full article →

AppExchange All-Star: Luke Cushanick, 2tor, Inc.

June 27, 2011

Posted By: Sara Varni

Read the full article →

Writing a Multi-Currency Aware Roll-up Plug-in

June 24, 2011

Microsoft Dynamics CRM 2011 localizes in 42 languages. On any base language org, one can install language specific MUI packs and have the UI reflect in the language of the user’s choice. When considering global organizations that use MUI packs, the currency issue also becomes central. CRM has multi-currency handling built into the system. By navigating to Settings>Business Management > Currencies, one can create different currencies and specify the exchange rate as the base currency of the org. In this blog we will look into the challenges of writing roll-up plug-ins that is multi-currency aware.

Let’s consider a simple scenario where a business is running a campaign to raise money with a set goal. It’s a global business and the money is being collected through its subsidiaries in different countries.

  • To model and track the collections in CRM, it uses the out of box Campaign entity and a custom “Collection” entity.
  • To get the current collected amount of a campaign. The individual collections need to be rolled up to the parent campaign and displayed in USD.
  • To model the data the Campaign entity has two new custom fields:
    • Goal: A money field that tracks the target collection amount.
    • Collected: A money field that tracks the current collection amount.
  • The custom entity “Collection” also has two new fields:
    • Source: A string field to track where the money came from.
    • Amount: A money field to track the amount that was collected.

Interestingly, CRM has some built in features to help. Since the “Amount” field of the Collection entity is a money field, CRM will internally add the following fields.

  • Amount_base: Tracks the amount collected in organization’s base currency.
  • Transaction currency: Tracks the currency in which the amount was collected.
  • Exchange rate: Tracks the exchange rate that will be used to calculate the base currency value.

Notes:

* The transaction currency and the exchange rate are created once per entity. All money fields on a single record would use the same transaction currency and exchange rate.

* The base currency field is created once for each money field.

Instead of rolling up the Amount fields on the Collection entities, whose values may be in different currencies, the plug-in can roll-up the Amount field’s amount_base values and set the parent Campaign entity’s Collected field’s collected_base.

Here we run into another challenge due to the collected_base field being read only. So we can read the amount_base field on the Collection entity, but cannot set the collected_base of the Collected field on the Campaign entity. Interestingly, the Campaign entity also has the exchange_rate and transaction_currency fields which can be retrieved to calculate the currency specific value from base field.

For cautious developers, there are two more challenges to overcome. First is to check if the currency exchange rate has changed. If the currency exchange rate has changed the CRM platform will fetch the latest exchange rate to calculate the base value for given money field. So, rather than using the exchange rate of the Campaign record we need to use the transaction currency lookup and fetch the current exchange rate when calculating the currency specific value.

The second and last challenge is regarding simultaneous updates. Since CRM is a server, it’s possible that two Collection records are being created simultaneously and their registered plug-ins are running in parallel. CRM does not provide a way to serialize the plug-in execution or lock individual records. Thus it’s recommended that we run the plug-ins asynchronously and do roll-ups using aggregate queries rather than adding and subtracting the individual Collection amount to the Campaign’s collected value. In other words, every time a Collection entity is created, updated or deleted, the asynchronous plug-ins will aggregate all the amount_base fields for all Collection records and update the Collected field on the parent Campaign with the value = (total * exchange rate); the exchange rate is being fetched based upon the transaction currency associated with the parent Campaign.

With all this we now have a good working multi-currency aware roll-up plug-in.

Cheers,

Shashi Ranjan

Read the full article →

We’re at the midpoint of the bug contest. Get your’s in today!

June 24, 2011

We are approaching the midpoint of the SugarCRM Community Bug Fix Contest, and the entries have been slowly trickling in this week. I know everyone has that one annoyance, bug, or issue they’ve reported that they would love to be fixed once and for all, and now it’s your chance to do so and possibility win an [...]

Read the full article →

White Papers: Managed IT for CRM

June 23, 2011

I am pleased to let you know that the following Managed IT articles are now available via TechNet and MSDN.  As a result, these and future documents will now be available to our audience via MS Downloads, TechNet, and MSDN.  In addition, all white papers and technical articles developed by CRM UA are now consolidated in TechNet and MSDN under Technical Articles.

  • Developers – Content covering topics of specific interest to the Developer audience
  • IT and Administration – Content covering topics of specific interest to implementers and system administrators
  • Managed IT – Content covering topics of specific interest to system engineers and architects

clip_image001

These articles are designed to provide technical information of specific interest to Engineers and Architects planning and supporting Microsoft Dynamics CRM-based business solutions in Managed IT environments.

Special thanks go out to Inna Agranov and Amy Langlois for their assistance in helping me make this happen.

Cheers,

Jim Toland

Read the full article →

Unit tests can create a false sense of security

June 23, 2011

At SugarCRM we use PHPUnit as our unit testing framework. I like to think we apply it pretty rigorously in terms of always pushing changes with unit tests attached where appropriate. One artifact of this is that unit tests can add a false sense of security. Here is a real world example. I wrote some [...]

Read the full article →