среда, 25 сентября 2013 г.

ODI-23040.

Данная ошибка встречается при импорте объектов в ODI 11 версии, в моем случае была попытка произвести импорт пакета из репозитория разработки в репозиторий тестирования.


В интернете информация об этой ошибке встречается в контексте импорта проектов, а не пакетов. А раз пакет загрузить удалось - я хотел бы рассказать, каким образом, может это станет кому-то полезным.

Как видно из рисунка, я загружал в режиме INSERT-UPDATE, и, как выяснилось позже, XML файл, экспортированный со среды разработки, содержал дополнительную информацию о расписании. То есть сценарий этого пакета был настроен на ежедневный запуск. В то же время, прав на изменение расписания у меня не было, видимо это и послужило причиной неудачного импорта, так как при импорте пакета фактически происходил импорт трех различных частей: пакет, сценарий пакета, расписание сценария.


К сожалению, я не знаю способа сделать то, что нужно, через пользовательский интерфейс ODI Studio. Как видно из рисунка - вы можете выбрать экспортировать дочерние объекты или нет, но не можете выбрать какой из дочерних объектов не включать в экспорт. Есть, конечно, путь, при котором вы можете удалить сценарий или расписание, затем сделать экспорт пакета, восстановить сценарий и расписание, но путь этот видится мне более рискованным, не говоря уже о том, что у вас, опять же, может не быть прав на какие-то операции.

Потому я принял решение отредактировать экспортированный файл и убрать оттуда информацию о расписании запука сценария.


Часть, которую было необходимо удалить - от открывающего тэга <Object> до закрываюшего </Object> - показана на рисунке.

После этого файл был успешно импортирован.

4 комментария:

  1. Еще раз столкнулся с ошибкой с этим же номером, но причина была в другом. Собственно, логика режимов при импорте - INSERT, UPDATE или INSERT_UPDATE как было и всегда в чем-то запутанна, а в чем-то достаточно проста.

    Итак, если вы импортируете несуществующий объект в репозиторий - лучше делать это через INSERT, если существующий - через INSERT_UPDATE.

    Иначе возможна ситуация когда ODI сообщит вам, что новый объект, который вы добавляете - уже существует, и, да - ошибка 23040.

    ОтветитьУдалить
  2. Ошибка 23040 - достаточно общая и уровня User. Можно посмотреть еще в логах - по идее должны быть дополнительные детали уровня Core. И да, я очень сильно не рекомендую править экспорт-файлы руками.

    ОтветитьУдалить
  3. А в каких именно логах лучше искать дополнительные детали?

    ОтветитьУдалить
  4. Вспоминаю по памяти, потому могу и ошибиться.
    Конфигурация логгирования настраивается в файле ODI-logging.config или что-то в таком духе. Лежит он на уровне папки ./bin/ или где-то рядом. Формат там мутноватый, но разобраться можно - искать handler, который пишет лог в файл. Там же можно подкрутить и уровни логгирования до TRACE:32, но тогда логов будет ОЧЕНЬ МНОГО и читать их будет тяжело.

    ОтветитьУдалить