消息模板(MetaMessageTemplate)
消息模板(MetaMessageTemplate)用于定义应用内各类业务消息在各个通知渠道上的呈现与分发规则,统一管理消息在系统消息、系统待办、邮件、短信及自定义渠道上的投递内容。
概述
消息模板(消息模板管理 / 通知模板 / MetaMessageTemplate)是应用级配置,归属于「开发中心 → 应用工作台」下的「消息模板」菜单,与数据字典同级。
每个模板由两部分组成:
应用创建后,系统会预置常用消息模板(如审批通知等),可直接编辑启用;也可以新建自定义模板。模板被修改后会标记为「已自定义」。
info
消息模板只定义「消息长什么样、走哪些渠道」;消息的触发入口(审批流、触发器、脚本、开放接口等)见 消息通知。
配置项
在「消息模板」列表页点击「添加」创建模板,或点击模板名称进入设置推屏编辑:
| 配置项 | 说明 |
|---|---|
| 名称 | 模板显示名称,必填 |
| 描述 | 模板说明,选填 |
| 渠道配置 | 进入设置推屏后配置,详见内置通知渠道与自定义通知渠道 |
占位符
渠道的「主题」和「内容」中支持占位符,消息触发时由服务端替换为实际值:
| 占位符 | 说明 | 示例 |
|---|---|---|
{参数名} | 替换为触发消息时传入的参数(大小写不敏感) | {OrderNo} → SO20251101001 |
{对象编码.字段编码} | 替换为关联业务数据中的字段值,支持子对象点选字段 | {Order.Remark} → 订单备注内容 |
使用场景
- 审批流节点通知:审批发起、待办、同意、拒绝等消息定制
- 触发器 / 定时任务中发送业务提醒
- 通过 SDK 脚本或开放接口发送业务消息(如订单发货通知)
- 将消息同步推送到企业微信、钉钉、飞书等外部系统(配合自定义通知发送插件)
下一步
- 内置通知渠道 - 系统消息 / 系统待办 / 邮件 / 短信的配置说明
- 自定义通知渠道 - 通过插件对接外部消息系统
- 消息通知 - 消息的触发入口与整体机制
- 自定义通知发送插件 - 编写自定义渠道的投递插件
属性明细
以下内容面向技术实现与 AI 检索。
消息模板属性表
| 属性名 | 类型 | 含义 | 取值/存储值 |
|---|---|---|---|
Name | string | 模板名称 | 必填 |
Description | string | 模板描述 | 可空 |
AppId | string | 所属应用 Id | 必填 |
Customized | bool | 是否被自定义过 | true / false;预置模板被编辑后置 true |
CustomCreated | bool | 是否自定义创建(区别于系统预置) | true / false |
MainMetaObjectId | string | 预留 | 当前未使用 |
Properties | JsonMap | 渠道配置,见 MessageTemplateProperties | 可空,各键见子页属性表 |
存储示例
存储位置:消息模板(system_metamessagetemplate)。
{
"Name": "订单发货通知",
"Description": "订单发货后通知客户",
"AppId": "3de34a16-c4a9-45a3-b268-69b2ff6e2a9e",
"Customized": true,
"CustomCreated": true,
"Properties": {
"SystemMessageEnable": "true",
"SystemMessageSubject": "订单 {OrderNo} 已发货",
"SystemMessageContent": "您的订单 {Order.OrderNo} 已发货,物流单号 {Order.TrackingNo}",
"EmailEnable": "false",
"CustomNotificationChannels": [
{
"PluginKey": "wecom-bot-sender",
"Subject": "订单 发货通知",
"Content": "订单 {OrderNo} 已发货"
}
]
}
}
服务端执行逻辑
- 保存:
/api/MetaMessageTemplate/SaveSetting更新模板与Properties;查询:/api/MetaMessageTemplate/Get/GetList。 - 触发:各业务入口(SDK
NotificationHelper.NotifyAsync、开放接口、审批流、@提醒等)构造NotificationRequest(含TemplateId、Receiver、Parameters、业务数据上下文)调用NotificationService.NotifyAsync。 - 分发:按
Properties各渠道开关生成系统消息、待办、邮件、短信、自定义通知,并执行{占位符}替换(参数键大小写不敏感,业务数据按{对象编码.字段编码}从BizDataId对应数据取值)。
相关实现
- 实体定义:
server/Chameleon.Model/Entities/MetaMessageTemplate.cs - 渠道属性键:
server/Chameleon.Model/Entities/MetaMessageTemplate.cs(MessageTemplateProperties) - 消息调度:
server/Chameleon.Domain/NotificationService.cs - 模板管理界面:
web/src/pages/Development/MetaMessageTemplate/MetaMessageTemplateList.tsx、MetaMessageTemplateSetting.tsx