protected void ExecutePostTestOwnerIdUpdate(LocalPluginContext localContext) { if (localContext == null) { throw new ArgumentNullException("localContext"); } // TODO: Implement your custom Plug-in business logic. localContext.TracingService.Trace("进入到PostTestOwnerIdAssign插件中的代码了!"); IPluginExecutionContext context = localContext.PluginExecutionContext; var service = localContext.OrganizationService; if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity) { Entity currentEntity = context.InputParameters["Target"] as Entity; localContext.TracingService.Trace(string.Format("新的OwnerId={0}", currentEntity.GetAttributeValue<EntityReference>("ownerid").Id)); Entity annotationEntity = new Entity("annotation"); annotationEntity["subject"] = "这是由注册在POSTOWNERIDUPDATE消息中的插件产生的!"; annotationEntity["objectid"] = new EntityReference(currentEntity.LogicalName, currentEntity.Id); service.Create(annotationEntity); } }
protected void ExecutePostTestAssign(LocalPluginContext localContext) { if (localContext == null) { throw new ArgumentNullException("localContext"); } // TODO: Implement your custom Plug-in business logic. localContext.TracingService.Trace("进入到PostTestAssign插件中的代码了!"); IPluginExecutionContext context = localContext.PluginExecutionContext; var service = localContext.OrganizationService; if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is EntityReference) { Entity annotationEntity = new Entity("annotation"); annotationEntity["subject"] = "这是由注册在POSTASSIGN消息中的插件产生的!"; annotationEntity["objectid"] = context.InputParameters["Target"]; if (context.InputParameters.Contains("Assignee") && context.InputParameters["Assignee"] is EntityReference) { localContext.TracingService.Trace(string.Format("新的OwnerId={0}", ((EntityReference)context.InputParameters["Assignee"]).Id)); } service.Create(annotationEntity); throw new InvalidPluginExecutionException("罗勇故意抛出的异常!"); } }
throw new InvalidPluginExecutionException("罗勇故意抛出的异常!");
下面我们将系统设置中的启用插件跟踪日志的日志记录设置为 异常 ,就会只记录产生异常时候插件的日志消息。