SuperAPI AI 工具集

erpnext-frappe-dev

编程与开发

查看项目

更新于 10-15 09:44

技能介绍

用途

该技能是 Frappe Framework / ERPNext 的完整开发参考文档,用于在 Claude Code 中构建 Frappe / ERPNext 应用。当需要创建新的 Frappe/ERPNext 自定义应用、构建 DocType 与控制器、编写定制 hooks、实现 REST API、创建表单脚本(客户端 JS)、编写后台任务、构建与外部服务的集成,或进行任何 ERPNext/Frappe 开发工作时,可使用该技能。

主要能力

技能以文档索引形式提供多份参考文件,覆盖以下内容:

  • reference/frappe-framework-complete.md:主参考,包含 Document、Database、Controllers、Hooks、REST API、Form Scripts、Testing 的完整 API 文档。
  • reference/document-api.md:Document 的 CRUD 操作。
  • reference/database-api.md:数据库查询与事务。
  • reference/hooks-reference.md:hooks.py 配置。
  • reference/rest-api.md:REST API 端点。
  • reference/form-scripts.md:客户端 JavaScript。
  • reference/index.md:ERPNext 模块文档索引。
  • reference/accounting/:会计模块参考。
  • reference/stock/:库存/存货模块参考。
  • reference/manufacturing/:制造模块参考。
  • reference/crm/:CRM 模块参考。
  • reference/hr-payroll/:HR 与薪酬模块参考。
  • reference/api/:REST 与开发者 API 参考。

核心概念

DocType 相当于模型:DocType "Customer" 会创建数据库表 tabCustomer、Python 控制器 customer.py、表单脚本 customer.js。

Document 相当于实例,可通过 frappe.get_doc("Customer", "CUST-001") 获取并修改后保存。

Controller 承载业务逻辑,例如在 validate 中校验字段、在 on_submit 中创建关联记录。

Hooks 用于应用配置,例如在 hooks.py 的 doc_events 中为 "Sales Order" 的 on_submit 绑定处理函数。

使用方式

创建应用:

bench new-app my_app bench --site mysite install-app my_app

关键文件包括:hooks.py(应用级配置与事件处理器)、{doctype}.py(Python 控制器,服务端逻辑)、{doctype}.js(表单脚本,客户端逻辑)、{doctype}.json(DocType 定义)。

常用 API 速查:

Document 操作:frappe.get_doc(doctype, name)、frappe.new_doc(doctype)、doc.insert()、doc.save()、doc.delete()、doc.db_set(field, value)。

数据库查询:frappe.db.get_list(doctype, filters, fields)(带权限)、frappe.db.get_all(doctype, filters, fields)(全部记录)、frappe.db.get_value(doctype, name, field)、frappe.db.set_value(doctype, name, field, val)、frappe.db.exists(doctype, name)、frappe.db.count(doctype, filters)。

控制器钩子顺序:autoname → before_insert → validate → before_save → on_update → after_insert → on_submit → on_cancel。

REST API:GET /api/resource/{doctype}(列表)、GET /api/resource/{doctype}/{name}(读取)、POST /api/resource/{doctype}(创建)、PUT /api/resource/{doctype}/{name}(更新)、DELETE /api/resource/{doctype}/{name}(删除)、POST /api/method/{dotted.path}(自定义方法)。

表单脚本:frappe.ui.form.on('DocType', { refresh(frm) {}, validate(frm) {}, fieldname(frm) {} }),其中 fieldname 对应字段变更事件。

建议从 reference/frappe-framework-complete.md 开始阅读,该文件包含 20KB 以上的综合文档,覆盖所有 Frappe API 及代码示例。

适用场景

适用于从零构建 Frappe 应用、开发 DocType 与控制器、编写 hooks 定制、实现 REST API、创建表单脚本、编写后台任务、构建外部服务集成等 ERPNext/Frappe 开发工作。

限制

资料未提供该技能的收费、价格、平台支持范围、效果保证或具体使用步骤的更多细节,暂未提供。