Microsoft Dynamics NAV 2009 Как удалить объекты вне лицензии?
В процессе обновления с 2009 по 2016 год я пытаюсь удалить объекты, относящиеся к старому снятому с производства продукту. Объекты не находятся в пределах диапазона или лицензии и состоят из форм, таблиц и отчетов. При удалении я сталкиваюсь с известной ошибкой:
"У вас нет разрешения на удаление таблицы" [имя объекта] "."
Я попробовал с моей лицензией разработчиков и лицензией клиентов без удачи. Поскольку продукт больше не существует, бесполезно хранить эти объекты, и мне нужно, чтобы они исчезли для процесса обновления.
Каков наилучший подход или метод при удалении объектов, которых нет в лицензии?
ОБНОВЛЕНИЕ: Как эта проблема была решена? Я связался с владельцем продукта и объяснил свою проблему. Мне прислали аккуратный скрипт PowerShell для запуска. Это работает как шарм. Читая сценарий, я вижу, что он использует командлеты SQL для выбора и удаления соответствующих данных из следующих таблиц SQL:
Объекты, метаданные объекта, снимок метаданных объекта, отслеживание объекта, перевод объекта, разрешение.
Это был предпочтительный метод владельца продукта, который использовал для разработки этого продукта. Это должно быть применимо ко всем объектам NAV. Я еще не успешно попробовал один из ответов ниже (больше попыток прийти). Надеемся, что эта новая информация предоставит кому-то достаточно, чтобы дать хороший ответ.
3 ответа
Способ, который успешно использовался несколькими людьми, но наверняка не может быть рекомендован для производственной системы, состоит в простом удалении этих объектов с помощью SQL из Object и дополнительных таблиц. В случае таблиц вам нужно будет вручную удалить саму таблицу SQL, а также ее представления VSIFT.
Более лучший (вероятно) способ - изменить номер объекта с помощью SQL, а затем удалить объект с помощью NAV.
Лучше всего использовать функциональность "объектов-убийц", которые позволяют удалять объекты с помощью импорта FOB:
http://navisionary.com/2011/11/how-to-delete-bsolete-dynamics-nav-objects/
Если вы найдете партнера, который может предоставить вам такие объекты-убийцы (им нужна лицензия для создания объектов в нужном диапазоне), это решит вашу проблему "чистым" способом.
Если нет, вы можете рассмотреть возможность создания пустых объектов в диапазоне 50000 в некоторой тестовой БД, изменить их число на устаревший диапазон с помощью SQL, экспортировать их как FOB, а затем импортировать их в целевую БД с опцией "Удалить".
Создайте новую пустую базу данных, экспортируйте только необходимые объекты из старой базы данных, импортируйте их в новую базу данных. В базе данных приложений Nav 2016 можно отделить данные, содержащие базу данных, поэтому (я полагаю) вы можете просто отключить ее от базы данных со старыми объектами и смонтировать в новую базу данных приложения. Не уверен, что
Это связано с диапазоном лицензий, например, ваша лицензия на разработку имеет диапазон таблиц 7.000.000 - 7.000.200. Если вы хотите удалить таблицу с идентификатором 20.000.000, у вас есть эта ошибка.
Лучшее решение - когда вы делаете обновление, вы не считаете эти объекты, которые вам нужно удалить. Экспортирует все объекты, кроме объектов, которые вы хотите удалить.