Подскажите пожалуйста, кто сумел разобраться в коде.
Я пытаюсь реализовать автоматическое добавление задач пользователям. Записи добавляются в базу Руководителя не через веб-интерфейс как положено, а напрямую в таблицу app_entity_22 средствами самой СУБД, при наступлении определённых событий (по расписанию, по приходу почты, по пропаданию пинга на определённый адрес в сети и т.д.)
Добавление записей в таблицу "Задачи" производится оператором INSERT в хранимой процедуре. Задача создаётся, назначается определённому пользователю, всё работает нормально ... кроме фильтра. Фильтр по полю "Назначено на" app_entity_22.field_171 совершенно отказывается работать.
Выглядит это следующим образом. Есть несколько записей-задач, назначенных на сотрудника. Часть из этих записей добавлена вручную штатными средствами через формочку веб-интерфейса, а часть сгенерирована автоматически напрямую в базу. Если никаких фильтров не установлено, то в общем списке задач они все присутствуют. И ручные и автоматические. Теперь в списке задач включаю фильтр по полю "Назначено на" и ставлю этого сотрудника. Те записи, которые были созданы вручную - нормально попадают в выборку, а те которые добавлены автоматически - не видны.
Делаю в админке SELECT по задачам этому сотруднику - все записи выглядят вроде бы нормально, никакой разницы между ручными и автоматически созданными записями не видно. Теперь открываю "автоматическую" задачу в веб-форме, и не внося вообще никаких изменений тут же просто нажимаю кнопку "Сохранить". Опс ... теперь эта задача успешно появляется в фильтре по сотруднику. Хотя SELECT опять показывает отсутствие разницы между ручными и автоматическими записями.
Не знаю, куда копать дальше. Как заставить фильтр по пользователям работать? Может быть помимо записи в таблицу самой сущности, Руководитель пишет дополнительную информацию ещё куда-нибудь?
Добавление записей напрямую в СУБД
- support
- Техническая поддержка
- Сообщения: 7661
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Добавление записей напрямую в СУБД
Для того, чтобы избавиться от медленного запроса find_in_set для полей с несколькими значениями, данные этих полей дублируются в таблице app_choices_values которая используются при фильтрах
Типы полей
'fieldtype_dropdown','fieldtype_radioboxes','fieldtype_grouped_users','fieldtype_checkboxes','fieldtype_dropdown_multiple','fieldtype_entity','fieldtype_users'
То есть при вставке записи, обрабатываете эти поля и каждое значение записываете в
подробнее смотрите install/autoupdate/data_perpare_from_1.6_to_1.7.php
Типы полей
'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 ('','','','')- Евгений
- Сообщения: 398
- Зарегистрирован: 11 июл 2016, 13:21
- Имя: Евгений
- Откуда: Петропавловск-Камчатский
Re: Добавление записей напрямую в СУБД
Большое спасибо за информацию! Буду разбираться.