Acheminer les enregistrements sans incidents à l’aide d’un plug-in
Vous pouvez déclencher l’acheminement par programmation pour les enregistrements qui ne sont pas des incidents, tels que les e-mails, à l’aide de l’interface IPlugin.
Vous pouvez utiliser l’exemple de code suivant dans votre application Console (framework .NET) de Visual Studio. Le code vérifie les deux conditions suivantes et, si elles sont remplies, il déclenche l’action msdyn_ApplyRoutingRuleEntityRecord.
- si le message du service web doit créer un enregistrement
- si l’enregistrement est un message électronique.
public class SamplePlugin : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
// Obtain the tracing service
ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
// Obtain the execution context from the service provider
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
// Check if create message
if (context.MessageName.ToLower().Equals("create"))
{
// 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"];
// Target is an email
if (entity.LogicalName.ToLower().Equals("email"))
{
try
{
// Obtain the organization service reference that you'll need for web service calls
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
// Execute msdyn_ApplyRoutingRuleEntityRecord request
OrganizationRequest request = new OrganizationRequest("msdyn_ApplyRoutingRuleEntityRecord");
request["Target"] = new EntityReference("email", entity.Id);
service.Execute(request);
}
catch (Exception ex)
{
tracingService.Trace("SamplePlugin: {0}", ex.ToString());
throw;
}
}
}
}
}
}
}
Voir aussi
Présentation de l’acheminement
Configurer l’acheminement pour les enregistrements
Acheminer manuellement les enregistrements
Acheminer automatiquement les enregistrements à l’aide d’un flux