динамические поля dropdown и ticket event module

Обсуждение вопросов и решений

Модератор: ykolesnikov

Ответить
push2talk
OTRS Новобранец
Сообщения: 52
Зарегистрирован: 01 июл 2011, 15:48

динамические поля dropdown и ticket event module

Сообщение push2talk » 06 июл 2012, 14:42

Добрый день.
Появилась задача, создания динамического поля типа dropdown и повесить событие на действие клиента при выборе конкретного пункта в выпадающем списке. Можно так сказвать, создание каскада или дерева динамических полей.

Например, создано динамическое поле Service в выпадающем списке dropdown 3 значения: компьютер, принтер, интернет.
Нужно: при выборе клиента конкретного пункта из списка отображать от 0 до 10 дополнительных динамических полей. Клиент выбрал в DD поле принтер внизу поля появились 3 дополнительных динамических поля: производитель, модель, дата. Клиент выбрал интернет и ничего не поменялось никаких доп. полей не появилось. Клиент выбрал компьютер внизу поля соответственно отобразились 7 дополнительных полей.

Возможно ли как-то настроить данное действие с помощью Event trigger в Ticket -> Core::TicketDynamicFieldDefault ???
Не смог найти главу в документации Please check the developer manual (http://doc.otrs.org/), chapter "Ticket Event Module".

Видел похожую тему http://forums.otterhub.org/viewtopic.php?f=53&t=14531 но не совсем понял как данный функционал был настроен. Подскажите кто-нибудь осуществлял данную настройку для клиентского интерфейса?

yuri0001
OTRS Бывалый
Сообщения: 492
Зарегистрирован: 11 фев 2011, 20:25
Откуда: Череповец

Re: динамические поля dropdown и ticket event module

Сообщение yuri0001 » 06 июл 2012, 18:08

Добрый вечер!
То что вы читали на английском форуме есть и на нашем, поищите по словуACL.
Но здесь речь шла о фиксированом количестве динамических полей, но по значению поля первого уровня выводится список допустимых значений для этого поля в списк второго уровня.
На английском форуме есть тема похожая на Ваш вопрос, ищите, там не используется ACL, а правится код модулей
Попробуйте посмотреть здесь:
http://forums.otterhub.org/viewtopic.php?f=60&t=8032
С уважением
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5

push2talk
OTRS Новобранец
Сообщения: 52
Зарегистрирован: 01 июл 2011, 15:48

Re: динамические поля dropdown и ticket event module

Сообщение push2talk » 06 июл 2012, 19:57

yuri0001 писал(а):Добрый вечер!
То что вы читали на английском форуме есть и на нашем, поищите по словуACL.
Но здесь речь шла о фиксированом количестве динамических полей, но по значению поля первого уровня выводится список допустимых значений для этого поля в списк второго уровня.
На английском форуме есть тема похожая на Ваш вопрос, ищите, там не используется ACL, а правится код модулей
Попробуйте посмотреть здесь:
http://forums.otterhub.org/viewtopic.php?f=60&t=8032
Хотелось бы увидеть вообще хоть 1 пример когда по значению поля первого уровня выводится список допустимых значений для этого поля в списк второго уровня. На нашем форруме так и не нашел.
Что касается forums.otterhub.org/viewtopic.php?f=60&t=8032 так там используется TicketFreeText а мне нужно настроить через динамические поля.
И еще может, все же кто-нибудь подскажет где можно подробно с примерами почитать об Ticket -> Core::TicketDynamicFieldDefault для чего нужна эта настройка. В документации на http://doc.otrs.org/ очень скудное описалово. :(

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Re: динамические поля dropdown и ticket event module

Сообщение ykolesnikov » 09 июл 2012, 07:30

Доброе утро!
Посмотрите эту тему - viewtopic.php?f=2&t=847 там есть полезные вещи по ACL.
Во вложении пример ACL. Там значения динамического поля ограничивается в зависимости от типа заявки. Для ограничений в зависимости от другого динамического поля, в принципе делается так же. Ну и посмотрите закомментированный кусок в конце, там пробный пример в вашу тему. Это все про ACL. Event module не смотрел. :oops:
Вложения
Config.rar
(3.55 КБ) 250 скачиваний
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

push2talk
OTRS Новобранец
Сообщения: 52
Зарегистрирован: 01 июл 2011, 15:48

Re: динамические поля dropdown и ticket event module

Сообщение push2talk » 09 июл 2012, 18:00

ykolesnikov писал(а):Доброе утро!
Посмотрите эту тему - viewtopic.php?f=2&t=847 там есть полезные вещи по ACL.
Во вложении пример ACL. Там значения динамического поля ограничивается в зависимости от типа заявки. Для ограничений в зависимости от другого динамического поля, в принципе делается так же. Ну и посмотрите закомментированный кусок в конце, там пробный пример в вашу тему. Это все про ACL. Event module не смотрел. :oops:
Большое спасибо за пример.
Но, хотелось бы прояснить некоторые моменты с синтаксисом ACL, т.к. я не силен в данном вопросе.

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

#    $Self->{TicketAcl}->{'600 - Category --> ProjectName_1'} = {              \\ это название и код команды ACL, которые я буду использовать для клиентов и агентов? 
                                                                                            \\Т.е.подскажите, что означает 600 - Category --> ProjectName_1 ?
#    
#            Properties => {
#	    DynamicField => {             \\это тип поля на которое будем вешать событие, условие ?
#            # keys must be in DynamicField_<field_name> format
#           DynamicField_CategoryName  => ['015'],                            \\ это непосредственно название подключенного динамического поля в интерфейсе клиента? 015 - ключ значения например в dropdown поле?
#           },#
#		},   
#    Possible => {
#        Ticket => {
#            DynamicField_ProjectName  => ['02 Cartrige', '04 DrumUnit'],           \\ отображение клиенту необходимого нам динамического поля, если просто текстовые динамические поля без вбитых в них значений Multiselect, тогда написать просто Ticket => {    DynamicField_ProjectName, без => ['02 Cartrige', '04 DrumUnit'] ?
#           },
#        },    
#	};

#    $Self->{TicketAcl}->{'610 - Category --> ProjectName_2'} = {
#    Properties => {
#	    DynamicField => {
#            # keys must be in DynamicField_<field_name> format
#           DynamicField_CategoryName  => ['001'],
#           },
#		},   
#    Possible => {
#        Ticket => {
#            DynamicField_ProjectName  => ['01 Toner', '03 Fuser'],
#           },
#        },    
#	};

yuri0001
OTRS Бывалый
Сообщения: 492
Зарегистрирован: 11 фев 2011, 20:25
Откуда: Череповец

Re: динамические поля dropdown и ticket event module

Сообщение yuri0001 » 09 июл 2012, 19:07

Что касается названия секции ACL, то просто спопугайничал с примеров из документации - Число еще вроде имеет какой-то смысл (где-то встречал, сейчас уже не помню, что число д.б. по нарастающей, но м.б. и неправда это, остальной текст просто название, мое (должно быть уникальным, но не проверял :) ).
У меня в примере все поля типа dropdown, другие не использую, так что пробуйте. Все мои познания из документации, лучше на английском по 3.1 (chapter 18). Там хорошие примеры и список, неполный возможных команд и их параметров. И дальше пробовал и обсуждал в форуме - весь путь познания в той ссылке, что я привел. Анна очень помогла. :)
Где будет использоваться ACL - задается в Properties -> Action (смотрите в моем примере с начала файла и примерах в мануале).
Выполняются они последовательно.
У меня в примере, динамические поля в конфигурации имеют пустое значение и набор моих значений. В зависимости от типа заявки, выбранной клиентом - в выпадающем списке для поля Категория - доступны только перечисленные в соответствующей секции ACL значения. Отдельно набор секций для клиентской заявки и отдельно набор секций для телефонной заявки, которую может создавать агент. Соответственно Action у этих секций разный.
Обращаю внимание, что здесь только ограничение доступных для ввода значений, а не выбор разных полей в зависимости от значения предыдущего. Эта задача сложнее. Она обсуждалась на английском форуме (там для FreeText полей, но, по сути, должно работать и для динамических) и с помощью ACL ее не решить.
Конечно, пример не претендует на полноту, но уж чем богаты... :oops:
Еще раз рекомендую посмотреть тщательно примеры в мануале, они практически разъясняют почти все.
С уважением
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5

Ответить