span8
span4
嗨,
我有一个表,我使用了根据不同的对象几种模式映射。
要做到这一点我的模式映射是一个测试过滤器的与几个outports的组合,并且每个这些外港的连接的模式映射器(见下文)。所有架构映射器读取相同的表,但他们where子句是关系到在测试过滤器中使用的条件。
有没有办法来动态改变内部架构映射器变压器where子句,这样反而有这种复杂的定制变压器,我可以用一个简单的单一模式映射器变压器?
谢谢
这是一个很好的问题,因为每当你复制变压器像通常有更好的方式来做事。
不过,我认为这种情况是例外了这一点。不同的where子句将有效地给每个功能不同的查找表,这是不是变压器是专门用来处理。
有趣的是...在的SchemaMapper似乎是基于特征的;进入再一个特点,立即出现,而不是等待其他功能。因此,有可能创建一个解决方法。
我建议尝试:
我希望情况是,每个进入的特征转到的SchemaMapper,而是由时间到达CSV数据已被覆盖。这样,它可以让你想要的独特的查找表。
我不保证会工作(它可能只是缓存第一特征的查找),而你可能不认为这是值得的努力试图将其设置(这是一个公平的努力为小的回报),但如果你好奇那么这就是我会先试,
希望这可以帮助
标记
我已经成功地实施这一使用FeatureMerger和PythonCaller - 基本上是:
1.假设你有一个基于一个类型或类别或其他条件动态映射字段(源和目的地的属性名称)的列表
2.功能合并的功能与使用此类型/分类/条件的字段列表 - 确保您选择“生成列表”,所以你仍然只有每特点1行。
3.您可能需要预先声明可能的目的地属性的列表,并在PythonCaller揭露他们(我从来没有真正这是需要把握的时候)
4.配置以下Python来满足您的需求:
源= feature.getAttribute( '映射{}源'。)目的地= feature.getAttribute对于i,(A,B)在枚举(邮编(源,目的地))( '映射{}目标。'):sourceValue =特征.getAttribute(a)中
如果sourceValue:feature.setAttribute(B,sourceValue)点击
©2020安全亚搏在线软件公司|法律