Beispiel: Erstellen eines grundlegenden Plug-Ins
Veröffentlicht: November 2016
Gilt für: Dynamics CRM 2015
Dieser Beispielcode ist für Microsoft Dynamics CRM 2015 und Microsoft Dynamics CRM Online 2015-Update.Laden Sie das Microsoft Dynamics CRM SDK-Paket herunter. Dieser ist an folgender Position im SDK-Downloadpaket verfügbar:
SDK\SampleCode\CS\Plug-ins\FollowupPlugin.cs
Anforderungen
Registrieren Sie dieses Plug-In für eine Firmenentität in der Erstellungsmeldung und im asynchronen Modus. Alternativ können Sie das Plug-In in einem Post-Event im Sandkasten registrieren.
Demonstriert
Dieses Beispiel zeigt, wie ein grundlegendes Plug-In geschrieben wird, das auf den Microsoft Dynamics 365-Organisationswebdienst zugreifen kann.
Das Plug-In erstellt eine Aufgabenaktivität, nachdem eine neue Firma erstellt wurde. Die Aktivität erinnert den Benutzer, den neuen Firmenkunden nachzuverfolgen, eine Woche, nachdem die Firma erstellt wurde.
Beispiel
using System;
using System.ServiceModel;
// Microsoft Dynamics CRM namespace(s)
using Microsoft.Xrm.Sdk;
namespace Microsoft.Crm.Sdk.Samples
{
public class FollowupPlugin: IPlugin
{
/// <summary>
/// A plug-in that creates a follow-up task activity when a new account is created.
/// </summary>
/// <remarks>Register this plug-in on the Create message, account entity,
/// and asynchronous mode.
/// </remarks>
public void Execute(IServiceProvider serviceProvider)
{
//Extract the tracing service for use in debugging sandboxed plug-ins.
ITracingService tracingService =
(ITracingService)serviceProvider.GetService(typeof(ITracingService));
// Obtain the execution context from the service provider.
IPluginExecutionContext context = (IPluginExecutionContext)
serviceProvider.GetService(typeof(IPluginExecutionContext));
// The InputParameters collection contains all the data passed in the message request.
if (context.InputParameters.Contains("Target") &&
context.InputParameters["Target"] is Entity)
{
// Obtain the target entity from the input parameters.
Entity entity = (Entity)context.InputParameters["Target"];
// Verify that the target entity represents an account.
// If not, this plug-in was not registered correctly.
if (entity.LogicalName != "account")
return;
try
{
// Create a task activity to follow up with the account customer in 7 days.
Entity followup = new Entity("task");
followup["subject"] = "Send e-mail to the new customer.";
followup["description"] =
"Follow up with the customer. Check if there are any new issues that need resolution.";
followup["scheduledstart"] = DateTime.Now.AddDays(7);
followup["scheduledend"] = DateTime.Now.AddDays(7);
followup["category"] = context.PrimaryEntityName;
// Refer to the account in the task activity.
if (context.OutputParameters.Contains("id"))
{
Guid regardingobjectid = new Guid(context.OutputParameters["id"].ToString());
string regardingobjectidType = "account";
followup["regardingobjectid"] =
new EntityReference(regardingobjectidType, regardingobjectid);
}
// Obtain the organization service reference.
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
// Create the task in Microsoft Dynamics CRM.
tracingService.Trace("FollowupPlugin: Creating the task activity.");
service.Create(followup);
}
catch (FaultException<OrganizationServiceFault> ex)
{
throw new InvalidPluginExecutionException("An error occurred in the FollowupPlugin plug-in.", ex);
}
catch (Exception ex)
{
tracingService.Trace("FollowupPlugin: {0}", ex.ToString());
throw;
}
}
}
}
}
Siehe auch
IPlugin
IPluginExecutionContext
ITracingService
IOrganizationServiceFactory
Plug-In-Entwicklung
Beispiel: Webzugriff über ein Sandkasten-Plug-In
Schreiben eines Plug-Ins
Registrieren und Bereitstellen von Plug-Ins
Ereignisausführungspipeline
© 2017 Microsoft. Alle Rechte vorbehalten. Copyright