Устранение проблем с интеграцией Backend

Симптомы

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

или

2. Возникают трудности с сохранением изменений в backend.

Причины

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

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

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

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

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

2. Если ошибки есть, проанализируйте их и проверьте, сможете ли устранить их самостоятельно. Если нет — переходите к следующему шагу.

Проверьте, какие запросы отправляет клиент

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

2. Перезагрузите страницу и найдите запрос, отвечающий за загрузку данных с backend. Убедитесь, что он отправляется по правильному URL, и проверьте статус ответа.

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

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

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

Проверьте, что возвращает сервер

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

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

Похоже ли содержимое на ожидаемый формат данных?

Если вместо данных Scheduler возвращается сообщение об ошибке сервера

Это говорит о проблеме с кодом backend или настройками соединения с базой данных.

Обычно ответ с ошибкой содержит достаточно информации для поиска причины. Если вы видите только стандартную ошибку 500 server error, возможно, потребуется временно отключить пользовательские страницы ошибок на сервере, чтобы увидеть реальное сообщение об ошибке. Способ зависит от вашей платформы. Если вы не уверены, попробуйте поискать "disable custom error page in <%your server or framework%>".

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

Внимательно проверьте свойства id, start_date и end_date.

  • id — события с одинаковым id объединяются. Если у пяти событий одинаковый id, будет показано только одно.

  • start_date, end_date — убедитесь, что формат дат соответствует формату, указанному в настройке date_format Scheduler.

Подробнее о свойствах данных.

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

Обычно xml_date задаётся до вызова scheduler.init следующим образом:

scheduler.config.xml_date="%Y-%m-%d %H:%i";

Если что-то не так со значениями свойств

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

Проверьте, что загружено в Scheduler

Некорректный формат даты

1. Откройте консоль браузера и выполните команду scheduler.getEvents().

2. Посмотрите вывод в консоли — это должен быть массив событий.

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

Обратите внимание на поля start_date и end_date в некоторых записях. Если вы видите invalid date или неожиданные значения вроде 1970 или 2038 года, это указывает на проблему с форматом date_format.

Если вы используете расширение recurring, метод scheduler.getEvents() не вернёт данные, если не указать параметры дат from/to. Для этой проверки попробуйте временно убрать расширение recurring со страницы.

Отсутствие свойств для Units/Timeline

Если вы используете представления Units или Timeline, события могут не отображаться, если они не привязаны ни к одному разделу unit или timeline.

Для проверки можно установить skip_incorrect:false для Units view:

scheduler.createUnitsView({
    name:"unit",
    ...
    skip_incorrect:false
});

Или show_unassigned: true для Timeline view:

scheduler.createTimelineView({
    name:"timeline",
    ...
    show_unassigned: true
});

Если это ваш случай, события появятся в первом разделе Units/Timeline после обновления конфигурации и перезагрузки. Затем проверьте настройки property или y_property в Units или Timeline, а также соответствующие свойства событий.

Фильтры

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

Крайние меры

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

Обязательно приложите всю собранную информацию по этим шагам.

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

Наверх