Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Не обновляются автоинкрементные поля без перезагрузки приложения #142

Open
ehaberev opened this issue Sep 18, 2020 · 1 comment

Comments

@ehaberev
Copy link
Member

ehaberev commented Sep 18, 2020

Описание ошибки

Для автоинкрементных полей, которые были сгенерированы из Flexberry Designer и на сервере в БД отрабатывают, на клиенте автоматически обновление не происходит без перезагрузки приложения (повторной вычитки модели).

Ожидаемое поведение

Когда сервер измененное значение автоинкрементного свойства отдает в JSON-е в HTTP-ответе с актуальным значением автоинкрементного поля (он должен отдавать в ответе установленное сервером СУБД значение, это тоже надо проверить), эмбер должен автоматом его в сторе обновить, и оно должно подтягиваться само на форме.

Шаги воспроизведения

  1. Склонировать клиентское и серверное приложение, а также скрипт создания БД (PostgreSQL) из этого репозитория.
  2. Развернуть всё у себя локально
  3. Создать нового сотрудника и сохранить
  4. Узреть, что актуальный табельный номер сотрудника (сгенерированный на сервере) в заголовке формы подтягивается только после обновления страницы, а не автоматически после сохранения.

Пути решения

Предположения:

  1. Возможно, сервер не отдает в ответе на HTTP-запрос на сохранение данных в JSON-ке сгенерированное значение автоинкрементного свойства (свойства number у модели сотрудника).
  2. Если сервер отдает всё как надо, то нужно смотреть, попадает ли в стор новое значение сразу при обработке ответа с сервера. И если, вдруг попадает, понять, почему не срабатывает биндинг данных на форме в шаблоне.

Исходный код

https://github.com/Flexberry/ember-flexberry-data (PR создавать в ветку: develop)
или
https://github.com/Flexberry/ember-flexberry (PR создавать в ветку: develop)
или
https://github.com/Flexberry/NewPlatform.Flexberry.ORM.ODataService (PR создавать в ветку: develop-v5.2)
в зависимости от того, на каком уровне взаимодействия с сервером будет отловлена ошибка.

Документация

Про создание автоинкрементного атрибута можно почитать тут.
Про ожидаемое поведение подробнее можно почитать тут.

Тесты

Добавить интеграционный тест в CRUD операции на получение значения актуального значения автоинкрементного поля после сохранения модели на сервере сюда:
https://github.com/Flexberry/ember-flexberry-data/tree/develop/tests/unit/CRUD

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

Примерная оценка трудоёмкости

16 часов

@KollegOFF KollegOFF transferred this issue from Flexberry/ember-flexberry-data Sep 28, 2020
@s-andrey
Copy link
Contributor

Проверили на фронте, на нем все ок, проблема на беке. (с бека приходят каждый раз новое значение при открытии формы)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants