翻译:小新

原文地址:https://blog.safe.com/2015/11/fmeevangelist140/

这篇文章介绍FME2016很重要的一个新功能:关于转换器的版本和升级。

首先,我说明一下什么是转换器的版本,以及转换器的版本为什么重要或不重要。如果你已经了解了这些,你可以跳过第一章节。

简单来说,因为你的“工作空间的转换器”与“核心转换器”(FME中的核心定义)不同步。

当我们定义一个新转换器(例如FME2016中的FeatureWriter),它的版本从0(零)开始。你使用该转换器时,你添加一个“工作空间转换器”,版本依然为0(零)。

如果Safe Software对“核心转换器”升级,同时增加转换器的版本号,从1到2,甚至更高。但是,如果你的“工作空间转换器”没有进行升级,它的版本将依然保持为0(零)。

为什么会这样呢?因为FME不会自动升级你的工作空间中的转换器,自动升级后有可能产生不同的结果!转换器版本通常是向下兼容的,无论你升级到FME的哪个版本,工作空间应该输出一样的结果。

所以,随着时间推移,你的“工作空间转换器”开始滞后于不断升级和修正的“核心转换器”。然而其实这并不是一件什么大不了的事情……

为什么不重要?

你可能会认为转换器升级是一件大事——修正错误之类的,但事实上并非如此。

那是因为转换器指向的是组成FME功能最底层的“工厂(factories)”和“函数(functions)”。如果它们的功能进行了升级或修正,无论你现有的转换器是什么版本,都将使用新的功能。

这样联想一下:就像道路上的一个坑被修整了,你就必须去买一辆新车一样!

基本上我们不会因为底层的修复就创建一个新的转换器版本。他们会在任何情况下被使用。你现有的转换器会很好的适应这些修复的功能。

道路修复对车的益处,你现有的车和新车是同等的。

只有当转换器有新功能时,我们才会创建新的转换器版本。因为我们会添加新的转换器参数或者设置,让你使用它们来控制转换器。这个时候你需要升级转换器来使用这些功能。

你可能会有点担心(transformerschmerz)工作空间中的转换器过时。但是如果你的工作空间运行正确,并且能得到你满意的结果,这个时候真的没有必要升级任何内容。

为什么重要!

当然,有些时候升级工作空间转换器非常重要。

首先,最明显的就是,它的新功能对你很有用。例如,FME2016中Sampler转换器会增加一个做随机采样的选项;之前你只能对特定顺序进行采样,现在通过随机采样将得到更好的结果。因此你需要升级你的转换器到最新的版本。

或者你可能已经在工作空间中创建了随机的方法,你可以使用该转换器这个新功能代替,这样可以替换2-3个已有的转换器或一个Python脚本。

第二个升级转换器的原因是,虽然升级前后转换器的功能相同,但是升级后的转换器具有重新设计的GUI,让它更易用。最近更新的SchemaMapper转换器就是这样一个例子。它与升级前的功能一样,但是界面更友好、易用。

上面这些都是很容易让你辨别了解哪些转换器需要升级的情况。但实际上并没有这么简单,尤其是工作空间中有几百个转换器时!

一个功能

当你打开FME2016时,你会看到在导航窗口中,会有一栏列出了哪些转换器已经过时,需要升级。

在这个部分你可以查看工作空间中转换器的版本,以及“核心转换器”的最新版本。例如,在工作空间中使用的AttributeFilter的版本为1,但是在FME中可用的最新版本为4。我还可以看到这种情况的所有转换器数量(有两个废弃的转换器)。

对转换器升级(例如Counter转换器),只需对Workbench画布中的转换器右键单击:

在一个警告(你可以选择永久关闭后),出现如下的对话框:

这里你将看到的是转换器参数对话框的改变,并且可以使用新版本中开放的任何功能。在上面的图片中,升级前后看起来非常相似——好像只是改变了外观而没有任何新的功能。但是如果单击下拉箭头,你会看到Counter Name参数现在可以设置为条件赋值或者某个属性值,这是之前的版本中没有的。

另外,你做的任何改动都被记录在新的历史窗口中,这些操作可以被撤销:

(是的,VertexCreator改动的描述看起来有点奇怪,需要重新描述!)

新特性窗口

你是否注意到上述的对话框中,有一个“Show Changes”的标签?

通过这个标签,你可以精确的查看两个版本之间的不同。例如,Counter转换器的Change对话框如下:

……这样可以证明更新了Counter Name参数接收属性值的情况。

废弃的转换器

我的工作空间中另外一个转换器是3DPointReplacer:

但是现在已经没有这个转换器了。所以升级选项会做什么操作呢?升级操作将把它替换为新的功能相同的转换器——VertexCreator。

注意在我们最终的一些改动中,我们很有可能对这种情况下的转换器进行重命名。这样就不会混淆。

当没有与废弃转换器等价的转换器时,将不会对废弃转换器进行升级。到目前为止,AppearanceAdder是我知道的唯一一个这样的转换器。与它近似的新转换器——AppearanceSetter——比它更高级,不能进行1:1的交换。

局限性

这个功能很好,但是有一些局限性。

例如,你不能通过点击一个按钮对所有过时的转换器进行一次性升级。这是一个深思熟虑的决定。因为新转换器中的变化(比如额外的参数或者不同的输入/输出端口),我们认为你应该真正的单独对这些变化进行处理。

对于自定义转换器,这个功能对自定义转换器定义内部的转换器起作用。但是,就像上面提到的那样,你不能通过单击自定义转换器(尤其是链接式自定义转换器)对内部所有的转换器进行升级。

最后,一些转换器参数对话框使用向导的方式(例如FMEServerJobSubmitter),所以我们不能通过一个对话框对新旧转换器参数进行比较。其他一些有特定对话框的转换器也不能通过这样的方式进行比较(例如AttributeFilter)。

你现在可以试试

上面所有的截图来自一个旧的工作空间,我从老版的FMEpedia下载的:

所以除了阅读我上面描述的功能外,何不试试下载工作空间,并用FME2016 beta打开看看这些是怎么工作的。

你做的第一件事是仅仅运行工作空间。注意它会运行成功并得到正确的结果。如果结果令你满意,你不需要升级它。

当你开始升级转换器时,你将注意到3DPointReplacer和PointConnector增加了一个Rejected要素输出端口,AttributeFilter也有额外的一个端口,并且你需要对它做处理。事实上,3DPointReplacer被VertexCreator转换器代替,AttributeSetter被AttributeCreator代替。

唯一不需要升级的转换器是AttributeCreator,由于工作空间的逻辑错误我才注意到!

总结

我必须强调的是“当你发现工作空间中有过时的转换器时,你不需要升级它们。除非你发现了特别需要的功能,否则你是冒着没有好处的行为进行改变。

但是如果你不需要升级转换器,这个工具可以让你更容易的知道哪些转换器被影响,改变了什么内容,然后自动的更新转换器到最新版本。我希望它会对你有帮助。

注意虽然我提到转换器不会自动升级到最新版本,但是有一些例外(如SQLExecutor),它们会在打开参数框时自动升级。正如你期望的,我们真的、真的、真的非常小心,以确保自动更新时结果不会被改变。

“FME 2016 先睹为快”之转换器版本相关推荐

  1. app服务器该如何配置文件,当你使用 SQL Server 2016 或更高版本应用用户配置文件时,App-V 服务器发布可能会失败...

    症状 通过 App-V 管理控制台发布包含 UserConfig 文件的虚拟应用程序包可能会失败,原因是 SQL Server 2016 及更高版本处理数据类型的方式发生了更改.  有关该更改的详细信 ...

  2. 怎么检查电脑上CAD转换器版本是否更新?

    怎么检查电脑上CAD转换器版本是否更新?对于从事CAD相关工作的小伙伴们来说,在工作中将CAD图纸文件进行版本间的转换已经是不可缺少的一件事情了,那么CAD版本转换器就是一个不可或缺的存在,每次CAD ...

  3. 将 .accdb (2016 )数据库转换为早期版本的文件格式 ( Access 2002 或 Access 2003)MDB

    Access for Microsoft 365 Access 2021 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 如果以 ...

  4. FME中的空间数据库转换器

    原文发布时间:2014-03-12 作者:一峰 之前几篇文章介绍了空间数据库的读/写以及数据库更新,本文继续介绍数据库操作的转换器. FME提供了一系列关于数据库操作的转换器,为我们对数据库查询操作带 ...

  5. 如何摆脱极域2016(及以下版本)的控制

    大家有没有这样的经历:在机房上课时,正用电脑玩着小游戏,结果被老师用极域发现? 本篇文章,将教大家三种脱离极域的控制的方法. 方法一,windows+L键,适合win7,及以下版本,不建议使用 先按住 ...

  6. 【软件安装分享】FME使用三年后的使用体验及任意版本安装教程

    [软件分享]FME使用三年后的使用体验及安装步骤 FME使用三年后的使用体验 国内代理商网站中文介绍:FME是一款能集成任意数据的软件--且无需写代码对复杂的空间数据呢?完全可以.需要自动化呢?也没问 ...

  7. FME中的栅格数据操作之一——转换器小结

    原文发布时间:2010-04-08 作者:毛毛虫 写这篇文章的目的,是想对这些日子来对FME处理栅格数据的转换器做一个小解,同时在这里跟大家探讨一下,一起学习,不对的地方也请大家批评指正,一起交流下. ...

  8. 如何将低版本的CAD转换器转换成高版本

    CAD制图转换工作中,想使用CAD转换器把CAD格式的文件转换成DWG格式,但因为转换器版本太低,不能进行转换,那如何将低版本的CAD转换器转换成高版本了?那我们就使用CAD转换器进行颜色转换. 1. ...

  9. 给Dynamics 365 on-premises版本 配置Exchange Server 2016邮件服务器

    给Dynamics 365 on-premises版本 配置Exchange Server 2016邮件服务器 前提条件 配置邮件服务器 配置邮箱用户 测试邮箱 前提条件 Dynamics365 本地 ...

最新文章

  1. 前期优达无人驾驶对课程评价
  2. Android——电脑蓝屏重启后,studio无法认出Android环境 setup JDK(缓存!缓存!缓存)...
  3. python翻译文档地址
  4. [面向对象] ABAP中类重构助手Refactoring Assitant
  5. ▲教你如何轻易的做linux计划任务▲——小菜一碟
  6. spring mail 发送html simple,SpringBoot整合Mail邮件发送
  7. 详细介绍jQuery.outerWidth() 函数具体用法
  8. Maven国内镜像 Maven阿里云镜像
  9. python requests 示例_Python3中requests库学习01(常见请求示例)
  10. 文件上传限制文件类型
  11. IIS 7.5 + PHP-5.6.3 + mysql-5.6.21.1
  12. 定期删除30天以前的elasticsearch的日志
  13. mac phpstorm配置svn
  14. 民企信息化建设个人经历(二)
  15. suse linux快捷键,Suse Linux整理大全:快捷键
  16. HCIP认证学习day2
  17. sko.GA实现遗传算法的源码解析
  18. 音程示范歌曲,lilypond example
  19. linux安装jenkins启动卡在初始页面 | 插件下载不了,报SSL错误等问题避坑 | No valid crumb was included in request for /ajaxBuildQ
  20. 一篇文章带你了解,App 测试工具

热门文章

  1. WPS中表格下移问题和段落问题
  2. STM32定时器单脉冲输出模式
  3. 使用php从网络访问mysql数据库,使用PHP从web访问mysql数据库
  4. C# wpf ScrollBar自定义样式详解
  5. c#单击行时 进行大小排序
  6. wmemset的使用
  7. 英语语法第一节(句子结构)
  8. crmeb单商户pro1.5一键换色
  9. 给数字添加千分符 和去除千分符
  10. 分级调节是调节机制吗_激素的分级调节和激素调节的特点