Dynamics CRM – Azure Integration (Part 3) : Explore Service Bus Messages

Detailed explanation on Dynamics CRM – Azure Integration. Technologies, mechanisms, tools and issues are enclosed under three topics in three connected posts.

Connected Posts:
Dynamics CRM – Azure Integration (Part 1) : Create Azure Service Bus Namespace
Dynamics CRM – Azure Integration (Part 2) : Create Dynamics CRM Service Endpoint
Dynamics CRM – Azure Integration (Part 3) : Explore Service Bus Messages


Azure Portal Queue\Topic Dashboard

Azure portal shows stats, monitoring, usage for each component in the Namespace such as Queue, Topic etc.

QueueUsage

Service Bus Explorer

Service Bus Explorer is a good tool to manage, monitor and test entities (Queues\Topic-Subscriptions\Relays\Event Hubs). Service Bus Explorer tool can be Continue reading “Dynamics CRM – Azure Integration (Part 3) : Explore Service Bus Messages”

Advertisement

Dynamics CRM – Azure Integration (Part 2) : Create Dynamics CRM Service Endpoint

Detailed explanation on Dynamics CRM – Azure Integration. Technologies, mechanisms, tools and issues are enclosed under three topics in three connected posts.

Connected Posts:
Dynamics CRM – Azure Integration (Part 1) : Create Azure Service Bus Namespace
Dynamics CRM – Azure Integration (Part 2) : Create Dynamics CRM Service Endpoint
Dynamics CRM – Azure Integration (Part 3) : Explore Service Bus Messages


Detecting a Change in Dynamics CRM Records

In Dynamics CRM there are few ways of detecting record changes. It is really important to track\trigger changes in Dynamics CRM systems when synchronizing data between systems.

Change Tracking is a new feature comes with latest Dynamics CRM version and this feature can be used to get a bulk of records changed in an entity. It always provides changes compared to the last retrieval  of changes. Also, this will not raise the change as soon as it happens. Some code has to be executed externally and should get the changed records from the specific entity.

CRM Workflow executions in an event is another solution of detecting changes. With the real-time workflows, the workflow can be started before or after the change.

In this post, we discuss sending Plugin Execution Context to Azure and solving issues related to that.

 

Get the Plugin Execution Context Out

Plugins can be registered to track record changes. Plugin execution context has lots of information on the record change such as data changed, images, plugin step information etc. If we need to get the record changes and related information out of CRM we can use plugins and perform any action on that data. Also, we can integrate Dynamics CRM and Windows Azure using a Service Endpoint to Azure.

PluginExecutionContext

Plugin steps can be created for different entities at different events of Continue reading “Dynamics CRM – Azure Integration (Part 2) : Create Dynamics CRM Service Endpoint”

Dynamics CRM – Azure Integration (Part 1) : Create Azure Service Bus Namespace

Detailed explanation on Dynamics CRM – Azure Integration related technologies, mechanisms, tools and issues is enclosed under three topics in three connected posts.

Connected Posts:
Dynamics CRM – Azure Integration (Part 1) : Create Azure Service Bus Namespace
Dynamics CRM – Azure Integration (Part 2) : Create Dynamics CRM Service Endpoint
Dynamics CRM – Azure Integration (Part 3) : Explore Service Bus Messages


 Windows Azure Services

Microsoft Windows Azure or Azure’s compute mainly offers three types of offerings; Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS).

Simply under Infrastructure as a Service (IaaS), Azure offers servers in the cloud \ virtual machines which give the feeling like a server that has been setup manually with hardware, operating system and running other applications in it. It provides Networking, Storage, Servers and Virtualization.

Windows Azure itself can be taken as a Platform as a Service. Windows Azure offers Middleware services including messaging, listening services, processing messages etc. under this. These components are really awesome when extending application behaviours, exposing to other systems and distributing services to other systems. Service Bus and its entities such as Queues, Topics, Relays, Event Hubs and Notification Hubs play a vital role under this.

Azure Websites are cheapest and easiest method of getting an application on the cloud. Web applications can be deployed from anywhere and Azure take care of CI, network traffic, availability etc.

Understanding Windows Azure Service Bus

Azure Service Bus is a generic, cloud-based messaging system for connecting applications, services and devices. Service Bus is a multi-tenant cloud service which can consist of namespaces with different types of messaging mechanisms. Depending on the requirement messaging mechanisms can be selected and the choices are; Queues, Topics, Relays and Event Hubs.

AzureServiceBusNamespace

Namespaces can be defined under Azure Service Bus. Namespace is Continue reading “Dynamics CRM – Azure Integration (Part 1) : Create Azure Service Bus Namespace”

Generate Invoice from Opportunity when Closing as Won

Sales process is one of the main OOTB business processes in Dynamics CRM. During the sales process Opportunities can be created from Leads (Potential Customers) and opportunities contain opportunity products. From opportunities, quotes can be created, orders can be created from quotes and then invoices can be created from orders.

CloseAsWon

In this post let’s see how to generate invoice from opportunity using code and overcome issues when getting the OpportunityId.

CRM SDK provides few Methods to Generate Quotes, Orders and Invoices programmatically from Opportunity at any event. Following table shows the Requests and their descriptions that we can use to generate Quotes, Orders and Invoices from Opportunity.

Message Description
GenerateQuoteFromOpportunityRequest Generates a quote from an opportunity.
GenerateSalesOrderFromOpportunityRequest Generates a sales order from an opportunity.
GenerateInvoiceFromOpportunityRequest Generates an invoice from an opportunity.

Invoice can be created when the Opportunity closes as won and Plugin Continue reading “Generate Invoice from Opportunity when Closing as Won”

Capture Associate\Disassociate Events in Plugins

Plugins can be used to execute\perform a task in a event of changing a field of a record in an entity in CRM. Update message can be used in plugins when updating a field in an entity but how can we trigger an event when adding or removing a child record exists under a Many to Many relationship?

When Many to Many relationship exists and some task to be performed when adding records\removing records to\from parent\child entities, we can register a plugin which includes the task to be performed, using plugin registration tool to trigger the plugin at the right time.

Scenario: A system contains students and it captures mandatory subjects for each student. Meaning that one student may exist many subjects (Maths, Science etc…) and one Subject can have many Students according the relationship. Lets assume that both Student and Subject entities are custom entities with new prefix in it.

The task is that; whenever we add\remove a Subject from Student we should update a text field in Student.

Plugin :  Continue reading “Capture Associate\Disassociate Events in Plugins”

Salesforce Marketing Cloud Connector for Dynamics CRM

This is to introduce you Salesforce Marketing Cloud Connector for Dynamics CRM and to  give you a brief description on the purpose of using it and to explain advantages of combining Salesforce Marketing Cloud and Dynamics CRM for Marketing purposes. Following navigation item shows after the connector installation in Dynamics CRM.

15

What is Salesforce Marketing Cloud?

Marketing cloud is a digital marketing platform to reach each individual customer in different ways by delivering the right message at right time in a very personalized way in the process of marketing. Interaction can be created through Emails, Social media, Mobile and Web for marketing campaigns in different techniques such as surveys, promotions, questionnaires, advertising and many more techniques. Continue reading “Salesforce Marketing Cloud Connector for Dynamics CRM”

Publishing Products in Dynamics CRM

Products in the CRM product catalog need to be published before they used in Quotes, Orders and in Invoices. There are several ways to publish products. Recently I wanted to import a list of products to a Dynamics CRM from another system. I imported them directly to the CRM using data import wizard but faced difficulties when publishing them in CRM. From Products view, CRM doesn’t allow to publish multiple products at once as bulk edit feature.

Publish Products under a Product Family

Select the product family and from the ribbon select Publish Hierachy. CRM will publish the product family and all the items under it such as products, bundles and kits.

2

 

Publish Products with no Product Family

Whenever a product created in CRM, that is published(Active) automatically by enabling this setting under System Settings in CRM. But this is only applicable for the products with no product family.

3

 

You can Publish Products programmatically using CRM SDK as well 🙂

 

Azure Topic Issue : This client is not supported for a partitioned entity. The client version should be greater or equal than version ‘2013-10’

Dynamics CRM execution context can be sent to Azure Service Bus by using a registered plugin step using the plugin registration tool. However there can be issues when triggering events from Dynamics CRM entity and sending the context to the Azure service bus topic.

Issues raised when trying to send any context to Azure are shown in System Jobs (Settings>System Jobs).

1IssueShowsInCRM_Fortress.png

The records which have issues are waiting under the System Jobs and if you open up any such record you will see the actual issues raised from the CRM as follows.

1IssueShowsInCRMDetail Continue reading “Azure Topic Issue : This client is not supported for a partitioned entity. The client version should be greater or equal than version ‘2013-10’”

Sending Dynamics CRM Execution Context to Azure Service Bus

Nowadays different software systems are connected with each other in different ways to exchange data and services among them. Also maintaining cloud spaces for hosting and using cloud services have become very popular in the industry. Dynamics CRM 2016 can be hosted as on premise and it’s available as Online as well and it supports exposing its execution context to Microsoft Azure Service Bus to easily communicate with the other applications, services or devices connecting from anywhere. Dynamics CRM plugin registration tool can make Azure aware the executions in CRM.

Service-Bus-Fanout1

Assume that there’s a need to update some other system on a change of data in an entity in CRM. One approach is to bring changed data in to an online location and the other system to read those data and update its data stores accordingly. Azure service bus is a cloud service that maintains queues and topics to act as intermediate location between two systems. Specialty is that; Dynamics CRM can automatically send data with its context in an event available in Dynamics CRM such as Create, Update, Delete etc…

Azure Service Bus

Azure service Bus is a generic, cloud based messaging system for connecting services, applications and devices from anywhere. It supports two types of communication models such as Queues and Topics.

Understand Azure Service Bus using following resources; Continue reading “Sending Dynamics CRM Execution Context to Azure Service Bus”

Creating Word Document Templates for Dynamics CRM 2016

DocumentTemplates

Found a very good article on creating word document template for Dynamics CRM 2016 and just experienced the cool feature in CRM 2016 Online, provided from Dynamics CRM team.

Using document templates, users can generate standardized documents with data in CRM. Also Excel document templates can be created under document templates.

Here’s the link to the article;

https://www.microsoft.com/en-us/dynamics/crm-customer-center/using-word-templates-in-crm.aspx