X
17Jun

How Microsoft Dynamics CRM workflow definitions are stored in the SQL Database

Microsoft Dynamics CRM, is one of the prominent offerings from the Microsoft Dynamics family of ERP and CRM products. It is quite a long time now that MS CRM is in the marketplace. We came across a very odd request from one of our clients, asking us develop a tool which will generate documentation for the CRM workflows. The definition of the workflows in MS CRM is quite intuitive and easy to use. However, the way this data is stored in the CRM SQL database is not that straight forward. Our team did some Googling without much success. All the blogs available seemed to be talking more about how to define workflows, what are the best practices to be followed while defining workflows, how effectively workflows can be used, etc. etc. But none of them really explained about how the metadata for the workflows are stored in the database. Also, MSDN was not of much help. So, we decided to look deeper into this subject ourselves.

We identified the table WorkflowBase, which seemed to be the most probable one to hold these metadata settings. We explored the table and found that our hunch was correct. We found most of the settings stored in this table, but were not able to find the step details. Then we found that these data components are stored in a field called XAML, in a XAML format. The data is not stored in a very straight forward manner, though it was good to know that the values stored were not encrypted. It is just that the data was formatted into some pre-defined XML format. You can see one of the sample XAML data below:

XAML

Decoding the XAML was another challenge faced by the team, because the way the data elements are stored is not something conventional, something which we don’t come across frequently. The team looked into the data to pinpoint the elements (text, numbers, etc.) to identify how the metadata is stored.  Finally, we were able to decipher the XAML formatted text stored and we made a sample output like the following: 

WFOutput

The journey through the storage layers of Dynamics CRM was quite interesting, and we were able to reach to what we had set-off for.

If you wish to discuss further on this topic, please feel free to drop me an email to chinmoy.roy@ecanarys.com

Related

Assertions in Coded UI

Let us discuss how to add assertions in coded UI. Assertions are checkpoints/benchmarks to UI c...

Read More >

Canarys is a finalist for 2014 Microsoft ALM partner of the year award from INDIA

Bangalore, Karnataka, India — May 29, 2014 — Canarys, today announced it has been named ...

Read More >

Application Maintenance

Our dedicated and skilled resources ensure that routine maintenance and enhancements to your existin...

Read More >

Single Team Project Migration from TFS to Azure DevOps Services

Does your client want to break out from the existing older version of TFS (2015 and later) to Azure ...

Read More >

Techno Feast 2014

Building enterprise apps with smart tools and solution...

Read More >

Deploying an Outlook 2010 Add-in Using C#.NET And Visual Studio 2010

How to deploy an Outlook 2010 Add-in Using C#.NET And Visual Studio 2010In the previous blog, we wal...

Read More >

How to build a client side Repeater Using jQuery and ASP.NET AJAX

jTemplate is a template engine plug-in for jQuery and is commonly used to display tabular data ...

Read More >

How to use TFS 2012 Team Build for Visual Basic 6

Here is a process to build your VB6 projects in Team foundation Server 2012. 1. Have a copy of ...

Read More >

Upcoming Webinar - Plugging for Cloud, Right or Wrong?

Plugging for the Cloud, Right or Wrong?Cloud computing continues to be one of the most advertising t...

Read More >

OUT OF BAND Feature

What is the Out of Band??Think about the situation – your one of the user who is thousand mile...

Read More >

Share

Try DevOpSmartBoard Ultimate complete Azure DevOps End-to end reporting tool

Sign Up

  • Recent
  • Popular
  • Tag
Monthly Archive
Subscribe
Name

Text/HTML
Text/HTML
Contact Us
  • *
  • *