Диплом: "Автоматизация обработки заявок ООО "Проектно-Строительная Компания"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
70
2.3 Программное обеспечение задачи
2.3.1 Общие положения (дерево функций и сценарий диалога)
Работа OTRS происходит по двум алгоритмам параллельно, как показано на
рис. 2-8.
Первый — взаимодействие оператора с системой через веб-интерфейс и
обновление данных в базе данных. Пользователь обращается к веб-странице, при
формировании которой из базы данных выбираются соответствующие задаче
данные. При обновлении основной страницы интерфейса будут выбираться
данные по списку заявок, напоминаниям и очередям. При вызове интерфейса
работы с заявкой будут выбраны данные типа истории работы по заявке, текст,
комментарии к ней и сопутствующие данные. При клике на кнопку «ответить»
будет открыта форма редактирования ответа, в нее загружен текст, выбраны из
базы и подставлены в соответствующие поля текст приветствия и подписи. После
окончания редактирования форма и нажатия кнопки «Отправить», все внесенные
изменения сохраняются в базу данных, но сообщение не отправляется, а
помечается в базе данных как готовое к отправке.
Второй — системный. В операционной системе (не в программе OTRS)
работает планировщик, каждую минуту вызывающий скрипт otrs.Daemon.pl. Этот
скрипт отрабатывает все системные задачи. В частности, он делает выборку из
базы по заявкам, поставленным в очередь на отправку и передает их модулю
отправки почты. Затем запускает модуль получения новой почты, после чего
передает полученные письма сортировщику сообщений. Сортировщик проверяет
заголовки писем и по ним сортирует сообщения по очередям или добавляет
полученные письма к существующим цепочкам. Следом запускается модуль,
проверяющий наступление времени напоминаний или срабатывание триггера
превышения времени реакции на заявку.
Дерево функций системы представлено на рисунке 2-8.
71
Рис 2-8. Дерево функций системы OTRS
72
2.3.2 Характеристика базы данных
Как было указано выше, для использования в системе OTRS была выбрана
база данных MySQL, а точнее ее логическое развитие — mariadb.
Поскольку система развивается очень давно и на сегодняшний день обросла
очень широкими функциональными возможностями, реляционная модель ее
базы данных так же не отличается простотой. Всего база otrs содержит 116
таблиц.
MariaDB [otrs]> show tables;
+--------------------------------+
| Tables_in_otrs |
+--------------------------------+
| acl |
| acl_sync |
| article |
| article_data_mime |
| article_data_mime_attachment |
| article_data_mime_plain |
| article_data_mime_send_error |
| article_data_otrs_chat |
| article_flag |
| article_search_index |
~~~~~~~~~~~~~~~ cut ~~~~~~~~~~~~~~
| virtual_fs_preferences |
| web_upload_cache |
| xml_storage |
+--------------------------------+
116 rows in set (0.002 sec)
Поэтому из общей базы будут выбраны только таблицы и данные в них,
непосредственно относящиеся к теме работы.
customer_company таблица 2-3-2-1
Имя поля Тип данных Комментарий
customer_id varchar(150) Идентификатор компании, номер договора
Name Varchar(200) Название компании
Street Varchar(200) Улица
Zip Varchar(200) Индекс
Country Varchar(200) Страна
73
comments Varchar(250) Комментарий
Таблица customer_company используется для хранения информации о
клиентах компании. В работе OTRS учтено обстоятельство, что клиентом
выступает компания, но в ней может работать несколько разных человек,
имеющих возможность могут оформить заявку. Часто это может быть несколько
системных администраторов, у каждого из которых есть свой телефон, e-mail и
т.п, бухгалтер компании и так далее. Поэтому основная сущность для ИС —
компания, идентифицируемая номером договора, а клиенты — вложенные
сущности в первую.
Таблица customer_user таблица 2-3-2-2
Имя поля Тип данных Комментарий
Id Int(11) Внутренний идентификатор пользователя
Login Varchar(200)
Имя пользователя (логин) в системе OTRS
Email Varchar(150)
E-mail пользователя
customer_id
Varchar(150)
Идентификатор компании
Pw Varchar(128)
Пароль в системе OTRS
Title Varchar(50) Должность
first_name Varchar(100)
Имя
last_name Varchar(100)
Фамилия
Phone Varchar(150)
телефон
Fax Varchar(150)
Факс
Mobile Varchar(150)
Мобильный телефон
Street Varchar(150)
Улица
Zip Varchar(200)
Индекс
City Varchar(200)
Город
Country Varchar(200)
Страна
74
Comments Varchar(250)
Комментарий
create_time Datetime Время создания записи
Таблица group_customer таблица 2-3-2-3
Имя поля Тип данных Комментарий
customer_id Varchar(150) Идентификатор пользователя
group_id Int(11) Идентификатор группы
create_time Datetime Время создания
Эта таблица описывает группы пользователей. Группа внутренняя для
системы и может использоваться для удобства группировки пользователей по
определенным критериям. Например, «Кировский район», «Адмиралтейский
район», «Пользователи хостинга на сервере SRV-16» и т. д.
Таблица group_customer_user таблица 2-3-2-4
Имя поля Тип данных Комментарий
user_id varchar(100)
Идентификатор пользователя
group_id Int(11) Идентификатор группы
В таблице group_customer_id описывается связь между пользователями и
группами. Один пользователь может состоять в нескольких группах.
Таблица groups таблица 2-3-2-5
Имя поля Тип данных Комментарий
Id Int(11) Внутренний идентификатор
Name varchar(200) Название группы
В этой таблице содержится список групп агентов системы
75
Таблица group_user таблица 2-3-2-6
Имя поля Тип данных Комментарий
user_id Int(11) Внутренний идентификатор агента
group_id Int(11) Внутренний идентификатор группы
permission_key Varchar(20)
Ключ уровня доступа для этой группы
Таблица прав агентов для определенных групп. Содержимое таблицы
показано ниже. В ней устанавливаются права, которыми обладает агент в
определенной группе.
MariaDB [otrs]> select user_id,group_id,permission_key from group_user;
+---------+----------+----------------+
| user_id | group_id | permission_key |
+---------+----------+----------------+
| 1 | 1 | rw |
| 1 | 2 | rw |
| 1 | 3 | rw |
| 2 | 1 | rw |
| 2 | 2 | rw |
| 2 | 3 | rw |
| 2 | 4 | rw |
| 2 | 5 | rw |
| 3 | 4 | rw |
| 4 | 4 | rw |
| 5 | 5 | rw |
| 6 | 5 | rw |
| 7 | 6 | rw |
| 8 | 6 | rw |
| 5 | 4 | move_into |
| 5 | 4 | note |
| 5 | 4 | priority |
| 5 | 4 | ro |
| 5 | 6 | move_into |
| 5 | 6 | note |
| 5 | 6 | priority |
| 5 | 6 | ro |
| 3 | 5 | create |
| 3 | 5 | move_into |
| 3 | 5 | note |
| 3 | 5 | ro |
| 3 | 6 | create |
| 3 | 6 | move_into |
| 3 | 6 | note |
| 3 | 6 | ro |
+---------+----------+----------------+
30 rows in set (0.001 sec)
Например, чтобы узнать какими правами в группе обладает пользователь
t1, нам необходимо узнать его идентификатор в таблице users, затем из таблицы
76
groups получить идентификатор интересующей нас группы, после чего мы
можем сделать выборку по конкретным условиям из таблицы gorup_user.
MariaDB [otrs]> select permission_key from group_user where user_id=5
and group_id=6;
+----------------+
| permission_key |
+----------------+
| move_into |
| note |
| priority |
| ro |
+----------------+
Пользователь имеет права на чтение заявки, изменение приоритета,
перемещения заявки в эту группу и вписывание заметок.
Таблица service таблица 2-3-2-7
Имя поля Тип данных Комментарий
Id Int(11) Внутренний идентификатор
Name Varchar(200) Название роли
Comments Varchar(250) Комментарий
Таблицы service_customer_user таблица 2-3-2-8
Имя поля Тип данных Комментарий
customer_user_login
varchar(200) Логин пользователя
service_id int(11) Идентификатор сервиса
Две таблицы, отвечающие за сервисы, предоставляемые клиенту. В них
указывается сам сервис, например, «Хостинг» и принадлежность конкретного
клиента к этому сервису.
Таблица service_sla таблица 2-3-2-9
Имя поля Тип данных Комментарий
service_id int(11) Идентификатор сервиса
sla_id Int(11) Идентификатор SLA
77
Таблица sla таблица 2-3-2-10
Имя поля Тип данных Комментарий
id Int(11) Идентификатор SLA
calendar_name Varchar(100)
Имя календаря
first_response_time
int(11) Время первого ответа на заявку
solution_time Int(11) Время решения заявки
Comments Varchar(250)
Комментарий
create_time Datetime Время создания
change_time Datetime Время изменения
SLA — Service Level Agreement. Термин из ITIL, обозначающий уровень
качества обслуживания клиента. В самом простом случае может исчисляться
временем реакции на заявку и временем ее решения.
В таблице service_sla описывается связь между сервисами и уровнями
обслуживания, во второй таблице указывается и настраивается сами уровни
обслуживания клиентов.
Таблица ticket таблица 2-3-2-11
Имя поля Тип данных Комментарий
Id int(11) Внутренний идентификатор заявки
Tn Varchar(50)
Сформированный номер заявки внутри
OTRS
Title Varchar(255)
Название заявки. Обычно выбирается из
поля Subject: почтового сообщения
queue_id Int(11) Идентификатор очереди
ticket_lock_id Smallint
Внутренний идентификатор агента,
заблокировавшего заявку для работы над
ней
service_id Int(11) Идентификатор сервиса
78
sla_id Int(11)
Идентификатор SLA, назначенного на эту
заявку
user_id Int(11)
Идентификатор агента, работающего над
этой заявкой
ticket_priority_id Smallint
Идентификатор приоритета заявки
(номрально, срочно, не срочно)
ticket_state_id Smallint
Идентификатор состояния заявки
(решена,ожидается ответ клиента…)
customer_id varchar(150)
Идентификатор компании пользователя, в
нашем случае — номер договора
customer_user_id Varchar(250) Пользователь компании
escalation_time Int(11) Время эскалации заявки (SLA)
escalation_response_time
Int(11) Время ответа по заявке (SLA)
escalation_solution_time
Int(11) Время решения заявки (SLA)
create_time Int(11) Время создания заявки
Таблица ticket, учитывает сами заявки. В этой таблице содержится
указатели на все необходимые для обработки заявки данные, такие как сервисы,
пользователи, время решения и так далее.
В базе содержится еще 12 дополнительных таблиц, имеющих
непосредственное отношение к заявкам, таких как ticket_priority,
ticket_number_count, ticket_watcher и так далее. Это внутренние справочники для
системы OTRS, которые не доступны для каких-либо изменений оператору
системы. Таблица ticket_loop_protection помогает системе отслеживать и
предотвращаться зацикленность отправки почтовых сообщений, но это уже
технические нюансы реализации системы и рассматриваться здесь не будут.
79
Таблица time_accounting таблица 2-3-2-12
Имя поля Тип данных Комментарий
Id Bigint(20) Внутренний идентификатор
ticket_id Bigint(20) Идентификатор заявки
create_time Datetime Время создания заявки
change_time Datetime Время последнего изменения заявки
change_by Id(11) Идентификатор пользователя
Эта таблица предоставляет статистику работы над заявками. Из нее можно
получить данные по общему времени работы над заявкой. В ней не ведется
детальный учет времени по этапам SLA, а всего лишь время начала работы над
заявкой и окончание. Это требуется для учета рабочего времени сотрудников.
Таблица user_preferences таблица 2-3-2-13
Имя поля Тип данных Комментарий
user_id Int(11) Идентификатор агента
preferences_key Varchar(150)
Ключ настроек
preferences_value longblob значение
Таблица данных агентов системы. Ниже представлен пример содержимого
таблицы:
MariaDB [otrs]> select * from user_preferences where user_id=3;
+---------+---------------------------------------------------+-------------------+
| user_id | preferences_key | preferences_value |
+---------+---------------------------------------------------+-------------------+
| 3 | UserEmail | m1@blondinok.net |
| 3 | UserMobile | |
| 3 | UserAuthBackend | |
| 3 | UserLoginFailed | 0 |
| 3 | UserTimeZone | Europe/Moscow |
| 3 | UserLanguage | ru |
| 3 | OutOfOffice | |
| 3 | OutOfOfficeStartYear | 2018 |
| 3 | OutOfOfficeStartMonth | 10 |
| 3 | OutOfOfficeStartDay | 4 |
| 3 | OutOfOfficeEndYear | 2018 |
| 3 | OutOfOfficeEndMonth | 10 |
| 3 | OutOfOfficeEndDay | 5 |
| 3 | UserStoredFilterColumns-AgentTicketQueue | {} |
| 3 | UserTicketOverviewAgentTicketQueue | Preview |

Смотрите также:

"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран
Work-life balance подход в управлении рабочим временем молодых сотрудников (на примере ООО «МГТ-сервис»)