span8
span4
我被困在更新一个表格的问题在地理。
我正在读取excel记录,其中有一个唯一的Excel_ID号。然后,在一些转换之后,我将结果写入一个地质打包非空间表,其中主索引列FID设置在writer的参数中。我还使用基于Excel_ID字段的更改检测器跟踪更改,其中原始的特性是目的地地理分布表,修改后的是excel表。
此外,如果我试图在地质充填表中使用所选的Excel_ID作为写入器参数行选择的ID属性来编写updatet行,我将得到一个错误,因为Excel ID与地质充填FID相比较,当然后者是不同的。
然后,我尝试使用Feature merge将更新后的excel行与来自地理打包表的记录结合起来,将地理打包_fid附加到Excel_ID字段上的连接行。将写入器参数的行选择的ID属性设置为geopackage_fid。
然而,这一次,一些功能被成功地写入目的地,一些被拒绝的作者错误的地质打包:
无法执行更新功能类型“ABC”,因为ID为“555”的功能不存在。跳过功能”
尽管这个FID的特性在表中。在检查-更新的功能也看起来相当正确。也许问题是记录的顺序,然而,我试图应用一些分类器和功能,但没有带来结果。
知道为什么会出现这个错误吗?
非常感谢你的帮助!
如果描述看起来不清楚,请告诉我,我将附加工作区。
@如果匹配我能够重现你的错误:“无法执行更新的功能类型“ABC”,因为功能与ID '555'不存在。跳过功能”
目前,FME地质充填作家只支持更新使用主索引。这是从地质公园中读回来的地质包格式属性。
我附加了一个小示例,它重现了这个问题,并展示了如何使用吉奥地理_id字段进行更新。
FME 2019.1:GeopackageUpdateexample.fmwt包更新
谢谢你@标记保险箱亚搏在线.我想澄清一下。在您的工作区中,当{0}.originalValue发生变化时,您将创建一个geopackage\u id属性,该属性相当于“abc3124256”。这是某种错误吗?该值是否应等于等于geobackage\u fid属性的原始值的{1}.original value?
另外,如果将geopackage fid视为跟踪更改的属性,则会强制更改检测器更新所有记录,因为geopackage fid与源CSV中的任何属性都不匹配。还是我错了?
@如果匹配应该是地质包。列表的顺序可能会改变,但在我的例子中,它是第一个元素:
_更改{0}.attributeName geopackage\u fid
_更改{0}。原始值1
_更改{0}.ReviedValue
_更改{1}.attributeName代码
_更改{1}.originalValue ABC3116631180
_更改{1}.revisedValue ZYX3116631180
©2019安全亚搏在线软件公司法律