ERP5统一业务模型
统一业务模型设计
ERP5统一业务模型用于ERP5中的会计,仓库管理,生产和人力资源管理。由于独立于特定业务流程的统一词汇表,为一个模块开发的所有功能都可以在其他模块中使用。ERP5的统一业务模型极大地缩短了学习曲线,并降低了多个模块上数据不一致的风险。
该模型基于五个抽象核心类:
- Resource:业务流程中的一种抽象资源,例如原材料,产品,货币或个人技能。
- Node:可以接收和发送资源。它可以涉及诸如车间之类的实体,也可以涉及诸如银行账户之类的抽象实体。
- Movement:描述了时间段内Resource在两个Node之间的移动。例如,一个Movement可能会将原材料从仓库发送到车间,或者将钱从一个帐户发送到另一个帐户。
- Item:Resource的具体实物。一个Movement可以关联一系列可追溯的物件。比如Resource是人民币,Item则是流水号为xxx的纸币。
- Path:定义了Node访问它可能需要的资源的方式。
例子
例子1
假设一家公司A要向另一家公司B出售照相机。一旦双方同意,公司A将向公司B发送10台摄像机,单价为$100。在这种情况下,公司A和B被视为Node。产品(相机)是一种Resource。销售本身(以$1000订购10台摄像机)就是Movement。如果这些条件在这些公司之间达成一致,例如单价,则该条件为Path。如果公司A要跟踪摄像机,则可以为每个摄像机附加条形码,这将生成10个Item。
例子2
假设一家公司A希望保留有关另一家公司B的电汇信息。公司B向公司A发送了$1000作为应收款。在这种情况下,应收帐款和银行帐户实际上是Node。从逻辑上讲,公司A和B也是Node。Movement是付款,金钱是Resource。
本例子未使用到Item和Path。
例子3
假设公司A要用一家工厂的机械零件制造10台摄像机。在这种情况下,工厂是一个Node。摄像机和机械零件均可视为Resource。生产包括两个Movements,一个用于消耗零件,另一个用于生产相机。为了追溯,公司A可以在相机和零件上贴上标签,这些将成为Item。由原材料的消耗到成品的生产,这个过程称为Path。
个人看法
ERP5的UBM模型高度抽象了ERP系统中几乎所有单据的数据模型,这个模型值得借鉴。
ERP5是基于Zope开发类似于Plone,但是nexedi把整个系统做得又长又臭(怀念5.4.6版本),其中还有不少的坑(可能是要收顾问费),整体感觉系统性能和体验都做得很拉跨。同样是开源的ERP ODOO能做得简单易用,作为一个开发者我更倾向于后者。
虽然ERP5系统做得很拉但是在系统设计方面还有很多很值得借鉴的地方,比如说ERP5的Simulation、Builder、Workflow等,我们会在以后的文章中再探讨。
ERP5统一业务模型