西班牙
斯潘4
嗨,我有一个表,其中的值我想通过一个外部文件映射到不同的值。我可以让attributevaluemapper按我想要的方式工作,但一次只能在一个“源属性”上工作。我一直试图阅读schemaMapper,但是文档有点混乱,我不确定如何将帮助文件与我的示例关联起来。
因此,如果我有一个具有多个名称和“m”列的表,如下所示:
以及具有如下相关值的外部文件:
将数字值映射到外部文件的字母值的最简单方法是什么?
schemamamapper是正确的转换器吗?似乎需要在表和外部文件之间匹配属性列名,但我无法重命名表头。似乎应该有一个简单的方法来做到这一点,我错过了。
希望我已经解释清楚了,任何帮助都将不胜感激谢谢!
不知道它有多健壮,但是分解属性,使用特征合并映射值,然后重新生成原始属性值似乎是可行的。
所以你把属性分解成这样
功能与查找表合并以获取替换值,然后使用原始名称重新创建属性并聚合在一起(使用其他一些位来处理属性的公开
另一种可能的解决方案:
假设源表位于数据库(您称之为表)中,我将创建一个工作区,将外部表写入同一数据库,并在需要时替换这些值。
sql中的replace功能允许您在sql语句中连接表(最好使用sql函数)。
然后,可以使用fme transformer sqlcreator通过将sql语句连接到fme来检索转换后的信息。
我现在想不出什么好办法。如果要对schemaMapper执行此操作,最好在外部引用文件中添加一列,其中包含num、value和addition of field。
ref表可能会这样结束,因为它需要为每个字段定义模式
领域 |
民 | 值 |
M1 | 1 | 一种 |
M1 | 2 | 乙 |
M1 | 3 | C |
M2 | 1 | 一种 |
M2 | 2 | 乙 |
等。
现在在schemaMapper中选择表。
首先创建一个“过滤器”…attribute name=field attribute value=num
现在是“新属性”…属性名=字段属性值=值
基本上说“如果m1(field)=1(num),那么m1(field)=a(value)”
那就行了。当然,还有其他方法,比如attributeexloding…检查属性名并执行attributemapper并将其重新连接在一起,或者使用attributedereferencer、attributecreator等,但是在这些方法周围还需要一些其他方法。
?2019安全亚搏在线软件公司|合法的