public void LogWorkflowTrace(string sequenceId, string eventId, string eventName, string eventMessage) { StackTrace stackTrace = new StackTrace(); trackedProperties trackedProperties = new trackedProperties(); trackedProperties.application_id = this.LocalWorkflowContext.WorkFlowContext.OrganizationName; trackedProperties.application_name = "Dynamics 365 CRM"; trackedProperties.correlation_id = this.LocalWorkflowContext.WorkFlowContext.CorrelationId.ToString(); trackedProperties.correlation_name = ""; trackedProperties.error_code = ""; trackedProperties.error_message = ""; trackedProperties.error_stack = ""; trackedProperties.event_category = "Workflow"; trackedProperties.event_id = eventId; trackedProperties.event_message = eventMessage; trackedProperties.event_name = eventName; trackedProperties.fault_id = ""; trackedProperties.receiver_id = ""; trackedProperties.receiver_name = ""; trackedProperties.sender_id = ""; trackedProperties.sender_name = ""; trackedProperties.sequence_id = sequenceId; trackedProperties.service_request_id = ""; trackedProperties.severity = ""; trackedProperties.success_code = "1"; trackedProperties.success_message = "Success"; trackedProperties.timestamp = DateTime.UtcNow.ToString(); trackedProperties.warnings = ""; trackedProperties.work_order = ""; trackedProperties.workflow_id = this.LocalWorkflowContext.WorkFlowContext.RequestId.ToString(); trackedProperties.workflow_name = this.LocalWorkflowContext.WorkFlowContext.PrimaryEntityName; LogMessage logMessage = new LogMessage(); logMessage.trackedProperties = trackedProperties; string json = Serialization.Serialize(logMessage); Entity entity = this.BuildEntity("", json, "Exception"); LocalWorkflowContext.OrganizationService.Create(entity); }
public void LogPluginException(Entity contextEntity, Exception exception, string sequenceId, string eventId, string eventName, string eventMessage) { StackTrace stackTrace = new StackTrace(); trackedProperties trackedProperties = new trackedProperties(); trackedProperties.application_id = this.LocalPluginContext.PluginExecutionContext.OrganizationName; trackedProperties.application_name = "Dynamics 365 CRM"; if (contextEntity.Attributes.Contains("smp_correlationid")) { trackedProperties.correlation_id = contextEntity["smp_correlationid"].ToString(); } else { trackedProperties.correlation_id = this.LocalPluginContext.PluginExecutionContext.CorrelationId.ToString(); } trackedProperties.correlation_name = ""; trackedProperties.error_code = ""; trackedProperties.error_message = exception.Message; trackedProperties.error_stack = exception.StackTrace; trackedProperties.event_category = "Plugin"; trackedProperties.event_id = eventId; trackedProperties.event_message = eventMessage; trackedProperties.event_name = eventName; if (contextEntity.Attributes.Contains("msdyn_iotalert") && contextEntity.GetAttributeValue <EntityReference>("msdyn_iotalert") != null) { trackedProperties.fault_id = contextEntity.GetAttributeValue <EntityReference>("msdyn_iotalert").Name; } else { trackedProperties.fault_id = ""; } trackedProperties.receiver_id = ""; trackedProperties.receiver_name = ""; trackedProperties.sender_id = ""; trackedProperties.sender_name = ""; trackedProperties.sequence_id = sequenceId; trackedProperties.service_request_id = ""; trackedProperties.severity = "5"; trackedProperties.success_code = "2"; trackedProperties.success_message = "Failed"; trackedProperties.timestamp = DateTime.UtcNow.ToString(); trackedProperties.warnings = ""; if (this.LocalPluginContext.PluginExecutionContext.PrimaryEntityName == "msdyn_workorder") { if (contextEntity.Attributes.Contains("msdyn_name") && contextEntity["msdyn_name"] != null) { trackedProperties.work_order = contextEntity["msdyn_name"].ToString(); } else { trackedProperties.work_order = contextEntity.Id.ToString(); } } else { trackedProperties.work_order = ""; } trackedProperties.workflow_id = this.LocalPluginContext.PluginExecutionContext.RequestId.ToString(); trackedProperties.workflow_name = this.LocalPluginContext.PluginExecutionContext.PrimaryEntityName; LogMessage logMessage = new LogMessage(); logMessage.trackedProperties = trackedProperties; string json = Serialization.Serialize(logMessage); Entity entity = this.BuildEntity("", json, "Exception"); LocalPluginContext.OrganizationService.Create(entity); }