Динамические Поля

Введение
Настройка Системы
Добавление Динамического Поля
Настройка Динамического Поля типа Text
Настройка Динамического Поля Textarea
Конфигурация Динамического Поля Checkbox
Настройка Динамического Поля Dropdown (Выпадающий Список)
Конфигурация Динамического Поля Multiselect (множественный выбор)
Настройка Динамического Поля Date
Настройка Динамического Поля Date / Time
Редактирование Динамического Поля
Отображение Динамического Поля на Экране
Показать Примеры
Установка Значения по Умолчанию с помощью модуля Ticket Event
Установить значение по умолчанию для Пользовательских Настроек

Введение

Динамические поля - это специальный видполей в OTRS, создаваемых для раширения перечня информации, хранимой в заявке или сообщении/заметке. Эти поля не являются фиксированными в системе и они появляются иолько на определенных экранах, они могут быть обязательными или нет, и их представление на экране зависит от типа поля, заданного при их создании. Например, поля могут содержать текст, даты, набор из нескольких выбранных значений и т.д.

Динамические поля являются развитием свободных полей TicketFreeText TicketFreeKey TicketFreeTime, ArticleFreeText и ArticleFreeKey, ранее использовавшихся в OTRS 3.0 и предыдущих версиях. Ограничением этих "Свободных полей" состояло в том, что можно было задать до 16 (текстовых или выбираемых из списка) полей и 6 полей, содержащих значение времени для заявки и 3 (текстовых или выбираемых из списка) полей для каждого сообщения/заметки, не более.

Теперь, с появлением динамических полей, эти ограничения сняты, вы можете создавать любое количество динамических полей для заявок и сообщений. И, кроме того, интерфейс для управления ими, готов к расширению дальнейшего использования таких полей не только для заявок и сообщений, но и других объектов системы, например, для управления изменениями и пр.

Этот новый интерфейс описания и управления динамическими полями, использует модульную структуру, в которой каждый тип динамических полей может рассматриваться как дополнительный модуль для интерфейса. Это означает, что все множество динамических полей может быть просто расширено для публичных модулей OTRS, OTRS Feature Add-ons, пользовательских разработок и пр.

В этом релизе доступны следующие типы динамических полей:

  • Text (одна строка текста)

  • Textarea (несколько строк текста)

  • Checkbox

  • Выпадающий список (единственный выбор, несколько значений)

  • Multiselect (множественный выбор, несколько значений)

  • Date

  • Date / Time

Настройка Системы

By default, a clean installation of OTRS comes with two pre-installed internal dynamic fields, which cannot be removed. If you plan to use such fields in tickets or articles you need to create new, custom dynamic fields.

Настройка динамических полей разделена на две части. Для создания новых или управления ранее созданными полями перейдите по ссылке "Динамические поля" в Панели Администратора. Для управления показом, обязательностью показа или скрытием полей на конкретных экранах используйте настройки Конфигурации системы/SysConfig для этих экранов.

Добавление Динамического Поля

Откройте Панель Администратора, нажмите на ссылку "Динамические поля" в разделе "Настройки заявок", расположенном в нижней половине экрана, по центру. Список динамических полей выглядит следующим образом:

Figure: Dynamic fields overview screen.

Обратите внимание, что вид экрана изменится при добавлении динамических полей. Он также может уже иметь несколько полей, если вы провели обновление со старых версий OTRS, в которых динамические поля еще не использовались. Они теперь заменили понятие Свободные/Дополнительные поля/FreeText fields.

Раздел "Действия" в левой части экрана позволяет выбрать два варианта объекта для поля: Article/Заметка и Ticket/Заявка, каждый из которых имеет свой собственный набор значений типов полей в выпадающих списках.

Note

Установка некоторых дополнительных пакетов OTRS может привести к добавлению типов объектов в разделе "Действия".

Общая процедура для создания динамического поля:

  • Кликните на объект выбраного вами динамического поля в выпадающем списке на боковой панели действий.

  • Выберите в списке и нажмите на тип динамического поля, которое вы хотите добавить.

  • Настройка

  • Сохранить.

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

Общие настройки динамического поля:

  • Название: Обязательное поле, уникальное, только буквы и числа в качестве допустимых символов.

    Это внутреннее имя поля, используемое, например, для показа или скрытия поля на отдельных экранах. Любое изменение имени поля (не рекомендуется) потребует ручного изменения в параметрах "SysConfig", которые ссылаются на это поле.

  • Метка: Обязательное.

    Это имя, под которым поле будет показано на тех экранах, на которых оно активно. Оно может быть переведено на дргуие языки.

    Note

    Перевод метки должен быть добавлен в файл перевода вручную.

  • Порядок Полей: Обязательно.

    Определяет относительный порядок, в котором поля будут отображаться на экране, по умолчанию каждое новое поле занимает последнюю позицию, изменение этого параметра будет влиять на порядок отображения других динамических полей.

  • Срок действия: Обязательный.

    Не действительное динамическое поле не будет отображаться на любом экране, независимо от того какое значение установлено в конфигурации.

  • Тип поля: Обязательное, Только для чтения.

    Показывает текущий выбранный тип поля.

  • Тип Объекта: Обязательный, Только для чтения.

    Отображает область действия для поля.

Note

Для иллюстрации каждого конкретного параметра настройки в нашем примере будет добавлено несколько полей. Ссылки на эти поля будут упоминаться в последующих разделах.

В следующих примерах все динамические поля будут созданы для объекта Заявка, если необходимо создать динамическое поле для объекта Статья, просто выберите поле из выпадающего списка.

Table 4.6. В систему будут добавлены следующие поля:

Название Метка Type
Поле1 Мое Поле 1 Text
Поле2 Мое Поле 2 Textarea/Длинный текст
Поле3 Мое Поле 3 Checkbox
Поле4 Мое Поле 4 Dropdown
Поле5 Мое Поле 5 Multiselect (множественный выбор)
Поле6 Мое Поле 5 Date
Поле7 Мое Поле 6 Date / Time

Настройка Динамического Поля типа Text

Динамические текстовые поля используются для хранения простой строки.

Настройки динамического поля типа Text:

  • Значение по умолчанию: Необязательное.

    Это значение, которое будет отображаться по умолчанию на экранах редактирования (например, New Phone Ticket/Новая телефонная заявка или Ticket Compose/Создать ответ).

  • Показать ссылку: Необязательное.

    Если установлено, то значение поля будет преобразовано в кликабельную ссылку, которая будет отображаться на экране.

    Например, если "Показать ссылку" установленно в "http://www.otrs.com", нажатие на заполненное значение приведет к открытию веб-страницы OTRS.

    Note

    The use of [% Data.NameX | uri %] in the Set link value, where NameX is the name of the field will add the field value as part of the link reference.

Рисунок: Диалоговое окно настройки Динамического поля Text.

Настройка Динамического Поля Textarea

Динамическое поле Textarea используется для хранения строк, состоящих из нескольких линий.

Настройки динамического поля Textarea:

  • Количество строк: Необязательное, Целое.

    Используется для определения высоты поля на странице редактирования.

  • Количество столбцов: Необязательное, Целое.

    Это значение используется для задания ширины поля при редактировании.

  • Значение по умолчанию: Необязательное.

    Это значение будет отображаться по умолчанию (может быть текстом, состоящим из нескольких строк).

Рисунок: Окно настройки Динамического Поля Textarea.

Конфигурация Динамического Поля Checkbox

Динамическое поле Checkbox используется для хранения значений true или false, изображено как выбранныи или не выбранный флажок.

Настройки динамического поля Checkbox:

  • Значение по умолчанию: Обязательное.

    Это значение, которое будет показано по умолчанию на страницах редактирования (например заявка, созданная на основе телефонного звонка), значение по умолчанию для этого поля недоступно для выбора и может принимать значения Выбрано/Checked или Unchecked/Не выбрано.

Рисунок: Окно настройки Динамического Поля Checkbox.

Настройка Динамического Поля Dropdown (Выпадающий Список)

Динамическое поле Выпадающий Список (Dropdown) используется для хранения одного значения, которое выбирается из закрытого списка.

Настройки динамического поля Dropdown:

  • Возможные значения: Обязательное.

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

  • Значение по умолчанию: Необязательное.

    Это значение будет отображено по умолчанию на страницах редактирования (наример, на странице Новая телефонная заявка, или странице создания ответа), значение по умолчанию для этого поля - определяется параметром "Значение по умолчанию" с возможностью выбора всех возможных значений в списке "Значения".

  • Добавить пустое значени: Обязательное, (Да / Нет).

    Если эта опция включена, дополнительная стоимость определяется для отображения "-" в списке возможных значений, это специально значение пустоне внутри.

  • Переводимые значения: Обязательное, (Да / Нет).

    Этот параметр задает возможность перевода на язык системы значений этого поля. Переводятся только отображаемые значения, внутренние значения не подлежат переводу. Перевод полей должен быть занесен вручную в соответствующий пользовательский файл локализации. Для русского языка - ru_custom.pm.

  • Показать ссылку: Необязательное.

    Если установлено, то значение поля будет установлено в кликабельные ссылки.

    Например, если ссылка Показать установлена в значение "http://www.otrs.com", нажатие на значение поля приведет к открытию веб-страницы OTRS.

    Note

    The use of [% Data.NameX | uri %] in the Set link value, where NameX is the name of the field, will add the field value as part of the link reference.

Рисунок: Окно настройки динамического поля Dropdown.

Конфигурация Динамического Поля Multiselect (множественный выбор)

Динамическое поле Multiselect используется для хранения нескольких значений из заданного списка.

Настройка Динамического Поля Multiselect (множественный выбор):

  • Возможные значения: Обязательное.

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

  • Значение по умолчанию: Необязательное.

    Это значение будет отображено по умолчанию на страницах редактирования (например, на странице Заявки, созданной на основе телефонного звонка или странице создания Заявки), значение по умолчанию для этого поля - задается параметром "Значение по умолчанию" из заданного списка значений.

  • Добавить пустое значени: Обязательное, (Да / Нет).

    Если эта опция включена, задается возможность для отображения "-" в списке возможных значений, это специальное значение для указания на пустое значение.

  • Переводимые значения: Обязательное, (Да / Нет).

    Этот параметр задает возможность перевода на язык системы значений этого поля. Переводятся только отображаемые значения, внутренние значения не подлежат переводу. Перевод полей должен быть занесен вручную в соответствующий пользовательский файл локализации. Для русского языка - ru_custom.pm.

Рисунок: Окно настройки динамического поля Multiselect.

Настройка Динамического Поля Date

Динамическое поле Date используется для хранения значения (День, Месяць и Год).

Настройки динамического поля Date (Дата):

  • Разница дат по умолчанию: Опционально, Целое.

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

  • Определить период лет: Обязательно (Да / Нет).

    Используется для установки определенного количества лет в прошлом и будущем относительно текущей даты, установленной для этого поля. Если установлено в значение "Да", следующие опции будут доступны:

    • Лет в прошлом: Опционально, положительное целое число.

      Задает количество лет в прошлом относительно текущего дня для отображения при выборе из списка для значения в поле Год.

    • Лет в будущем: Опционально, Положительное целое.

      Задает количество лет в будущем,относительно текущего дня, при выборе значения из списка для отображения в поле Год.

  • Показать ссылку: Необязательное.

    Если установлено, то значение поля будет установлено в кликабельные ссылки.

    Например, если ссылка Показать установлена в значение "http://www.otrs.com", нажатие на значение поля приведет к открытию веб-страницы OTRS.

    Note

    The use of [% Data.NameX | uri %] in the Set link value, where NameX is the name of the field will add the field value as part of the link reference.

Рисунок: Окно настройки динамического поля Date.

Настройка Динамического Поля Date / Time

Динамическое поле Date / Time используется для хранения значения даты и времени (Минута, Час, День, Месяц и Год).

Настройки динамического поля Date / Time:

  • Разница дат по умолчанию: Опционально, Целое.

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

  • Определить период лет: Обязательно (Да / Нет).

    Используется для установки определенного количества лет в прошлом и будущем относительно текущей даты, выбранной для значения поля. Если установлено в значение Yes, следующие опции будут доступны:

    • Лет в прошлом: Опционально, положительное целое число.

      Задает количество лет в прошлом относительно текущего дня для отображения при выборе из списка для значения в поле Год.

    • Лет в будущем: Опционально, Положительное целое.

      Задает количество лет в будущем,относительно текущего дня, при выборе значения из списка для отображения в поле Год.

  • Показать ссылку: Необязательное.

    Если установлено, то значение поля будет установлено в кликабельные ссылки.

    Например, если ссылка Показать установлена в значение "http://www.otrs.com", нажатие на значение поля приведет к открытию веб-страницы OTRS.

    Note

    The use of [% Data.NameX | uri %] in the Set link value, where NameX is the name of the field will add the field value as part of the link reference.

Рисунок: Окно настройки динамического поля Date / Time.

Редактирование Динамического Поля

Страница просмотра заполненого динамического поля (с предыдущими примерами) должна выглядеть так:

Рисунок: Окно просмотра Динамического поля заполненного тестовыми данными.

Чтобы изменить или редактировать динамическое поле, нужно иметь определенным хотя бы одно динамическое поле, которое находится в списке выбора динамических полей на странице просмотра.

Note

Не все настройки динамического поля могут быть изменены, тип Поля и тип Объекта не могут быть изменены.

Не рекомендуется изменять внутреннее имя поля, но внешнее название/метка, может быть изменно в любое время. Если вы все-таки изменили внутреннее имя, необходимо изменить в "SysConfig" все настройки ссылающиеся на это имя, а также в личных настройках агента (если там задано).

Отображение Динамического Поля на Экране

Есть два обязательных условия, которые необходимо выполнить, чтобы отобразить динамическое поле на определенных страницах:

  1. Динамическое поле должно быть действительным

  2. Динамическое поле должно быть установлено в 1 или 2 на странице с настройками.

Следуйте этим шагам чтобы отобразить динамическое поле на экране

  • Убедитесь что значение динамического поля установлено правильно. Убедится в правильности значения можно посмотрев на страницу просмотра. Немедленно отредактируйте значение, чтобы сделать его правильным.

  • Откройте раздел "SysConfig"/Конфигурация системы выберите подраздел "Ticket" из выпадающего списка в левой верхней части экрана - фрейм "Действия".

    Note

    Вы также можете искать параметры, использующие конкретное динамическое поле через окно поиска или, непосредственно параметр "sysconfig", если знаете его название.

  • Найдите подгруппу параметров для экрана, который ищете и нажмите на его название. Например, "Frontend::Agent::Ticket::ViewPhoneNew".

  • Поиск параметра, наименование которого заканчивается на "###DynamicField". Например, "Ticket::Frontend::AgentTicketPhone###DynamicField".

  • Если параметр пустой или не содержит требуемого имени динамического поля, нажмите кнопку "+" и добавьте необходимую пару значений. Например, Ключ: Поле1, Содержание: 1.

    Если параметр уже содержит описание нужного динамического поля, то убедитесь, что "Содержание" установлено в "1" для его отображения, или "2", чтобы сделать его обязательным для ввода.

  • Сохраните изменения параметра, нажав кнопку "Обновить" в нижней части экрана и перейдите к описанию экрана, где это поле должно отображаться.

Показать Примеры

Далее показаны примеры настройки в "sysconfig" для отображения или скрытия показа динамических полей на разных экранах.

Example 4.21. Активировать Field1 на странице Новая Заявка на основе телефонного звонка.

  • Групировать: Заявку

  • Подгруппа: Frontend::Agent::Ticket::ViewPhoneNew

  • Настройка: Ticket::Frontend::AgentTicketPhone###DynamicField

  • Значение:

    Ключ Content
    Поле1 1

Рисунок:. Экран приветствия.


Example 4.22. Сделать Field1 на странице просмотра Заявки созданной на базе телефонного звонка New Phone Ticket Screen as mandatory.

  • Групировать: Заявку

  • Подгруппа: Frontend::Agent::Ticket::ViewPhoneNew

  • Настройка: Ticket::Frontend::AgentTicketPhone###DynamicField

  • Значение:

    Ключ Content
    Поле1 2

Рисунок: поле Field1 на странице Новая Заявка на основе телефонного звонка объязательное.


Example 4.23. Активировать несколько полей на странице просмомра Новых Телефонных Заявко.

  • Групировать: Заявку

  • Подгруппа: Frontend::Agent::Ticket::ViewPhoneNew

  • Настройка: Ticket::Frontend::AgentTicketPhone###DynamicField

  • Значение:

    Ключ Content
    Поле1 1
    Поле2 1
    Поле3 1
    Поле4 1
    Поле5 1
    Поле6 1
    Поле7 1

Рисунок: Несколько полей на странице Заявки созданной на основе телефонного звонка обязательны


Example 4.24. Отключить некоторые поля на странице Новой Заявки, созданной на основе телефонного звонка.

  • Групировать: Заявку

  • Подгруппа: Frontend::Agent::Ticket::ViewPhoneNew

  • Настройка: Ticket::Frontend::AgentTicketPhone###DynamicField

  • Значение:

    Ключ Content
    Поле1 1
    Поле2 0
    Поле3 1
    Поле4 0
    Поле5 1
    Поле6 0
    Поле7 1

Рисунок: Несколько неактивных полей на экране Создать новую Заявку на основе телефонного звонка сделать обязательными


Example 4.25. Активировать поле Field1 на странице просмотра подробной информации о Заявке.

  • Групировать: Заявку

  • Подгруппа: Frontend::Agent::Ticket::ViewZoom

  • Установка: Ticket::Frontend::AgentTicketZoom###DynamicField

  • Значение:

    Ключ Content
    Поле1 1

Рисунок: поле Field1/Поле1 на Ticket Zoom экране.


Example 4.26. Активировать поле Field1 на странице просмотра обобщенной информации о Заявке.

  • Групировать: Заявку

  • Подгруппа: Frontend::Agent::TicketOverview

  • Настройка: Ticket::Frontend::OverviewSmall###DynamicField

  • Значение:

    Ключ Content
    Поле1 1

Рисунок: Поле1 на экране просмотра обобщенной/small информации о Заявке.

Этот параметр влияет на: Escalation View, Locked View, Queue View, Responsible View, Status View, Service View и Watch View обзоры.


Установка Значения по Умолчанию с помощью модуля Ticket Event

Событие Заявки (например TicketCreate) может вызывать множество значений для определенного поля, если его значение еще до сих пор не установлено.

Note

При использовании этого способа, это значение по умолчанию не отображается на экране (например, Новая заявка по телефону) и будет присвоено после создания заявки.

Для активации этой возможности необходимо включить параметр: "Ticket::EventModulePost###TicketDynamicFieldDefault".

Example 4.27. Активировать Field1 в событии TicketCreate.

  • Групировать: Заявку

  • Подгруппа: Core::TicketDynamicFieldDefault

  • Настройка: Ticket::TicketDynamicFieldDefault###Element1

    Note

    Эта настройка может быть установлена в любую из 16 Ticket::TicketDynamicFieldDefault###Element.

    Если необходимо задать более 16 полей, пользовательский XML файл должен быть помещен в папку $OTRS_HOME/Kernel/Config/files для расширения этой возможности.

  • Значение:

    Ключ Content
    Событие TicketCreate
    Название Поле1
    Значение новое значение


Установить значение по умолчанию для Пользовательских Настроек

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

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

Параметр "sysconfig" - "PreferencesGroups###DynamicField" расположен в подгруппе "Frontend::Agent::Preferences". В этом параметре задан пример того, как создать запись для экрана личных настройкек агента специального значения по умолчанию для динамичекского поля, для избранного пользователя. Этот параметр имеет ограниечение - он разрешает задать значение только для одного динамического поля. Если это требуется сделать для двух и более полей, необходимо создать собственный XML файл конфигурации для добавления дополнительных настроек, аналогичных этой.

Note

Необходимо помнить, что если добавляются эти настройки в XML файл, каждое имя праметра должно быть уникальным в системе и отличаться от "PreferencesGroups###DynamicField". Например, PreferencesGroups###101-DynamicField-Поле1, PreferencesGroups###102-DynamicField-Поле2, PreferencesGroups###Мое-Поле1, PreferencesGroups###Мое-Поле2, и т.д..

Example 4.28. Активировать поле Field1 на странице Пользовательские Настройки.

  • Групировать: Заявку

  • Подгрупа: Frontend::Agent::Preferences

  • Настройка: PreferencesGroups###101-DynamicField-Field1

  • Значение:

    Ключ Content
    Событие TicketCreate
    Активный 1
    Block Input
    Поле Другие настройки
    Data: [% Env("UserDynamicField_Field1") %]
    Ключ: Мое Поле 1
    Метка: Значение по умолчанию для: My Field 1
    Module: Kernel::Output::HTML::PreferencesGeneric
    PrefKey: UserDynamicField_Field1
    Prio: 7000

Рисунок: Field1 в окне с пользовательских настроек агентов.