Voorbeeld: Azure-bewuste, aangepaste invoegtoepassing
Gepubliceerd: november 2016
Is van toepassing op: Dynamics CRM 2015
Dit is een voorbeeld van een aangepaste invoegtoepassing die de uitvoeringscontext van de pipeline naar Microsoft Azure Service Bus kan sturen.
Deze voorbeeldcode is voor Microsoft Dynamics CRM 2015 en Microsoft Dynamics CRM Online 2015 Update.Download het Microsoft Dynamics CRM SDK-pakket. U vindt deze op de volgende locatie in het download-pakket:
SampleCode\CS\Azure\Plug-ins\SandboxPlugin.cs
Vereisten
Voor meer informatie over de vereisten voor het uitvoeren van de voorbeeldcode in deze SDK, zie Het voorbeeld en de helpercode gebruiken.
Demonstreert
De invoegtoepassing demonstreert hoe u de uitvoeringscontext en de traceringsservice verkrijgt van de serviceproviderparameter van de methode Execute. De invoegtoepassing stuurt vervolgens de context naar het Microsoft Azure Service Bus-eindpunt en schrijft informatie naar het traceerlogboek om foutopsporing te vergemakkelijken.
Voorbeeld
using System;
using System.Diagnostics;
using System.Threading;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;
using Microsoft.Xrm.Sdk;
namespace Microsoft.Crm.Sdk.Samples
{
/// <summary>
/// A custom plug-in that can post the execution context of the current message to the Windows
/// Azure Service Bus. The plug-in also demonstrates tracing which assist with
/// debugging for plug-ins that are registered in the sandbox.
/// </summary>
/// <remarks>This sample requires that a service endpoint be created first, and its ID passed
/// to the plug-in constructor through the unsecure configuration parameter when the plug-in
/// step is registered.</remarks>
public sealed class SandboxPlugin : IPlugin
{
private Guid serviceEndpointId;
/// <summary>
/// Constructor.
/// </summary>
public SandboxPlugin(string config)
{
if (String.IsNullOrEmpty(config) || !Guid.TryParse(config, out serviceEndpointId))
{
throw new InvalidPluginExecutionException("Service endpoint ID should be passed as config.");
}
}
public void Execute(IServiceProvider serviceProvider)
{
// Retrieve the execution context.
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
// Extract the tracing service.
ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
if (tracingService == null)
throw new InvalidPluginExecutionException("Failed to retrieve the tracing service.");
IServiceEndpointNotificationService cloudService = (IServiceEndpointNotificationService)serviceProvider.GetService(typeof(IServiceEndpointNotificationService));
if (cloudService == null)
throw new InvalidPluginExecutionException("Failed to retrieve the service bus service.");
try
{
tracingService.Trace("Posting the execution context.");
string response = cloudService.Execute(new EntityReference("serviceendpoint", serviceEndpointId), context);
if (!String.IsNullOrEmpty(response))
{
tracingService.Trace("Response = {0}", response);
}
tracingService.Trace("Done.");
}
catch (Exception e)
{
tracingService.Trace("Exception: {0}", e.ToString());
throw;
}
}
}
}
Zie ook
IPlugin
IPluginExecutionContext
ITracingService
Een eenvoudig programma uitvoeren met Microsoft Dynamics CRM 2015-webservices
Voorbeeld: Azure-bewuste aangepaste werkstroomactiviteit
Een invoegtoepassing schrijven
© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht