西班牙
斯潘4
您好!
我有一个excel,其中包含要读取的要素类、属性字段(逗号分隔)和where子句(例如:myfield='Yes'和MyField2='abc')
阅读excel,将where子句传递给功能阅读器,工作正常
我的问题是我该怎么做-
>从功能读取器动态写入选定的功能
>只需要属性字段(来自excel的逗号分隔文本)
[如果不可能至少将所有读属性写入,则应再次保持动态,因为每个输入要素类的字段都不同。]
>传递在要素读取器之前生成的要素类名
一个变通的解决方案和一个例子将真正有助于解决我的问题。
试图搜索类似的例子,却找不到。
非常感谢你的帮助
谢谢大家
假设Excel表中的每条记录包含要读取的每个要素类的这三个属性。
基于Require字段(以逗号分隔的属性名),此Python脚本更新从FeatureReader的模式端口输出的模式定义。
#PythonCaller脚本示例def updateSchemaDefinition(feature):#原始架构定义(属性名称和数据类型)#名称:属性名称#本机数据类型:从源数据集读取的数据类型名称#fme数据类型:映射到本机数据类型名称的fme通用数据类型名称=feature.getAttribute('attribute{}.name')类型=feature.getAttribute('attribute{}.native_data_type')ftypes=feature.getAttribute('attribute{}.fme_data_type')收集必需的属性名和数据类型attrsToKeep=set(feature.getAttribute('required Fields').split(',')newNames、newNativeTypes、newFmeTypes=[]、[]、[]用于名称、类型、zip中的ftype(名称、类型,ftypes):如果attrsToKeep中的name:newNames.append(name)newNativeTypes.append(type)newFmeTypes.append(ftype)#更新架构定义(删除并重新创建“attribute{}”列表)功能。removeAttrsWithPrefix('attribute{')功能。setAttribute('attribute{}.name',newNames)功能。setAttribute('attribute{}.native\'data',newNativeTypes)feature.setAttribute('attribute{}.fme_data_type',newFmeTypes)
请投票赞成这个想法:引入新的转换器以方便修改模式
?2019安全亚搏在线软件公司|合法的