输入和输出 状态输出 在工作流执行过程中, 可以通过表达式" { $.xxx.yyy } "方式访问本次状态执行完成后的执行输出,具体详见数据传递说明,按照这个方式可直接访问本次状态执行输出的结果。 注意,仅可以在当前状态在输出设置里进行使用,对应的工作流流程定义字段即state.stateDataFilter.output。 输入输出设置 输入输出过滤器对应的是工作流流程定义里面state基本结构的stateDataFilter字段。 在控制台cloudflow studio里, 可通过输入配置完成state.stateDataFIlter.input字段的定义, 可通过输出配置完成state.stateDataFilter.output字段的定义。在未设置的情况下,不对输入或者输出进行过滤处理。关于字段的详细说明可详见流程定义介绍。 在输入输出设置里面涉及到的表达式的生命周期如下: "{ $Context.Input }":生命周期贯穿整个工作流执行周期, 用于访问工作流执行输入。 状态输入表达式 " { $.xxx.yyy } ":生命周期起始于State执行开始, 结束于State执行完成。 状态输出表达式 " { $.xxx.yyy } ": 仅在State执行完成时可用。 说明 "{ $ }"代表输入或者输出的原始数据, 即全集 输入设置 Operation类型的状态(State), 其输入设置是在基本设置完成的。 当Operaion类型进行输入设置时,一般是用于设置调用云服务请求参数或者HTTP请求参数。而Switch、Foreach、Noop等状态可用于输入数据过滤以及输入数据重构等场景, 在未设置的情况下, 输入数据保持和上一个状态输出数据一致。 以输入设置使用JsonPath部分参数为例: 工作流流程可视化 工作流流程定义 plaintext specVersion: "0.8" name: "demo" start: "Hello" states: name: "Hello" type: "Operation" actions: functionRef: type: "Noop" end: true stateDataFilter: input: "{ $.k1 }" 进行工作流执行: 工作流执行输入 状态执行输入 状态执行输出 plaintext { "k1": { "k11": "v11", "k12": 12 }, "k2": { "k21": "v21", "k22": 22 }, "k3": "v3" } 以输入设置使用参数过滤器构造新参数为例: 工作流流程可视化 工作流流程定义 plaintext specVersion: "0.8" name: "demo" start: "Hello" states: name: "Hello" type: "Operation" actions: functionRef: type: "Noop" end: true stateDataFilter: input: newK1: "newK1" newK2: "{ $.k2. k21 }" 进行工作流执行: 工作流执行输入 状态执行输入 状态执行输出 plaintext { "k1": { "k11": "v11", "k12": 12 }, "k2": { "k21": "v21", "k22": 22 }, "k3": "v3" }