在工作流执行的过程中,我们常常需要先取得一些待处理的数据,并在处理后将结果存放起来,让后续的步骤可以继续使用这些数据。
这些数据的保存与获取,主要是通过"流程变量(variables)"来完成。
流程变量的设计是以 key-value 的形式保存数据,其中:
• key 是用来标识数据来源的,例如业务流ID或节点 ID
• value 则是对应的数据内容
以下是流程变量保存的规则:
• 当工作流启动时,如果是由外部事件(例如检测到天气资料)触发的,那外部传入的数据会用"业务流 ID"作为 key 来保存
• 每个节点在处理数据时,若有保存新的数据(例如经过 JS 脚本处理或 HTTP 请求取得的回应),这些数据会以"该节点的节点 ID"作为 key 保存
如下图场景所示:
• 检测到天气数据后启动工作流 -> 天气数据会保存在流程变量中,以 业务流程 ID 为 key
• 第一个节点用 JS 脚本过滤出关键资讯 -> 过滤后的结果保存在以 第一个节点的 ID 为 key 的变量中
• 第二道节点通过 HTTP 接口取得穿搭建议 -> 穿搭建议内容以 第二个节点的 ID 作为 key 保存
了解流程变量的保存规则后,接下来我们来看如何在工作流中获取/保存变量:
获取变量:使用 $variables['业务流ID或流程ID']
上面天气数据的场景为例,示例如下图:
保存数据至流程变量中:使用return{要保存的数据};
要保存的数据必须为json格式,如下图: