Данная ошибка встречается при импорте объектов в ODI 11 версии, в моем случае была попытка произвести импорт пакета из репозитория разработки в репозиторий тестирования.
В интернете информация об этой ошибке встречается в контексте импорта проектов, а не пакетов. А раз пакет загрузить удалось - я хотел бы рассказать, каким образом, может это станет кому-то полезным.
Как видно из рисунка, я загружал в режиме INSERT-UPDATE, и, как выяснилось позже, XML файл, экспортированный со среды разработки, содержал дополнительную информацию о расписании. То есть сценарий этого пакета был настроен на ежедневный запуск. В то же время, прав на изменение расписания у меня не было, видимо это и послужило причиной неудачного импорта, так как при импорте пакета фактически происходил импорт трех различных частей: пакет, сценарий пакета, расписание сценария.
К сожалению, я не знаю способа сделать то, что нужно, через пользовательский интерфейс ODI Studio. Как видно из рисунка - вы можете выбрать экспортировать дочерние объекты или нет, но не можете выбрать какой из дочерних объектов не включать в экспорт. Есть, конечно, путь, при котором вы можете удалить сценарий или расписание, затем сделать экспорт пакета, восстановить сценарий и расписание, но путь этот видится мне более рискованным, не говоря уже о том, что у вас, опять же, может не быть прав на какие-то операции.
Потому я принял решение отредактировать экспортированный файл и убрать оттуда информацию о расписании запука сценария.
Часть, которую было необходимо удалить - от открывающего тэга <Object> до закрываюшего </Object> - показана на рисунке.
После этого файл был успешно импортирован.
Еще раз столкнулся с ошибкой с этим же номером, но причина была в другом. Собственно, логика режимов при импорте - INSERT, UPDATE или INSERT_UPDATE как было и всегда в чем-то запутанна, а в чем-то достаточно проста.
ОтветитьУдалитьИтак, если вы импортируете несуществующий объект в репозиторий - лучше делать это через INSERT, если существующий - через INSERT_UPDATE.
Иначе возможна ситуация когда ODI сообщит вам, что новый объект, который вы добавляете - уже существует, и, да - ошибка 23040.
Ошибка 23040 - достаточно общая и уровня User. Можно посмотреть еще в логах - по идее должны быть дополнительные детали уровня Core. И да, я очень сильно не рекомендую править экспорт-файлы руками.
ОтветитьУдалитьА в каких именно логах лучше искать дополнительные детали?
ОтветитьУдалитьВспоминаю по памяти, потому могу и ошибиться.
ОтветитьУдалитьКонфигурация логгирования настраивается в файле ODI-logging.config или что-то в таком духе. Лежит он на уровне папки ./bin/ или где-то рядом. Формат там мутноватый, но разобраться можно - искать handler, который пишет лог в файл. Там же можно подкрутить и уровни логгирования до TRACE:32, но тогда логов будет ОЧЕНЬ МНОГО и читать их будет тяжело.