ERPNext vs Odoo

ERPNext 是 frappe 的一个应用, frappe 还有其他的应用,比如 hrms, LMS

     

frappe 应用 使用 frappe-bench 工具进行管理

     

     

frappe 在部署上, 逻辑划分为

site # 站点,数据库

apps # 软件包

   

     

相关基础软件

  1. maridadb
  2. redis-server # cache, queue, socketio
  3. nodejs 14 # frontend
  4. python3.10 # to run frappe
  5. nginx

     

     

相关服务

  1. rappe-bench-frappe-default-worker.service
  2. frappe-bench-frappe-short-worker.service
  3. frappe-bench-frappe-long-worker.service
  4. frappe-bench-frappe-web.service
  5. frappe-bench-frappe-schedule.service
  6. frappe-bench-node-socketio.service
  7. frappe-bench-redis-queue.service
  8. frappe-bench-redis-cache.service
  9. frappe-bench-redis-socketio.service

     

     

Docker 运行 ERPNext

$ git clone https://github.com/frappe/frappe_docker.git

$ cd frappe_docker

$ docker-compose -p frappe -f compose.yaml up

     

     

     

与 Odoo 比较

     

   

ERPNext

Odoo

说明

   

License

Mit, GPL

LGPL, OEEL-1/OPL

Frappe 采取 MIT 协议授权, ERPNext 采取 GPL 协议授权

Odoo community 采用 LGPL 协议, Odoo enterprise 采用 OEEL-1 协议

Trademark

未经许可,不可商用

   

   

Python

python 3.10

python 3

   

   

   

   

   

依赖的其他软件

redis, mariadb, nodejs 14

postgresql

   

服务运行环境

gunicorn, nginx, supervisor

nginx

   

二次开发

New App

New Module

scripting

   

New Addons

automation rule

change View data

#frappe 开发 全新的 App; 不支持继承、new module需要提交到现有 App 的代码仓库 ; 使用 fixture 修改现有的 doctype

   

   

   

   

业务实体逻辑结构

doctype

Model

frappe.get_doc() <> env[model]

   

docfield

Field

   

   

doc

Record Set

  

   

   

   

   

   

   

   

   

业务实体挂载结构

   

Workspace > block [ heading, text, card, chart, shortcut, spacer, onboarding, quick list ]

     

     

Card > link [ doctype, report, page ]

     

Shortcut [ doctype, report, page ]

     

Quick list [ doc ]

Menu > action window > view [ search , list , form … ]

     

View > action [ server, report ]

     

View > button > action

   

   

   

   

   

业务逻辑落地点

Hooks. JS + Python

     

https://frappeframework.com/docs/v13/user/en/python-api/hooks#list-of-available-hooks

App

crud

compute

onchange

ondelete

constraint

     

自动动作

on_create

on_write

on_create_or_write

on_unlink

on_change

on_time

   

   

   

   

   

Workflow

state machine

None

   

   

   

   

   

   

   

   

   

权限

"select",

"read",

"write",

"create",

"delete",

"submit",

"cancel",

"amend",

"print",

"email",

"report",

"import",

"export",

"set_user_permissions",

"share",

     

   

Model: crud

Field: read

Data: crud

Menu: read

Action: read

View: read

View Element: read

Export

Import

     

   

     

   

   

User / Role

User / User group

   

   

   

   

   

部署结构

Site

Database

Fie site/apps.txt <> postgresql database

   

App

Addons

Fiel app/module.txt <> table ir_module_module

   

Module

Addons

ERPNext 不可独立安装, 必须以 App 为单元