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

VSTS Rollup Service - How to use

          Hi All, Here i'm going to explain How VST...

Read More >

Payroll Addon

Built on Microsoft Dynamics NAVCanarys NAV Payroll add-on, is a suite of products built using and ex...

Read More >

Microsoft Azure : Running ASP.NET Web Application

 OverviewWe will deploy ASP.NET web application to web apps in Azure App Service by using ...

Read More >

WScript Sleep- Exercise Desktop Remainder

Introduction - WScript.Sleep WScript.Sleep         ...

Read More >

New Tools in NAV 2013 (the less talked about ones) - Part 1

For some time now, I have been thinking about compiling on a list of new features and subtle tools i...

Read More >

Migrating TFS 2013 Version Control to TFS Git with changeset history

There are several articles on the web describing the migration technique with minimal details. This ...

Read More >

Implementing Azure DevSecOps with Microsoft Credential Scanner

Let’s look at CredScan which is a Microsoft Code Analysis extension and it is abbreviated as MSCA i...

Read More >

Displaying Postscript text and Vector images on PDF in C#.net using Imageglue

Postscript is a language used for creating vector Images,Vector images are made up of many scalable ...

Read More >

Namespaces in Kubernetes

A default namespace is created automatically when the cluster is being setup. To isolate or prevent ...

Read More >

How to use JQuery with Visual Studio .Net

What does JQuery mean?It is simply a light weight javascript library through which we can perform ac...

Read More >

Share

Comments

B
Same here. Can you tell me how you read the steps from de XAML?
5/13/2020 6:37:24 PM | Reply
can I have that application or can you help me to do something like this?I want to get every step of workflow and show it separately in a section.
11/30/2019 2:13:50 PM | Reply

Post a Comment

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

Sign Up

  • Recent
  • Popular
  • Tag
  • Key Metrics to Measure DevOps Success

    DevOps words means many things to many people and all the definitions might be partly right. DevOps is all about continuously seeking feedback, understanding challenges, and improving the way the soft...
  • Bulk Export Import Test Cases to Azure DevOps Test Plans using CSV file

    As a user of Azure DevOps Test Plans or TFS Test Management for manual testing, from a long time everyone including me had a wish, that copy of test cases from excel or csv file along with test steps ...
  • Azure DevOps Overview

    Now a days Azure DevOps is very famous with IT and Operations team along with developers, so what is Azure DevOps? It is a Software as a service (SaaS) platform from Microsoft that provides features r...
  • Volume Management in Kubernetes

    Since pods created in k8s are ephemeral, we are able to get the data as long as pods are alive, but if pods are terminated data stored in it completely lost and it cannot get back, for that we need to...
Monthly Archive
Subscribe
Name

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