Sample Material

The purpose of this page is to help you understand how course materials are delivered. There are multiple concepts demonstrated here:

  1. The first video is a recorded live discussion about iDempiere's CRM abilities.
  2. The second series of micro videos work together to help you take multiple steps to create a single solution. In this case, we demonstrate how to use Talend ETL to automate data import with iDempiere.
  3. The ETL video demonstrates a topic that is related to iDempiere/ERP and can greatly increase your ability to connect to multiple system and commerce channels.
  4. The development environment and mercurial training helps you understand the relationships between the iDempiere development team, product versions, your developer, your test environment and your production environment.
  5. The Production/Manufacturing improvements help you understand the 'real' strengths and weaknesses of the system. The value of this type of training cannot be understated. It is critical that you see real-world examples including strengths and weaknesses to help you determine if Open Source ERP is a good fit for your team.
  6. The Import Export training is provided because simple yet powerful topics like this one can make learning iDempiere much easier and more enjoyable.
  7. The Project Accounting demo is provided because iDempiere's Project abilities are both powerful and complex. Some veteran iDempiere integrators do not take the time to learn it. Hopefully, this demo video helps create a better common understanding in the iDempiere community.

You can learn more about all the techniques used to teach Open Source ERP in the course Frequently Asked Questions.

Sign Up to Learn Open Source ERP!

Recording of a Live Demonstration

This discussion speaks about CRM (Customer Relationship Management) in iDempiere. It demonstrates how to use the iDempiere tools as well as compares iDempiere's CRM abilities with and Microsoft Dynamics.

Other related materials:

  1. Getting Started
  2. Installation and Login
  3. Navigation
  • Introduction
  • 0:03:15 CRM Relationships - major concepts
  • 0:04:30 Underlying database structure
  • 0:07:00 Demonstrate Lead, Activity, Opportunity in iDempiere
    • Sales Dashboard - Link to Documentation
    • 0:09:45 Lead window - log activities
    • 0:13:00 Converting a Lead into a Business Partner and an Opportunity
    • 0:15:00 Sales Stage window
    • 0:16:30 Creating quotes and orders for an Opportunity
    • 0:18:15 Customer window
  • 0:22:00 CRM general statements
  • 0:26:00 CRM tools that exist iDempiere
    • 0:26:30 Single source Business Partner
    • 0:27:45 Request (support ticket, automated email, time-based nurturing, etc...)
    • 0:32:00 Workflow
    • 0:33:00 Projects - used for service contracts
    • 0:35:30 Dashboards
    • 0:36:00 Performance metrics (Fail Codes)
  • 0:42:30 Activity based costing
  • 0:44:15 Comparing iDempiere to Microsoft Dynamics
  • 0:48:30 Using the renewal cost of Dynamics or SAP to pay for the entire iDempiere system
  • 0:50:00 iDempiere documentation
  • 0:54:00 Evolution of Open Source ERP - what the future might look like

Some topics are best introduced as a live discussion. Others topics are best demonstrated as a series micro videos.

Series of Micro Videos

This series discusses the options for automating data import. It demonstrates how to use Talend ETL to pull data from an old ERP system into iDempiere.

ETL Introduction

Other related materials:

  1. Business Partner Basics
  2. Product Basics
  3. Organization and Role
ETL Talend Installation

Other related materials:

  1. Purchase Order Management
  2. Sales Order Management
ETL Finished Example using Business Partners

Other related materials:

  1. Production (Simple Manufacturing)
  2. Libero (Complex Manufacturing)
ETL Step by Step Example

Other related materials:

  1. Mock Go-Live Strategies
  2. Backup, Restore and the Go-Live Process


  • Instead of using a Talend sequence to set the i_bpartner_id field, it would be better to use a database sequence to sit it automatically. Here is an example. Look for the section named "Default Sequence for Primary Key".

Source Code Control - Database Versioning - Mercurial - Patch - Upgrade (environment primer)

This video is important to help you understand the relationships between the iDempiere development team, product versions, your developer, your test environment and your production environment. If you are an aspiring integrator, you definitely need to know this material well. If you are a Director of Technology, you should understand these concepts. If you are an accountant,  you probably don't care about this topic.

The iDempiere community has done much to help me support my family. This is my contribution back to the community. I hope to seek out good people who can help make our community stronger and better known. Please let me know of any errors or omissions (  If you would like to learn more, you are very much welcome to join the ERP Academy training group. Here are the course frequently asked questions.

Other related materials:

  1. Installation and Login (including development environment installation)
  2. Production Installation and Hosting
  3. Document Validation Customization Example - how to ensure know bad situations are caught and corrected at data entry
  • Script to install iDempiere
    • -D includes the development environment
    • 0:02:00 Diagram of installation
    • 0:04:00 Two local repositories - idempiere and myexperiment
    • 0:06:30 iDempiere Jenkins projects - how iDempiere builds binaries (idempiere, idempiereDaily, idempiere2.0, idempiere2.0Daily)
    • 0:11:30 Specifying which Jenkins project to create your installation (-j option)
    • 0:14:00 Summary - How to configure your desktop and eclipse. You can find the step by step instructions here.
  • 0:18:00 Mercurial tutorial
    • 0:19:00 hg branches - show all branches
    • 0:20:00 hg update - change branch or revision
    • 0:22:15 relationship between idempiere binaries and the code repository - updating the code to match the database
    • 0:24:45 hg pull - getting the latest changes
    • 0:26:00 hg log - seeing past commits and revisions
    • 0:27:30 hg update after hg pull (hg update --clean)
    • 0::30:00 creating your .hgrc config file
    • 0:33:00 non-command line tools for working with mercurial (tortoise, eclipse, etc...)
    • 0:34:45 TANGENT - the bigger picture and how your development environment fits with jenkins, production, test, your developer,e tc...
    • 0:43:00 using to upgrade my idempiere binaries and my DB to use the most recent build so that the DB matches my dev environment.
      • NOTE (0:48:15): I forgot to give Carlos Ruiz credit for writing the actual script that compares the scripts with the db scripts. I am very sorry Carlos!!
    • 0:53:00 script to create version control for your /opt/idempiere-server folder into a version controlled repository so that you can unwind any changes (accidental or purposeful).
    • 0:58:45 great mercurial tutorial
    • 0:59:00 creating, merging branches
    • 0:59:30 creating a mercurial patch
    • 1:00:00 applying or importing patches generated by someone else - deepak's iDempiere 1770 feature patch for better ASI (serial lot) control
    • 1:05:30 hg revert -all    to undo modifications to tracked files
    • 1:05:45 hg purge    to remove newly created files
      • The patch updates the source code
      • The patch also potentially includes sql scripts - use the upgrades script to apply the sql scripts.
    • 1:09:30 more information about creating patches.

2014-08-19 iDempiere Manufacturing (Production) Improvements Video - with References to Libero

The purpose of this video is to help organize opportunities for improvement in iDempiere's manufacturing.  I believe this video does two things:

  1. It outlines the high level process in manufacturing. This will help users who are new to manufacturing concepts.
  2. It highlights some low-effort, high-reward changes to make manufacturing in iDempiere easier. This will help established manufacturing sites better use Production for MRP.

Please understand that I love and believe in iDempiere, and even though this video highlights some of its shortcomings, iDempiere is still a good product. My hope is that this video makes it better.

If you have questions, comments or concerns, or if you find any inaccuracies, please be quick to let me know.

NOTE: the Rollup BOM Cost process "is" now recursive.

  • Introduction - purpose of today's conversation
    • Provide tips and recommendations for improvement
    • Highlighting difference between Production and Libero
  • 0:01:30 Costing in iDempiere
    • 0:02:45 Setting Future cost = Current cost (with explanation of both fields)
      • NOTE: the Standard Cost Update process will set Future Cost = Current Cost for the "Material" Cost Element; however, it will not set it for other Standard Cost -> Cost Elements like "Labor". I did not take the time to investigate why it only works on "Material" Cost Element.
    • 0:06:00 update Rollup BOM Cost process to take a Costing Method parameter instead of the Cost Element
      • NOTE/CORRECTION: you can maintain each Cost Element for the "Standard Cost" Costing method; however, you must remember to ALWAYS roll up ALL Standard Cost ->Cost Elements every time. For this reason, the recommendation is still very valid.
    • 0:09:45 Reference Workflow and BOM Rollup process in Libero.
    • 0:10:45 Introduction to the Product.LowLevel field as a way to identify a product's BOM Depth.
    • 0:11:15 Be aware of rolling up BOM Costs for specific Products or Product Categories. You might invalidate your cost structure and introduce manufacturing variances.
    • 0:12:45 Rolling up costs into Future Cost field (not current cost price)
    • 0:13:30 Concept of setting BOM and Workflow formulas vs actuals
    • 0:17:45 (LowLevel) update RollUp BOM Cost process to order the product by LowLevel. Start from the bottom an work your way up.
    • 0:20:00 What is a RollUp BOM Cost process - in general
    • 0:21:30 Update the RollUp BOM Cost to be able to specify which cost I want to use (Future vs Current).
    • 0:24:15 Need Reports to show potential (future vs current) impacts on Inventory Value, Scheduled Orders, etc...
    • 025:30 Run Standard Cost Update to push Future Costs to Current Cost and record Inventory Valuation changes.
    • 0:29:30 Alternative: use a different Cost Type costing record as an alternative to using the Future Cost field.
  • General Concerns
    • 0:32:30 Only one BOM per Product
    • 0:33:30 Production has no concept of "Prepared"
    • 0:38:30 Replenish process does not iterate across all BOM levels. You must
    • 0:40:30 Production does not have a concept of planning (CRP). - open source MRP scheduling
    • 0:42:30 Inventory Moves have no corresponding Order (as Sales Order is to a Shipment). Libero has a Distribution Order.
    • 0:45:15 The concept of OnOrder and Reserved as an open balance that should be defended by the documents that account for the current totals. (reference - see the "A Better Solution").
    • 0:52:45 I thought you could use the Role window => Doc Action Access tab to enable the "Prepare" option; however, it is already enabled. I will need to investigate further how to show the "Prepare" option for Inventory Move.
    • 0:53:00 Product Info does not show Qty Pending Confirmation. (sorry - Document Type - not status:)
    • 0:55:30 The Production Order does not have a reference to its parent. Out-sourced process 1 (cut fabric) then goes to Out-source process 2 (die fabric), etc...
    • 0:56:45 Add Production Order to the list of Target Document Types for the Order Batch Process. Also add "Replenish or MRP Run" to select which documents to process.
    • 0:59:30 Add Production window -> Reverse Correct button/process.

Other related materials:

2014-09-26 - iDempiere New Import and Export

  • Introduction
  • 0:01:30 Export product data to create an example for using the import process
  • 0:02:00 Review exported CSV data - introduce header nomenclature
    • No longer need to reference the ID - instead call by name or value
    • Includes sub-tab table and fields
    • Example: M_Substitute>M_Product_ID[Value]
  • 0:04:15 Review import CSV pulled from export example
  • 0:05:00 Import (Insert) 6 product records
  • 0:05:30 Review log of imports
  • 0:06:16 Turn some of the previously imported products into BOM lines
  • 0:07:00 Export Product with BOM lines for reference
  • 0:08:00 How to specify import key columns
  • 0:09:30 Merge in BOM lines for existing products
  • 0:10:45 Use the same process to update the Product Name and the BOM Qty at the same time with an additional merge
  • 0:12:15 Difference between Insert, Update, and Merge import methods.
  • 0:13:30 Apply the same concepts to Business Partners, Locations and Contacts

Other related materials:

iDempiere Project Time and Materials Services Introduction

The purpose of this video is demonstrate how to execute a basic time and materials service project using iDempiere (open source ERP) Project Accounting feature. There are many more videos about iDempiere's Project feature here. These videos cover the details about iDempiere Project Accounting structure (Project Type, Project Cycle Report, Expense Reports, etc..) as well as other end-to-end examples like the one below.

iDempiere Project Accounting Time and Materials Services Demo


0:00:00 Introduction
0:00:45 Scenario Review
0:01:15 Create Project
0:02:45 Create Project Phases
0:03:15 Create Project Phase Line - Material
0:04:00 Review Product - Material/Stocked
0:04:45 Review Business Partner
0:05:30 Review Product - Material/Stocked Continued
0:06:00 Phase Line Pricing and Margin
0:06:30 Create Project Phase Line - Service
0:07:00 Review Product - Service/Expense - not stocked
0:08:30 Create Project Phase Line for Installation Phase (service)
0:09:15 Create Project Purchase Order from your Project Phase Lines
0:10:30 Review and complete Purchase Orders
0:11:30 Create Project Material Receipt for Service
0:12:30 Create Project Vendor Invoice for Service
0:13:45 Create Project Material Receipt for Material/Stocked
0:14:30 Create Vendor invoice for Material/Stocked
0:15:30 Note that the Material Receipt posts the Project to the general ledger
0:16:45 Review Project Financial Reports (Balance Sheet and Income Statement) for the Project
0:18:15 Create Project Sales Orders for Project => Phase 1 = Configuration
0:19:00 On Credit Order discussion - Link to Document Types (Sales Order Management - Sales Document Types)
0:19:45 Review Project Shipment created upon Sales Order completion
0:20:45 Review Project Customer Invoice created upon Sales Order completion
0:21:00 Create Project Sales Order for Phase 2 = Installation
0:22:00 Review finished Project Financial Reports (Balance Sheet and Income Statement)

Note: it is possible to tag an invoice line with a specific Phase and a Task (in addition to just the Project). Here are the steps needed to be able to apply an expense against a specific phase or task:

  1. Log in as System client => System Administrator role
  2. Open the 'Invoice (Vendor)' record in the Window, Tab and Field window.
  3. Navigate to the 'Invoice Line' record in the Tab sub-tab and
  4. Navigate to the Field Sequence sub-tab
  5. Find the Phase or Task (or both) fields in the left side of the display and drag them to the right side. Place them next to the Project field.
  6. Navigate to the 'Invoice Line' record in the Tab sub-tab => 'C_Phase_ID' record in the Field sub-tab
  7. Zoom to the Column, check the 'Updatable' checkbox and save the Column record.
  8. Log Out and Log in as your client's admin
  9. Open the Invoice (Vendor), create. complete and post a vendor invoice.
  10. To confirm the phase/task fields posted, open phppgadmin and see the posting
  11. Alternatively, you can update the Accounting Fact Details window to include both the Phase and Task fields.

Other related material: