Очереди и подочереди

Запросы на решение проблем

Модератор: ykolesnikov

Ответить
mmju
OTRS Новобранец
Сообщения: 9
Зарегистрирован: 18 июл 2013, 06:03

Очереди и подочереди

Сообщение mmju » 18 июл 2013, 07:00

Добрый день.

Помогите пожалуйста разобраться.
Есть идея разделения отображения на формах Тикетов очередей и подочередей (связано с распределенной структурой компании), т.е. будет 2 комбобокса в первом храниться названия очередей, во втором их подчередь. Очереди и подочереди созданы из Админки.
Вопросы:
1. Как значение очереди и подочереди хранится в БД.
2. Можно ли вытянуть по отдельности значения "очередь" и ее "подочереди"?
3. Я правильно понимаю, что если комбобокса будет два, то и механизм записи тикета в БД будет другой?

Спасибо большое.

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Очереди и подочереди

Сообщение merkushov » 18 июл 2013, 09:04

1. Иерархия очередей построена весьма примитивно. В поле name хранится и имя и иерархия (двойное двоеточие разделяет предка и потомка). На уровне кода это всё парсится и для списков выдаётся уже в виде псевдо-дерева.
Пример

Код: Выделить всё

 id |               name    
----+------------------------------------
  1 | Postmaster
  2 | Raw
  3 | Junk
  4 | Misc
  5 | Очередь
  6 | Очередь::Подочередь
  7 | Очередь::Подочередь::Подподочередь
2. Можно вытянуть все записи из таблицы и в коде сделать всё что вам нужно. Можно написать функцию в БД, которая сделает это немного быстрее.

3. Механизм будет такой же.
Меркушов Виктор, perl программист

Siyet
OTRS Новобранец
Сообщения: 62
Зарегистрирован: 26 июн 2013, 16:56

Re: Очереди и подочереди

Сообщение Siyet » 18 июл 2013, 09:13

Во вьюшке otrs/Kernel/Output/HTML/Standart/AgentTicketPhone.dtl ниспадающий список очередей рисуется вот этим кодом

Код: Выделить всё

<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>
В контроллере otrs/Kernel/Modules/AgentTicketPhone.pm код, который отображает данные в ниспадающем списке следующий

Код: Выделить всё

    # 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,
        );
    }
В условии проверяется настройка NewQueueSelectionType. Это настройка задает будет ли являться типом заявки очередь или что-то другое.
Если выбрана очередь то наполняем ниспадающий список с помощью функции AgentQueueListOption(), которая описана в файле otrs/Kernel/Output/HTML/LayoutTicket.pm
OTRS 3.2.8, Ubuntu 12.04, Apache, PostgreSQL

Siyet
OTRS Новобранец
Сообщения: 62
Зарегистрирован: 26 июн 2013, 16:56

Re: Очереди и подочереди

Сообщение Siyet » 18 июл 2013, 09:18

Вот только не могу понять, а что Вы хотите сделать, если будет третий уровень вложенности, т. е. queuy::queuy1::queuy2?
OTRS 3.2.8, Ubuntu 12.04, Apache, PostgreSQL

mmju
OTRS Новобранец
Сообщения: 9
Зарегистрирован: 18 июл 2013, 06:03

Re: Очереди и подочереди

Сообщение mmju » 18 июл 2013, 10:37

Спасибо за ответы.

Siyet писал(а):Вот только не могу понять, а что Вы хотите сделать, если будет третий уровень вложенности, т. е. queuy::queuy1::queuy2?
, такой кейс мы пока не рассматривали, его не будет. За кейс такой спасибо рассмотрим его.

mmju
OTRS Новобранец
Сообщения: 9
Зарегистрирован: 18 июл 2013, 06:03

Re: Очереди и подочереди

Сообщение mmju » 20 июл 2013, 10:04

Помогите пожалуйста ссылкой как использовать деббагер.

Спасибо

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: Очереди и подочереди

Сообщение alexus » 21 июл 2013, 21:59

Все выглядит вроде как здорово, но я предпосылку не понимаю вообще. При чем тут разделение на многоуровневый список и "распределенная структура компании"?
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? Спросите меня как!

mmju
OTRS Новобранец
Сообщения: 9
Зарегистрирован: 18 июл 2013, 06:03

Re: Очереди и подочереди

Сообщение mmju » 22 июл 2013, 09:56

Очень сложно объяснить...=) Даже тому кто так хочет это видеть)

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: Очереди и подочереди

Сообщение alexus » 22 июл 2013, 16:41

Вот именно об этом я говорил :D!
С уважением,
Алексей Юсов

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? Спросите меня как!

Ответить