Здравствуйте, возникла проблема.
Есть объект с некоторыми полями и представление наследуемое от этого объекта, я создал замещающий объект который наследуется от этого объекта и такое же представление.
Проблема в том что в замещающем объекте я добавил поля, но они не отображаются в представлении в MS SQL Server. И я не могу удалять данные из этого объекта, так как отсутствуют поля которые я добавил самостоятельно.
BPM 7.1.0.172
Нравится
Здравствуйте.
Поля в представление нужно добавить вручную, также как и в системе и с таким же названием.
Спасибо. Добавил вручную, но возникла другая проблема. При удалении выскакивает сообщение:
"Выбранные элементы удалить невозможно, так как они используются в других объектах"
Попробовал дебажить. Выбивает ошибку "View or function 'dbo.VwInvoiceProduct' is not updatable because the modification affects multiple base tables"
Тарас, а если из студии запросом удалять? Возможно запись нельзя удалить из-за ограничений по внешним ключам? Тогда все корректно - срабатывает механизм целостности данных.
В таком случае, необходимо удалить изначально все связанные записи.
Никаких новых связей я не создавал. Просто добавил два новых поля (UsrComment, UsrCompleted).
Без них данные удаляются без проблем.
Тарас,
Судя по всему, ваше представление не является обновляемым с точки зрения СУБД (объединяет в себе данные более, чем из одной таблицы, содержит агрегирующие функции и т.д.). Более подробно про то, какие представления обновляемые представления, изложено здесь.
Если ваше представление действительно не является обновляемым, то решить проблему обновления данных в базовых таблицах через объект представления можно с помощью триггеров представления INSTEAD OF для соответствующего действия.
Также Вам возможно будет полезна информация из статьи SDK про работу с представлениями. Не смотря на то, что в ней описан кейс для версии 5.Х, общий принцип работы с представлениями как с объектами в BPMonline остался неизменным и для 7-ки.
Спасибо за помощь. Проблему решил, добавив триггер.