erpnext-frappe-dev
ERPNextアプリ開発に必要なFrappe Frameworkの全機能を網羅し、カスタムDocTypeやAPI構築を支援するSkill。
📜 元の英語説明(参考)
Complete Frappe Framework development reference for building ERPNext apps. Use when creating custom DocTypes, controllers, hooks, REST APIs, form scripts, background jobs, or any Frappe/ERPNext development. Contains full API documentation for Document, Database, Controllers, Hooks, REST API, Form Scripts, Testing, and common patterns.
🇯🇵 日本人クリエイター向け解説
ERPNextアプリ開発に必要なFrappe Frameworkの全機能を網羅し、カスタムDocTypeやAPI構築を支援するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Frappe Framework 開発リファレンス
Frappe Framework / ERPNext 上でアプリケーションを構築するための完全なドキュメントです。このスキルには、Claude Code が Frappe アプリをゼロから構築するために必要な包括的な API ドキュメントが含まれています。
このスキルを使用する場面
このスキルは、以下の状況で使用してください。
- 新しい Frappe/ERPNext カスタムアプリを作成する場合
- DocType とコントローラーを構築する場合
- カスタマイズのためのフックを記述する場合
- REST API を実装する場合
- フォームスクリプト(クライアントサイド JS)を作成する場合
- バックグラウンドジョブを記述する場合
- 外部サービスとの連携を構築する場合
- その他の ERPNext/Frappe 開発作業全般
クイックスタート
アプリの作成
bench new-app my_app
bench --site mysite install-app my_app
主要ファイル
hooks.py— アプリレベルの設定とイベントハンドラー{doctype}.py— Python コントローラー(サーバーサイドロジック){doctype}.js— フォームスクリプト(クライアントサイドロジック){doctype}.json— DocType 定義
ドキュメントインデックス
| リファレンス | 内容 |
|---|---|
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" creates:
# - Database table `tabCustomer`
# - Python controller customer.py
# - Form script customer.js
Document = インスタンス
doc = frappe.get_doc("Customer", "CUST-001")
doc.customer_name = "Updated Name"
doc.save()
Controller = ビジネスロジック
class Customer(Document):
def validate(self):
if not self.email:
frappe.throw("Email required")
def on_submit(self):
self.create_linked_records()
Hooks = アプリケーション設定
# hooks.py
doc_events = {
"Sales Order": {
"on_submit": "my_app.events.on_sales_order_submit"
}
}
API クイックリファレンス
Document 操作
frappe.get_doc(doctype, name) # ドキュメントを取得
frappe.new_doc(doctype) # 新規作成
doc.insert() # DB に挿入
doc.save() # DB を更新
doc.delete() # 削除
doc.db_set(field, value) # DB を直接更新
データベースクエリ
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) { } // フィールド変更
});
完全なドキュメントを読む
ここから始めてください: reference/frappe-framework-complete.md
このファイルには、すべての Frappe API をコード例とともに網羅した 20KB 以上の包括的なドキュメントが含まれています。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Frappe Framework Development Reference
Complete documentation for building applications on Frappe Framework / ERPNext. This skill contains comprehensive API documentation that Claude Code needs to build any Frappe app from scratch.
When to Use This Skill
Use this skill when:
- Creating a new Frappe/ERPNext custom app
- Building DocTypes and controllers
- Writing hooks for customization
- Implementing REST APIs
- Creating form scripts (client-side JS)
- Writing background jobs
- Building integrations with external services
- Any ERPNext/Frappe development work
Quick Start
Create an App
bench new-app my_app
bench --site mysite install-app my_app
Key Files
hooks.py— App-level configuration and event handlers{doctype}.py— Python controller (server-side logic){doctype}.js— Form script (client-side logic){doctype}.json— DocType definition
Documentation Index
| Reference | Contents |
|---|---|
reference/frappe-framework-complete.md |
MAIN REFERENCE — Full API docs for Document, Database, Controllers, Hooks, REST API, Form Scripts, Testing |
reference/document-api.md |
Document CRUD operations |
reference/database-api.md |
Database queries and transactions |
reference/hooks-reference.md |
hooks.py configuration |
reference/rest-api.md |
REST API endpoints |
reference/form-scripts.md |
Client-side JavaScript |
reference/index.md |
ERPNext module documentation index |
reference/accounting/ |
Accounting module reference |
reference/stock/ |
Inventory/Stock module reference |
reference/manufacturing/ |
Manufacturing module reference |
reference/crm/ |
CRM module reference |
reference/hr-payroll/ |
HR & Payroll module reference |
reference/api/ |
REST & Developer API reference |
Core Concepts Summary
DocType = Model
# DocType "Customer" creates:
# - Database table `tabCustomer`
# - Python controller customer.py
# - Form script customer.js
Document = Instance
doc = frappe.get_doc("Customer", "CUST-001")
doc.customer_name = "Updated Name"
doc.save()
Controller = Business Logic
class Customer(Document):
def validate(self):
if not self.email:
frappe.throw("Email required")
def on_submit(self):
self.create_linked_records()
Hooks = App Configuration
# hooks.py
doc_events = {
"Sales Order": {
"on_submit": "my_app.events.on_sales_order_submit"
}
}
API Quick Reference
Document Operations
frappe.get_doc(doctype, name) # Get document
frappe.new_doc(doctype) # Create new
doc.insert() # Insert to DB
doc.save() # Update in DB
doc.delete() # Delete
doc.db_set(field, value) # Direct DB update
Database Queries
frappe.db.get_list(doctype, filters, fields) # With permissions
frappe.db.get_all(doctype, filters, fields) # All records
frappe.db.get_value(doctype, name, field) # Single value
frappe.db.set_value(doctype, name, field, val) # Direct update
frappe.db.exists(doctype, name) # Check exists
frappe.db.count(doctype, filters) # Count records
Controller Hooks
autoname → before_insert → validate → before_save →
on_update → after_insert → on_submit → on_cancel
REST API
GET /api/resource/{doctype} # List
GET /api/resource/{doctype}/{name} # Read
POST /api/resource/{doctype} # Create
PUT /api/resource/{doctype}/{name} # Update
DELETE /api/resource/{doctype}/{name} # Delete
POST /api/method/{dotted.path} # Custom method
Form Scripts
frappe.ui.form.on('DocType', {
refresh(frm) { },
validate(frm) { },
fieldname(frm) { } // Field change
});
Read Full Documentation
Start with: reference/frappe-framework-complete.md
This file contains 20KB+ of comprehensive documentation covering all Frappe APIs with code examples.