上周微信云开发上线了「工作流」能力。支持通过拖拉拽的方式搭建流程,支持调用、时间、消息通知、支付等多种驱动场景的业务计算,主要目的是降低开发门槛,提升开发效率。
一、什么是工作流?
工作流这个概念我们并不陌生,其概念发端于上世纪70年代,正常解释为:对工作流程及其各操作步骤之间业务规则的抽象、概括描述。
说白了就是我们在做任何任务时(不管是线下任务还是线上任务),在组织团队中或者合作关系的他人之间,按照既定的规则完成工作的过程,都可以用一个流程图来清楚的表达出来。
下面是企业员工入职流程的流程图,无需繁杂的文字描述,任何人都能够通过该图清楚整个流程,这其实就是一种工作流。
为实现特定的业务目标,多个参与者之间按某种预定规则传递文档、信息或者任务可以被称为特定业务目标的工作流程。
而如果使用计算机对上述工作流程抽象实现,让计算机能够参与其中,自动化的完成信息交互或者相关任务的设计,就被称为工作流。
二、微信推出的工作流体验
在小程序开发中,除了业务数据的增删改查之外,还有些业务需要对接外部的平台。比如
1.小程序用户在客服中发送消息,需要根据消息关键词自动匹配相应回答并显示。
2.小程序接收到用户支付后,完成订单的状态扭转和相应的通知发送。
3.小程序用户撤销信息授权时,执行相关的数据库信息删除工作。
4........
我们在与这些外部平台来做连接的过程中,会发现其都是可抽象化的,可以简化成若干个事件驱动。比如微信支付成功或失败,就可以转化为微信支付的事件驱动,当支付完成时,特定的执行什么事情。
单纯用代码来实现时,我们需要做很多事情,包括事件监听链接的配置,事件内容解析,同步或异步回复。开发成本还是比较高的,并且有时候受经验限制会没办法对接的非常好。
工作流将微信相关的事件整合进来,你可以通过配置关键信息,直接接入事件的触发,然后根据你自己的业务逻辑设计整个处理链路。
比如接收小程序用户消息做自动回复的工作流如下:
在触发上直接配置小程序appid和token,就可以完成接入。
我们以消息自动回复举例子,完成整个工作流的体验
1. 首先需要在小程序开发者工具IDE中,打开云开发云函数控制面板,新建时选择工作流,然后创建消息触发,如下图演示:
工作流是由触发器节点开始的,目前支持的触发器节点如下:
2. 对触发器节点配置一些基本信息,我们点击触发节点,在右侧抽屉栏中对应的填写appid,以及token还有解密AESkey
这样我们就配置好了触发节点,通过模拟数据或者实际监听推送来完成后续的工作流建设。
当你需要真实的调试时,需要在小程序后台配置相关的信息,下图appid、token、EncodingAESKey和url需要对应的填入公众号或者小程序后台。
3. 我们添加一些条件判断,用来判断事件监听的类型,针对不同的类型分开处理。比如「用户消息」和「撤销信息」我们就需要对应的做不同的流程。
我们可以通过模拟数据或者真实监听来看到触发时接收的消息结构,以便于后面我们做相关判断处理。如下图我们知道接收文本消息时,MsgType 为 text。
接下来我们做个判断,来区分用户发送文本消息和图片消息,如流程演示:
添加条件分支并编辑的操作如上,我们相对应的做出监听图片以及其他的分支,如下图:
4. 有了条件分支我们就可以相对应的做处理了,在这里为了简化演示,我们直接用被动回复来做(主要注意被动回复只在公众号生效,小程序需要调用接口回消息)。返回的格式我们还是要遵循微信文档描述的响应模式。
我们来实践一下,如下图:
对应的我们给所有的条件都设置上返回内容,当遇到我们没有匹配的MsgType时,直接返回空消息告诉微信服务器我们收到消息了,就不用持续发送了。
5. 设置完毕后,我们就开始整体流程调试,点击右上角「流程调试」,前面我们配置小程序后台之后,我们就可以在调试时主动发送小程序客服消息来实现触发。如下演示:
我们可以看到我们的判断逻辑生效了,工作流会根据我们发送的消息类型完成扭转。
如果调试没有问题,就可以发布了,发布后你可能需要在公众号或者小程序后台更改一下推送URL为正式URL,之前的是调试用的。
除了由微信消息触发之外,工作流还提供了很多触发节点,比如HTTP调用,组件访问,微信支付事件等。
以上就是一些基本的操作介绍,如果你觉得这样操作点击很多,你想在现成的上面修改,可以在开通时直接选择相应的模板,这些模板都是常见场景可用的。
三、总结
工作流通过将判断逻辑和接入节点抽象化,来做到所见及所得的逻辑编写,上手门槛很低,只需要有一定的逻辑思维就可以自己构建一个基本的工作流,配合一些简单的代码编写,完成稍微复杂的工作流不是问题。
有的时候作为产品经理在策划功能的时候,都喜欢用UI界面做前端设计,用流程图做后端逻辑设计。产品经理可以用工作流来自己搭建验证策划的功能,跟研发同学沟通会更加轻松,甚至自己就可以实现一些基础的,不用麻烦研发同学,自力更生了。
另外工作流的模板可以共建起来,任何人都可以上传自己制作的工作流给其他人用。如果场景和工作流节点有其他需求,可以在这里提交。
如果你在使用中有任何疑点或者寻求方案,可以联系微信云服务的架构师。
关于本文中提出的观点和内容,如果你有其他补充和意见,欢迎在文章下留言~