Кастомизация форм (в рамках архитектуры)

Только для готовых решений! Пожалуйста, не используйте для вопросов и обсуждений!

Модератор: ykolesnikov

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

Кастомизация форм (в рамках архитектуры)

Сообщение merkushov » 20 май 2013, 12:09

Ситуация для примера Есть фирма по разработке ПО. OTRS используется для поддержки клиентов и для внутренних нужд. Есть "внешние" и "внутренние" Клиенты. Внешние клиенты жалуются только на ПО, для внутренних нужно принимать обращения по сопровождению it служб компании.
Рассмотрим форму создания заявки Клиентом Kernel/Modules/CustomerTicketMessage.pm Для "внешних" Клиентов нужна минималистическая форма с Темой, Текстом сообщения и доп.полем Версия ПО. Для "внутренних" Клиентов нужен весь набор полей и доп. поле "Номер комнаты". Т.е. смысл в том что нужно получить для разных интерфейса для разных групп Клиентов, но при этом хотелось бы чтобы система была общая.

Что делаем
1. Создаём модуль, отнаследовавшись от старого.
2. Создаём для него конфиг, копируя старый и меняя там имя модуля.
3. Настраиваем две формы в Конфигураторе (в рамках конфига) так как нам нужно.
4. Раздаём права доступа к старому и новому интерфейсу, чтобы каждая группа пользователей видела свою форму.

Теперь подробности
1. Создадим модуль Kernel/Modules/CustomerTicketMessageInternal.pm и отнаследуемся от основной формы создания заявки

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

# --
# Kernel/Modules/CustomerTicketMessageInternal.pm - модуль создания новой заявки для внутренних Клиентов
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
# did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
# --

package Kernel::Modules::CustomerTicketMessageInternal;

use base qw( Kernel::Modules::CustomerTicketMessage );

1;
2. Создадим для неё отдельный конфиг. В файлах Kernel/Config/Files/*.xml нужно найти все упоминания CustomerTicketMessage и аккуратно перенести их в собственный xml файл. Например ZCustomerTicketMessageInternal.xml Получится вот такой файл
ZCustomerTicketMessageInternal.xml.zip
Конфиг для нового модуля
(1.29 КБ) 836 скачиваний
Ребилдим конфиг OTRS

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

perl ./bin/otrs.RebuildConfig.pl
после этого конфиги нового модуля CustomerTicketMessageInternal должны появится в web-интерфейсе Конфигурации системы.

3. Через Конфигурацию стистемы настраиваем старую и новую формы. Пригодится стандартный механизм ACL'ов

4. Далее следует разбить Клиентов по группам и настроить видимость интерфейсов для той или иной группы (секция конфига CustomerFrontend::Module###CustomerTicketMessageInternal).

Какие плюсы:
- получаем настройки для разных групп пользователей
- методика в рамках архитектуры, ничего кардинально менять не нужно
- все обновления OTRS проходят прозрачно
Меркушов Виктор, perl программист

gusev
OTRS Новобранец
Сообщения: 12
Зарегистрирован: 24 окт 2014, 10:30

Re: Кастомизация форм (в рамках архитектуры)

Сообщение gusev » 29 окт 2014, 13:05

Виктор, немного не понятно касательно "ребилдим конфиг ОТРС", что под этим подразумевается и как это сделать?

Заранее спасибо!

gusev
OTRS Новобранец
Сообщения: 12
Зарегистрирован: 24 окт 2014, 10:30

Re: Кастомизация форм (в рамках архитектуры)

Сообщение gusev » 29 окт 2014, 13:24

Отобразилась данная конфигурация в веб-интерфейсе, теперь при создании новой заявки у меня два поля "новая заявка".

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

Re: Кастомизация форм (в рамках архитектуры)

Сообщение merkushov » 29 окт 2014, 13:31

Смысл тут в том что появляется ещё одна форма, после чего их можно настроить по разному и развести по ним Клиентов при помощи групп.
Меркушов Виктор, perl программист

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

Re: Кастомизация форм (в рамках архитектуры)

Сообщение alexus » 30 окт 2014, 12:53

Клиенты-Группы - это очень плохая концепция, с побочными эффектами и общим утяжелением сопровождения системы.
С уважением,
Алексей Юсов

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

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

Re: Кастомизация форм (в рамках архитектуры)

Сообщение merkushov » 30 окт 2014, 13:21

alexus писал(а):Клиенты-Группы - это очень плохая концепция, с побочными эффектами и общим утяжелением сопровождения системы.
Согласен. Сопровождение утяжеляет, но как универсальная концепция управления связка интересная. На группы завязан доступ к тикетам очереди и к страницам интерфейса; группы используются для управления элементами форм в ACL; с помощью групп можно управлять элементами главного меню.

Если бы я писал свой OTRS, то взял бы за основу ProcessManagement с его универсальным подходом к созданию форм под конкретные процессы и концепцию Групп - Ролей
Меркушов Виктор, perl программист

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

Re: Кастомизация форм (в рамках архитектуры)

Сообщение alexus » 30 окт 2014, 14:32

Кто пробовал хоть раз настраивать Process, тот понимает, что задача не для средних умов. ACL и так нормально работает. А концепция клиентского портала, она правильная. Предустановленный ТИП тикета - на клиентском и агентском интерфейсе - это странная постановка вопроса. И надо, чтобы эти атрибуты заявки были сознательно определены клиентом или агентом.
С уважением,
Алексей Юсов

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

e.levitskiy
OTRS Новобранец
Сообщения: 46
Зарегистрирован: 25 июл 2014, 11:56

Re: Кастомизация форм (в рамках архитектуры)

Сообщение e.levitskiy » 19 сен 2017, 23:27

ACL не умеет скрывать ненужные динамические поля в зависимости от "чего либо". не содержимое их- а само поле, как сущность
потому process management интересен хотя бы тем- что можно сделать действительно кастомные формы запросов для всего подряд
Евгений Левицкий
OTRS 6.0.10, ITSM 6.0.10
Oracle ent. Linux redhat 6.7 / MySQL 5.1.73 / Apache/2.2.15 (Oracle)

Ответить