Страница 1 из 1

Связь Ticket и Process в БД

Добавлено: 06 сен 2018, 17:02
Ducker
Добрый день.

Занимаюсь получением данных из OTRS для своего приложения. К сожалению, эндпоинт (на restapi) не рабочий. Есть только доступ к БД.
Мне необходимо вытащить тикеты, которые относятся к определенному процессу. Однако, я не могу найти никакой связи в самой БД между таблицами:
- ticket
- pm_process

В самой таблице "pm_process" есть BLOB поле config, назначение которого пока не понятно.

Буду признателен, за любую информацию по этому вопросу.

Re: Связь Ticket и Process в БД

Добавлено: 06 сен 2018, 17:34
schum
Добрый день.

Когда заявка добавляется в процесс, у нее заполняется динамическое поле ProcessManagementProcessID = ID процесс (см. рисунок).
Чтобы получить список заявок по нужному процессу, просто проверьте у них значение ProcessManagementProcessID.
Если заявка в ходе обработки не "прыгает" из процесса в процесс, то этого будет достаточно.

Re: Связь Ticket и Process в БД

Добавлено: 06 сен 2018, 18:24
Ducker
Спасибо за инфу. К сожалению, у меня нет никакого доступа к OTRS. Она находится на другой машине. Доступ у меня есть только к ее базе. Никакого веб-интерфейса.

Теперь нужно связать тикеты и динамические поля. Проблема в том, что они тоже никак не связаны между собой (я имею в виду ключами, как, напиример тикет и сервис). Сама OTRS где то хранит эту связь отдельно.

Поэтому, возникает вопрос : Как получить все динамические поля для тикета ?
При условии, что в самой таблице ticket нет никакого поля для этого (внешнего ключа).

Re: Связь Ticket и Process в БД

Добавлено: 06 сен 2018, 19:21
alexus

Re: Связь Ticket и Process в БД

Добавлено: 06 сен 2018, 22:01
Ducker
Вот полная схема https://ftp.otrs.org/pub/otrs/doc/datab ... tabase.png, согласно которой "dynamic_field_value " и "dynamic_field " связаны между собой и только.

В самой "dynamic_field_value" есть поле "object_id", которое не является id тикета. Значения динамических полей я вижу в базе , но пока не знаю, как связать их с тикетом.
otrs.png
Часть схемы
otrs.png (20.95 КБ) 6421 просмотр

Re: Связь Ticket и Process в БД

Добавлено: 06 сен 2018, 23:06
alexus
Вкуривать, вкуривать и ещё раз вкуривать! Ну и мыслить логически.
Вы хоть раз пробовали динамическое поле создавать? Если нет, зайдите в админку. Уверен, что глядя на это в целом
Снимок экрана 2018-09-06 в 22.03.25.png
Снимок экрана 2018-09-06 в 22.03.25.png (724.56 КБ) 6419 просмотров
и на столбец Объект в частности, Вы поймёте в каком столбце искать ID тикета (он же - Заявка).
Понимание приходит с опытом 8-)

Re: Связь Ticket и Process в БД

Добавлено: 07 сен 2018, 13:14
Ducker
У меня нет возможности зайти в админку, как и доступа к самой OTRS, иначе бы попытался настроить RestAPI на вытачу всей инфы. На выходных попробую дома поставить тестовую систему на докере и поиграться. Раньше, я никогда с ней не сталкивался.

Спасибо большое за разъяснение. Действительно, я немного проглядел. Это полиморфная связь. Теперь могу связать заявки с динамическими полями, а те, в свою очередь, с процессами.

Re: Связь Ticket и Process в БД

Добавлено: 07 сен 2018, 13:45
alexus
Ducker писал(а):
07 сен 2018, 13:14
У меня нет возможности зайти в админку, как и доступа к самой OTRS, иначе бы попытался настроить RestAPI на вытачу всей инфы.
Странная, как минимум, ситуация. Но Вы ведь уже поняли, что это поле - object_id ))?
Ducker писал(а):
07 сен 2018, 13:14
Теперь могу связать заявки с динамическими полями, а те, в свою очередь, с процессами.
Всё верно.
Если Вам помогли с решением, поставьте лайки на сообщения. Доброе слово/лайк и собаке приятно :D !

Re: Связь Ticket и Process в БД

Добавлено: 07 сен 2018, 18:05
Ducker
Что бы не создавать новую тему.

У заявок есть поле "create_time" где записывается время ее создания. Для времени закрытии такого поля нет.
Закрытые заявки меняют "ticket_state_id" (в моем случае на 2 и 3). Как узнать, когда закрыли заявку?

Поставил себе ОТРС на локальную машину, что бы поиграться и посмотреть, как что меняется. Но даже в интерфейсе самой ОТРС не могу найти времени закрытия. Более того, время жизни (Age) тикетов продолжает расти даже у закрытых.

Re: Связь Ticket и Process в БД

Добавлено: 07 сен 2018, 19:12
alexus
Ducker писал(а):
07 сен 2018, 18:05
Что бы не создавать новую тему.
Это лучше в отдельную тему.