ODI-30104: внутренний идентификатор модели не поддерживается, если режим совместимости с устаревшим идентификатором отключен

Мы используем ODI 12c

Мы создали сценарий для выполнения пакета, в который мы добавили команды для обратного проектирования модели.

Ниже приведен скрипт, который мы использовали, но он дает нам ошибку для идентификатора модели:

ODI-30104: внутренний идентификатор модели не поддерживается, если режим совместимости с устаревшим идентификатором отключен

Можно ли каким-то образом извлечь глобальный идентификатор модели с помощью скрипта groovy?

OdiPackage pkg = new OdiPackage(folder, "Pkg_Rev" + "SQL_MODEL5");
StepOdiCommand step1 = new StepOdiCommand(pkg,"step1_cmd_reset");
step1.setCommandExpression(new Expression("OdiReverseResetTable \"-MODEL="+mod.getModelId()+"\"",null, Expression.SqlGroupType.NONE));
StepOdiCommand step2 = new StepOdiCommand(pkg,"step2_cmd_reset");
step2.setCommandExpression(new Expression("OdiReverseGetMetaData \"-MODEL="+mod.getModelId()+"\"",null, Expression.SqlGroupType.NONE));
StepOdiCommand step3 = new StepOdiCommand(pkg,"step3_cmd_reset");
step3.setCommandExpression(new Expression("OdiReverseSetMetaData \"-MODEL="+mod.getModelId()+"\"",null, Expression.SqlGroupType.NONE));

pkg.setFirstStep(step1);
step1.setNextStepAfterSuccess(step2);
step2.setNextStepAfterSuccess(step3);
tme.persist(pkg)
tm.commit(txnStatus)

1 ответ

Действительно, в 12c используются только глобальные идентификаторы (GUID). Таким образом, произошли изменения как в SDK, так и в API замещения.

Большинство объектов, включая OdiModel, в ODI теперь наследуют метод getGlobalId() от класса oracle.odi.domain.support.AbstractRepositoryEntity.

Другие вопросы по тегам