一、介绍 当前,FME 2020中的FME Server 自动化中引入了循环功能,以增强其自动化处理功能。 这一新增功能使得FME Server用户可以: - 重新运行失败的操作(由于外部因素)
- 创建高级的“流程管理器”集成模式
二、创建一个简单的循环自动化流程 为了创建一个简单的循环自动化流程,首先您需要启用循环功能。 具体操作为,找到“自动化菜单”的下拉菜单,然后选择“启用循环”。该步骤完成后,您将可以把流程模块的下游输出端口连接到其上游输入端口。

示例:一个可以显示工作空间在运行失败时进行循环的简单自动化流程 这里需要您注意的是: 由于在自动化流程中启用的循环是一项高级功能,所以我们需要注意避免创建可能使我们的服务器引擎产生过载的无限循环。另外我们也建议不要在合并节点的上游创建循环,因为这可能会导致一些意想不到的运行错误。 在自动化流程中创建循环,非常适用于用户想要在失败时重试某一操作的情况。这里我们给大家罗列了两种示例: 我们的工作空间可能会由于外部数据源无法适应并发连接或遇到网络中断而运行失败。当遇到此类情况导致工作空间运行失败时,我们可以将其连接回输入端口以重试。(注意:如果失败是由于其他原因造成的,则该操作可能会导致无限循环)。当然您也可以为工作空间中的失败情况构建逻辑,或者使用Automations Writer来更好地控制工作空间何时以及再何种情况下进行循环。 HTTP的请求操作将提供以下输出:错误类型,错误信息,状态代码,响应标头和响应正文。如果HTTP请求失败,则您可以在HTTP请求失败后通过使用“筛选器”来确定是否对失败的输出进行循环。例如,如果返回的状态代码是”503服务不可用”(或任何其他适用的状态代码),则将其进行循环,以使当服务可用时,成功请求HTTP。

示例:如果请求失败,则使连接到Filter的HTTP请求操作可以循环 三、创建一个高级循环 通过为FME Server Automations添加循环功能,用户可以创建类似于“流程管理器”企业集成模式的更复杂的循环工作流。 “流程管理器“是一种集成模式,它依靠中央处理单元将任务或消息动态地路由到不同的“处理单元”(工作空间),而无需预先定义一个序列或处理顺序。该中央处理单元需要具有某种存储机制,用于存储该序列中最后执行的步骤的信息。 在该示例场景中,访客“ Billy Bob”将前往“ FME Spa”进行了几种水疗护理,他可以选择他想要完成的水疗护理(工作空间)和以何种顺序参与这些水疗护理。 处理任务或者说是水疗护理的顺序将通过JSON的形式进行自动化传递。 ​​​​​​​2、流程原理 该示例工作空间的处理顺序由传入的JSON文件定义: { "tasks": [ { "Detox": "Black Tar of stress removed thru radioactive Detox."}, { "HairReplacement": "Hair injected at rate of 15,000 follicles per second."}, { "LaserSkinCare": "Blemishesd blasted with 15 GWh of energy. Sunburn look should pass. If not receive discount next time!"}, { "Manicure": "Gorgeous nails in a nice black."}, { "Massage": "15 mins of bliss. Fell asleep and snored. "}, { "Pedicure": "Used Metal grinder on toe nails. Pretty intense."} ], "StartValue" : "Billy Bob got the following done:"}
这个JSON文件将由用于确定初始处理步骤的“命令解析器”工作空间进行处理,而后输出命令或任务,提供给“流程管理器”工作空间,以使用该命令或任务来处理和分发任务。

示例:“流程管理器”工作空间显示了处理JSON任务的不同阶段 每个工作空间或者说是本示例中的水疗护理,都是使用Automations Writer来输出当前任务和任务的JSON文件的。而后,在自动化流程中,我们可以使用循环功能将这些输出传递回已知运行了哪些步骤的“流程管理器”工作空间。 当任务JSON文件为空后,整个流程就完成了。 该示例完整的自动化工作流如下: 
示例:“ spa处理”的完整自动化流程 本文转载来自CSDN作者:fmechina 版权归作者所有 原文链接:https://blog.csdn.net/fmechina/article/details/109291698
|