模板变量
在文本内容中通过 {{ }} 语法引用消息中的数据,运行时自动替换为实际值。
基本语法
{{ 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.Name和msg.output.name是不同字段
