Search: Outlook

Update Rollup 17 for Microsoft Dynamics CRM 4.0

May 9, 2011

The Microsoft Dynamics CRM Sustained Engineering (SE) team released Microsoft Dynamics CRM 4.0 Update Rollup 17 on Thursday, May 5, 2011.

The links below will take you to the necessary information about Update Rollup 17:

General details about Update Rollup 17

Update Rollup 17 is cumulative. However, the Update Rollup 17 CRM Client and Data Migration Client packages require Update Rollup 7 to be installed. For all other CRM components, you do not need to install any previous Update Rollups prior to Update Rollup 17.

The Update Rollup 17 download contains updates for the 40 supported Language Packs. Prior to installing the Update Rollup 17 Language Pack, you must install the original Language Pack.

If you have Language Packs installed, you should

1. Download the Update Rollup 17 Language Pack

2. Install the Update Rollup 17 Language Pack

3. De-provision the Language Pack

4. Re-provision the Language Pack

  • Information about how to avoid reboots when installing the CRM Outlook Client can be found in the Update Rollup 4 blog posting.
  • The Update Rollup 17 Client can be deployed before the server is upgraded to Update Rollup 17.
  • Steps to make the Update Rollup 17 Client available via AutoUpdate can be found in the Update Rollup 4 blog posting. The Link and Patch IDs can be found in KB article 2477746.
  • Each update rollup could have fixes that require manual configuration. Please see the “Hotfixes and updates that you have to enable or configure manually” section in KB article 2477746.

How to get support for Update Rollup 17

For support, please contact Microsoft Product Support. For a complete list of Microsoft Product Support Services telephone numbers and information about support costs, visit the following Microsoft Web site: http://support.microsoft.com/default.aspx?scid=fh;[LN];CNTACTMS.

Note: In special cases, charges ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

Cheers,

Matt Brown

Read the full article →

Demystifying Recurring Appointment update recurrence logic: How history of past instances is saved in CRM

April 25, 2011

Microsoft Dynamics CRM 2011 supports creating and managing recurring appointment. It also supports its bi-directional synchronization support with outlook calendar just like normal CRM appointments. In CRM 2011 user can create recurring appointment from web client user interface also.

Recurring appointment look and feel is almost similar to outlook recurring appointment. This is designed to provide user a similar experience. But there are two major differentiators as pointed in this blog also.

1. Outlook Recurring Appointments follow Rule based On-Demand expansion model while in CRM instances get created and persisted in Database as individual Appointment records. This expansion based model allows other components of CRM to work seamlessly on individual appointments records.

2. Unlike Outlook, CRM allows us to update recurrence rule of recurring series and still maintain past history of recurring series. On every update of recurrence information, past appointment instances of recurring series are preserved and they can be viewed from a common grouping link in recurring series records.

In this blog I wanted to share more detail on recurring appointment update series logic. At the end we will walk through an example to get more clarity on this.

How past instances are saved in CRM

In CRM when recurrence information is updated for a series we still keep the past instances of series. Unlike in outlook where all existing instances are deleted and new ones are created based on new recurrence pattern. It helps in preserving valuable information which might be associated with past instances. First let’s understand recurrence update. Update of any recurrence attribute (which can change recurrence definition) like occurrence, start date, end date, pattern end type, pattern type etc. comes under this category. From UI any update on recurrence dialog comes under this category.

An important thing to note here is that in CRM we only save history of past instances. If user updates any future instance the information will not be saved. Before starting on how actually past instances are saved in recurring appointment lets understand what could be various cases of recurring appointment series based on today’s date when user do recurrence update on series. There can be mainly three cases based on today’s date on which we do update series.

Case 1: Whole series lies in past

Case 2: Whole series lies in future

Case 3: Series starts in past and continues in future

Like the image shown below. In case 1 and case 3 only we need to save past history. As mentioned earlier in case 3 we will simply delete all instances and new expansion will happen based on new recurrence information.

clip_image002

Figure 1: Different cases of series based on Today’s date

I will like to give a brief introduction on metadata related to recurring appointment. For more detail please refer SDK documentation. We have introduced a new entity RecurringAppointment. For preserving instances of series we use same Appointment entity. Before going into logic of update recurrence we should be aware of two fields which play crucial role in update recurrence.

1. SeriesID – This is a new attribute in appointment entity. All instances are associated with their corresponding recurring appointment through this field. SeriesID of all instances is set to ActivityID of their recurring appointment master.

2. GroupID – This is a new attribute in recurring appointment entity. To save history of past instance we create a new recurring appointment master and associate past instances with it. All associated recurring appointments are linked through this field. There can be couple of recurrence update for same series. These all recurring appointment master share same groupid which is set to activityid of first recurring appointment master.

Now let’s start with recurrence update logic. This is what happens when recurrence information is updated for a series.

1. All future instances are deleted

2. If there are any past instances

      a. A new recurring appointment master is created in closed state with GroupID same as activity ID of current recurring appointment.

     b. SeriesID of all past instances is updated to this recurring appointment.

3. Current recurring appointment master recurrence info is updated which does expansion based on new recurrence rule with effective start date as today.

Below diagram explains it in detail.

clip_image004

Figure 2: Recurrence update series logic

As you can see after recurrence update a cloned recurring series is created and past instances refer this cloned master as their SeriesID. New instances created in future based on new recurrence information refer to same recurring series (with updated recurrence information).

A quick walkthrough with an example

Let us walk through this logic with an example. In this example we assume that today’s date is 10th March 2011.

User creates a series with

Start Date: 7th March 2011 End date: 12th March 2011

Pattern time: 10:00 AM – 11:00 AM Pattern Type: Daily

clip_image006

Figure 3: Recurrence definition of an quick example

On calendar it will look like:

clip_image008

Figure 4: On calendar expansion of series before update

A1 to A6 represents six appointments (instance) of series. R1 is the recurring appointment master. All instances have seriesID set as activityid of R1. Now let’s say user update recurrence pattern by changing appointment time to 11:00 AM – 12:00 AM (initially it was 10:00 AM -11:00 AM).

clip_image010

Figure 5: On calendar expansion of series after update

Now after update A1 to A4 are past instances as there pattern date is less than today. New recurring appointment R2 is created and SeriesID of all past instances (A1-A4) is updated to ActivityID of R2. A5’ and A6’ are new appointment created based on new recurrence rule. They still have R1 as its SeriesID. GroupID of R1 and R2 will be set as activity ID of R1. In this way we can group all recurring appointments which are associated.

Hope this example adds more clarity in the logic of update recurrence.

Cheers,

Niraj Yadav

Read the full article →

Getting CRM Data into Outlook

April 14, 2011

One of the first questions people ask when they begin using the Microsoft Dynamics CRM 2011 Outlook Client is “how can I control what CRM data appears in Outlook”? Syncing too much data can reduce performance, but you also want to have information …

Read the full article →

What’s New in Microsoft Dynamics CRM 2011

April 11, 2011

I was reading Sonoma’s new book Working with Microsoft Dynamics CRM 2011 and found this list to be very helpful. · Improved Microsoft Office Interface Microsoft Office 2007 introduced a new ribbon interface in products such as Excel and Word. Micro…

Read the full article →

Tutorials create Roadmaps to Success

March 29, 2011

For Microsoft Dynamics CRM 2011, we created a new type of content—tutorials. Each tutorial is meant to provide a kind of “roadmap” that answers the questions “How does this CRM feature make my job easier and more productive?”, “What do I need to know before I get started?”, and “What do I need to do?”

The tutorials are published on the CRM Resource Center. Here are just some of them—search for others in the Resource Center (Online or On-Premises):

Tutorials are meant to be end-to-end guides that help CRM users avoid frustration and needless expenditure of time and resources. Are they doing that for you?

Are you looking for other tutorials? Let us know in comments, or shoot me an e-mail: mscrmdf@microsoft.com.

Cheers,

Carola Klass

Read the full article →

The Best CRM System For You

March 24, 2011

CRM stands for Customer Relationship Management and aids with recognize, understand and improve customer service and create a good rapport and long term business relationships. Making the customer feel important and in turn improves customer satisfaction. CRM helps companies to understand respond and anticipate a customer’s requirements.

Read the full article →

Categorize Your Salesforce Events from Outlook

March 14, 2011

Posted By: Blake Markham

Read the full article →

Troubleshooting Solution Import for your Upgraded Microsoft Dynamics CRM 2011 Organization

March 14, 2011

So you have upgraded your Microsoft Dynamics CRM 4.0 organization to Microsoft Dynamics CRM 2011, and you intend to export all upgraded customizations and import them in each of your development/test organizations so that your team can unleash all their creativity by designing new customizations and trying out new extensibility features.

Transporting all your upgraded customizations to another org may not always be successful on the first try. You may encounter various import errors along the way that would require fixes to your upgraded org and a few iterations of export and import. But fret not, as most of these errors are fairly legitimate and are due to the new restrictions imposed by the CRM 2011 solutions framework. They were put in place to help you ship solutions with more reliable customizations. The typical error is similar to this:

"The dependent component [missing Component Type] (Id=[missing Component Id]) does not exist. Failure trying to associate it with [dependent Component Type] (Id=[dependent Component Id]) as a dependency. Missing dependency lookup type = PrimaryKeyLookup"

Our team has tested upgrade and customization transport of hundreds of highly customized databases. In doing such exercise, we discovered that most import failures fall under the same few buckets. I’m going to talk about what causes these common errors and how you can fix them.

Invalid Dependencies

Microsoft Dynamics CRM 2011 Solution Components may depend on each other. These dependencies are tracked so that the system can prevent someone from accidentally deleting a solution component that is required by another solution component. Microsoft Dynamics CRM 4.0 also had dependencies between customizable items, but the infrastructure to track them is much more robust in Microsoft Dynamics CRM 2011.

For example, a custom attribute you create on the Account entity can be added to its FormXml, or as a view column or filter criteria in a SavedQuery. It can be referenced in a workflow, in a plugin assembly, or in e-mail templates. In CRM 4.0, it may be possible to delete this custom attribute even if the components mentioned are referencing it. This is no longer possible in CRM 2011, since the dependency infrastructure prohibits delete of a component until all references of other components to it are removed. So what happens if you upgrade an organization to CRM 2011 in this state?

Firstly, this will not prevent organization upgrade from succeeding. However, once you export your customizations and import them in another CRM 2011 org, it will fail when dependency calculation takes place (Note: Solution Import is now treated as a single transaction, hence one import error will halt the entire process and rollback all the components that have been previously imported). In your import job log, you will get an error with similar to this:

"The dependent component Attribute (Id=new_mycustomfield) does not exist. Failure trying to associate it with Template (Id=58817a33-e52f-e011-8acb-00155db059be) as a dependency. Missing dependency lookup type = PrimaryKeyLookup"

In this case, the attribute new_mycustomfield was deleted in CRM 4.0 though it is still referenced by an e-mail template. With this error, it is already clear which components are problematic. To fix this, the template mentioned should be opened in the e-mail template editor and all references to new_mycustomfield must either be removed or replaced with another attribute depending on the business need for the template.

Here are some common invalid dependency occurrences:

  • Workflows/Processes depending on Attributes that no longer exist
  • Plug-in Steps referencing Attributes that no longer exist
  • FormXml referencing Attributes that no longer exist
  • FormXml referencing a Lookup to a Relationship that no longer exists
  • SavedQueries referencing Attributes that no longer exist (whether in the columns or filter criteria/fetchXml)
  • Templates referencing Attributes that no longer exist

You can fix these invalid dependency errors as they come based on the import log’s error message. However, if you have a lot of these in multiple components in your upgraded organization, it will take a lot of time, as you will fix errors only one at a time (solution import halts on the first error and does not process the rest) and you will be doing multiple exports and imports of your customizations.

There is a way of dealing with all invalid dependencies at once. Invalid dependencies are represented by an entity in CRM 2011 (search Microsoft Dynamics CRM SDK for search for InvalidDependency Entity Messages and Methods), and by using the API, particularly the RetrieveMultiple message, on this entity, you will be able to retrieve a collection of invalid dependencies in your upgraded organization. Dump the contents of these records in a text file for reference and make sure to include the values for at least these attributes:

Property

Display Name

Description

existingcomponentid

Existing Object Id

This is the GUID of the component that references a missing component, which in our example is the e-mail template. This is most likely the component you will modify to fix the invalid dependency.

existingcomponenttype

Existing Object’s Component Type

This is an integer representing what type of CRM component existingcomponentid is. To map the numeric values to their more recognizable names, search the Microsoft Dynamics CRM SDK for "Global Option Set Values" and see the Component Type section.

missingcomponentid

Regarding

This is the id of the missing component which was deleted when the org was in v4 state.

missingcomponenttype

Type Code

Like existingcomponenttype, this represents what type of CRM component the missing component is.

With the information you can get from retrieving the entire collection of invalid dependencies, you can deal with them right away without even exporting and importing your customizations yet. Applying this practice can save you lots of time.

Missing Dependencies

While invalid dependencies involve broken components because they are referencing non-existing components that were deleted before upgrade to CRM 2011, ‘missing’ dependencies issues occur when a component is dependent on another component that either was not exported in your solution, or cannot be imported to the target organizations for valid reasons. This can be better illustrated by the following scenarios:

Workflows depending on e-mail templates that are personal or made personal

Personal e-mail templates cannot be a part of a solution nor can it be exported. Hence, if you try to export any solution having a workflow that references a personal template, you will get this warning before you export:

clip_image002

If you decide to proceed with exporting the solution and importing to an organization that does not contain this personal template, it will fail with the Missing Dependency error right before import begins. (Note: Add Required Components button as described in the warning message will not work either, because personal templates cannot be added to any solution)

To get past this error, before you export, you can either

  • Make the template available to the organization
  • Remove the workflow from the solution or delete it.
  • Create a solution containing all other components except the workflow and export that instead.

Reports depending on child reports that are personal or made personal

Similar to the previous example, reports referencing other personal reports will yield the same result. In this case though, it is an option to convert the referencing report to personal as well so both the parent and child reports are personal and won’t be exported.

Workflows depending on e-mail templates in a different language that does not exist in target org

E-mail templates can come in different languages, even in previous Dynamics CRM versions. And as we’ve already implied, workflows can reference them as they can be used to send e-mails. So let’s say that, for example, your upgraded organization has an English (1033) base language with Japanese (1041) and German (1031) MUI packs installed and enabled. If you have workflows that use German or Japanese e-mail templates and you export, and then import the customizations into a pure English organization, import will fail while calculating dependencies because the templates in other languages, while they are processed, they are not created because their language does not exist in the target org.

Looking at the import job log, the template will have this warning: "You cannot import this template because its language is not enabled in your Microsoft Dynamics CRM organization."

While the workflow will have the error: "The dependent component Template (Id=abde9d8a-eb2f-e011-8acb-00155db059be) does not exist. Failure trying to associate it with Workflow (Id=2ef0864e-e6d9-4778-a1bb-858fe5e659cd) as a dependency. Missing dependency lookup type = PrimaryKeyLookup."

To get past this error, have all required MUI packs installed in the target organization. Or, if it is an option, package your customizations into different solutions such that the language-agnostic components are separate from the ones that depend on the existence of specific MUI packs.

Invalid Plugin Assembly/Steps Registration

This area is discussed in the Microsoft Dynamics CRM SDK so I will keep this short and quote some specifics along the way (search for "Upgrade Plug-ins and Custom Workflow Activities to Microsoft Dynamics CRM 2011", see "Post Upgrade Issues and Resolution" section).

Back in Microsoft Dynamics CRM 4.0, validations in plug-in registration were very limited. The system allowed incorrect values for plug-in images, entity attributes, and step registration attributes. In CRM 2011, this is no longer the case as full validation is already in place. So, again, what happens when you upgrade an organization to CRM 2011 having plug-ins registered incorrectly?

The short answer is, again, upgrade will not be blocked by such issues. However, exporting then importing them to another org is a different story as this full validation kicks in during import. To resolve import issues due to this, all plug-in registrations must be re-evaluated to make sure that they don’t fall under these known configuration issues (taken from SDK):

  1. Specifying an invalid attribute in an image or step. For example, the attribute name is not spelled correctly or the attribute does not exist in Microsoft Dynamics CRM 2011.
  2. Registering a pre-image for a CreateRequest or a post-image for a DeleteRequest.
  3. Specifying an incorrect deployment type. For example, registering a plug-in to execute on an assign of an account for deployment on Microsoft Dynamics CRM for Microsoft Office Outlook with Offline Access when that message and entity combination is supported only on the server.

Understanding these three major buckets will help speed up the process of getting your upgraded customizations to import in other CRM 2011 organizations, as around 90% of the ‘first-try’ import failures in our customer database upgrade testing fall under these three. Go forth and have fun exploring the new extensibility features in Microsoft Dynamics CRM 2011!

Cheers,

Greg Alicbusan

Read the full article →

Update Rollup 16 for Microsoft Dynamics CRM 4.0

March 10, 2011

The Microsoft Dynamics CRM Sustained Engineering (SE) team released Microsoft Dynamics CRM 4.0 Update Rollup 16 on Thursday, March 10, 2011.

The links below will take you to the necessary information about Update Rollup 16.

General details about Update Rollup 16

Update Rollup 16 is cumulative. However, the Update Rollup 16 CRM Client and Data Migration Client packages require Update Rollup 7 to be installed. For all other CRM components, you do not need to install any previous Update Rollups prior to Update Rollup 16.

The Update Rollup 16 download contains updates for the 40 supported Language Packs. Prior to installing the Update Rollup 16 Language Pack, you must install the original Language Pack.

  • If you have Language Packs installed, you should
    1. Download the Update Rollup 16 Language Pack
    2. Install the Update Rollup 16 Language Pack
    3. De-provision the Language Pack
    4. Re-provision the Language Pack

Information about how to avoid reboots when installing the CRM Outlook Client can be found in the Update Rollup 4 blog posting.

The Update Rollup 16 Client can be deployed before the server is upgraded to Update Rollup 16.

Steps to make the Update Rollup 16 Client available via AutoUpdate can be found in the Update Rollup 4 blog posting. The Link and Patch IDs can be found in KB article 2477743.

Each update rollup could have fixes that require manual configuration. Please see the “Hotfixes and updates that you have to enable or configure manually” section in KB article 2477743.

How to get support for Update Rollup 16

For support, please contact Microsoft Product Support. For a complete list of Microsoft Product Support Services telephone numbers and information about support costs, visit the following Microsoft Web site: http://support.microsoft.com/default.aspx?scid=fh;[LN];CNTACTMS.

Note: In special cases, charges ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

Cheers,

Matt Brown

Read the full article →

Recently Visited List and Sitemap Menu

February 25, 2011

Microsoft Dynamics CRM 2011 has some cool new features that allow for a more efficient navigation. There is the Recently Viewed List, the Sitemap menu and the List Navigation. I love them because they make me more productive navigating CRM. Curious? Re…

Read the full article →