public virtual void logExternalTaskOperation(string operation, ExternalTaskEntity externalTask, IList <PropertyChange> propertyChanges) { if (UserOperationLogEnabled) { UserOperationLogContext context = new UserOperationLogContext(); UserOperationLogContextEntryBuilder entryBuilder = UserOperationLogContextEntryBuilder.entry(operation, EntityTypes.EXTERNAL_TASK).propertyChanges(propertyChanges).category(org.camunda.bpm.engine.history.UserOperationLogEntry_Fields.CATEGORY_OPERATOR); if (externalTask != null) { ExecutionEntity instance = null; ProcessDefinitionEntity definition = null; if (!string.ReferenceEquals(externalTask.ProcessInstanceId, null)) { instance = ProcessInstanceManager.findExecutionById(externalTask.ProcessInstanceId); } else if (!string.ReferenceEquals(externalTask.ProcessDefinitionId, null)) { definition = ProcessDefinitionManager.findLatestProcessDefinitionById(externalTask.ProcessDefinitionId); } entryBuilder.processInstanceId(externalTask.ProcessInstanceId).processDefinitionId(externalTask.ProcessDefinitionId).processDefinitionKey(externalTask.ProcessDefinitionKey).inContextOf(externalTask, instance, definition); } context.addEntry(entryBuilder.create()); fireUserOperationLog(context); } }