FormCreator или встроенные формы GLPI 11: когда что использовать

FormCreator ушёл из GLPI 11: формы стали модулем ядра. Сравнение плагина (GLPI 9/10) и встроенных форм, вердикт по сценариям и миграция с FormCreator официальным инструментом — без поломки каталога услуг.

В этой статьеРазделов: 6

FormCreator много лет был самым устанавливаемым плагином GLPI, а в GLPI 11 он перестаёт существовать как плагин. Вопрос перестал звучать как «что лучше» и стал операционным: на какой вы версии и как перенести формы, уже работающие в продакшене, в новый встроенный модуль, не сломав каталог услуг.

Что изменилось при переходе с GLPI 10 на GLPI 11

В GLPI 9 и 10 пользовательская форма — синоним FormCreator: плагин сообщества (поддерживаемый Teclib), который даёт каталог услуг, условные поля, разделы и автоматическое создание заявки по ответу. Последняя самостоятельная линейка — 2.13.x; после неё разработка плагина остановилась.

В GLPI 11 эта функциональность стала модулем ядра: меню «Формы» с визуальным редактором, разделами, условными вопросами и destinations (то, что создаёт форма, — заявка или изменение). Самостоятельный FormCreator в 11 не работает. Вместо него существует только переходный плагин Formcreator Migration Tool (линейка 3.0.x), единственная функция которого — перенести старые формы во встроенный модуль и затем объявить FormCreator снятым с поддержки (EOL).

Прямое сравнение

КритерийFormCreator (GLPI 9/10)Встроенные формы (GLPI 11)
ПриродаПлагин сообщества (Teclib)Модуль ядра, без плагина
СовместимостьGLPI 9 и 10 (линейка 2.13.x)GLPI 11+
Визуальный редакторРазделы, вопросы и условияРедактор со встроенными разделами и условиями
Условные поляДа, по вопросу и по разделуДа, встроенные условия
Создание заявки«Target» (заявка, изменение, проблема)«Destinations» (заявка, изменение)
Где хранятся определенияТаблицы glpi_plugin_formcreator_*Таблицы glpi_forms_*
Где хранятся ответыТаблицы самого плагинаНабор ответов (answers set) в ядре
Экспорт/импорт между средамиОграничен самим плагиномВстроенный, в JSON, с сопоставлением зависимостей
Будущее / поддержкаЗаморожен (EOL после миграции)Поддерживается Teclib в ядре
Миграция с 10 на 11Источник (Migration Tool 3.0.x)Официальная цель миграции
СтоимостьБесплатно (GPL)Входит в ядро

Миграция — не волшебная кнопка

Официальная миграция действительно есть, и это опровергает миф, что «всё придётся пересоздавать вручную». Путь управляемый: обновите FormCreator до 2.13.10 или выше ещё в GLPI 10, поднимите GLPI 11 с Migration Tool, проверьте объём в Инструменты > Formcreator EOL Info и запустите миграцию из командной строки.

# 1) Ainda no GLPI 10: atualize o FormCreator para a versao 2.13.10 ou superior.
# 2) Suba o GLPI 11 e instale o "Formcreator Migration Tool" (plugin 3.0.x).
# 3) Confira o volume a migrar no menu Ferramentas, item Formcreator EOL Info.
# 4) Rode a migracao pela CLI, como o usuario do servidor web
#    (Debian/Ubuntu usa www-data; RHEL/CentOS usa apache):
sudo -u www-data php bin/console migration:formcreator_plugin_to_core

# Ordem correta quando ha varios plugins legados no mesmo ambiente:
# Generic Objects, depois Fields e por ultimo o FormCreator.

Прежде чем что-либо запускать, оцените объём работы. Быстрая инвентаризация в базе покажет, сколько форм, вопросов и целей вам придётся проверить потом и какие из них самые тяжёлые:

-- Inventario ANTES de migrar: rode no banco do GLPI (10, ou 11 com o
-- Migration Tool instalado) para dimensionar a conferencia pos-migracao.
SELECT
  (SELECT COUNT(*) FROM glpi_plugin_formcreator_forms WHERE is_deleted = 0) AS formularios,
  (SELECT COUNT(*) FROM glpi_plugin_formcreator_sections)                   AS secoes,
  (SELECT COUNT(*) FROM glpi_plugin_formcreator_questions)                  AS perguntas,
  (SELECT COUNT(*) FROM glpi_plugin_formcreator_targettickets)              AS alvos_de_chamado;

-- Os formularios com mais perguntas sao os que mais exigem conferencia
SELECT f.name AS formulario, COUNT(q.id) AS perguntas
FROM glpi_plugin_formcreator_forms f
LEFT JOIN glpi_plugin_formcreator_sections s
  ON s.plugin_formcreator_forms_id = f.id
LEFT JOIN glpi_plugin_formcreator_questions q
  ON q.plugin_formcreator_sections_id = s.id
WHERE f.is_deleted = 0
GROUP BY f.id, f.name
ORDER BY perguntas DESC;

Инструмент хорошо переносит структуру и содержимое: разделы, вопросы и типы полей. Человеческая проверка нужна в логике маршрутизации: FormCreator использовал «target ticket», чтобы задать категорию, шаблон, группу и участников создаваемой заявки; во встроенных формах это становится destinations, и импорт отмечает зависимости, которых не хватает в целевой среде (организация, категория), чтобы вы сопоставили их до завершения.

Компромисс, который проявляется при сопровождении

При сопровождении парков GLPI клиентов чаще всего мы видим ошибку не техническую, а в ожиданиях: кто-то запускает команду миграции, формы появляются в новом меню, и команда считает задачу выполненной. Это не так. Переносится оболочка; начинка — какая заявка создаётся, в какой категории, для какой группы, с каким шаблоном — как раз и требует пересмотра. Поэтому мы всегда сначала мигрируем на тестовый стенд, отправляем по тестовой заявке на каждую форму и сравниваем маршрутизацию с поведением старого FormCreator, поле за полем.

Две детали подлавливают тех, кто делает это впервые. Во-первых, таблицы glpi_plugin_formcreator_* остаются в базе после миграции: ничего не удаляется, они становятся источником для чтения/EOL и не исчезают, так что «всё пропало» обычно означает лишь то, что меню переехало. Во-вторых, встроенные формы получают новые ID (и UUID), поэтому любая прямая ссылка, закладка портала или ярлык самообслуживания, указывавшие на форму FormCreator, перестают работать и должны быть перенаправлены. И есть скрытое предварительное условие: если FormCreator на версии ниже 2.13.10, Migration Tool просто не видит формы — обновление в первую очередь предотвращает «пустую» миграцию.

Вердикт по сценариям

Оставайтесь на FormCreator, когда среда — GLPI 9 или 10 и миграции на 11 в ближайшей перспективе нет. В этих версиях он остаётся зрелым вариантом без замены для каталога услуг и пользовательских форм. Практическая рекомендация: держите его на 2.13.10 или выше, даже не мигрируя сейчас, — это оставляет дверь для миграции открытой, когда придёт время 11.

Используйте встроенные формы, когда вы на GLPI 11 (или собираетесь мигрировать). Здесь решать нечего: самостоятельный FormCreator в 11 не работает, а встроенный модуль — единственный путь: без плагина, за которым нужно следить при обновлении, с экспортом/импортом форм между средами в JSON (чего FormCreator встроенными средствами никогда не умел) и сопоставлением зависимостей в целевой среде.

При миграции с 10 на 11 используйте официальный инструмент, но относитесь к этому как к проекту, а не к команде: проведите инвентаризацию форм, оцените объём проверки по количеству вопросов и условий, мигрируйте на тестовый стенд, проверьте маршрутизацию каждой формы и только потом переносите в продакшен. Если устаревших плагинов несколько, соблюдайте порядок, указанный в самой документации: Generic Objects, затем Fields, затем FormCreator.

Стоимость и трудозатраты

Лицензия здесь не главное: и FormCreator, и встроенные формы бесплатны, а в 11 встроенный модуль уже входит в ядро. Реальная стоимость — это миграция и проверка. Автоматическая часть — запуск bin/console — занимает от минут до нескольких десятков минут в зависимости от объёма. Время людей уходит на проверку маршрутизации и воссоздание логики destinations, которая не перенеслась 1:1. Честная оценка: для нескольких простых форм вся миграция умещается в полдня; для десятков форм с множеством условий, участников и шаблонов планируйте дни проверки на тестовом стенде перед выпуском в продакшен.

В NexTool мы внедряем и сопровождаем GLPI у клиентов в обоих поколениях и проводим миграцию с FormCreator на встроенные формы, не обрушивая каталог услуг. Если вы уходите с GLPI 10 и не хотите обнаружить в продакшене, что миграция не перенесла, наши проекты внедрения и миграции покрывают этот путь от начала до конца.


Проверено командой NexTool Solutions.

Часто задаваемые вопросы

Не как плагин для создания форм. Самостоятельный FormCreator (линейка 2.13.x) предназначен для GLPI 9 и 10; в GLPI 11 эта функциональность стала модулем ядра (Формы). Для 11 существует только Formcreator Migration Tool (линейка 3.0.x) — переходный плагин, единственная функция которого — перенести старые формы во встроенный модуль, после чего он снимается с поддержки (EOL).

Да, и она официальная. Обновите FormCreator до 2.13.10 или выше ещё в GLPI 10, поднимите GLPI 11, установите Migration Tool 3.0.x, проверьте объём в Инструменты > Formcreator EOL Info и запустите 'php bin/console migration:formcreator_plugin_to_core' от имени пользователя веб-сервера. Относитесь к этому как к проекту, а не к команде: структура и вопросы переносятся хорошо, но логика маршрутизации (категория, шаблон, группа, участники) требует проверки.

Они покрывают основное и получают то, чего у FormCreator встроенно не было, например экспорт/импорт форм между средами в JSON с сопоставлением зависимостей. Условные поля, разделы и создание заявки есть. Сложные случаи маршрутизации и некоторые особенности FormCreator могут потребовать ручной перестройки в целевой среде.

Да. В GLPI 9 и 10 он остаётся зрелым вариантом без замены для каталога услуг и пользовательских форм. Практическая рекомендация — держать его на 2.13.10 или выше даже без ближайших планов миграции: именно эта версия оставляет открытым путь миграции на 11.

Нет. Таблицы glpi_plugin_formcreator_* остаются в базе после миграции; они становятся источником для чтения/EOL и не исчезают. Кроме того, встроенные формы получают новые ID, поэтому прямые ссылки, закладки и ярлыки самообслуживания, указывавшие на формы FormCreator, нужно перенаправить на новые URL.

Нужна помощь?