Перейти к основному содержимому

Устранение проблем интеграции бэкенда

Симптомы

  1. Вы пытаетесь реализовать backend API либо вручную, либо следуя нашим решения, но Gantt не отображает ни одной задачи и ни одной связи при открытии страницы.

или

  1. У вас возникают проблемы с сохранением изменений на бэкенде.

Причины

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

Наша цель в этой статье — пройти с вами по общим шагам расследования подобных проблем. Как только вы обнаружите проблему и поймете, почему приложение не работает, устранение обычно тривиально.

Проверка сообщений об ошибках на странице

  1. Откройте инструменты разработчика браузера и перезагрузите страницу. Видите ли вы какие-либо сообщения об ошибках в консоли браузера?

Проверка ошибок

  1. Если есть ошибки, оцените их и определите, сможете ли решить их самостоятельно. В противном случае переходите к следующему шагу.

Проверка того, что запрашивает клиент

  1. Откройте панель Network, убедитесь, что запросы XHR видны.

  2. Перезагрузите страницу и найдите запрос, который должен загружать данные с бэкенда. Убедитесь, что он идёт на правильный URL и проверьте статус ответа.

Проверка запроса

Есть ли ошибки?

Статус ответа 404 означает, что передан неверный URL в метод gantt.init или проблема в настройках маршрутизации вашего приложения.

Проверка того, что возвращается с сервера

Выберите запрос и проверьте предварительный просмотр ответа или исходное содержимое ответа.

Проверка ответа

Соответствует ли ответ ожидаемому формату данных (ожидаемый формат данных)?

Если вы видите сообщение об ошибке веб-сервера вместо данных Gantt

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

Обычно ответ об ошибке содержит достаточно информации, чтобы понять, что вызывает проблему. Если вы видите общее сообщение 500 server error, возможно, вам нужно временно отключить пользовательские страницы ошибок на вашем сервере, чтобы увидеть фактическую ошибку. Это делается по-разному на разных платформах. Если вы не уверены, с чего начать, просто погуглите "disable custom error page in (ваш сервер или фреймворк)".

Если данные выглядят более-менее нормально

Обратите внимание на свойства id, start_date, end_date, duration, parent.

  • id - элементы с одинаковым id будут объединены. Если у вас пять задач с совпадающими id, Gantt отобразит только одну из них.

  • parent - записи, для которых значение parent совпадает с конфигурацией root_id config, будут отображаться на корневом уровне дерева задач (по умолчанию — любое пустое значение, включая ноль или null). Если свойство parent не пустое, а в вашем наборе данных отсутствует подходящая родительская задача,Such элемент не будет отображаться вообще.

  • start_date, end_date, duration - убедитесь, что ваши записи содержат по крайней мере два из этих свойств, например start_date+duration. Подробности в статье Загрузка данных.

Убедитесь, что форматы start_date/end_date совпадают с форматом, указанным вами в конфигурации date_format Gantt.

Если вы нашли что-то необычное в значениях свойств

Проверьте, что хранится в вашей базе данных, вероятно, проблема как раз там. Если форматы дат не совпадают, либо измените конфигурацию date_format, либо измените код, который сериализует даты задач перед их отправкой клиенту.

Проверка того, что загружается в Gantt

  1. Откройте консоль браузера и выполните gantt.getTaskByTime().

  2. Просмотрите вывод консоли. Скорее всего вы увидите массив задач.

Проверка данных

Снова проверьте свойства start_date, end_date и parent у задач.

Фильтры

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

В крайнем случае

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

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

Также нашей команде потребуется минимальный воспроизводимый пример: либо автономный пакет с упрощенным приложением (страница Gantt, все необходимые файлы, дамп базы данных с тестовыми данными или статический JSON-файл с данными, которые вы пытаетесь загрузить), либо онлайн-ссылка, по которой мы могли бы проверить проблему в браузере.

Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.