介绍
工作流是有多个节点串联组成的一段逻辑流程。组成工作流的节点包括了触发节点和动作节点。触发节点为工作流提供了触发、启动工作流运行的能力,通常是流程的入口和起点。动作节点提供了各种逻辑功能,例如条件分支、运行 JS 代码、提供 HTTP 响应、对接微信支付等。多个动作节点的顺序、分支、循环串联,组成了工作流执行的过程。
工作方式介绍
启动运行
工作流通过被触发的方式启动执行,触发方式通过触发器完成,可以提供多种触发方式。详细内容可以通过具体触发器进一步了解:
- 通过组件或调用触发:通过云开发SDK、API或微搭编辑应用中的组件行为触发。
- 在指定时间触发:通过设计需要的触发时间或触发周期,定时触发工作流。
- 收到 HTTP 请求时触发:通过提供 URL 地址,在指定地址上收到 http 请求时触发。常用于 Webhook 场景。
- 收到微信事件消息推送时触发:在关联的公众号或小程序产生类似事件推送、客服消息、服务消息推送时触发工作流。
- 收到微信支付消息时触发:在关联的微信支付账号产生回调消息时触发工作流。
每一个触发事件,将会启动一个工作流的实例运行,在运行结束前,实例独立存在,且在实例环境内独有当前实例的各节点运行数据及全局的工作流数据、实例数据。
流程执行
在工作流被触发后,将根据流程配置,从触发器开始按顺序执行。流程中的一个节点执行完成后,再执行下一个节点。分支节点将根据分支配置,决定分支内下一个节点。工作流将持续执行直到最后一个可执行节点,并在完成节点执行后,结束工作流执行。
执行失败
在流程执行过程中,当有某个节点执行失败时,工作流将停止后续执行,当次触发运行当记录为执行失败。
执行输入输出
在通过调用触发、或通过 http 请求、消息推送等方式触发工作流时,调用参数、http请求内容、消息内容可以认为是工作流的输入参数。工作流的输入参数通常是作为具体触发节点的输入参数,并且触发节点会将输入参数再次输出给到工作流内部使用,后续的执行节点可以通过触发节点的输出内容,获取到工作流的入参。
工作流有两种方式输出执行结果。一种是通过加入 HTTP Response 的响应节点,在具备此节点,且执行流程中经过了此节点,此时无论后续是否有其他节点执行,工作流的输出参数均为 HTTP Response 响应节点的输出内容,且格式为 http 响应包格式。另外一种是在不具备 HTTP Response 响应节点的情况下,工作流将会把最后一个执行的执行节点的输出,作为工作流的输出参数,响应给到工作流的调用方。
节点说明
工作流由多种节点按流程串联而成。工作流的节点包含了触发节点和执行节点。工作流的执行起点是触发节点,并依次调用执行流程中的执行节点。
节点配置说明
节点标识
每个节点均具备节点标识。在工作流的执行环境中,可以通过节点标识来获取节点相关的输出输入内容。
节点标识在创建节点时自动生成。
节点输入、输出、错误输出
每个节点均具备输入、输出、错误输出的相关参数,在工作流的配置或代码节点中,可以通过 $node.input
,$node.output
,$node.error
获取。
在实际配置或运行过程中,input 输入内容,可能仅部分节点存在。output 输出内容,各节点基本均存在。error 错误内容,仅在节点执行失败时存在。
使用限制
当前工作流运行时,某一节点的最大执行时长为 60 秒 ;工作流的最大执行时长为 10 分钟。
超过最大执行时长时,节点或工作流会报错且运行状态为节点失败、或工作流失败。