还有很多类似的帖子,但我似乎找不到有效的解决方案。我还在尝试在我这边建立一个工作流程,亚搏在线但我想我会在这里张贴看看是否有人知道一个简单的解决方案。
我有一个表中的数据,如下所示…
ID | 二级身份证 |
1 | ABC123 |
1 | DEF345 |
1 | GHJ678 |
二 | DEF345 |
二 | XYZ789 |
三 | VWX567 |
4 | ABC123 |
我想把它转换成电子表格,这样它看起来像是…
ID | Secondary_ID_1 |
Secondary_ID_2 | Secondary_ID_3 |
1 | ABC123 |
DEF345 |
GHJ678 |
二 | DEF345 |
XYZ789 |
|
三 | VWX567 |
||
4 | ABC123 |
我碰到的一个问题是,对于一个给定的ID,可能有任意数量的二级ID……对于一个ID,可能有几百个。所以,我希望最后有一个表格数据集可能有几百列,每一行都有一行身份证件。
这是可能的吗?我正试图用列表属性来概括我的想法,但我正在努力寻找一种解决方案,将列表中的每个属性值输出为它自己的列。据我所知,我只需要一个列表属性作为次要的_ID值。
我会继续玩,我会发布我找到的任何解决方案。
谢谢你的时间。
FYI...I'm running FME 2015.0 (20150114 - Build 15245 -WIN32) via ArcGIS data interoperability extension.
我使用list builder创建了一个非常简单的列表,其中包含相同键(stationId)的多个值。
列表在fme检查器中是这样的:
我想将这个站点列表中的所有statonid传递到sql executer转换器中,并将其传递到WHERE语句中。但是,SQL执行器识别此列表,它只允许我在列表中指定一个特定的元素编号,如下:
其中originstationid in(@value(stationlist 0.stationid))。
问题是我不知道每次列表中会有多少个值,所以我不能硬编码其中的列表元素号。我想将此列表中的所有值传递到我的查询中。
大家好
这不是一个问题,但是关于我如何解决这个问题的一些反馈/提示-希望它也能帮助有类似项目问题的人。我试图创建一个动态的html仪表盘,从数据库记录中读取大量实时值,然后用标签在html表中显示它们,值的顺序,布局和结构,我想格式化我喜欢。HTMLReportGenerator变压器没有给我足够的控制,我想做什么,所以我最终使用了xmlTemplater。
如果想使用XMLTemplater创建HTML页面,您可能会发现,在运行工作区时,HTML代码并不总是正确解析(对HTML进行评估以确保其符合XML标准)。原因是某些HTML标记没有正确打开或关闭。因为我的HTML仍然有效,对此的一个解决方法是注释掉(使用“ )中使用的HTML代码片段,然后使用StringReplacer转换器查找并替换所有 “字符串并将其替换为”“(为此需要两个StringReplacer变压器)。然后可以将其输出到HTML编写器。
现在,因为我想同时显示所有读取的数据(而不是在工作流中逐个处理),亚搏在线为了能够按照我想要的顺序引用它们,我将数据导入ListBuilder转换器,有两个有趣的领域,说出“名称”和“值”。ListBuilder创建一个默认名为“_list”的列表。作为一个例子,列表将存储类似这样的内容。
名义价值
---------------------------
“ABC”“1.23456”
“定义”“2.06789”
“GHI”“5.54321”
----------------------
要引用HTML文件中的值,创建一个HTML表,然后使用fme:get-attribute XQuery函数添加“名称”和“值”。注意,由于我使用了列表,我首先尝试使用fme:get-list-attribute函数,但这根本不起作用。显示其中一个列表项的正确方法是:{fme:get-attribute("_list{39}. value ")}。
假设你想使用一些数学函数,比如把一些值加在一起,方法如下:{xs:double(fme:get-attribute("_list{69}. value ")) + xs:double(fme:get-attribute("_list{70}. value "))}。这称为XQuery的类型转换。如果您想进一步了解XQuery以及如何使用这些函数(如“xs:double”和“fn:format number”函数),请查看https://docs.microsoft.com/en-us/sql/xquery/type-casting-rules-in-xquery
最好限制显示的小数位数。将小数点后两位限制为2可以这样做。
fn:格式编号(xs:double(fme:get attribute(“list 69.value”))+xs:double(fme:get attribute(“list 70.value”)),'0.00')
然而,这可能会使你的HTML代码难以阅读和维护,所以,也许在ListBuilder转换器之前使用attributeRoundTransformer将小数位数限制为两位(这是我最终所做的)。
下面是我需要的变压器的图片。
这些步骤完成了创建仪表板所需的操作。也许有一种更简单的方法可以做到这一点。我必须在互联网上做很多搜索,才能找到所有拼图的碎片。但也许有更好的方法来做到这一点。如果你知道这种方法,请把你的答案也贴在这里。也,如果我说的话令人困惑,我需要提供更多信息,告诉我。
对我来说,这里的好处是我现在用FME中的几个变压器替换了1800多行编码的仪表盘。从长远来看,这肯定会改善维护。
亲爱的
隆,我面临的问题是如何从另一个表字段在元数据xml文件中输入值。我有一个元素名
谢谢你
此致敬礼
Muqit
大家好,我有一个字段,它同时包含表名和列名,用于使用(,)和(#)分隔符的外键。我已经在这个字段上创建了List,现在,我不明白如何才能再列一个清单来获得这些值。
现在我的结果XML看起来像:
表>元素现在获取所有的表名和列名,但我想看到我的XML如下:
我的XML模板的部分代码如下:
{
设$n:= xs:integer(fme:get-attribute("_element_count")) - 1
对于$i in(0到$n)
让$aname:= "_list_name{"||$i||"}.Spalte"
设$ATYPE:=“_list_name”“$i”“.datentyp”
让$descrip:=“_list_name”“$i”“.beschreibung”
让美元fkey: = " _list_name {”| | $ i | |”} .Tabellenbeziehung”
让美元mval: = " _list_name {”| | $ i | |”} .Fehlende_Werte”
返回
{
如果(not(fme:get-attribute($aname) eq "")),则
{
如果(not(fme:get-attribute($ describe p) eq ""))则
其他(
)
}
{
如果(不是(fme:get属性($mval)eq”),则
其他(
)
}
{
如果(not(fme:get-attribute($fkey)eq "")),则
其他()
}
其他()
}
}
为了自动获取XML文件,我们目前正在将SQL Server数据库的所有属性表存储到SQL Server中的企业gdb中,这就造成了一个问题,每次它都将主键字段作为OBJECTID并更改字段的名称。所以我们现在想要有属性表,就像它在非空间数据库中一样,想要读取它的表名,字段名和数据类型转换为xml文件。但是我不能将字段名和数据类型作为列表来读取,因此我可以在我们自己的模式中使用它。谁能给我带路?
当使用按组排序的ListBuilder输入时,是否有其他人注意到性能显著下降?
当我在10000组10个特征中有10万个特征时,当我将输入设置为“否”时,处理时间为8秒,即使变压器堵塞了。而当按组排序时,处理时间为74秒(大约慢10倍)。即使通过变压器也是无阻塞的。
不涉及并行处理。
FME社区,亲爱的亚搏国际在线官网:
我有一个数据集,它有以下两个属性,例如:
-格伦德贝谢
-贝谢德
如果Grundbescheid_nr中有两个值相同的行(例如Grundbescheid_nr=183101),第然后只应保留bescheid_nr(在示例bescheid_nr=186754)中数字较高的条目。应删除标有蓝色背景(bescheid_nr=185582)和几何图形的条目。因此,较低的一项应予以取消。
我想我可以和一个列表生成器一起完成,但我还不确定具体怎么做。有简单的方法来解决这个问题吗?
亲切的问候
托马斯
你好,
我一直在尝试使用JSON时间序列数据集转换成电子表格
最近几天的FME桌面和我有一些麻烦,使整个时间系列出来的过程。我可以从数据集中得到第一条记录,(或第二,etc.) by just adding value{0}.value and value{0}.dateTime in the AttributeManager,连同空间站的所有其他静态数据(lat/long,的名字,网站代码,等等)。当前工作流将输出正确写入亚搏在线Excel,但是我需要静态数据来重复,需要编写值/dateTime记录的完整列表。如果我在属性管理器前面添加一个ListBuilder,然后什么也没有通过,所有写入输出的都是字段名。我想这可能是关键所在,因为它允许我为时间序列数据添加一系列索引(即-value 0-100.datetime)。但是当我这样做的时候没有输出,我想我需要一些指导。这里有个附带问题:如果ListBuilder是正确的函数,那么,最好只是为数组序列输入一个超出时间序列长度的上限(即0-366为一年的日平均水平)?
此外,每当我试图使用jsonFlatener公开属性时,listdynamder拒绝来自顶部节点(“timeSeries”)的任何低于第二个节点的内容,日志输出中没有明确的消息。
JSONFeature阅读器中有一个JSON url,代表数据集。
在excel文件中,我有6个复选框。在我的过程中,所有的值都放在一个名为Method_ID的列表中。
我必须用两种不同的方法来管理每一半。所以我必须在第二个列表中放入3,第三个列表中的另外三个。因为下面的过程需要一个输入列表。
如果我用列表生成器生成第二个列表,我不能在另一个列表生成器中创建第三个列表,如您所见:
我必须同时使用ListBuilder吗?问题是稍后我将不得不管理对象的数量。
谢谢你的帮助。
如ListBuilder的文档所述,此变压器输出的特性没有几何形状。
我已经数百次使用feature uremerger来重新插入几何图形。# fmedays期间,@ arnebraska告诉我,你也可以使用“GeometryExctracter”和“GeometryReplacer”。
不管怎么说,如果能够在构建列表时自动保留几何图形,那就太好了。还有其他粉丝吗?
请见下图,图中对要求进行了说明。
我有两个记录集(recordset1和recordset2),它们是从同一个读卡器派生的。数据将被写入Oracle非空间数据库。我已经到了这个地步,中间有很多变形金刚。最后一步是将RecordSet1中的关联值导入RecordSet2中的SEQUENCE_VALUE属性。
我在转换数据并将其写入RecordSet2方面遇到了挑战。只是需要一些方法的帮助(列表,乔伊纳,等)。什么是最好的方法。非常感谢你的帮助。谢谢你!佐拉瓦尔
很多时候,当使用ListBuilder时,我只对列表中公开的属性感兴趣。
例如,从text_line reader读取的特性(text_line_data only visible属性)生成一个包含
_list {} .text_line_data_list {} .fme_basename_list {} .fme_dataset_list {} .fme_feature_type_list {} .multi_reader_keyword_list {} .text_line_eol_list {} .text_line_length_list {} .text_line_number_list {} .text_line_type
只有第一个在变压器上可见,所有其余的都必须显式地公开,然后才能删除它们。
所附的示例说明了实现这一点的一种方法。您可以基于特性的公共属性创建一个列表(如果特性不存在,请使用attributeCreator创建一个)。然后使用ListBuilder创建列表。listbuilder的输出将是带有列表项的一个功能。然后使用ListConcatenator和StringConcatenator创建“where”子句。