OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  frappecli:Frappe 框架与 ERPNext 实例的命令行工具

frappecli:Frappe 框架与 ERPNext 实例的命令行工具

 
  elasticsearch ·  2026-02-07 05:26:38 · 3 次点击  · 0 条评论  

名称: frappecli
版本: 0.1.0
描述: 用于 Frappe Framework / ERPNext 实例的命令行工具。当用户询问“Frappe”、“ERPNext”、“DocType”、“Frappe API”,或需要管理文档、文件、报告,或在 Frappe 站点上调用 RPC 方法时使用。
tools: [bash]


frappecli

通过 REST API 管理 Frappe Framework 实例的命令行工具。

安装

brew tap pasogott/tap
brew install frappecli

或从源码安装:

git clone https://github.com/pasogott/frappecli.git
cd frappecli && uv sync && uv pip install -e .

配置

创建配置文件 ~/.config/frappecli/config.yaml

sites:
  production:
    url: https://erp.company.com
    api_key: your_api_key
    api_secret: your_api_secret
  staging:
    url: https://staging.company.com
    api_key: your_staging_key
    api_secret: your_staging_secret

default_site: production

命令

站点管理

frappecli site doctypes                    # 列出所有 DocType
frappecli site doctypes --module "Core"    # 按模块筛选
frappecli site info "User"                 # 获取 DocType 详情

文档 CRUD

# 列出文档
frappecli doc list Customer
frappecli doc list Customer --filters '{"status":"Active"}' --limit 10

# 获取单个文档
frappecli doc get Customer CUST-001
frappecli doc get Customer CUST-001 --fields name,customer_name,status

# 创建文档
frappecli doc create Customer --data '{"customer_name":"Acme","customer_type":"Company"}'

# 更新文档
frappecli doc update Customer CUST-001 --data '{"status":"Inactive"}'

# 删除文档
frappecli doc delete Customer CUST-001

文件管理

# 上传文件(默认私有)
frappecli file upload invoice.pdf --doctype "Sales Invoice" --docname "INV-001"

# 上传公开文件
frappecli file upload logo.png --public

# 下载文件
frappecli file download /private/files/invoice.pdf -o ./downloads/

# 列出文档关联的文件
frappecli file list --doctype "Sales Invoice" --docname "INV-001"

报告

# 运行报告(JSON 输出)
frappecli report run "General Ledger" --filters '{"company":"My Company"}'

# 导出为 CSV
frappecli report run "Accounts Receivable" --format csv -o report.csv

RPC 方法

# 调用自定义方法
frappecli rpc frappe.ping

# 带参数调用
frappecli rpc myapp.api.process_data --args '{"doc_id":"DOC-001"}'

多站点

# 使用指定站点
frappecli --site staging doc list Customer

# 切换默认站点
frappecli config set default_site staging

输出格式

frappecli doc list Customer --format table   # 美观表格(默认)
frappecli doc list Customer --format json    # JSON
frappecli doc list Customer --format csv     # CSV

示例

批量操作

# 导出所有活跃客户
frappecli doc list Customer --filters '{"status":"Active"}' --format csv > customers.csv

# 获取包含子表的文档
frappecli doc get "Sales Invoice" INV-001 --fields '*'

与 jq 集成

# 仅获取客户名称
frappecli doc list Customer --format json | jq -r '.[].customer_name'

# 按状态计数
frappecli doc list Customer --format json | jq 'group_by(.status) | map({status: .[0].status, count: length})'

链接

  • 代码仓库: https://github.com/pasogott/frappecli
  • Homebrew: brew install pasogott/tap/frappecli
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor