自定义响应组件
自定义响应组件(CustomResponse)用于在流程中返回业务结果,控制接口的提示信息、提示方式或页面跳转。
概述
自定义响应组件用于自定义业务完成后的反馈:既可以返回不同语义的提示消息(成功 / 失败 / 警告 / 普通),也可以执行页面重定向或在新地址打开。一个接口中可放置多个自定义响应组件,配合条件分支按不同情形返回不同结果。
组件按「执行操作」区分行为,不同操作会显示不同的后续配置项。
配 置项
| 配置项 | 说明 |
|---|---|
| 执行操作 | 组件的响应类型,决定返回提示还是跳转,必填,缺省为「提示消息 - 成功」 |
| 自定义响应编码(非Http状态码) | 返回结果的业务编码,缺省 200 |
| 消息提示方式 | 提示消息的展示形态,仅提示消息类操作可配置 |
| 提示信息 | 提示文案,仅提示消息类操作可配置 |
| 提示更多信息 | 提示的补充说明文案,仅提示消息类操作可配置 |
| 提示自动关闭时间 | 提示自动消失的秒数,仅提示消息类操作可配置 |
| 通知弹出位置 | 通知类提示的弹出位置,仅「消息提示方式 = 通知」时可配置 |
| 重定向URL地址 | 跳转地址,仅「重定向」「打开新地址」操作可配置 |
| 输出到最终结果 | 开启后该组件结果作为接口返回值 |
执行操作取值
| 界面名称 | 值(Action) | 说明 |
|---|---|---|
| 提示消息 - 成功 | 0 | 返回成功类提示,缺省值 |
| 提示消息 - 失败 | 1 | 返回失败类提示 |
| 提示消息 - 警告 | 2 | 返回警告类提示 |
| 提示消息 - 普通 | 3 | 返回普通提示 |
| 重定向 | 4 | 在当前页跳转到指定地址 |
| 打开新地址 | 5 | 在新标签页打开指定地址 |
消息提示方式取值
仅当执行操作为「提示消息」类(0 / 1 / 2 / 3)时可配置:
| 界面名称 | 值(PopType) | 说明 |
|---|---|---|
| 默认 | 0 | 由系统决定提示形态,缺省值 |
| 消息 | 1 | 以轻提示(message)展示 |
| 通知 | 2 | 以通知卡片(notification)展示 |
通知弹出位置取值
仅当执行操作为「提示消息」类且消息提示方式为「通知」时可配置:
| 界面名称 | 值(Placement) | 说明 |
|---|---|---|
| 默认 | 0 | 系统默认位置,缺省值 |
| 上 | 1 | 顶部居中 |
| 左上角 | 2 | 左上角 |
| 右上角 | 3 | 右上角 |
| 下 | 4 | 底部居中 |
| 左下角 | 5 | 左下角 |
| 右下角 | 6 | 右下角 |
提示自动关闭时间
Duration 单位为秒(支持 1 位小数):
| 取值 | 说明 |
|---|---|
0 | 使用系统默认时间,缺省值 |
-1 | 永不自动关闭 |
1 ~ 120 | 指定的秒数后自动关闭 |
使用场景
- 业务校验未通过时返回失败提示
- 操作完成后返回成功提示并展示补充说明
- 处理完成后跳转到指定页面或打开外部链接
下一步
属性明细
以下内容面向技术实现与 AI 检索,说明自定义响应组件的节点元数据。
节点元数据
自定义响应组件由 FlowCmpType.CustomResponse 标识:
| 属性名 | 类型 | 含义 | 取值/存储值 |
|---|---|---|---|
type | string | 组件类型 | 固定为 "CustomResponse" |
Action | string | 执行操作 | "0"~"5",缺省 "0" |
Code | string | 自定义响应编码 | 缺省 "200",例:"500" |
PopType | string | 消息提示方式 | "0" / "1" / "2",缺省 "0" |
Message | string | 提示信息 | 缺省 "操作成功" |
MoreMessage | string | 提示更多信息 | 补充说明文案 |
Duration | string | 提示自动关闭时间(秒) | 缺省 "0",取值 -1~120 |
Placement | string | 通知弹出位置 | "0"~"6",缺省 "0" |
RedirectUrl | string | 重定向地址 | Action = 4 / 5 时使用 |
IsFinalResult | string(bool) | 是否输出到最终结果 | "true" / "false" |
order | string | 同级排序 | 例:"6" |
元 数据存储示例
{
"ID": "resp1",
"type": "CustomResponse",
"Action": "1",
"Code": "500",
"PopType": "2",
"Message": "库存不足",
"MoreMessage": "请补充库存后重试",
"Duration": "5",
"Placement": "3",
"IsFinalResult": "true",
"order": "6"
}
服务端执行逻辑
自定义响应组件由 CustomResponseComponentManager(继承 InterfaceComponentManagerBase)实现,组件类型为 FlowComponentTypeEnum.CustomResponse。
节点
meta中的所有值均以字符串存储,服务端统一通过SafeGet("Key")读取后经Convert转成目标类型。
执行时机与场景
流程执行到该节点时,构造或复用 ResponseResult,写入编码、提示信息、动作与跳转地址等字段。
输入参数(meta 键)
| 键 | 读取方式 | 含义 |
|---|---|---|
Action | meta.SafeGet("Action") | 执行操作,"0"~"5" |
Code | meta.SafeGet("Code") | 业务编码,Convert.ToInt32 |
Message | meta.SafeGet("Message") | 提示信息 |
MoreMessage | meta.SafeGet("MoreMessage") | 补充信息 |
Duration | meta.SafeGet("Duration") | 自动关闭秒数,Convert.ToDouble |
PopType | meta.SafeGet("PopType") | 提示方式枚举 |
Placement | meta.SafeGet("Placement") | 通知位置枚举 |
RedirectUrl | meta.SafeGet("RedirectUrl") | 跳转地址 |
IsFinalResult | meta.SafeGet("IsFinalResult") | "true" 时写入 context.Result |
IsDisabled | meta.SafeGet("IsDisabled") == "true" | 为 true 时跳过本组件 |
执行步骤
- 校验期读取
Action、Duration、RedirectUrl:Action为空抛「请设置要执行的操作」;Action为4(重定向)或5(打开新地址)且RedirectUrl为空抛异常;Duration不在[-1, 120]范围内抛异常。
- 执行期:
- 若
context.Result is ResponseResult res,复用该对象,否则new ResponseResult(); - 逐项赋值:
action、code、message、moreMessage、duration、popType、placement、redirectUrl(枚举字段经Convert.ToInt32转换后赋值)。
- 若
IsFinalResult = "true"时context.Result = result。- 调用
ExecuteNextAsync继续下游。
输出与上下文
| 字段 | 说明 |
|---|---|
context.Result | IsFinalResult = "true" 时为构造或复用的 ResponseResult |
若上游已把 context.Result 置为 ResponseResult,本组件会就地修改该对象(即使 IsFinalResult 为 "false" 也会生效)。
权限、安全与限制
- 无权限校验。
Duration取值限定-1(永不关闭)、0(系统默认)或1~120秒。Action为4/5时必须提供RedirectUrl。
异常与校验
Action未设置、RedirectUrl未设置、Duration越界,均在校验期抛出对应异常。