Добавление записей напрямую в СУБД

Все вопросы/проблемы по установке и использовании.
Ответить
Аватара пользователя
Евгений
Сообщения: 398
Зарегистрирован: 11 июл 2016, 13:21
Имя: Евгений
Откуда: Петропавловск-Камчатский

Добавление записей напрямую в СУБД

Сообщение Евгений »

Подскажите пожалуйста, кто сумел разобраться в коде.

Я пытаюсь реализовать автоматическое добавление задач пользователям. Записи добавляются в базу Руководителя не через веб-интерфейс как положено, а напрямую в таблицу app_entity_22 средствами самой СУБД, при наступлении определённых событий (по расписанию, по приходу почты, по пропаданию пинга на определённый адрес в сети и т.д.)

Добавление записей в таблицу "Задачи" производится оператором INSERT в хранимой процедуре. Задача создаётся, назначается определённому пользователю, всё работает нормально ... кроме фильтра. Фильтр по полю "Назначено на" app_entity_22.field_171 совершенно отказывается работать.

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

Делаю в админке SELECT по задачам этому сотруднику - все записи выглядят вроде бы нормально, никакой разницы между ручными и автоматически созданными записями не видно. Теперь открываю "автоматическую" задачу в веб-форме, и не внося вообще никаких изменений тут же просто нажимаю кнопку "Сохранить". Опс ... теперь эта задача успешно появляется в фильтре по сотруднику. Хотя SELECT опять показывает отсутствие разницы между ручными и автоматическими записями.

Не знаю, куда копать дальше. Как заставить фильтр по пользователям работать? Может быть помимо записи в таблицу самой сущности, Руководитель пишет дополнительную информацию ещё куда-нибудь?
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Добавление записей напрямую в СУБД

Сообщение support »

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

Типы полей
'fieldtype_dropdown','fieldtype_radioboxes','fieldtype_grouped_users','fieldtype_checkboxes','fieldtype_dropdown_multiple','fieldtype_entity','fieldtype_users'

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

Код: Выделить всё

INSERT INTO app_choices_values (entities_id, items_id, fields_id, value) VALUES ('','','','')
подробнее смотрите install/autoupdate/data_perpare_from_1.6_to_1.7.php
Аватара пользователя
Евгений
Сообщения: 398
Зарегистрирован: 11 июл 2016, 13:21
Имя: Евгений
Откуда: Петропавловск-Камчатский

Re: Добавление записей напрямую в СУБД

Сообщение Евгений »

Большое спасибо за информацию! Буду разбираться.
Ответить