编写器功能类型

根据层次图,FME中的每个编写器都可以有许多特性类型。特征类型定义要写入目标数据集的层以及这些层要拥有的属性。它们在工作区画布上表示为对象,并在导航器窗口中列出。

在此工作区中,一个作家正在写一个道路数据集,每种道路类型都有不同的图层。注意导航器窗口中的编写器,以及它是如何拥有一个特性类型列表的;然后请注意,这些功能类型中的每一种都在画布上进行了描述:

工作区可以包含任意数量的写入程序,每个具有任意数量的功能类型。


编写器功能类型属性

读卡器功能类型上的属性表示“我们拥有什么”-实际上,源数据集中已经存在的内容。在编写器上,类型属性表示“我们想要什么”.

每个编写器功能类型都有一个用户属性选项卡,用于定义要编写的属性。不像读卡器功能类型,有一个设置有三个选项来控制如何定义属性:

这些选项是自动的,手册,或动态的。了解这些选项的作用对于管理编写器功能类型很重要。所以我们首先用手工定义来研究它们,因为它们是最容易理解的。


手动属性定义

手动属性定义就是当工作区作者手动输入属性名时,手动选择属性类型,像这样:

在这个例子中,我们开始定义地址表。我们输入了两个属性的定义,并且只是输入第三个的定义。

在工作台画布中,功能类型如下所示:

默认情况下,创建新工作区时,将在手动属性模式下设置编写器功能类型。


自动属性定义

自动属性定义是当工作台本身自动定义属性列表时,取决于连接的读卡器功能类型。

这里——当用户选择自动选项时——属性定义字段为空且不可编辑,像这样:

同样地,在画布上,功能类型最初也是空的:

使定义自动化的是当它连接到工作区的其余部分时发生的操作:

请注意,所有在读卡器特性类型或转换器上定义的属性现在都自动复制到编写器特性类型。

因为这是自动操作的,只要在工作区中更改了属性,就会立即更新writer功能类型上的属性列表以匹配。例如,如果一个读卡器功能类型被删除,另一个功能类型被连接,或者如果连接了第二个读卡器功能类型:

这非常有用,因为这意味着可以将多个数据流合并到一个特性类型中,所有的属性定义都会得到处理。

然而,这不会做的是处理这样一个场景,即更改源数据集参数以读取具有不同属性集的数据集。换言之,编写器属性将仅由连接的内容定义,不是源数据中实际存在的内容。对于该场景,您需要动态属性。


动态属性定义

当属性定义设置为“动态”时,将选择“动态属性”选项(在“常规”选项卡中):

动态特征类型确实没有提前定义。相反,它动态地从运行工作区时提供给它的任何数据中获取其属性定义,或者用户选择的另一组模式定义。

所以,就像一个自动定义,在初始特征类型上看不到属性。然而,连接读卡器功能类型时也看不到属性!



警察局长韦伯·马普说…
好吧,让我来解释一下这些重要的区别。

自动属性的定义来自与它们相关的任何内容。如果源数据集参数发生更改,它不会有任何效果。

动态属性不同。如果源数据集参数发生更改,属性定义来自读取的任何源数据。

结果匹配”

    没有匹配的结果“