Dynamics CRM 2011 & 2013 Workflow Plugin
- Home
- Neuron ESB
- Development
- Developing Neuron Applications
- Connecting to External Systems
- Adapters
- Neuron Adapters
- Microsoft Dynamics CRM Workflow Plug-in
- Dynamics CRM 2011 & 2013 Workflow Plugin
Overview
The Dynamics CRM 2011 Workflow Plugin extends Microsoft Dynamics CRM 2011 and 2013, enabling Dynamics CRM to send notifications to web services and Neuron topics using Dynamics CRM’s workflow functionality.
Features
The Dynamics CRM Workflow Plugin has the following features:
- Send entities to topics and web services.
- Send dynamic entities to topics and web services.
- Send customized XML with data from related entities to topics and web services.
- Execute fetch XML queries and send the results to topics and web services.
- Run XSL transforms before sending data to web services.
- Capture detailed tracing information.
Installing
See the section Installing the CRM Workflow Plug-in
Configuration
See the section Configure the CRM Workflow Plug-in
Verifying Installation
See the section Verifying the CRM Workflow Plug-in Installation
Workflow Steps
The following workflow steps will be available for use in CRM workflows:
Step Name | Description |
Advanced Send (Topic) | Allows a fetch XML query to be executed and sent to a Neuron topic. |
Entity Send (Topic) | Sends the workflow’s entity to a Neuron topic. Suitable for built-in CRM entities. |
Field Send (Topic) | Allows custom XML to be sent to a Neuron topic. |
Dynamic Entity Send (Topic) | Sends the workflow’s entity to a Neuron topic. Suitable for customized CRM entities. Available in the CRM 4.0 plug-on only |
Advanced Send (Service) | Allows a fetch XML query to be executed and sent to a web service. |
Entity Send (Service) | Sends the workflow’s entity to a web service. Suitable for built-in CRM entities. |
Field Send (Service) | Allows custom XML to be sent to a web service. |
Dynamic Entity Send (Service) | Sends the workflow’s entity to a web service. Suitable for customized CRM entities. Available in the CRM 4.0 plug-on only |
Workflow Step Property Reference
Entity Send (Topic)
The Entity Send (Topic) step allows standard CRM entities to be sent to a Neuron topic. The message body will contain the serialized entity data. In order to send data from customized CRM entities, use the Dynamic Entity Send step.
Property | Description |
Fail on Exception | Sets whether or not the workflow instance will fail when an exception occurs. |
Topic | The name of a Neuron topic to receive events. |
Publisher | The name of a Neuron party to use for publishing events. |
Root Name | The name of the root element to create in the message. |
Root Namespace | Optional. The namespace to use for the root element in the message. |
Dynamic Entity Send (Topic)
The Dynamic Entity Send (Topic) step allows customized CRM entities to be sent to a Neuron topic. The message body will contain the serialized entity data. The option is only available in the CRM 4 Plug-in.
Property | Description |
Topic | The name of a Neuron topic to receive events. |
Publisher | The name of a Neuron party to use for publishing events. |
Field Send (Topic)
The Field Send (Topic) step allows custom XML to be sent over a topic. By using the dynamic values form assistant, a custom XML document can be designed to be used by notifications.
Property | Description |
Fail on Exception | Sets whether or not the workflow instance will fail when an exception occurs. |
Topic | The name of a Neuron topic to receive events. |
Publisher | The name of a Neuron party to use for publishing events. |
Root Name | The name of the root element to create in the message. |
Root Namespace | Optional. The namespace to use for the root element in the message. |
Field1 Name-Field20 Name | The name of an element to insert in the message. |
Field1 Value-Field20 Value | The value to insert into the message. Use the dynamic values form assistant (located on the right hand side of the property page) to bind the field to an entity property. |
Advanced Send (Topic)
The Advanced Send (Topic) step allows a fetch XML query to be executed and sent over a topic.
Property | Description |
Fail on Exception | Sets whether or not the workflow instance will fail when an exception occurs. |
Topic | The name of a Neuron topic to receive events. |
Publisher | The name of a Neuron party to use for publishing events. |
Root Name | The name of the root element to create in the message. |
Root Namespace | Optional. The namespace to use for the root element in the message. |
FetchXmlTemplatePath | The path to a file on disk that contains the fetch xml query to execute. The results of the query will be the published message. The text [PrimaryEntityId] and [PrimaryEntityName] may be inserted into the template and will be replaced by the entity ID or Name. |
Entity Send (Service)
The Entity Send (Service) step allows standard CRM entities to be sent to a web service. The message body will contain the serialized entity data. In order to send data from customized CRM entities, use the Dynamic Entity Send step. Advanced users may customize the transport used by the service shape by adding a WCF configuration elements to the CRM Async Service and referencing the configuration in the step properties.
Property | Description |
ServiceUrl | The URL of a web service to receive messages. |
Action | A SOAP action to use when communicating with the web service. |
BindingName | Optional. The name of a WCF binding to use when communicating with the web service. If not specified the web service will be assumed to be a basic HTTP web service. |
BindingConfiguration | Optional. The name of a WCF binding configuration to use when communicating with the web service. The binding configuration must be located in the CRM Async Service configuration file. |
EndpointBehaviorConfiguration | Optional. The name of a WCF endpoint behavior configuration to use when communicating with the web service. The endpoint behavior configuration must be located in the CRM Async Service configuration file. |
XsltPath | Optional. The location of an XSLT document to use to transform the outgoing message before sending to the web service. |
OneWay | Indicates whether the service call is one-way or request/reply |
Root Name | The name of the root element to create in the message. |
Root Namespace | Optional. The namespace to use for the root element in the message. |
Dynamic Entity Send (Service)
The Dynamic Entity Send (Service) step allows customized CRM entities to be sent to a web service. The message body will contain the serialized entity data. Advanced users may customize the transport used by the service shape by adding a WCF configuration elements to the CRM Async Service and referencing the configuration in the step properties. The option is only available in the CRM 4 Plug-in.
Property | Description |
ServiceUrl | The URL of a web service to receive messages. |
Action | A SOAP action to use when communicating with the web service. |
BindingName | Optional. The name of a WCF binding to use when communicating with the web service. If not specified the web service will be assumed to be a basic HTTP web service. |
BindingConfiguration | Optional. The name of a WCF binding configuration to use when communicating with the web service. The binding configuration must be located in the CRM Async Service configuration file. |
EndpointBehaviorConfiguration | Optional. The name of a WCF endpoint behavior configuration to use when communicating with the web service. The endpoint behavior configuration must be located in the CRM Async Service configuration file. |
XsltPath | Optional. The location of an XSLT document to use to transform the outgoing message before sending to the web service. |
Field Send (Service)
The Field Send (Service) step allows custom XML to be sent over a topic. By using the dynamic values form assistant, a custom XML document can be designed to be used by notifications. Advanced users may customize the transport used by the service shape by adding a WCF configuration elements to the CRM Async Service and referencing the configuration in the step properties.
Property | Description |
ServiceUrl | The URL of a web service to receive messages. |
Action | A SOAP action to use when communicating with the web service. |
BindingName | Optional. The name of a WCF binding to use when communicating with the web service. If not specified the web service will be assumed to be a basic HTTP web service. |
BindingConfiguration | Optional. The name of a WCF binding configuration to use when communicating with the web service. The binding configuration must be located in the CRM Async Service configuration file. |
EndpointBehaviorConfiguration | Optional. The name of a WCF endpoint behavior configuration to use when communicating with the web service. The endpoint behavior configuration must be located in the CRM Async Service configuration file. |
XsltPath | Optional. The location of an XSLT document to use to transform the outgoing message before sending to the web service. |
OneWay | Indicates whether the service call is one-way or request/reply |
Root Name | The name of the root element to create in the message. |
Root Namespace | Optional. The namespace to use for the root element in the message. |
Field1 Name-Field20 Name | The name of an element to insert in the message. |
Field1 Value-Field20 Value | The value to insert into the message. Use the dynamic values form assistant (located on the right hand side of the property page) to bind the field to an entity property. |
Advanced Send (Service)
The Advanced Send (Service) step allows a fetch XML query to be executed and sent over a topic. Advanced users may customize the transport used by the service shape by adding a WCF configuration elements to the CRM Async Service and referencing the configuration in the step properties.
Property | Description |
ServiceUrl | The URL of a web service to receive messages. |
Action | A SOAP action to use when communicating with the web service. |
FetchXmlTemplatePath | The path to a file on disk that contains the fetch xml query to execute. The results of the query will be the published message. The text [PrimaryEntityId] and [PrimaryEntityName] may be inserted into the template and will be replaced by the entity ID or Name. |
BindingName | Optional. The name of a WCF binding to use when communicating with the web service. If not specified the web service will be assumed to be a basic HTTP web service. |
BindingConfiguration | Optional. The name of a WCF binding configuration to use when communicating with the web service. The binding configuration must be located in the CRM Async Service configuration file. |
EndpointBehaviorConfiguration | Optional. The name of a WCF endpoint behavior configuration to use when communicating with the web service. The endpoint behavior configuration must be located in the CRM Async Service configuration file. |
XsltPath | Optional. The location of an XSLT document to use to transform the outgoing message before sending to the web service. |
OneWay | Indicates whether the service call is one-way or request/reply |
Root Name | The name of the root element to create in the message. |
Root Namespace | Optional. The namespace to use for the root element in the message. |
Troubleshooting
If the installation cannot be verified, or entity data appears to not be published by Neuron, or the workflow instances are in an error state, use the following techniques to help troubleshoot the problem.
Enable Diagnostics and Tracing
The adapter configuration tool placed in the start menu by the installer allows additional tracing options to be configured. Selecting “Log errors” or “Log debugging information” will trace additional information to the application event log. Selecting “Log outbound messages” or “Log failed messages” will write outbound messages to the designated message log folder.
Enable MSCRM error pages
In the Web.config file for Dynamics CRM
<appSettings>
…
<!--
Show Developer Errors
========================================================================================
If a server-side error occurs, this setting determines whether or not Debug error messages are rendered to the user. Debug error message are not recommended for production environments, but may be useful in attempting to debug a problem you are having with MSCRM.
Recommended Setting: "Off"
Values: "On" or "Off"
-->
<add key="DevErrors" value="Off"/>
…
</appSettings>
Enable Dynamics CRM process logging
You can enable logging for the Dynamics CRM process that runs the workflow instances by creating a configuration file (or modifying the existing one). The default location of the CRM Async Service configuration file is C:\Program Files\Microsoft Dynamics CRM\Server\bin\CrmAsyncService.exe.config.
You must restart the Microsoft Dynamics CRM Asynchronous Processing Service after you create/change the configuration file.
<configuration>
<system.diagnostics>
<switches>
<add name="System.Workflow LogToTraceListeners" value="1" />
<add name="System.Workflow.Runtime" value="Verbose" />
<add name="System.Workflow.Runtime.Hosting" value="Verbose" />
<add name="System.Workflow.Runtime.Tracking" value="Verbose" />
<add name="System.Workflow.Activities" value="Verbose" />
<add name="System.Workflow.Activities.Rules" value="Verbose" />
</switches>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="customListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="c:\\logs\\Winwftrace.log" />
</listeners>
</trace>
</system.diagnostics>
</configuration>