Skip to content

模板变量

在文本内容中通过 {{ }} 语法引用消息中的数据,运行时自动替换为实际值。

基本语法

{{ msg.字段路径 }}
  • 所有变量以 msg. 开头
  • 支持多级嵌套路径,用 . 分隔
  • 支持 ?. 可选链语法,中间字段为 null 时安全返回空字符串
  • 对象或数组类型的值会自动转换为 JSON 字符串

字段路径

路径前缀说明示例
msg.output.上一个节点的输出字段{{msg.output.title}}
msg.output.嵌套.字段嵌套对象字段{{msg.output.user.name}}
msg.input.流程原始入参字段{{msg.input.orderId}}
msg._meta.系统元字段(如循环轮次等){{msg._meta.iteration}}

使用示例

基本替换

json
// payload
{
  "input": { "orderId": "ORD-001" },
  "output": {
    "title": "部署完成",
    "version": "1.2.0",
    "count": 5
  }
}
// 模板
{{msg.output.title}}:版本 {{msg.output.version}},共处理 {{msg.output.count}} 条
订单号:{{msg.input.orderId}}
// 输出
部署完成:版本 1.2.0,共处理 5 条
订单号:ORD-001

对象和数组转 JSON 字符串

当引用的字段是对象或数组时,自动转换为 JSON 字符串。

json
// payload
{
  "output": {
    "user": { "name": "张三", "age": 28 },
    "tags": ["紧急", "待审批"]
  }
}
// 模板
用户信息:{{msg.output.user}}
标签列表:{{msg.output.tags}}
// 输出
用户信息:{"name":"张三","age":28}
标签列表:["紧急","待审批"]

TIP

如需只取某个具体字段,建议直接引用完整路径:{{msg.output.user.name}}


可选链 ?.

当路径中某一层字段可能为 null 时,使用 ?. 代替 .,整个表达式安全返回空字符串。

WARNING

路径中间层为 null 时,必须使用 ?.,否则会报错并中断替换。

普通写法 vs 可选链

写法中间值为 null 时的行为
{{msg.output.user.name}}报错,中断替换
{{msg.output.user?.name}}返回空字符串,安全降级
{{msg.output?.user?.name}}任意一层为 null 均安全降级

示例

json
// payload(user 为 null)
{
  "output": {
    "title": "审批通知",
    "user": null,
    "extra": { "remark": "测试环境" }
  }
}
// 模板
标题:{{msg.output.title}}
申请人:{{msg.output.user?.name}}
备注:{{msg.output.extra?.remark}}
地址:{{msg.output?.address?.city?.name}}
// 输出
标题:审批通知
申请人:
备注:测试环境
地址:

注意事项

WARNING

  • 引用不存在的字段时,替换结果为空字符串
  • msg 本身或中间层未初始化时,建议从第一层就使用 ?.,如 {{msg?.output?.title}}
  • 路径区分大小写msg.output.Namemsg.output.name 是不同字段