用途:在 Frappe 应用中实现通知、提醒、任务分配与周期性文档创建,覆盖邮件、系统、短信、Slack 四类渠道。
主要能力:Notification DocType 支持无代码配置,触发事件含 New、Save、Submit、Cancel、Value Change、Days Before/After、Method;条件使用 Python 表达式,如 doc.status == "Open"、doc.grand_total > 40000。收件人可来自文档字段、角色、自定义地址、全部被分配人或 Jinja 条件。消息模板为 Jinja,可用 {{ doc }}、{{ comments }} 等变量,并可附打印 PDF。
编程方式:frappe.sendmail(recipients, subject, message, ...) 发送邮件,关联文档时应设置 reference_doctype 与 reference_name 以写入时间线;生产环境不要设 now=True,默认经 Email Queue 排队。frappe.publish_realtime(event, message, user/doctype/docname, after_commit=True) 推送应用内实时通知。
分配与待办:Assignment Rule DocType 支持 Round Robin、Load Balancing、Based on Field 无代码分配;也可用 frappe.desk.form.assign_to 的 add、remove、close、clear,close 仅限被分配人本人调用。ToDo 可直接通过 frappe.get_doc 创建,状态为 Open、Closed、Cancelled。
周期性:Auto Repeat DocType 按 Daily、Weekly、Monthly、Quarterly、Half-yearly、Yearly 复制文档,建议设置结束日期。
其他:doc.add_comment 添加时间线评论,doc.add_tag 打标签。
限制:短信需配置 SMS Settings,Slack 需 webhook,邮件需启用 Enable Outgoing 的 Email Account;Minutes Before/After 在 v14 不可用。