The purpose of this book is to help IT and business professionals learn, configure and audit an open source ERP system. This book is best positioned for companies that maintain strong accounting and technical resources. If you have the right talent, you help ensure your team understands how ERP works and ensure your system works accurately the days, months, and years following your ERP go-live.

Companies ranging between $10M and $200M USD in revenue stand to benefit the most from open source ERP. Their combination of talent to understand the core processes, the ability to innovate and create strategic advantage, and financial impact associated with their number of concurrent users drops the total cost of ERP ownership by about half.  This does not mean that a smaller company cannot use open source ERP. It just means you need to have the right talent and opportunities to maximize open source ERP benefits.

If you would like to know more about open source ERP benefits, ROI, and cost savings, look to the following resources:

Why iDempiere

I use iDempiere, open source ERP, as the primary reference; however, the concepts can be applied to almost any ERP system, large or small. I choose iDempiere because:

  • It is easy to install.
  • It runs on a small server.
  • It scales to hundreds of users.
  • It uses dominant and commonly available technologies.
  • It features an enterprise quality accounting system.
  • It supports multiple entities (sets of books) inside a single login.
  • It is commonly used around the word.

I plan to include as many OpenERP references as is possible. OpenERP approaches the ERP topic from a different perspective, and comparing the systems will add value to your understanding.

iDempiere and ADempiere Getting Started

The best way to get started is to simply get in and play. Use your knowledge of your company’s products and services, and apply them to ERP. Here are resources that will help you:

Why include ADempiere and Compiere? Because iDempiere came from ADempiere, and ADempiere came from Compiere. All three sites have useful information in them.

Business Partner

Definition: Business Partners are people or organizations with which you exchange money, goods or services. Business partners can be customers, vendors, employees, external sales representatives, external purchasing agents, etc…

The fact that there is no “Customer List”, “Vendor List” or “Employee list” in iDempiere and ADempiere sometimes confuses people. You just need to remember to look in the Business Partner window to find these resources. Any given business partner record an be flagged as a customer and/or vendor and/or employee. This means that any business partner can be all three.

You are not required to mix your customers and vendors. Instead you can create a “Joe’s Barber” that is flagged as a customer. This customer might have a customer Search Key of “CUST-1001”. You can also have the same business, “Joe’s Barber”, flagged as a vendor using a different record. The vendor record might have a vendor Search Key of “VEND-1005”.

Deciding whether to merge your business partners should be a conscience decision. Do you want your AP transactions offsetting your AR transactions when calculating your Business Partner’s credit limit? Are you OK with with your AR Clerk seeing AP transactions during the payment/invoice allocation process? You can see discussions and demonstrations of this topic here.

How you flag a business partner determines where the business partner can be used. For example, if you flag someone as a Vendor, then you can create an Invoice (Vendor) record for that business partner. You can create an Invoice (Customer) for an organization flagged as Customer. You can assign a Sales Order => Sales Representative to a business partner flagged as Sales Representative.

A Business Partner can have zero to many contacts and zero to many locations. Typically, most business partners have at least one contact and location.

Typical Business Partner

The typical business partner is a company or organization. The company name will exist in the Business Partner window => Business Partner tab. You will create a contact in the Business Partner window => Contact(User) tab for each person that exists in the organization. If the company has multiple locations, create a Business Partner window => Location tab record for each physical location. You can choose to link a Contact(User) to a Location is you wish. This link is not required.

Saving Individuals as a Business Partner

If you operate a web-store that sells to consumers, many of your customers probably will not have business names. In this case, you simply create a business partner record whose name equals the name of the customer. You also create a contact that bears the same name. Admittedly, this is situation a little redundant; however, this structure will not cause you an issue, and the data model supports a wide variety of business partner scenarios.

Saving Employees as a Business Partner

Creating Employee business partners follows the same pattern as saving individuals. Both the Business Partner tab and the Contact(User) tab will contain the same name. While learning iDempiere, you might consider adding a ” BP” to the end of the Business Partner => Name field.  For example, the “Chuck Boecking” business partner would read “Chuck Boecking BP”. This approach helps you understand when the system is referencing the Business Partner or the Contact(User) employee record.

Learning More

If you would like a tab-by-tab and field-by-field explanation of the Business Partner window, I recommend you try the ERP Academy iDempiere Training program. It combines recorded explanations as well as live discussion about the Business Partner topic.


Definition: Products represent all goods and services consumed and sold through the system.

The iDempiere Product represents many concepts. A product can be something you stock. It can represent a service you provide. You can use products to represent goods with infinite supplies like water in a manufacturing process. Because the product can be used in so many ways, it can be challenging to learn what options best support your organization.

Products as Stocked Goods

Configuring a product as a stocked good is probably the easiest to understand. A stocked item has a finite supply. If you buy and receive 10 widgets and you sell and ship 10 widgets, the system will show an on-hand quantity of zero. If you buy and receive 10 widgets and you sell 15 widgets, the system will show a back ordered quantity.

To use a product to track a stocked good, set the Product window => Product tab => Product Type field to “Item”, and check the Stocked field.

It is worth noting that products flagged as Product Type = “Item” have specific accounting consequences when you receive, invoice and ship products. Most notably, items touch the balance sheet.

Products as Non-stocked Goods

There are times when you want to treat a good or service like a stocked item; however, you do not care about the actual quantity on hand. You just want to assume that you will always have quantity when you need it.

To use a product to track non-stocked goods, set the Product window => Product tab => Product Type field to “Item”, and uncheck the Stocked field. The system assumes that you have about 99,999 in stock at any time.

Products as Service

There are times when transactions with your goods and services should not impact the balance sheet. Setting the Product window => Product tab => Product Type field to “Service” helps you accomplish this task. The system assumes you have an infinite quantity of your service. As a result, services show a on-hand quantity of about 99,999.

Manufacturing production supplies are often flagged as Product Type = “Service”. You can still receive service product; however, the value of the product will get expensed immediately.

You might notice that both the Material Receipt and the Vendor Invoice debit the product’s expense. This video series explains how the system moves the expense from the Material Receipt to the Vendor Invoice.

A product configured as Product Type = “Service” is very similar to creating and using a Charge. The one big difference is the fact that a Material Receipt (MR) and a Shipment document post for a product configured as a service. A Charge does not post on these documents.

Resource and Expense Product Types

You will notice that the Product window => Product tab => Product Type field also contains “Resource” and “Expense” as options.  These are more advanced topics and will be covered in more detail later in this book. Most everything you want to accomplish can be achieved using the Item and Service product types.

Learning More

If you would like to see product examples and a tab-by-tab and field-by-field explanation of the Product window, I recommend you try the ERP Academy iDempiere Training program. It combines recorded explanations as well as live discussion about the Business Partner topic.


Definition: Charges are iDempiere’s tool to code a document’s value to a specific general ledger account.

Charges are a powerful concept in iDempiere. They enable you to code value from a document to a specific general ledger account. One of the first questions I get from accountants are “Why do I need a Charge? Why not just let me code it directly to the GL account number?” Here are my answers:

  1. There are times when you need to expose accounting related options to non-accounting folks, and an appropriately named charge is the best solution. An example includes performing cycle counts. When using charges, you can create nicely named options for how to account for variances between what the system thinks and what really exists. The alternative is to expose GL account names like “5430 – Inventory Offsets”.
  2. There are times when you need to create multiple choices for the same GL account. Charges give you the ability to create this many-to-one relationship and still maintain your ability to report on what option the user/document selected. This situation is valuable for expense reports.
  3. Charges give you the ability to map a single user option to multiple accounting schemas. If you need to create financial reports via multiple standards or from multiple entity currencies, using iDempiere’s multiple Accounting Schema capabilities is advantageous. You can define “freight” to go to account XYZ in accounting schema 1, and you can define the same ‘freight” option to go account ABC in schema 2. iDempiere will maintain both accounting schemas simultaneously.

Example Usage – Sales Order

The Sales Order window => Order Line tab is an example where the charge feature is used. On any given order line, you have the option to choose a Product or a Charge. If you choose a charge from the drop down list, the product field grays out.

Charges on a sales order get propagated to the Shipment (Customer) window; however, the charges have no financial impact on the shipment’s posting. This feature represents a convenient way to create special shipping instructions on behalf of the customer.

Gift wrapping is an example situation when you might want to use a charge. By adding gift wrapping charge to an order, you can bill the customer for the service and communicate the instructions to the fulfillment department at the same time. The gift wrapping charge would have no financial impact on the shipment; however, it would recognize the revenue in the account of your choosing when the sales order raises the invoice in the Invoice (Customer) window.

Learning More

If you would like to learn more about Charges, I recommend you try the ERP Academy iDempiere Training program. It combines recorded explanations as well as live discussion about the Charge topic.


Definition: Record that defines a set of financial books.

In the old days of ERP, you were forced to log out and back in when you wanted to change companies. iDempiere has the ability to support multiple sets of financial books within the same login. iDempiere uses the Organization concept to manage and separate entities and their financial books all within the same application and login.

If you have worked in a company that has separate systems for separate companies, you have experienced the pain and the abundance of paperwork that follow. The ability to manage multiple entities within the same instance has some profound benefits. These benefits include:

  • Global inventory and service visibility and management from within a single login.
  • Managing multi-company reporting without the need for a separate business intelligence or consolidation package.

iDempiere’s GardenWorld sample client offers a good example of managing multiple organizations within the same system. GardenWorld engages in manufacturing and distribution. They manufacture furniture and fertilizer. The furniture is assembled in one location. The fertilizer is mixed in another facility. GardenWorld has five outlet stores to distribute their manufactured goods. The below image illustrates GardenWorld’s organizational structure.

iDempiere Multiple Organization Entity Consolidation
iDempiere Multiple Organization Entity Consolidation

There are two types of Organizations in iDempiere: Transactional and Summary. A transactional organization can post to the general ledger. Documents like Sales Orders, Material Receipts, Shipments, and Invoices will always have a transactional organization. Summary organizations are used for financial consolidation. Summary organizations will typically contain one or more transactional organization nested inside.

In the above illustration, the Stores organization is flagged as summary. It has each of the distribution center transactional organizations nested inside it. To produce financials for any store, simply run your Financial Reports for that store. To produce consolidated financials across all the centers, simply run your Financial Reports against the Stores organization. That’s it!!

Logging In

When you log into iDempiere, you are asked to choose an Organization. Please note that you are logging in with a “default” organization. This means that records you create (Products, Business Partners, Sales Orders, Shipments, etc..) will default to this organization. You have the ability change the organization before you save the record.

Roles drive organization access. The role you choose during login dictates what organizations you can access.

Learning More

If you would like to learn more about iDempiere’s ability to manage multiple entities and financial reporting, I recommend you try the ERP Academy iDempiere Training program. It combines recorded explanations as well as live discussion about Organization topics.


iDempiere can be installed on most platforms supported by Java and PostgreSQL. The most common platforms are Linux followed by Windows. I will focus on installing and managing iDempiere on Linux in this book. Linux is simply less expensive to operate, and there are more iDempiere convenience scripts available for Linux. Here are some examples.

You have three options easy options when installing iDempiere:

  1. Simple iDempiere Linux Installer – This tool assumes you have PostgreSQL already installed on your server/machine.
  2. Advanced iDempiere Linux Installer – This tool installs most if not all the tools you need to use and manage iDempiere on a Linux server. You can use this script to create a simple evaluation installation, or a large production system supporting hundreds of concurrent users across multiple servers.
  3. Windows iDempiere Installer

Vocabulary – Basics

One of the more challenging aspects of learning a new ERP system, is learning its vocabulary. For example, who know that iDempiere’s Chart of Accounts (COA) is located in a window called Account Element window => Element Value tab. The purpose of this page is to provide an easily searchable reference to find the windows that you could not find otherwise.

Customer Master ===> Business Partner window
Vendor Master ===> Business Partner window
Employee Master ===> Business Partner window
Customer Invoice ===> Invoice (Customer) window
Vendor Invoice ===> Invoice (Vendor) window
Accounting Defaults ===> Accounting Schema window => Defaults tab
Accounting Segments ===> Accounting Schema window => Account Schema Dimensions tab
Costing Method ===> Accounting Schema window (sets the default for Product Categories)
Costing Method ===> Product Category window => Accounting tab

If you cannot find a window that you know exists OR if you know of an example that new users will struggle with, write a comment below. I will add them to this list.