Top 10 Data Migration Traps

While planing for the data migration item for one of my project, found this great article by Bruce Buxton which explains top 10 data migration traps. It was good to know as prevention is always better than cure 🙂

http://www.xrmconsultancy.com/2013/10/top-10-data-migration-traps/

Advertisements

DID YOU KNOW? List component for SharePoint integration deprecated with CRM 2015 Update 1


[Referencing The Microsoft Dynamics CRM Blog]

The Dynamics CRM to SharePoint integration has always been a key solution to document management within CRM.  With two currently available solutions, the List Component and new server-based SharePoint integration, CRM is pleased to focus our efforts on the server-based integration.  Dynamics CRM 2015 Update 1 will deprecate the List Component as a result of SharePoint’s deprecation of the sandbox solution, a dependency of the List Component.

Customers with List Component are advised to upgrade to the server-based SharePoint integration.  With CRM 2015 Update 1, server-based integration gains hybrid support between CRM Online and SharePoint On-Prem.  In a subsequent release, CRM will support CRM On-Prem to SharePoint Online and CRM On-Prem to SharePoint On-Prem.  SharePoint Online or SharePoint Server 2013 SP1 and above is required for server-based integration.

DID YOU KNOW? You can update owner and status with a single Update request in CRM 2015 with Update 1

Before CRM 2015 Update 1 release, specialized messages were required to update certain entity attribute values. These were AssignRequest to change owner of a record, SetStateRequest to change status of a record, SetParentSystemUserRequest, etc. In this release, UpdateRequest can now be used to set these attributes.

Thus with Update 1 release following specialized message will be deprecated.

  1. AssignRequest
  2. SetStateRequest
  3. SetParentSystemUserRequest
  4. SetParentTeamRequest
  5. SetParentBusinessUnitRequest
  6. SetBusinessUnitRequest
  7. SetBusinessEquipmentRequest
  8. SetBusinessSystemUserRequest

These specialized messages will continue to work with the 2011 endpoint. However, the recommendation is to use the UpdateRequest or Update method when possible to set these attributes. The Update message simplifies the SDK API and makes it easier to code standard data integration tools used with Dynamics CRM. In addition, it is easier to code and register a plug-in to execute for a single Update message instead of multiple specialized messages. The AttributeMetadata.IsValidForUpdate property for the above listed attributes has been changed to true in this release to enable this capability.

For plug-ins, when update requests are processed that include both owner fields plus other standard fields for business owned entities, plug-ins registered for the Update message in pipeline stage 20 and/or stage 40 execute once for all non-owner fields, and then once for the owner fields.

For workflows, when update requests are processed that include both owner fields plus other standard fields, workflows registered for the Update message execute once for all non-owner fields, and then once for the owner fields. Workflows registered for the Assign message by users continue to be triggered by updates to owner fields. When update requests are processed that include both state/status fields plus other standard fields, workflows registered for the Update message execute once for all non-state/status fields, and then once for the state/status fields. Workflows registered for the Change Status step continue to be triggered by updates to state/status fields.

Invoice and Invoice Line data import in Dynamics CRM

Recently I found that many people have issues importing old Invoices either from legacy system into Dynamics CRM. This is manly in scenarios where Products are not maintained in CRM. In this case import of Invoice Line throws error as the data import template for Invoice line do not have relationship with Invoice. Below are the steps that can be followed to fix the issue.

Invoice lines is a relationship between invoice and products. Thus if you need to add invoice lines, you need to add products using the “Product.xml” template file. But in our case as we don’t maintain Products in CRM, while importing Invoice lines, add invoice number of imported invoices in CRM in a separate column and select the Product as write-in in import file.

For importing Invoice lines, you need to download the “Invoice Product.xml” template file.

All the mentioned templates can be downloaded from “templates for Data Import” in Data Management section in Settings.

  1. Export Invoice Product.xml
  2. Add Invoice Line data in the xml with below values.
    1. Set “Select Product” column value to “Write In”.
    2. Add a new column “Invoice ID” and set the value to Invoice ID field of respective Invoice.
  3. Save and import the file.

4. Import the above xml file.

5. During Import wizard, on Review Mapping Summary Page, click on Edit.

6. In Map Fields, for Invoice ID row click on the look up reference and select “Invoice ID” field and click Ok.

7. Click Next and progress with the import process.

Probably issue with many users follow is at step 7. Invoice ID field is by default map to Invoice name and Invoice GUID field.

Hope this helps!

DID YOU KNOW? Connecting a Microsoft Dynamics CRM on-premises deployment to Yammer requires disabling secure channel.

Yammer gives colleagues at your organization a central place to have conversations, create and edit documents, and share information without sending a single email or attending any meetings.

After you set up your organization to work with Yammer, employees will see posts in a newsfeed on their Microsoft Dynamics CRM dashboard whenever people update customer info, and they’ll be able to join in the conversation with their own posts.

If you are connecting a Microsoft Dynamics CRM (on-premises) deployment to Yammer that is not using Internet-facing deployment (IFD), you need to run the following PowerShell commands to disable secure channel HTTPS.

You shouldn’t run these commands if you are deploying Microsoft Dynamics CRM (on-premises) with IFD.

  1. Open a Windows PowerShell command window.
  2. Add the Microsoft Dynamics CRM PowerShell snap-in:

    Windows PowerShell

    Add-PSSnapin Microsoft.Crm.PowerShell

  3. Enter the following:

    Windows PowerShell

    $itemSetting = new-object ‘System.Collections.Generic.KeyValuePair[String,Object]'(“AllowCredentialsEntryViaInsecureChannels”,1)

    $configEntity = New-Object “Microsoft.Xrm.Sdk.Deployment.ConfigurationEntity”

    $configEntity.LogicalName=”Deployment”

    $configEntity.Attributes = New-Object “Microsoft.Xrm.Sdk.Deployment.AttributeCollection”

    $configEntity.Attributes.Add($itemSetting)

    Set-CrmAdvancedSetting -Entity $configEntity

  4. Then, run the following command at a command prompt: iisreset

More details steps can be found here.

DID YOU KNOW? Setting default price list for opportunities in CRM 2015

New system setting is introduced Sales territory change in CRM 2015 to set default price list in opportunity. If this setting is set to No following territory configuration won’t work. This setting comes in picture while setting Territory based default price list.

Default Pricelist 1

For this, create a territory (e.g. USA) -> add Manager. Multiple members can be added by clicking Members in Common section in left navigation -> Add members.

Once territory is created, create price list –> add price list items -> in territory relationship grid add territories (e.g. USA) for which current price list should be default.

Default Pricelist 2

Save changes and now as per our configuration, for territory manager and members inside territory, Shirts Price list becomes default i.e. pre-populated while creating new opportunity. Price list can be changed if required.

Another approach to set default pricelist for opportunity is to create a simple business rule on opportunity form which sets value of field Pricelist. Once business rule is activated, for every new opportunity default price list is set.

Note: Business rule overrides Sales Territory settings. System setting shown above does not affect business rule.

Please refer below link for more information

https://technet.microsoft.com/en-us/library/dn531129.aspx

The new form rendering engine

***[Referencing to Microsoft Dynamics CRM Team Blog]

In Microsoft Dynamics CRM Online 2015 Update 1 (v7.1), a new form renderer was built to provide better performance. Forms will load significantly faster and more efficiently. The new renderer is based on previous generations and has the same functionality and behavior. However there are some things that admins and developers need to do to ensure full compatibility when upgrading.

What will users notice?

End users will not notice anything different, other than forms loading faster. The new form rendering engine has full support for client scripting (Write code for Microsoft Dynamics CRM forms), uses the same XML definition (Form XML schema), and has the same behaviors all around. There have been no fundamental changes made in terms of what the form does.

In order to help catch unsupported customizations, we added a dialog that displays the issue when script errors occur so that they do not fail silently. If these symptoms occur then it is likely there are unsupported customizations in the system.

What changed?

All the changes have been focused on how the form load process can be optimized. There are 2 main changes that have been made: loading process of the form, and handling of cache.

In terms of loading process, we have parallelized as many operations as possible to eliminate time wasted because the browser is idle. We increased the content that’s cached, moved rendering processes partially to server-side, and optimized the initialization of controls.

Form load used to be a very linear process. Since the new form renderer is more parallelized, the rendering engine now constructs the form and XRM model first and binds the data whenever the server responds. The diagram below is a rough approximation in order to illustrate the differences between the 2 rendering engines and may not reflect the exact changes.

Forms also used to waste a lot of resources. Since they were hosted in iframes, the iframe would be discarded and reloaded on each form load. The new form renderer does not discard iframes and instead keeps the iframe around. All common scripts are already parsed and never need to be loaded again. This introduced the design to load custom scripts and ISV scripts in a separate iframe which is the one that’s discarded when the form closes.  Previously, these scripts would be loaded in the same iframe as the form.

In summary:

  • Iframes are now kept throughout the user session
  • Custom scripts are loaded in separate iframes
  • No changes in supported scripts or form
    capabilities

What do I need to do?

As an admin or developer there are some things to be aware of. Because the new form rendering engine makes changes to how iframes are organized, any attempt to access unsupported APIs or use direct DOM manipulations may fail and need to be fixed.

Customers should all make sure to test their organization in sandbox mode to preview before upgrade. This way, should any symptoms show up around forms not loading/script errors, you will be able to catch and fix it
before upgrade.

Examples of things that will break:

  • Any attempt to access DOM in the content iframe using JS, jQuery or other 3rd party libraries (document.getElementById() or jQuery selectors)
  • Creating a new HTML content in the parent window for persistent content (and assumed that the parent window was the main CRM iframe.
  • Window.load, parsing iframe/form URL
  • Attempting to use unsupported (non-XRM) APIs, especially undocumented ones that may have been shipped with CRM for internal usage only
  • Accessing window.parent() from a web resource that may assume for example there’s a variable set in the current window context.

In order to help identify potential issues, the CRM 2015 custom code validator can be used. It’s primary purpose is to identify usage of deprecated APIs but it will also attempt to flag usage of unsupported APIs. The tool can be found here: https://www.microsoft.com/en-us/download/details.aspx?id=45535.  Developers should also review their scripts to ensure only supported APIs are being used.

Customers that have 3rd party solutions should reach out to their partners for updated solutions that have been verified to work with the new form rendering engine. While most are expected to continue to work, those with unsupported customizations need to be updated.

Fallback options

In case there is difficulty identifying the issue or a backup plan is needed post-upgrade, we have introduced an organizational-level fallback to temporarily allow usage of the legacy rendering engine. This will ensure compatibility at the cost of performance. Do not rely on this solution long term as the plan is to remove this option in the following release.

This setting can be found under Settings -> Administration -> System Settings -> General. Select “Yes” under “Use legacy form rendering” to enable this mode for all users.

If script errors are showing up, or if forms are not behaving as intended, this setting can be used to diagnose if the problem is specific to the new form rendering or not. If it is due to the new form rendering engine, then most likely there are some unsupported customizations.

If you are the owner of the scripts, make sure that there are no unsupported customizations. Otherwise reach out to the provider of the solutions for an updated solution.

View article…

Microsoft Dynamics CRM Online 2015 Update 1 (7.1.0) Product Documentation is Available!

***[Referencing to Microsoft Dynamics CRM Team Blog]

Check out the new documentation for Microsoft Dynamics CRM Online 2015 Update 1 (7.1.0).

What’s new in this update

Everything you need to learn about – and prepare for – the new features is on these pages:

Information for IT pros, administrators, implementers, and customizers

For CRM administrators and customizers, this update includes:

Information for developers

For developers this update includes:

All new code samples for this update are available on MSDN Developer code samples:

We are in the process of migrating our codes samples out of the downloadable SDK package and make them available online so that they can be discovered more easily.

Finally, please visit the new responsive Microsoft Dynamics CRM Developer center at http://crmdevelopercenter.com/. Be sure to try the new search, which is filtered to return only MSDN library content from the Microsoft CRM SDK

Information for end-users

www.CRMhelpandtraining.com

For end-users, this update includes new topics and updates to the Training & Adoption Kit.

  • New Mobile User’s Guide –  Find out how to install the new phone app, work offline, and manage your leads through the sales process

  • Updated Training & Adoption Kit! The popular, easy-to-customize PowerPoint source files are right here – all ready for you to use for your own training, presentations, and webinars.

Enjoy the new features!

We hope this new content gets you going on all the new features of this online update.

As always, you can find your way to all documentation by visiting the central portal for all the CRM content sites: the CRM Help Center.

Let us know in the blog comments what you think of the new content – of if there’s something else you need. Give feedback to the Documentation Team at any time.

http://blogs.msdn.com/b/crm/archive/2015/05/01/product-documentation-for-microsoft-dynamics-crm-online-2015-update-1-7-1-0-is-available.aspx

 

White Paper: Microsoft Dynamics CRM Online patterns & principles for solution builders

In the world of Microsoft Dynamics CRM, the shift to the cloud is well underway. Microsoft Dynamics CRM Online is growing by leaps and bounds, including sales to massive customers with huge user counts.

You may believe that the difference between building a solution for an on-premises and an online deployment consists of a few technical details, like the requirement to use FetchXML for reports in online deployments, or the requirement to sandbox plugins. But in reality, the differences are much deeper than that. To truly build a high-quality solution for Microsoft Dynamics CRM Online, you need to do more than simply build the on-premises way and then check a few extra boxes.

The Microsoft Dynamics CRM Online patterns & principles for solution builders whitepaper describes the new mindset required to successfully design solutions for online deployment. Check it out at the following location!

Download: Patterns and Principles for CRM Online Solution Builders.pdf

View the original article here.

Product Bundles VS Product Kits in CRM 2015

If you’ve used Product Kits in the past, you’ll be familiar with Product Bundles. Bundles are an enhanced version of Product Kits (e.g., you cannot view Kit Items when selling a Kit, but you can with a Bundle – see the Opportunity screenshot below). Product Kits will not be going away with CRM 2015, but instead Bundles will be an additional option users can use along with Kits.

Product bundles provide a superior way to group common products together to be sold with more attractive package pricing (using price lists). Bundles are similar to kits (which still exist and have not changed) but are greatly enhanced. For example, unlike kits, bundled products are visible to the salesperson on the opportunity, quote, order or invoices as they are entering line items. Additionally, the quantities and properties of the bundled products can be edited on the line items.

The following table highlights the key differences between Kits and Bundles.

Kits Bundles
All the products in a kit are mandatory. Some products in a bundle can be optional.
Kits support nesting; you can add a kit to another kit. You can’t add a bundle to another bundle. You can only add products to a bundle.
While adding a kit to an opportunity, quote, order, or invoice, you can only see the kit level details; you can’t see individual products in the kit. While adding a bundle to opportunity, quote, order, or invoice, you can see the bundle level details as well as individual products in the bundle.