Skip to main content

自定义响应组件

自定义响应组件(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 标识:

属性名类型含义取值/存储值
typestring组件类型固定为 "CustomResponse"
Actionstring执行操作"0"~"5",缺省 "0"
Codestring自定义响应编码缺省 "200",例:"500"
PopTypestring消息提示方式"0" / "1" / "2",缺省 "0"
Messagestring提示信息缺省 "操作成功"
MoreMessagestring提示更多信息补充说明文案
Durationstring提示自动关闭时间(秒)缺省 "0",取值 -1~120
Placementstring通知弹出位置"0"~"6",缺省 "0"
RedirectUrlstring重定向地址Action = 4 / 5 时使用
IsFinalResultstring(bool)是否输出到最终结果"true" / "false"
orderstring同级排序例:"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 键)​

键读取方式含义
Actionmeta.SafeGet("Action")执行操作,"0"~"5"
Codemeta.SafeGet("Code")业务编码,Convert.ToInt32
Messagemeta.SafeGet("Message")提示信息
MoreMessagemeta.SafeGet("MoreMessage")补充信息
Durationmeta.SafeGet("Duration")自动关闭秒数,Convert.ToDouble
PopTypemeta.SafeGet("PopType")提示方式枚举
Placementmeta.SafeGet("Placement")通知位置枚举
RedirectUrlmeta.SafeGet("RedirectUrl")跳转地址
IsFinalResultmeta.SafeGet("IsFinalResult")"true" 时写入 context.Result
IsDisabledmeta.SafeGet("IsDisabled") == "true"为 true 时跳过本组件

执行步骤​

  1. 校验期读取 Action、Duration、RedirectUrl:
    • Action 为空抛「请设置要执行的操作」;
    • Action 为 4(重定向)或 5(打开新地址)且 RedirectUrl 为空抛异常;
    • Duration 不在 [-1, 120] 范围内抛异常。
  2. 执行期:
    • 若 context.Result is ResponseResult res,复用该对象,否则 new ResponseResult();
    • 逐项赋值:action、code、message、moreMessage、duration、popType、placement、redirectUrl(枚举字段经 Convert.ToInt32 转换后赋值)。
  3. IsFinalResult = "true" 时 context.Result = result。
  4. 调用 ExecuteNextAsync 继续下游。

输出与上下文​

字段说明
context.ResultIsFinalResult = "true" 时为构造或复用的 ResponseResult

若上游已把 context.Result 置为 ResponseResult,本组件会就地修改该对象(即使 IsFinalResult 为 "false" 也会生效)。

权限、安全与限制​

  • 无权限校验。
  • Duration 取值限定 -1(永不关闭)、0(系统默认)或 1~120 秒。
  • Action 为 4 / 5 时必须提供 RedirectUrl。

异常与校验​

  • Action 未设置、RedirectUrl 未设置、Duration 越界,均在校验期抛出对应异常。