SuperAPI AI 工具集

frappe-enterprise-patterns

设计与创作

查看项目

更新于 10-16 00:01

技能介绍

用途:为构建生产级 Frappe 企业应用(如 CRM、Helpdesk、HRMS 等多实体系统)提供架构模式参考,适用于设计 SLA 驱动工作流、分配与队列管理、审计与活动日志,以及邮件、电话、CRM 等外部系统集成。

主要能力:

  1. 数据建模:以规范化 DocType 为核心,用 Link 字段表达关系,用子表承载活动、时间线与明细行,目标 DocType 可变时用 Dynamic Link。
  2. 状态机:可选 Workflow DocType(基于角色的状态转换)、docstatus 提交流(0 草稿、1 已提交、2 已取消),或自定义 status 字段加校验。
  3. 权限:用 User Permissions 做行级过滤并结合 Role Permissions;RPC 方法内需显式复查权限,如 frappe.has_permission("Ticket", "write", doc)。
  4. 活动轨迹:用 Activity Log 或自定义子表,在 on_update 中通过 has_value_changed 记录状态变更。
  5. SLA:SLA DocType 定义响应/解决时长与升级规则,创建时计算 response_by、resolution_by,并用定时任务检查违约。
  6. 分配与队列:按 current_load 升序做轮询分配,或用 Assignment Rules 自动分配。
  7. 通知与升级:用 Notification DocType 配置临近违约、分配变更、状态转换、客户回复等通知,并设置分级升级链。
  8. 外部集成:集中在 integrations 模块,用 frappe.enqueue 后台任务同步,避免阻塞请求。

使用方式:先明确系统类型、核心实体与关系、SLA 要求、工作流状态与转换、集成点,再按上述步骤设计数据模型、状态机、权限、活动轨迹、SLA、队列、通知与集成。

限制与注意:前端必须使用 Frappe UI(Vue 3 + TailwindCSS),不要用原生 JS 或 jQuery;工作流应尽量线性并考虑回滚与取消、挂起等异常状态;外部调用需 try/except、日志与重试;并发更新用 for_update=True 加锁;SLA 需按 UTC 存储并处理时区;批量操作使用 frappe.enqueue;角色名避免硬编码。常见失败包括权限绕过、SLA 未生效、活动未记录、通知未发送等,需逐项排查。具体价格、平台与效果资料暂未提供。