Looking for PowerObjects? Don’t worry, you’re in the right place! We’ve been part of HCL for several years, and we’ve now taken the final step in our acquisition journey: moving our website to the HCL domain. Nothing else is changing – we are still fanatically focused on Microsoft Business Applications!

PowerObjects Blog 

for Microsoft Business Applications


CRM 2011 Instance Adapter Initial Integrations, Entity Order and Relationships

Post Author: Joe D365 |

When running your integrations between two CRM organizations with the Connector for Microsoft Dynamics and Microsoft Dynamics CRM 2011 Instance Adapter, it’s important to run your integrations in a specific order. Currently, the Connector does not offer a mechanism for ordering, so the task falls on the integrator.

The areas of concern are Picklists (Optionsets), system level entities (e.g. Business Units, Users, Teams) and entities with hierarchical relationships. We’ll highlight these concerns in the following sections.

Picklists (Optionsets)

Before you do anything else, you should integrate your picklists between the two organizations. Every entity has the possibility of having an optionset associated with it and you need to make sure that they are the same on either side.

What the Picklist integration does:

  • Will add any options to existing optionsets on the destination organization that are present in the source organization and not in the destination yet.
  • Will create new global optionsets if they do not already exist on the destination organization.

What the Picklist integration does not do:

  • Will not create new local optionsets on entities.

System Level Entities

While the CRM Instance Adapter is extremely capable when it comes to transferring data between organizations, there are some special cases to be aware of when transferring entities between the two systems. The following is a list of those entities:

Business Units

Upon installing and configuring CRM, you are required to create a business unit. This becomes your root business unit, thereby making it impossible to transfer a root business unit from a different organization. If you want to have a separate business unit to represent the transferred data from the source organization, you have to create one manually. The Adapter is written so that, in the case of any entities that rely on the Business Unit, the name of the business unit is used to find matches. When creating or modifying the business unit on the destination organization, make sure it matches the name of the business unit in the source organization.

Users

Since the Adapter is capable of transferring data between an on-premise environment and an online organization, it needs to be capable of relating users that may not share the same GUID or domain name. To accommodate this requirement, the Adapter utilizes the full name of the contact as its method for doing the matching. In the case of an online destination organization, you will need to create the users manually and associate them with the organization before being able to utilize them as references.

Teams

Teams are dependent on both Business Units and Users being configured before integration.

Security Roles

Security Roles are dependent on both Business Units and Users being configured before integration.

Entity Relationships

Throughout CRM, there are a ton of dependencies.  One example of one such dependency is the account and contact entities.  A contact entity can be associated with an account both as a child record and as a parent record.  You might be asking yourself, if these kinds of dependencies exist, how are you supposed to have all the records relate to each other?

The great thing about the Microsoft Connector and the configuration utility for the Dynamic CRM Adapter, is that they’ve been configured so that if a reference isn’t found the entity will still be created on the destination organization.  In addition, because the adapter is capable of updating entities as well as configuring them, we’re able to add detail back into them later.

In this manner, it’s good to run all mappings through the connector twice; once for the initial migration of the entities and a second time to resolve all their relationship dependencies.  Luckily, the Connector for Microsoft Dynamics handles this inherently if utilizing a continuous integration between your two organizations.  If you were not utilizing the continuous integration feature in your integration, you’d need to run each mapping manually a couple of times in order for the updates to take place.

Joe CRM
By Joe D365
Joe D365 is a Microsoft Dynamics 365 superhero who runs on pure Dynamics adrenaline. As the face of PowerObjects, Joe D365’s mission is to reveal innovative ways to use Dynamics 365 and bring the application to more businesses and organizations around the world.

19 comments on “CRM 2011 Instance Adapter Initial Integrations, Entity Order and Relationships”

  1. Hello, migrating a onpremise to online your blog is a gold mine for me. I just would add that the user logon (eg : admin@MyAccount.onmicrosoft.com) is case sensitive, and that its impossible for the incidents to be imported if they are closed or canceled (i use temporary states and will run a workflow to close the incidents)

    1. Hi Fabrice,

      Glad to hear our blog was helpfull. Yeah - we'll add a blurb about the logon being case sensitive.

      Regarding migrating the incidents. We heard that a future release will be supporting migrating closed/cancelled incidents. In the meantime your method of using a workflow is a good workaround. Thanks!!!

      1. Hi,

        Just to know, I'm trying to copy the email entity, but i get some errors like this one : has encountered an error while processing key [5a245da2-a9c8-e011-8391-00215aaca30e]. The given key was not present in the dictionary.

        The mail is integrated, but the to: and from: is not filled, but after some retries, and it's duplicated. I looked in the mapping files but everything looks fine. I tryed too to remove everything but the subject and the description, but I have the same error.

        I'm looked for log file to know with key is missing or in the eventviewer, but didn't find documentation on the web (but yours)
        Do you have an idee?
        Have a nice day

        1. There is a fix that is in the works that will rectify this issue soon. We'll update when Microsoft has released.

          1. It seemed, but after the first look, the mails with mail adresses which are not in the crm are not imported (eg : the ones imported via the Outlook plugin) 🙁

          2. Hi Fabrice - we'll take a look. So emails where the recipient is not resolved in crm and is just an email address ?

  2. Trying to setup a test CRM environment with the Connecter (for CRM Online client - no testing ability). Are the entities *Account* and *Contact* created with/for the Connector when installed as a solution?

    1. Hi JMD,

      The connector will synchronize data, but not the actual entities and fields. If you are creating a test crm enviornment, first move all customizations. Only then use the connector to sync the data.

    2. Yes JMD. They are to maintain the details of the deleted records (i.e Deleted Accounts and Deleted Contacts ) Information.

  3. I've been using the connector to do a migration form CRM on prem 2011 to CRM online. Some entities are going across fine and others are failing for strange reasons. Campaigns went 100%, Leads only 4989 out of 27000+ went across. Account 99.9%. Contacts about 50% migrated. I just can't work out why certain entities are struggling. Any tips?

    1. HI matt - the order of the entities matter a ton. So if leads require another entity such as a picklist to lead source or relationship to entity xyz we need to do those entities first. Often the first thing we do before a migration is to mapout dependencies. Then turn the mappings on/off so we get the proper order.

      1. Also - one other thing to check is deleted values from picklists. For example if we had a picklist with value 5 then deleted this value. The old data will have it and the crm web service will not allow an insert with a picklist value that now no longer exists.

  4. I'm getting an error stating the transactioncurrency doesn't match, and it's importing nothing... any thoughts?

    1. Hi - We need to make sure the sequence of the import
      is correct (like all the look-ups and trivial entities like business units,
      base currency etc. should be filled before importing the entities which use
      these as loo-ups).

  5. Hi,
    Is it supported to migrate from one base language to another, e.g. UK on prem 2011 to DK 2013 online?
    I guess that I at least have to do all the field mapping manually or will the "" option work in this case as well?

    Best Regards

    Jacob Mondrup

PowerObjects Recommends