如何使用Groovy在ODI中编辑现有映射

时间:2019-06-18 19:26:22

标签: groovy oracle-data-integrator

我正在尝试弄清楚如何使用groovy编辑现有映射。

我能够创建新的映射。我试图删除代码的删除部分,但这会给我一个错误,我需要删除退出的映射

//delete old mapping
/* remove delete portion to use edit existing mapping
  removeMapping(folder, mappingName)

  txnDef = new DefaultTransactionDefinition()
  tm = odiInstance.getTransactionManager()
  tme = odiInstance.getTransactionalEntityManager()
  txnStatus = tm.getTransaction(txnDef)

  dsf = (IOdiDataStoreFinder)tme.getFinder(OdiDataStore.class)
  mapf = (IMappingFinder) tme.getFinder(Mapping.class)
*/
//create new mapping
  map = new Mapping(mappingName, folder);
  tme.persist(map)

从该错误看来,必须删除映射(Load_TRG_CUSTOMER)。 如果需要更多代码,请告诉我。

错误:

ODI-16096: A mapping with name Load_TRG_CUSTOMER already exists in folder TEST_FOLDER.
(Subtract 18 from the error line number to account for the standard imports)
oracle.odi.domain.mapping.exception.MappingException: ODI-16096: A mapping with name Load_TRG_CUSTOMER already exists in folder TEST_FOLDER.
    at oracle.odi.domain.mapping.Mapping.checkName(Mapping.java:153)

谢谢大家的帮助。

1 个答案:

答案 0 :(得分:0)

IMappingFinder提供了查找现有映射的有用方法。您已经知道名称和文件夹了,我想findByName方法最适合您。

我看到您已经实例化了IMappingFinder(尽管目前对此已发表评论)。因此,您只需要替换:

map = new Mapping(mappingName, folder);

作者

map = (Mapping) mapf.findByName(folder, mappingName);