# 工作流节点介绍

工作流是有多个节点串联组成的一段逻辑流程。组成工作流的节点包括了触发节点和动作节点。

# 触发节点

触发节点为工作流提供了触发、启动工作流运行的能力,通常是流程的入口和起点。

  • 通过组件或调用触发:通过小程序SDK、云开发SDK、API或微搭编辑应用中的组件行为触发,也支持另一工作流调用本工作流时触发。
  • 在指定时间触发:通过设计需要的触发时间或触发周期,定时触发工作流。
  • 收到 HTTP 请求时触发:通过提供 URL 地址,在指定地址上收到 http 请求时触发。常用于 Webhook 场景。
  • 收到微信事件消息推送时触发:在关联的公众号或小程序产生事件推送、客服消息、服务消息推送时触发工作流。
  • 收到微信支付消息时触发:当用户支付完成后或商户退款完成后,微信会将结果通知发送给商户。该通知发送地址是通过 基础下单 或 申请退款 接口中的请求参数「notify_url」来设置的。现在可以使用工作流来接收微信支付的回调通知,并在工作流中处理和更新业务数据。
  • 收到企微事件消息推送时触发:在企业微信的应用和企微用户产生交互的过程中,用户的某些操作会使得企微服务端通过事件推送的形式推送到开发者在开发者中心处设置的推送接收地址,从而开发者可以获取到该信息。

# 通过组件或调用触发

在配置和使用此触发器后,可以通过在小程序中或云函数中使用 callFunction 方法,发起对工作流的调用,并传递调用参数给到工作流。在工作流执行完成后,也可以通过调用的返回,获取到工作流的执行返回内容。

通过如下方式,可以发起到工作流的调用

wx.cloud.callFunction({
    "name":"cloudbase_module",   //固定写法
    "data":{
        "name": "test_9ea8980",  //工作流标识
        "data":{                 //传递给工作流的参数,可以从触发节点的output中获取
          "a": 1,
          "b": 2
        }
    }
}).then(res => {
  console.log(res) 
})

调用后的响应结构如示例:

{
  "result": {  //内部为工作流的执行返回
    "add": 3   
  },
  "requestID": "09bab203-008a-407d-a12a-ca4792dc6ccb"   //工作流调用时的请求id
}

调用工作流前,同样需要注意环境的初始化,同时所调用的工作流需要在初始化的环境内。

wx.cloud.init({
  env: 'test-x1dzi'
})

# 动作节点

动作节点提供了各种逻辑功能,例如条件分支、运行 JS 代码、提供 HTTP 响应、对接微信支付等。多个动作节点的顺序、分支、循环串联,组成了工作流执行的过程。

  • 条件分支:条件分支节点可用来控制工作流的运行方向,通过设置不同的条件表达,设置工作流的运行分支。
  • 运行 JS 脚本:允许开发者编写、执行和管理自定义 JavaScript 代码,以实现特定的业务逻辑或扩展现有服务。
  • 响应 HTTP 请求:可与 HTTP 类触发方式配合使用。在工作流中使用该节点,可以自定义 HTTP 请求的响应状态和数据。
  • 调用微信支付:通过微信支付节点可以调用微信支付相关 API 接口,用于业务流程中轻松集成微信支付能力。
  • 调用工作流:用于在当前工作流中调用另一个工作流。被调用工作流需要配置"通过组件或调用触发"的触发器节点
  • 数据查询:对接数据 query 能力,可以实现数据模型,APIs,各项连接器的调用。