====== Фрейм "Исключения" ====== Инструмент мониторинга исключений, которые возникают при работе приложений АГБИС.\\ Для каждого исключения создается задача. После исправления ошибки следует закрыть задачу.\\ Окно открывается в "Менеджере проектов" на вкладке **«Исключения»**.\\ {{:pc_TExceptsFrame_1.png}}\\ Кнопка "Помощь" открывает текущий документ.\\ ===== Тип группировки данных ===== Для представления данных предусмотрены следующие типы отображения списка: EurekaLog, Исключения, Приложения, Задачи.\\ ==== EurekaLog ==== Служит для выбора отчета EurekaLog, который создается при возникновении исключения. Список формируется на основе таблицы **[[:eurekalog|таблицы "eurekalog"]]**\\ {{:pc_TExceptsFrame_2.png}}\\ === Графы таблицы === * **"Наименование"** - "Тип ошибки": "Сообщение об ошибке" (exceptions.ExcepType: exceptions.ExcepMess) * **"Количество ошибок"** - количество сессий работы приложений, в которых возникла ошибка (exceptions.Quantity_session) * **"Статус"** - статус задачи по исправлению ошибки (tasks.status_id - определяет статус, tasks.is_active - определяет иконку для записи) * **"Описание"** - сводная информация о параметрах исключения (EurekaLog.ExcepDT EurekaLog.ApplName: EurekaLog.ApplVerNum = exceptions.CSModule: exceptions.CSSource: exceptions.CSClass: exceptions.CSProcedure: exceptions.CSLineProc = tasks.user_name) * "Дата и время возникновения исключения" "Приложение": "Версия приложения" * "Программа или DLL" : "Файл модуля": "Наименование класса": "Наименование процедуры/метода": "Номер строки в коде процедуры" * "Пользователь, который делает эту задачу" * **"ID"** - ID лога \ исключения \ задачи (EurekaLog.ID \ exceptions.ID \ tasks.ID). ==== Исключения ==== Формируется список исключений с расшифровкой какие задачи были использованы для устранения этой ошибки, а также в каких приложениях проявилась эта ошибка.\\ Список формируется на основе таблиц **[[:exceptions|"exceptions"]]**, **[[:tasks|"tasks"]]**, **[[:appl|"appl"]]**, **[[:applver|"applver"]]**\\ {{:pc_TExceptsFrame_3.png}}\\ === Графы таблицы === Список граф таблицы совпадает со списком граф для **EurekaLog**, однако правила заполнения другие.\\ Для каждой сущности формируются записи соответсвующего уровня.\\ Уровни назовем в соответтсвии с таблицей, на основе которой он заполняется * 0 - **"exceptions"** - Исключения\\ * 1 - **"tasks"** - Задачи \\ * 2 - **"appl"** - Приложения\\ * 3 - **"applver"** - Версии приложения\\ Рассмотрим правила заполнения граф для каждого уровня * 0 - **"exceptions"** - Исключения\\ * **"Наименование"** - "Тип ошибки": "Сообщение об ошибке" (exceptions.ExcepType: exceptions.ExcepMess) * **"Количество ошибок"** - количество сессий работы приложений, в которых возникла ошибка (exceptions.Quantity_session) * **"Статус"** - не заполняется (exceptions.is_resolved - определяет иконку для записи) * **"Описание"** - сводная информация о параметрах исключения "Программа или DLL" : "Файл модуля": "Наименование класса": "Наименование процедуры/метода": "Номер строки в коде процедуры" (exceptions.CSModule: exceptions.CSSource: exceptions.CSClass: exceptions.CSProcedure: exceptions.CSLineProc) * **"ID"** - ID исключения (exceptions.ID). * 1 - **"tasks"** - Задачи \\ * **"Наименование"** - Задача: Наименование задачи (tasks.name) * **"Количество ошибок"** - не заполняется * **"Статус"** - статус задачи по исправлению ошибки (tasks.status_id - определяет статус, tasks.is_active - определяет иконку для записи) * **"Описание"** - "Пользователь, который делает эту задачу" (tasks.user_name) * **"ID"** - ID задачи (tasks.ID). * 2 - **"appl"** - Приложения\\ * **"Наименование"** - Наименование приложения (appl.name) * **"Количество ошибок"** - количество сессий работы приложения, в которых возникла ошибка (appl.Quantity_session) * **"Статус"** - не заполняется * **"Описание"** - не заполняется * **"ID"** - ID приложения (appl.ID). * 3 - **"applver"** - Версии приложения\\ * **"Наименование"** - Версия приложения от Дата версии приложения (applver.vernum от applver.verdate) * **"Количество ошибок"** - количество сессий работы приложения, в которых возникла ошибка (applver.Quantity_session) * **"Статус"** - не заполняется * **"Описание"** - не заполняется * **"ID"** - ID версии приложения (applver.ID). ==== Приложения ==== Формируется список приложений, в которых возникли исключения, с расшифровкой какие исключения устранялись и каких задачах задач.\\ Список формируется на основе таблиц **[[:appl|"appl"]]**, **[[:applver|"applver"]]**, **[[:exceptions|"exceptions"]]**, **[[:tasks|"tasks"]]**\\ {{:pc_TExceptsFrame_4.png}}\\ === Графы таблицы === Список граф таблицы совпадает со списком граф для **EurekaLog**, однако правила заполнения другие.\\ Для каждой сущности формируются записи соответсвующего уровня.\\ Уровни назовем в соответтсвии с таблицей, на основе которой он заполняется * 0 - **"appl"** - Приложения\\ * 1 - **"applver"** - Версии приложения\\ * 2 - **"exceptions"** - Исключения\\ * 3 - **"tasks"** - Задачи \\ Рассмотрим правила заполнения граф для каждого уровня * 0 - **"appl"** - Приложения\\ * **"Наименование"** - Наименование приложения (appl.name) * **"Количество ошибок"** - не заполняется * **"Статус"** - не заполняется * **"Описание"** - не заполняется * **"ID"** - ID приложения (appl.ID). * 1 - **"applver"** - Версии приложения\\ * **"Наименование"** - Версия приложения от Дата версии приложения (applver.vernum от applver.verdate) * **"Количество ошибок"** - не заполняется * **"Статус"** - не заполняется * **"Описание"** - не заполняется * **"ID"** - ID версии приложения (applver.ID). * 2 - **"exceptions"** - Исключения\\ * **"Наименование"** - "Тип ошибки": "Сообщение об ошибке" (exceptions.ExcepType: exceptions.ExcepMess) * **"Количество ошибок"** - не заполняется * **"Статус"** - не заполняется (exceptions.is_resolved - определяет иконку для записи) * **"Описание"** - сводная информация о параметрах исключения "Программа или DLL" : "Файл модуля": "Наименование класса": "Наименование процедуры/метода": "Номер строки в коде процедуры" (exceptions.CSModule: exceptions.CSSource: exceptions.CSClass: exceptions.CSProcedure: exceptions.CSLineProc) * **"ID"** - ID исключения (exceptions.ID). * 3 - **"tasks"** - Задачи \\ * **"Наименование"** - Задача: Наименование задачи (tasks.name) * **"Количество ошибок"** - не заполняется * **"Статус"** - статус задачи по исправлению ошибки (tasks.status_id - определяет статус, tasks.is_active - определяет иконку для записи) * **"Описание"** - "Пользователь, который делает эту задачу" (tasks.user_name) * **"ID"** - ID задачи (tasks.ID). ==== Задачи ==== Формируется список задач с расшифровкой какие исключения устранялись, а также в каких приложениях проявилась эта ошибка.\\ Список формируется на основе таблиц **[[:tasks|"tasks"]]**, **[[:exceptions|"exceptions"]]**, **[[:appl|"appl"]]**, **[[:applver|"applver"]]**\\ {{:pc_TExceptsFrame_5.png}}\\ === Графы таблицы === Список граф таблицы совпадает со списком граф для **EurekaLog**, однако правила заполнения другие.\\ Для каждой сущности формируются записи соответствующего уровня.\\ Уровни назовем в соответствии с таблицей, на основе которой он заполняется * 0 - **"tasks"** - Задачи \\ * 1 - **"exceptions"** - Исключения\\ * 2 - **"appl"** - Приложения\\ * 3 - **"applver"** - Версии приложения\\ Рассмотрим правила заполнения граф для каждого уровня * 0 - **"tasks"** - Задачи \\ * **"Наименование"** - Задача: Наименование задачи (tasks.name) * **"Количество ошибок"** - количество сессий работы приложений, в которых возникла ошибка (exceptions.Quantity_session) * **"Статус"** - статус задачи по исправлению ошибки (tasks.status_id - определяет статус, tasks.is_active - определяет иконку для записи) * **"Описание"** - "Пользователь, который делает эту задачу" (tasks.user_name) * **"ID"** - ID задачи (tasks.ID). * 1 - **"exceptions"** - Исключения\\ * **"Наименование"** - "Тип ошибки": "Сообщение об ошибке" (exceptions.ExcepType: exceptions.ExcepMess) * **"Количество ошибок"** - количество сессий работы приложений, в которых возникла ошибка (exceptions.Quantity_session) * **"Статус"** - не заполняется (exceptions.is_resolved - определяет иконку для записи) * **"Описание"** - сводная информация о параметрах исключения "Программа или DLL" : "Файл модуля": "Наименование класса": "Наименование процедуры/метода": "Номер строки в коде процедуры" (exceptions.CSModule: exceptions.CSSource: exceptions.CSClass: exceptions.CSProcedure: exceptions.CSLineProc) * **"ID"** - ID исключения (exceptions.ID). * 2 - **"appl"** - Приложения\\ * **"Наименование"** - Наименование приложения (appl.name) * **"Количество ошибок"** - количество сессий работы приложения, в которых возникла ошибка (appl.Quantity_session) * **"Статус"** - не заполняется * **"Описание"** - не заполняется * **"ID"** - ID приложения (appl.ID). * 3 - **"applver"** - Версии приложения\\ * **"Наименование"** - Версия приложения от Дата версии приложения (applver.vernum от applver.verdate) * **"Количество ошибок"** - количество сессий работы приложения, в которых возникла ошибка (applver.Quantity_session) * **"Статус"** - не заполняется * **"Описание"** - не заполняется * **"ID"** - ID версии приложения (applver.ID). ===== Настройки фильтра ===== * **"Активные задачи"** - при включении настройки в список добавляются незавершеннные задачи (tasks.is_active=true). \\ * **"Неактивные задачи"** - при включении настройки в список добавляются уже зарытые (завершеннные) задачи (tasks.is_active=false). \\ * **"Приложение"** - выбираются записи, для которых задано наименование приложения (appl.name).\\ * **"Версия приложения"** - выбираются записи, для которых задана версия приложения (applver.vernum).\\ * **"Период"** - период возникновения ошибки (EurekaLog.ExcepDT). Влияет на список только при **"Тип группировки данных"**=**"EurekaLog"**. * **"Статус задачи"** - проверяется поле **"Статус"** (tasks.status_id). Список возможных значений берется из таблицы **[[:Status|Status]]**.\\ * **"Приоритет"** - проверяется поле **"Приоритет"** (tasks.priority_id). Список возможных значений берется из таблицы **[[:Priority|Priority]]**.\\ * **"Диапазон количества ошибок"** - проверка попадания в заданный интервал значения в графе **"Количество ошибок"** записи верхнего уровня.\\ * **"Пользователь"** - выбираются задачи, у которых задан "Пользователь" (tasks.user_name). Пользователь задается при сохранении корректировок задачи.\\ Кнопка **"Обновить"** - выполняет загрузку данных из базы данных в соответствии с настройками фильтра.\\ ===== Поиск ===== Клик по заголовку графы таблицы включает сортировку по записям верхнего уровня этой графы. При заполнении поля "Поиск" выбираются записи, в которых содержится этот фрагмент текста в полях **"Тип ошибки"** или **"Сообщение об ошибке"** или **"Наименование задачи"** или **"Формулировка задачи"** (exceptions.ExcepType, exceptions.ExcepMess, tasks.name, tasks.description)\\ При заполнении поля "ID" выбираются записи, в которых совпадает **"ID исключения"** или **"ID задачи"** (exceptions.ID или tasks.ID)\\ ===== Операции ===== * Кнопка **"Задача"** - открывает **[[:pc_TFormTask|форму "Карточка задачи"]]**. На этой форме есть кнопка **"Закрыть"**, которая отмечает, что исправления выполнены и делает задачу неактивной.\\ * Кнопка **"Модули в Call Stack"** - открывает **форму "Модули в Call Stack"** для редактирования таблицы **[[:SrcExclude|"SrcExclude"]]**. Эта таблица влияет на импорт полей exceptions.CSModule, exceptions.CSSource, exceptions.CSClass, exceptions.CSProcedure, exceptions.CSLineProc\\ ===== Дополнительная информация ===== * [[exept_monitoring|Мониторинг исключений]]\\ * [[:pc_TFormTask|Форма "Карточка задачи"]]\\ * [[:pc_TFormSrcExclude|Форма "Модули в Call Stack"]]\\ * [[:eurekalog|Таблица "eurekalog"]]\\ * [[:appl|Таблица "appl"]]\\ * [[:applver|Таблица "applver"]]\\ * [[:exceptions|Таблица "exceptions"]]\\ * [[:excapplver|Таблица "excapplver"]]\\ * [[:excappl|Таблица "excappl"]]\\ * [[:excappld|Таблица "excappld"]]\\ * [[:tasks|tasks]]\\ * [[:Status|Status]]\\ * [[:Priority|Priority]]\\ * [[:SrcExclude|SrcExclude]]\\ * [[:Clients|Clients]]\\ * [[:Client_Lic|Client_Lic]]\\ * [[:ProjectsControl3|Менеджере проектов]]\\