Frappe 框架中的通知文档类型提供了一种强大的方式,可以在系统中发生特定事件时,通过不同渠道自动发送通知。本指南将介绍如何有效配置和使用通知功能。
常规设置
- 启用:开关,用于激活或停用通知。
- 渠道:选择通知的发送方式:
- 电子邮件:通过电子邮件发送通知
- Slack:发送通知到 Slack 频道
- 系统通知:在 Frappe 界面内显示通知
- 短信:通过短信发送通知(需要配置短信设置)
- 标准:用于开发者模式;将通知标记为标准模块的一部分
事件触发器
通知可以根据各种事件触发:
文档事件
- 新建:创建新文档时触发
- 保存:保存文档时触发
- 提交:提交文档时触发
- 取消:取消文档时触发
基于日期的事件
- 提前天数:在日期字段值之前的指定天数触发
- 延后天数:在日期字段值之后的指定天数触发
- 使用这些事件时:
- 参考日期:选择要监控的日期字段
- 提前或延后天数:指定触发日期之前/之后的天数
基于值的事件
- 值变更:当特定字段的值发生变化时触发
- 变更的字段:选择要监控变化的字段
基于方法的事件
- 方法:当调用特定文档方法时触发
- 触发方法:指定方法名称(例如 “before_insert”、”after_update”)
自定义事件
- 自定义:用于通过编程方式触发的通知
条件触发器
您可以通过添加条件使通知更具针对性:
- 条件:一个 Python 表达式,必须计算结果为
True才会发送通知 - 条件可以访问:
doc:触发通知的文档nowdate():当前日期函数frappe.utils:工具函数
示例
-
文档的状态为”开放”
doc.status=="Open" -
文档的截止日期与当前日期匹配
doc.due_date==nowdate() -
总额大于 40,000
doc.total > 40000
收件人配置
电子邮件、系统通知和短信渠道
使用收件人表格配置收件人:
-
接收者类型:
- 按文档字段:选择包含电子邮件地址/电话号码的字段
- 按角色:选择接收通知的用户角色
- 自定义:指定自定义收件人
-
其他选项:
- 抄送/密送:用于电子邮件通知
- 条件:用于有条件地包含收件人的 Python 表达式
- 发送给所有负责人:包括分配给该文档的所有用户
对于 Slack 频道
- 从下拉菜单中选择预定义的 Slack Webhook URL
消息配置
主题(用于电子邮件、Slack 和系统通知)
- 输入主题行文本
- 支持 Jinja 模板:
{{ doc.name }} Delivered
消息正文
- 消息类型:选择 HTML、Markdown 或纯文本(仅在开发者模式下可用)
- 消息:输入通知内容
- 使用 Jinja 模板实现动态内容
模板变量
{{ doc }}:访问触发文档中的任何字段(例如{{ doc.customer }}){{ comments }}:访问文档评论(例如{{ comments[-1].comment }}){% if %}...{% endif %}:条件逻辑{{ nowdate() }}:当前日期
模板示例
<h3>Order Overdue</h3>
<p>Transaction {{ doc.name }} has exceeded Due Date. Please take necessary action.</p>
<!-- show last comment -->
{% if comments %}
Last comment: {{ comments[-1].comment }} by {{ comments[-1].by }}
{% endif %}
<h4>Details</h4>
<ul>
<li>Customer: {{ doc.customer }}
</li>
<li>Amount: {{ doc.grand_total }}
</li></ul>
高级选项
附件设置
- 附加打印件:附加文档的 PDF 打印件
- 打印格式:为附加的 PDF 选择特定的打印格式
- 附加文件:
- “全部”:发送触发通知的记录所附加的所有文件
- “来自字段”:从特定的附件字段发送文件
- 来自附件字段:选择包含您要发送的附件的字段
通知后操作
- 提醒后设置属性:发送通知后更新字段
- 要设置的值:在指定字段中设置的值
最佳实践
- 测试您的通知:使用“获取今日提醒”按钮测试基于日期的通知。
- 保持条件具体明确:确保您的条件具有针对性,以避免通知疲劳。
- 合理使用模板:使消息清晰明了,仅包含相关信息。
- 验证收件人字段:确保字段包含有效的电子邮件地址或电话号码。
- 考虑权限级别:收件人必须具有访问通知中引用文档的权限。
故障排除
- 如果通知未发送,请检查文档是否满足所有条件。
- 对于电子邮件通知,请验证电子邮件设置是否正确配置。
- 对于短信通知,请确保短信设置已配置。
- 对于 Slack 通知,请验证 Webhook URL 是否有效且处于活动状态。
- 检查服务器日志中是否有与通知发送相关的错误。
技术说明
- 通知采用异步处理方式,以避免对系统性能产生影响。
- 基于日期的事件通过计划任务每天检查。
- 文档事件通知在相关操作发生时实时触发。
- 条件和模板在受限环境中进行评估,以确保安全性。
通过有效配置通知文档类型,您可以及时告知用户重要事件,并在 Frappe 应用中实现通信自动化。