# 编排实践

本文以搭建一个每天早上8点定时发送天气信息到企微群的IPaaS流程为例子,讲解如何完整的搭建一个流程,重点讲解流程编排中的语法部分,希望达到举一反三的效果。

TIP

由于RPA和IPaaS流程共用流程编辑器(IPaaS流程仅多一个触发条件组件),所以流程编排语法完全相同。

# 创建流程

新建一个IPaaS流程。

新建流程

# 配置触发条件

触发条件组件选择定时触发,并配置好定时触发规则:每天8点钟。

定时触发

# 编排流程

  • 添加【和风天气】到流程块中,选择【城市搜索】操作(通过城市名称获取城市id),配置组件传参,其中返回数据存入变量ret中。

城市搜索

  • 点击【预览 > 返回示例】查看该操作返回的数据结构,可看到城市id在图示数据结构中。

城市搜索数据结构

  • 继续添加【和风天气】到流程块中,选择【3天预报】操作(用于获取近3天的天气信息),配置组件传参。其中location字段根据要求需填写城市id,而城市id是由城市搜索操作获取来的,所以不能写死为一个固定的字符串,应该通过访问变量数据的方式去拿上一步获取到的城市id,根据上一步返回示例的数据结构可知应该填:ret.location[0].id,并把返回数据存入变量ret1中。

3天预报

  • 同理通过点击【预览 > 返回示例】可查看到3天预报操作返回的数据结构。其中图示的fxDate、tempMax、texmpMin、textDay字段分别表示日期、最高气温、最低气温、天气。可通过拼接这些字段组成一条完整的预报信息,然后发送到企微群。

天气信息数据结构

  • 接下来就需要拼接预报内容了,这里需要用到数据处理组件,可参考指令文档查看组件使用说明。举例🌱:大家早上好,今天是:xxxx-xx-xx,最高气温:xx,最低气温:xx,天气:xx

  • 添加【合并字符串】到流程块中,如图设置好组件参数,并把返回值存入到ret2中。同理再添加三个相同组件,填写组件参数并依次把返回值存入到ret3、ret4、ret5中。

字符串合并组件

  • 添加【变量声明】到流程块中,声明一个temp变量并赋值为数组,其中数组元素为上面流程中返回的四个字符串变量。

变量声明

  • 添加数组中【转化为字符串】到流程块中,如图设置好组件参数,并把返回值存入到ret6中。

转化为字符串

  • 至此拼接预报内容的部分已完成,思路就是先两两拼接成四个字符串,再把四个字符串整体拼接为一个字符串,最终得到的预报内容放置在变量ret6中。

  • 最后一步就是要把预报内容发送到企微群中,添加【企业微信群机器人】到流程块中,选择【发送文本】操作,配置好群机器人地址,发送内容填写变量ret6。

企微群机器人发送文本

  • 保存并发布流程。

WARNING

数据处理在流程编排过程中是非常常见的,数据处理的组件有很多,处理数据的思路也有很多,需根据实际情况选择对应的数据处理组件。

# 优化流程

可以看到上面为了拼接预报内容,用了6个组件来实现,对于类似这种字符串拼接的场景,有没有更简单的实现方法呢?

其实仅用一个变量声明的组件即可实现,在变量声明的时候直接进行内容拼接,拼接语法为:最外层用``号(不是双引号也不是单引号),用${}号包裹变量,普通字符串进行正常书写即可。最终经过优化后的流程如图示。

优化后的流程

TIP

顾名思义,动态字符串也属于字符串,所以具备和普通字符串相同的使用方式。

# 调试流程

搭建完流程后,如果发现流程不能运行或运行出错,可以借助日志组件(基本命令 > 日志)来调试流程,通过日志组件可以打印流程运行时的变量数据,帮助我们快速的定位问题。

举例🌱:假设以上流程在推送的天气信息中日期始终为空,则首先考虑到流程运行时获取到的日期值是否正确,可通过以下步骤进行调试。

  1. 在流程块中添加一个日志组件,并设置打印的变量为:ret1.daily[0].fxDate,保存流程。

调试流程

  1. 待流程再次运行后,在顶部【日志】中查看最新的流程日志,如图示即可查看日期是否正确。

调试日志

TIP

日志组件分为错误日志、警告日志、调试日志。日志组件的使用,本身并不会对流程运行产生任何影响,可根据情况灵活选用。另外日志组件支持打印任意类型的值。

# 效果展示

流程搭建成功后,在每天早上8点钟,企业微信群就会收到一条天气信息的推送。

流程效果展示