ODI KM选项-FLEX FIELD中的值

时间:2019-07-18 11:26:35

标签: oracle oracle-data-integrator

您是否认为可以从弹性域将值导入ODI IKM(例如)? 例: 您在目标表上定义一个弹性字段,然后在IKM中传递该值。 然后,读取变量,是否可以将其传递给IKM中的选项?

谢谢

2 个答案:

答案 0 :(得分:0)

搜索后,我发现无法执行此操作。条件表达式可以采用预定义的值。您可以在接下来的所有组合中找到:

  

条件表达式–它允许您设置所需的条件   选定的选项。双击要编辑条件的字段   所选选项的表达式。点击浏览图标浏览图标,   启动编辑表达式编辑器,使您可以创建或   编辑现有的确定脚本是否知识的常规脚本   模块应该启用,禁用,显示或隐藏。

     

示例是:

     

返回   options.getValue(“ Cache”)。equals(“ true”)?“ show = true,enable = true”:“ show = false,enable = false”;

     

这将查看另一个称为“缓存”的KM选项的值。如果它是   值为“ false”,则KM选项被隐藏,因为它不是   相关。

     

返回   (isStreaming)?“ show = false,enable = false”:“ show = true,enable = true”;

     

这将查看Mapping isStreaming属性。如果是真的话   此选项是隐藏的。

     

source

答案 1 :(得分:0)

这很容易做到。

  1. 您可以在 IKM 代码中使用 odiRef.getTable(java.lang.String pProperty)pProperty 的可能值之一是您的 FlexField 代码。
  2. 如果您想通过 if 传递选项,只需传递 <?…?>-substitution 作为选项的值。 (您可能应该使用 %-?- 替代品,这很有效。)

请参阅 Oracle 站点上的《替换 API 参考》。 getTablegetIndexgetAKgetContext等很多函数都可以获取对应类型对象的flexField值。

此外还有 odiRef.getFlexFieldValue() 方法。它获取任何类型的任何对象的值,但需要将内部 ID 作为参数传递。所以不方便。