Cómo habilitar y realizar el seguimiento de trazas en Microsoft Dynamics CRM 365 Online
6 Jun 2018
webmaster
Sólo recuerda lo siguiente ...
La escritura al servicio de rastreo agrega un paso adicional que su plug-in tiene que superar. No tanto de un problema si su complemento es relativamente pequeño, pero cuanto más tiempo se hace, y más frecuente que está escribiendo en el servicio, significa que hay un impacto en el rendimiento potencial. Usted debe usar su mejor juicio al escribir al servicio; no cada vez que haces algo dentro del plugin, pero donde existe la posibilidad de que se produzca un error. Escribir en el registro de seguimiento también puede tener un impacto en su capacidad de almacenamiento de CRM.
Instanciar el ITracingService en la creación del PlugIn
Para empezar a escribir en el servicio de rastreo depende de cómo está implementando su complemento. Si ha utilizado la plantilla de Visual Studio, simplemente utilice esta línea de código dentro de la sección "TODO: implementar su lógica empresarial de complemento personalizada".
// ¡Asegúrese de agregar referencias a Microsoft.Xrm.Sdk para poder utilizar este espacio de nombres
using Microsoft.Xrm.Sdk;
namespace GradoAvancePlugIn
{
public class Main : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
// Agregamos esta linea para instanciar el servicio del Tracking en CRM
ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = factory.CreateOrganizationService(context.UserId);
//Para revisar si esta offline o esta en plena sincornizacion
if (context.IsExecutingOffline || context.IsOfflinePlayback)
return;
// Ejecución del contexto en Depth = 1
if (context.Depth == 1)
{
try
{
if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
{
Entity entity = (Entity)context.InputParameters["Target"];
// Obtain the target entity from the Input Parameters.
tracingService.Trace("GradoAvancePlugIn: Getting the target entity from Input Parameters.");
var CierreActivo = service.Retrieve("tres60_cierremensualproyecto", entity.Id, new ColumnSet(true));
Entity MyCierreMensual = new Entity("tres60_cierremensualproyecto");
// Obtenemos los Datos del proyeto activo
var ProyectoActivo = service.Retrieve("msdyn_project", ((Microsoft.Xrm.Sdk.EntityReference)(CierreActivo["tres60_proyectoid"])).Id, new ColumnSet(true));
MyCierreMensual.Id = CierreActivo.Id;
// Escribimos el mensaje personalizado con los datos que queremos se muestren en el tracking Services
tracingService.Trace("GradoAvancePlugIn: El proyecto activo es " + ((Microsoft.Xrm.Sdk.EntityReference)(CierreActivo["tres60_proyectoid"])).Id );
}
catch (Exception e)
{
throw new InvalidPluginExecutionException(e.Message);
}
}
}
}
}
Activar el seguimiento
Aunque hemos configurado nuestro complemento para el rastreo, esto no significa automáticamente que nuestro plugin empiece a escribir en el registro. En primer lugar, debemos configurar el complemento y el rastreo de actividad del flujo de trabajo personalizado en la página Configuración del sistema:
Tiene tres opciones que puede configurar:
Desactivado: nada se escribirá en el registro de seguimiento, aunque el complemento encuentre una excepción.
Excepción: cuando el complemento produce una excepción, se escribirá un rastreo en el registro.
Todos - Siempre que se ejecuta el complemento y se llama al registro de seguimiento, se creará un registro de registro de seguimiento. Esto es equivalente al registro Verbose.
Como se mencionó anteriormente, los registros individuales se escribirán en CRM cada vez que se solicite el servicio de búsqueda. Por lo tanto, se recomienda sólo activar "All" para períodos temporales; dejarlo encendido para 'Excepción' puede ser útil al intentar diagnosticar inicialmente errores del enchufe. Revise la cantidad de almacenamiento disponible en su implementación de CRM Online / On-Premise para determinar el mejor curso de acción
Después de registrar nuestro plugin y con el rastreo configurado para "Todos" en nuestra instancia de CRM, ahora podemos ver nuestros mensajes personalizados están siendo escritos en el registro de seguimiento:
Al
Al visualizar el detalle del seguimiento del Tracking no solo se puede ver el mensaje personalizado, sino también toda la descripción dle error en caso de que hubiese ocurrido en error no controlado dentro del PlugIn.
![]()