Printable version XML version
Login
Name

Password


Join
Forgot your password?
erp5.org => wiki.erp5.org !

erp5.org has permanently moved to wiki.erp5.org !

Current status of ERP5 community websites:

  • www.erp5.org should redirect to wiki.erp5.org automaticcaly.
  • wiki.erp5.org is the place where fresh news and documentation are published.
  • cps.erp5.org is the old erp5 community website.

Note: if you created content in this ancient portal, please migrate it to the wiki. The old website will stay online as long as all contents are not mograted to the wiki.

AbstractModel

ERP5 defines an abstract model of business management.Thanks to a clean abstraction layer, new or specialised business modules can be implemented in a consistent way. This abstract business model can both be used to represent internal management activities as well as commercial and management activities accross a group of companies.

Introducing the ERP5 abstract model

The ERP5 abstract model is based on 5 classes:

  • Resource: a resource describes an abstract resource in a business process (ex. a skill of an individual, a currency, a raw material, a product). Relations between nodes allow to define BOM as well prototypes.
  • Node: a node is a place which can receive amounts of resources and send amounts of resources. Nodes can relate to physical entities (ex. a workshop which receives raw material, processes it and sends it) or abstract entities (ex. a bank account which can receive money). Stocks are a kind of node. Metanodes are nodes which contain other nodes. A company is a metanode. A project is both a resource and a node.
  • Movements: a movement describes the movement of an amount of resource between two nodes at a given time and for a given duration. For example, a movement may send raw material from a stock to a workshop, another movement may send money from one account to another.
  • Path: a path allows to define a way for a node to access a resource it may eventually need. Prices may be attached to a path in order to define the default price for a given resource procured at a given maker. Path may also define the way a workshop gets its resource from a stock. Path have a start date and an end date. Path may be used to represent the assignement of an individual to a temporary project.
  • Item: an item describes a physical instance of a resource. A movement can be expanded into a series of trackable movements through items. Items also allow to define how a given amount of resources was actually shipped (ex. parcels, serial numbers of items in each container, etc.)

Those five classes are sufficient to represent business ranging from chemical plants, manufacturing, trading and service.

Variants in the ERP5 model

The ERP5 business model includes a notion of variant. Variants are used in ERP5 to represent the possible variations for a given resource: coulor, size, speed, etc.

Variants are very useful in industries such as

  • computers (memory size, disk size, processor speed)
  • apparel (coulor and size)
  • cars (coulor, engine, options)

Variants are used in particular to define complex resources, resulting from successive transformations. Each tranformation is actually represented as a collection of transformations. Some of which apply to all variants, some others apply to certain variants only.

Transformations in the ERP5 model

Transformations are used to represent a complex resource built from the transformation of multiple resources. Rather than following a hierarchical model, ERP5 uses a networked model based on the chemical transformation metaphor:

A + B -> C + D

In order to make it easier for users to define complex sets of transformation, transformations can be prototyped, that is one transformation can be equivalent to another safe a few differences (ex. transformation Y is like transformation X but instead of producing resource R1 is produces resource R2 and instead of using material M1 is uses material M2). This allows one to create new complex resources by deriving existing complex resources.

Also, in order to implement choice of resource, equivalence resources allow to define one resource as any resource among a group of resources. Equivalence resources are very useful in particular to implement equivalence classes of resources for procurement from multiple sources.

Transformations in the ERP5 model are instanciated into Causalities of actual movements between nodes. The only causality which exists in a complexe manufacturing process is the causality resulting from the definition of a transformation. In particular, Stocks (a kinf of node) have no causality. No one can say why is stock is bellow 0 or not.

Movements & Orders

Movements are where the actual resource planning happens. Movements may include submovements generated by business rules (ex. costing of a procurement movement between a source node and stock node). Movements may also be associated to other movements through causalities. Because movements have a beginning and an end (this is very important for example to represent flows in a chemical process), the whole collection of movements with past dates and future dates represents the whole planning of the company.

However, movements are low level objects in ERP5. Users are not supposed to deal with movements except in rare cases (ex. accounting). Therefore, movements are gathered together into orders. Orders are the objects which is used in practice to manage the company planning.

Path Planning

In some companies, in particular in service companies, people are assigned to projects at certain periods of time (consulting) or people are sent to custommers at certain periods of time (ex. TV repair center). These situations can be represented in ERP5 by using temporary path with a given start date and a given end date.

Nodes and Metanodes

ERP5 is both an ERP and a meta ERP. One of the most important class in ERP5 if the node class. A node represents a place which can receive amounts of resources and send amounts of resources.

Capacity

Each node has a capacity. A capacity consists in

  • a stock capacity: this capacity is defined in terms of maximum amount of resource a node can keep. It is defined through a set of inequations which must be satisfied by the stock. Each equation takes an amount of a given resource as variable and capacity parameter for that resource as parameter.
  • a production capacity: this capacity is defined in terms of a maximum or minimum amount of resource which the node can produce in a given period of time. This is also defined through a set of inequations.

For example, simple resources can

  • store at most 1 resource with a max. quantity MS
  • produce at most 1 resource with a max. production MP for each time period

Planning at the node level requires to take into considerations movements which arrive or depart from that node

  • a movement which arrives to a node increases the level of stock
  • a movement which departs from a node decreases the level of stock
  • a movement which departs from a node and goes nowhere represents a consumption of resource
  • a movement which departs from nowhere and goes to a node represents a production

Calculating the stock level of a node requires to look at the history of movements, add inbound amounts and substract outbound amounts.

Metanodes: Aggregation of nodes

A metanode is an aggregation of nodes. For example, a company ACME may include two workers: M. White and M. Black. Planning at the level of ACME requires to know the aggregated capacity of M. White and M. Black.

We suppose M. White can do consulting (C) or development (D) with a maximum total production capacity of 1 day per day. We suppose M. Black can do consulting (C) or accounting (A) with a maximum total production capacity of 1 day per day.

This can be represented as the following equations.

For M. White:

PC + PD <= 1

PC >= 0

PD >= 0

For M. Black:

PC + PA < 1

PC >= 0

PA >= 0

Now, what is the capacity of ACME ? It can be computed as a set of inequations.

PC + PD + PA <= 2

PD <= 1

PA <= 1

PC >= 0

PD >= 0

PA >= 0

This set of inequations represents the production capacity of ACME.

Similar approaches can be achieved for stock capacity.

In terms of movements, metanodes can reveive inbound movements and send outbound movements just as nodes can do. This is mostly useful in order to implement planning at the meta-level, without caring of planning details at the node level. The actual planning in the company will then require changing the source and the destination of movements from a metanode level to a lower level.

Metanodes have special aggregation rules for movements besides the usual node behaviour:

  • aggregated movements of a metanode consist in all movements which are bound to or from a node which is not contained in the metanode or, recursively, in the metanode'd metanodes.
  • in particular, this includes aggregated production and consumption since "nowhere" is never considered to belong to a metanode.

Aggregated movements and productions allow to check a given plan is compatible with the aggregated capacity of a node.

UML Model

ERP5 UML model can be found bellow.


(c) 2001-2004 ERP5 Foundation
www.erp5.org
All Content Published Under Free Licenses
Powered by ERP5 Open Source ERP, Zope, CPS and Nexedi