Очереди и подочереди
Модератор: ykolesnikov
Очереди и подочереди
Добрый день.
Помогите пожалуйста разобраться.
Есть идея разделения отображения на формах Тикетов очередей и подочередей (связано с распределенной структурой компании), т.е. будет 2 комбобокса в первом храниться названия очередей, во втором их подчередь. Очереди и подочереди созданы из Админки.
Вопросы:
1. Как значение очереди и подочереди хранится в БД.
2. Можно ли вытянуть по отдельности значения "очередь" и ее "подочереди"?
3. Я правильно понимаю, что если комбобокса будет два, то и механизм записи тикета в БД будет другой?
Спасибо большое.
Помогите пожалуйста разобраться.
Есть идея разделения отображения на формах Тикетов очередей и подочередей (связано с распределенной структурой компании), т.е. будет 2 комбобокса в первом храниться названия очередей, во втором их подчередь. Очереди и подочереди созданы из Админки.
Вопросы:
1. Как значение очереди и подочереди хранится в БД.
2. Можно ли вытянуть по отдельности значения "очередь" и ее "подочереди"?
3. Я правильно понимаю, что если комбобокса будет два, то и механизм записи тикета в БД будет другой?
Спасибо большое.
-
- OTRS Бывалый
- Сообщения: 310
- Зарегистрирован: 25 окт 2012, 15:06
- Откуда: Воронеж
- Поблагодарили: 2 раза
Re: Очереди и подочереди
1. Иерархия очередей построена весьма примитивно. В поле name хранится и имя и иерархия (двойное двоеточие разделяет предка и потомка). На уровне кода это всё парсится и для списков выдаётся уже в виде псевдо-дерева.
Пример
2. Можно вытянуть все записи из таблицы и в коде сделать всё что вам нужно. Можно написать функцию в БД, которая сделает это немного быстрее.
3. Механизм будет такой же.
Пример
Код: Выделить всё
id | name
----+------------------------------------
1 | Postmaster
2 | Raw
3 | Junk
4 | Misc
5 | Очередь
6 | Очередь::Подочередь
7 | Очередь::Подочередь::Подподочередь
3. Механизм будет такой же.
Меркушов Виктор, perl программист
Re: Очереди и подочереди
Во вьюшке otrs/Kernel/Output/HTML/Standart/AgentTicketPhone.dtl ниспадающий список очередей рисуется вот этим кодом
В контроллере otrs/Kernel/Modules/AgentTicketPhone.pm код, который отображает данные в ниспадающем списке следующий
В условии проверяется настройка NewQueueSelectionType. Это настройка задает будет ли являться типом заявки очередь или что-то другое.
Если выбрана очередь то наполняем ниспадающий список с помощью функции AgentQueueListOption(), которая описана в файле otrs/Kernel/Output/HTML/LayoutTicket.pm
Код: Выделить всё
<div class="Field">
$Data{"ToStrg"}
<div id="DestError" class="TooltipErrorMessage" ><p>$Text{"This field is required."}</p></div>
<div id="DestServerError" class="TooltipErrorMessage"><p>$Text{"This field is required."}</p></div>
<!--dtl:js_on_document_complete-->
<script type="text/javascript">//<![CDATA[
$('#Dest').bind('change', function (Event) {
Core.AJAX.FormUpdate($('#NewPhoneTicket'), 'AJAXUpdate', 'Dest', ['TypeID', 'NewUserID', 'NewResponsibleID', 'NextStateID', 'PriorityID', 'ServiceID', 'SLAID', 'SignKeyID', 'CryptKeyID', $Data{"DynamicFieldNamesStrg"}, 'To', 'Cc', 'Bcc']);
});
//]]></script>
<!--dtl:js_on_document_complete-->
</div>
Код: Выделить всё
# build to string
my %NewTo;
if ( $Param{To} ) {
for my $KeyTo ( sort keys %{ $Param{To} } ) {
$NewTo{"$KeyTo||$Param{To}->{$KeyTo}"} = $Param{To}->{$KeyTo};
}
}
if ( $Self->{ConfigObject}->Get('Ticket::Frontend::NewQueueSelectionType') eq 'Queue' ) {
$Param{ToStrg} = $Self->{LayoutObject}->AgentQueueListOption(
Class => 'Validate_Required',
Data => \%NewTo,
Multiple => 0,
Size => 0,
Name => 'Dest',
SelectedID => $Param{ToSelected},
OnChangeSubmit => 0,
);
}
else {
$Param{ToStrg} = $Self->{LayoutObject}->BuildSelection(
Class => 'Validate_Required',
Data => \%NewTo,
Name => 'Dest',
SelectedID => $Param{ToSelected},
Translation => 0,
);
}
Если выбрана очередь то наполняем ниспадающий список с помощью функции AgentQueueListOption(), которая описана в файле otrs/Kernel/Output/HTML/LayoutTicket.pm
OTRS 3.2.8, Ubuntu 12.04, Apache, PostgreSQL
Re: Очереди и подочереди
Вот только не могу понять, а что Вы хотите сделать, если будет третий уровень вложенности, т. е. queuy::queuy1::queuy2?
OTRS 3.2.8, Ubuntu 12.04, Apache, PostgreSQL
Re: Очереди и подочереди
Спасибо за ответы.
, такой кейс мы пока не рассматривали, его не будет. За кейс такой спасибо рассмотрим его.Siyet писал(а):Вот только не могу понять, а что Вы хотите сделать, если будет третий уровень вложенности, т. е. queuy::queuy1::queuy2?
-
- OTRS Гуру
- Сообщения: 5192
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 92 раза
- Поблагодарили: 82 раза
Re: Очереди и подочереди
Все выглядит вроде как здорово, но я предпосылку не понимаю вообще. При чем тут разделение на многоуровневый список и "распределенная структура компании"?
mmju писал(а):идея разделения отображения на формах Тикетов очередей и подочередей (связано с распределенной структурой компании)
С уважением,
Алексей Юсов
Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal
Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!
Алексей Юсов
Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal
Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!
-
- OTRS Гуру
- Сообщения: 5192
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 92 раза
- Поблагодарили: 82 раза
Re: Очереди и подочереди
Вот именно об этом я говорил !
С уважением,
Алексей Юсов
Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal
Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!
Алексей Юсов
Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal
Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!