Search: CRM+Live

Announcing Microsoft Dynamics CRM SDK Update V5.0.4

June 6, 2011

imageMicrosoft Dynamics CRM SDK Version 5.0.4 is now live on MSDN downloads and MSDN library. This update includes the following:

The next SDK update is scheduled for the end of July. Help us set priorities for future updates:  Send Feedback

Amy Langlois

Read the full article →

Integrating Mapping with Microsoft Dynamics CRM 2011

May 27, 2011

Today latitude and longitude can be important in your daily use of Microsoft Dynamics CRM 2011 if you take the time to understand the impact and what it means for your CRM data but before we get to the CRM aspect it’s time for a quick update on GPS a…

Read the full article →

Microsoft Dynamics CRM 2011 Online – Go Live Checklist

May 24, 2011

We’ve designed the Go Live Checklist to improve your overall experience with Microsoft Dynamics CRM Online, even before your business begins using the solution.

This document is a compilation of common configuration settings and tasks to help keep your CRM Online organization optimized so you can focus on what’s most important. This document also includes important online resources your entire business can leverage over and over again.

Who is this document for?

The Go Live Checklist is tailor made for every Microsoft Dynamics CRM Online Admin and user. It was created by the Microsoft Dynamics CRM Technical Support Team in hopes that it would improve your experience with our product.

Cheers,

Rich Choi

Read the full article →

Live Webcast – Customer Treatment Strategies for Banking

May 24, 2011

Complimentary Webinar Wednesday, May 25th | 12:00PM Eastern

As the world recovers from the global financial crisis, the banking industry is faced with many challenges: rebuildin…

Read the full article →

Recover your deleted CRM data and recreate them using CRM API

May 23, 2011

Have you ever lost some your business records in Microsoft Dynamics CRM by accidently deleting them? Are you wondering how to recover them re-create them in CRM, without having to go through much of the tedious manual efforts.

Prior to Microsoft Dynamics CRM 2011, we used the “soft-delete” method, where when someone deleted a record, the record will not be actually deleted from the database immediately. Instead the record would be internally marked with IsDeleted = true, and there will be a CRM Deletion Service which will run an Asynchronous System Job once a day, which would actually pick up the records marked with IsDeleted = true and actually delete them from the database. So you could have used workarounds to recover the recently deleted data if it had not yet been deleted by the Deletion Service.

With CRM 2011, there are no more soft deletes in CRM, the record is actually deleted from the database right away. So, this becomes important than ever before. But CRM has the very powerful “Auditing” capability. Provided, you had Auditing turned on for those records, you can look at the Audit logs and find out all the changes that happened on your record including the deletion.

In this blog, I am going to walk you through a simple way with which you can use Audit logs to recover your lost data and recreate them in CRM. Of course, there will be minimal manual effort involved, but since we are using the CRM API for most of the recovery/re-creation work, this will definitely save you a lot of time, especially if you have a heavy volume of records you want to recover.

How do I find the Audit record I need to recover

In the web application, go to Settings->Auditing->Audit Summary View.

You can use the various filters and find the atleast one audit record for the entity you want to recover. Right click the audit record, and say copy a link. This copies the url to Audit Record including the Id. Paste the contents into clipboard, and you can find out the Id of Audit record.

How do I use the sdk to re-create the entity from the Audit record:

Once you have the Audit record’s Id, you can use the following code that uses the CRM API

// _service is the OrganizationService. // Please refer to the samplecodes in crm 2011 SDK on how to create this _service. // Guid of the Audit Record // E1CFF208-277B-E011-BB2B-001F29E1FC88 is the Id of the Audit Record in this example Guid auditId = new Guid("E1CFF208-277B-E011-BB2B-001F29E1FC88"); RetrieveAuditDetailsRequest request =new RetrieveAuditDetailsRequest(); request.AuditId = auditId; RetrieveAuditDetailsResponse response = (RetrieveAuditDetailsResponse) _service.Execute(request); AuditDetail auditDetail= response.AuditDetail; Audit audit = (Audit) auditDetail.AuditRecord; EntityReference entityAudited = audit.ObjectId; Guid entityId = entityAudited.Id; string entityLogicalName = entityAudited.LogicalName; // Retrieve the audit records for entity. RetrieveRecordChangeHistoryRequest changeRequest = new RetrieveRecordChangeHistoryRequest(); changeRequest.Target = new EntityReference(entityLogicalName, entityId); RetrieveRecordChangeHistoryResponse changeResponse = (RetrieveRecordChangeHistoryResponse)_service.Execute(changeRequest); AuditDetailCollection details = changeResponse.AuditDetailCollection; for (int count = 0; count < details.Count; count++) { if(typeof(AttributeAuditDetail).Name == details[count].GetType().Name) { AttributeAuditDetail detail = details[count] as AttributeAuditDetail; // This is a safety check to verify // if the audit record is for the delete operation if(detail.NewValue == null && detail.OldValue != null) { Entity entity = detail.OldValue; _service.Create(entity); // The audit records are recorded in the order // from latest to older. So, it's ok to break since you've recreated // from the latest snapshot of the entity, just before deletion break; } } }

Instead, if you’re able to find exact audit record for the delete operation you want to recover, you can simply use the following code to recreate the record, instead of the code described above:

// AACFF208-277B-E011-BB2B-001F29E1FC88 is the Id of the Deletion Audit Record Guid auditId = new Guid("AACFF208-277B-E011-BB2B-001F29E1FC88"); RetrieveAuditDetailsRequest request =new RetrieveAuditDetailsRequest(); request.AuditId = auditId; RetrieveAuditDetailsResponse response = (RetrieveAuditDetailsResponse) _service.Execute(request); _service.Create(response.AuditDetail.OldValue);

You can use the sdk calls to retrieve the id of the audit record itself without going through the web UI, but to keep this simple, in this example, I’ve used the web UI method to filter out the Audit records to find the one I need to recover. Also if you have a huge volume of data, this becomes handy and you can just find the AuditIds and add to a list and loop through them.

Hope this helps and makes your recovery of data a smooth experience!

Uma Anbazhagan

Read the full article →

Live Webcast: Align Your Brand to What Consumers Demand

May 20, 2011

Complimentary 1to1 Webinar Tuesday, May 24th | 2:00PM Eastern
Consumers are a fickle bunch, often swayed by flashy promotions and discounts. Additionally, advances in social networking and mobility have fundamentally changed the way customers be…

Read the full article →

LinuxTag recap

May 19, 2011

Last week I spent a few days at LinuxTag 2011 in Berlin, Germany. This is quite an interesting an unique conference for me, as normally the conferences I attend are web and developer focused. LinuxTag has the interesting mix of developers, users, IT professional, and hackers. And when I say hackers, I mean hackers; folks [...]

Read the full article →

Released! Customer Care Accelerator for Microsoft Dynamics CRM 2011

May 13, 2011

imageThe Customer Care Accelerator for Microsoft Dynamics CRM 2011 officially went out the door for folks today and it is now available publicly. You can head over to Microsoft Pinpoint and pick it up here or you can find it on the Dynamics Marketplace here.

As a bit of a teaser… here are two screen shots of the new interface provided as part of the Reference Implementation for CCA.

imageimage

And a bit of a rehash from my previous post on this:

Here are a few highlights to help you be prepared and knowledgeable on CCA for Microsoft Dynamics CRM 2011.

  • First, The Customer Care Accelerator R1 will continue to fully Microsoft Dynamics CRM 4.0.
  • The Customer Care Accelerator R2 and User Interface Integration (UII) for Microsoft Dynamics CRM 2011 is scheduled to be released on April 15, 2011.
  • The Customer Care Accelerator R2 and UII will fully support Microsoft Dynamics CRM 2011 Online and Microsoft Dynamics CRM 2011 On-Premises.
  • The UII framework will support all of the authentication models supported by Microsoft Dynamics CRM 2011, including Active Directory, IFD (Internet Facing Deployment), Live (for Microsoft Dynamics CRM Online) and partial support for Claims (Security Assertion Markup Language — please see the Microsoft Dynamics CRM 2011 SDK and Installation documentation for more information on Claims/SAML support).
  • The Customer Care Accelerator R2 and UII for Microsoft Dynamics CRM 2011 have been updated to .net 4.
  • The Customer Care Accelerator R2 will include updated and restructured reference implementation, providing several prebuilt scenarios to help partners and customers get a jumpstart on learning how to work with the building blocks within the UII. As an example, one of the scenarios will include creating user sessions from various activity types in CRM, and using UII tasks to create cases.
  • The Hosted Application Toolkit (HAT) will be updated for .net 4.0 using the .net 4.0 workflow engine and HAT will fully support Visual Studio 2010

Let me know what you think.

Matthew Barbour

Read the full article →

The CRM TechNet Wiki – one person’s perspective

May 11, 2011

Today’s guest blogger is CRM MVP Jerry Weinstock who is the Business Development Manager at CRM Innovation. CRM Innovation builds Email, Marketing and Event Management solutions for Microsoft Dynamics CRM. In March a fellow MVP – George Doubinski …

Read the full article →

Banking Webcast – Customer Treatment Execution – Making the most of each interaction

May 10, 2011

Live webcast with the Tower Group’s Jim Eckenrode and Oracle’s Dave Wright. They will offer perspective and insights into the current banking environment and provide practical steps banks should take now to create a continual feedback loop know…

Read the full article →