Friday, September 6, 2013

CRM vNext / Orion / CRM 2013/ Fall '13 Update

CRM vNext announced appears to be round the corner. Code-named “Orion” the next release of Dynamics CRM is also the next major version of CRM to be called CRM 2013.

Update/Upgrade Options:

For the On-Premise Customers it would be an “Upgrade” from CRM 2011 to CRM 2013 similar to CRM 4.0 to CRM 2011. We still have the options to choose from an In-place upgrade or a Fresh new install and importing of a CRM 2011 Organization database in CRM 2013.Though I have not tried an in-place upgrade, it was interesting to note that when we try to import a CRM 2011 organization in CRM 2013, it validates the database for customizations that would break in CRM 2013 and would not allow the database to be upgraded to 2013. This is a very impressive feature as it checks not only the scripts but also web resources and plugins and reports the issues. It could have been made better where it could actually list out the individual libraries that are unsupported. But nevertheless to be told even before import that the customizations in the organization would break and not allowing for the import is great step forward. You can also use the CRM Code Validation Tool made available by the CRM Team to manually identify any resources that would break upon upgrade to 2013. You can download this tool from http://www.microsoft.com/en-in/download/details.aspx?id=30151

There is no direct upgrade path from CRM 4.0 to CRM 2013 and would require a temporary upgrade from CRM 4.0 to CRM 2011 (fix all the customizations) and then move on to CRM 2013. Note CRM 2011 organizations need to have RU 12 and above installed for it to be eligible for upgrade to CRM 2013.

For CRM Online customer CRM 2013 would be available at Fall ’13 “Update”. Some of the customers have already started receiving reminders/mailers informing them of the tentative date that the update would be applied to their individual organization. There is an option for the customers to schedule the update at their convenience within 90 days of the original update date proposed by Microsoft. That once again is in line with the earlier Microsoft Policy of providing the Polaris Update as an Opt-In to the users so that they could decide as and when they are ready to move to the new Process-driven UI.

The new CRM 2013 extends the Polaris UI to most other entities with the exception of a few that are not commonly used for end user facing.

First Look:

The first time you open CRM you would have a welcome surprise in the form of a Welcome screen that offers a quick tour of the new system.



With CRM 2013, look for more real estate, with the left Wonderbar (Navigation Pane/ SiteMap) moved as sliding menus at the top. 



Individual areas would have their sub-areas be visible similar once you navigate the area.
  

The navigation has moved to Tiles. While they look good, they do end up taking up a lot of space and would require scrolling to move to a particular menu item at the end of the scroll.

Quick Create:

The Always available Create button at the top is the Quick Create button. Use this button to quickly create a record by entering minimum details.


Images:

And Images are now available!!! 
The activity feeds allowed you to add a profile picture. This feature has now been extended in the form of a new image attribute that can be added to any entity. This will allow associating one image per record. So now you can add that picture to the user/contact.


Flat In-page UI Rendering:

And finally no more popups!!! The CRM Team has done its best to do away with popups wherever possible. So when you open a record from the list view, it does not open the record in the new window but instead it opens it in the same window.

  



Use the back button to go back to the view.

Composite Control:

Do you notice the Address displayed as a block in the above screenshot… Yes it is a single block on text. Composite control only for Address has been introduced. You cannot use this for your custom attributes however at least as yet.

And when on a record, to access record related navigation's, again click on the arrow at the top in the blue bar.


Customization Changes:

So does the form designing change? Has the ribbon design been changed? No neither has the form designing changed and you can still continue to use the ribbonXML to modify the ribbons. Only the rendering of the forms and ribbons have changed. What happens to role based form and form selector, you can still select between multiple forms as shown below

Auto-Save:

The Quick Save button has now been made as an option for the user to choose in System Settings.




If you choose Auto-Save, the records will be auto-saved. But if you choose to not enable this feature, you would have your Save button back on the top of the form for you to manually click to save the record.

There are a lot of new features and enhancements introduced in CRM 2013 and I will discuss more about the other features in the coming days. Everyone though would agree this first look of CRM 2013 makes you wanting for more…















Wednesday, August 14, 2013

Re-create deleted records using Audit History

Many a times we come across situations where we accidentally, delete a particular record and wish to recover that record back in CRM. This is possible only if you have “Auditing” enabled for that respective entity. So from the audit history we can re-create deleted records in CRM.

Let us take an example, supposing some records were deleted today and needs to be recovered.

//fetch XML for retrieving auditing records which were deleted today

                string fetchXML = "<fetch version='1.0' output-format='xml-platform' mapping='logical' no-lock='true' distinct='false'> " +
    "<entity name='audit'>  " +
    "<attribute name='auditid' /> " +
     "<attribute name='operation' /> " +
    "<filter type='and'> " +
    "<condition attribute='createdon' operator='today' /> " +
   "<condition attribute='operation' operator='eq' value='3' /> " +
    "</filter>   " +
    "</entity> " +
    "</fetch>";

                //retrieve the audit records from fetchxml
                var auditrecords = service.RetrieveMultiple(new FetchExpression(fetchXML));

                //loop through each audit entity record found and create deleted records
                foreach (Entity audit in auditrecords.Entities)
                {
                    // create retrieve audit detail request object
                    RetrieveAuditDetailsRequest auditDetailsRequest = new RetrieveAuditDetailsRequest();

                    //assign audit id value
                    auditDetailsRequest.AuditId = audit.Id;

                    //execute request and retrieve response
                    RetrieveAuditDetailsResponse auditDetailsResponse =
                        (RetrieveAuditDetailsResponse)_service.Execute(auditDetailsRequest);
                 
                    //create auditDetail variable and assign its value
                    AuditDetail auditDetail = auditDetailsResponse.AuditDetail;

                    //type cast audtitDetail as AttributeAuditDetail
                     AttributeAuditDetail attributeAuditDetail = auditDetail as AttributeAuditDetail;

                    //create the deleted record
                     service.Create(attributeAuditDetail.OldValue);
                }


In above code first we have retrieved audit entity records which were created “today” and operation was “Delete”.

“Operation” field is an “Option Set” field and values are

-              Create = 1
-              Update = 2
-              Delete = 3
-              Assign = 4





Hope this post helps!