Skip to main content

消息模板(MetaMessageTemplate)

消息模板(MetaMessageTemplate)用于定义应用内各类业务消息在各个通知渠道上的呈现与分发规则,统一管理消息在系统消息、系统待办、邮件、短信及自定义渠道上的投递内容。

概述​

消息模板(消息模板管理 / 通知模板 / MetaMessageTemplate)是应用级配置,归属于「开发中心 → 应用工作台」下的「消息模板」菜单,与数据字典同级。

每个模板由两部分组成:

  • 基本信息:模板名称、描述
  • 渠道配置(Properties):按通知渠道分别配置开关与消息内容,分为内置通知渠道(系统消息 / 系统待办 / 邮件 / 短信)和自定义通知渠道

应用创建后,系统会预置常用消息模板(如审批通知等),可直接编辑启用;也可以新建自定义模板。模板被修改后会标记为「已自定义」。

info

消息模板只定义「消息长什么样、走哪些渠道」;消息的触发入口(审批流、触发器、脚本、开放接口等)见 消息通知。

配置项​

在「消息模板」列表页点击「添加」创建模板,或点击模板名称进入设置推屏编辑:

配置项说明
名称模板显示名称,必填
描述模板说明,选填
渠道配置进入设置推屏后配置,详见内置通知渠道与自定义通知渠道

占位符​

渠道的「主题」和「内容」中支持占位符,消息触发时由服务端替换为实际值:

占位符说明示例
{参数名}替换为触发消息时传入的参数(大小写不敏感){OrderNo} → SO20251101001
{对象编码.字段编码}替换为关联业务数据中的字段值,支持子对象点选字段{Order.Remark} → 订单备注内容

使用场景​

  • 审批流节点通知:审批发起、待办、同意、拒绝等消息定制
  • 触发器 / 定时任务中发送业务提醒
  • 通过 SDK 脚本或开放接口发送业务消息(如订单发货通知)
  • 将消息同步推送到企业微信、钉钉、飞书等外部系统(配合自定义通知发送插件)

下一步​

属性明细​

以下内容面向技术实现与 AI 检索。

消息模板属性表​

属性名类型含义取值/存储值
Namestring模板名称必填
Descriptionstring模板描述可空
AppIdstring所属应用 Id必填
Customizedbool是否被自定义过true / false;预置模板被编辑后置 true
CustomCreatedbool是否自定义创建(区别于系统预置)true / false
MainMetaObjectIdstring预留当前未使用
PropertiesJsonMap渠道配置,见 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