SuperAPI AI 工具集

frappe-impl-customapp

通用与其它

查看项目

更新于 10-15 22:17

技能介绍

用途:指导从零构建 Frappe 自定义应用,适用 v14/v15/v16。

主要能力与流程:

  1. 决策是否真的需要建应用:仅加字段用 Custom Field + Property Setter;简单自动化(少于 50 行)用 Server/Client Script;复杂业务逻辑、新 DocType、Python 代码或外部系统集成才需建应用。
  2. 创建结构:cd ~/frappe-bench 后运行 bench new-app my_app,须确认 init.py 内有 version。
  3. 配置 pyproject.toml(v15+)与 hooks.py,声明 required_apps。注意 frappe/erpnext 不可放入 [project].dependencies。
  4. modules.txt 定义模块:1-5 个 DocType 用单模块,6-15 用 2-4 个,15+ 按业务域划分。
  5. 安装与建 DocType:bench --site mysite install-app my_app;bench --site mysite new-doctype "My Document" --module "My App"。
  6. 添加 hooks:doc_events、调度器、v16 的 extend_doctype_class。
  7. 编写补丁:放入 patches/v1_0,注册到 patches.txt 的 pre/post_model_sync,须分批处理、每批提交、先在副本测试。
  8. fixtures 管理:在 hooks.py 配置并过滤,用 bench --site mysite export-fixtures --app my_app 导出。

使用方式:常用命令包括 bench --site mysite migrate(结构变更后)、bench build --app my_app(JS/CSS 变更后)、bench --site mysite clear-cache(Python 变更后)、bench watch、bench restart;测试用 bench --site mysite run-tests --app my_app。

适用场景:需要新 DocType、复杂逻辑或外部集成的 Frappe 定制开发。限制与规则:始终从 bench new-app 开始,勿手建结构;勿在 project 依赖中放 frappe/erpnext;勿在 fixtures 中含事务数据;勿直接改核心 ERPNext 文件;勿在共享 DocType 上无过滤导出;补丁勿在生产未测试运行。其余具体语法与细节暂未提供。