Category Archives: ERP

Use LDAP for authentication with OpenERP

Install LDAP authentication module:

You need to install the module for authentication. It’s quite as easy as every installation in OpenERP. I am using OpenERP 6 an the module was available.

Navigate to: Settings-> Modules -> Enable all the Buttons to search for extra packages, too like shown in the screenshot and search for ldap.

OpenERP 6 module installation page

OpenERP 6 module installation page









Install the module and navigate to the configuration wizards:

Configure the LDAP authentication module:

OpenERP 6 configuration wizard overview

OpenERP 6 configuration wizard overview









Choose the “Setup you LDAP Server” Wizard from the list and run it:

LDAP OpenERP 6 Authentication Configuration Wizard









Fill in the values for you LDAP directory. If you using Active Directory the filter rule maybe should look something like this: sAMAccountName=%s

I am using the 389 Directory Server which is using the UID as username.

Now you should be able to login with your ldap credentials.

Introducing some tools to the ADempiere and iDempiere project for better quality management

In every software development project there is the need for quality assurance and quality management for the code. To make this work more efficient there exist a big number of tools to do this task.

For the ADempiere and iDempiere project I was working together with Redhuan ( on some Fitnesse test integration to run them automatically. The goal was to have a test suite applied on the current ADempiere code with all migration done to the database.

At the start of the project I defined following steps:

  1. Setup Jenkins for doing the tests automatically
  2. Code some scripts for creating an up to date database with all migration scripts applied
  3. Run all the test triggered by Jenkins

While doing the work I was facing some problems with the process on an headless build server. The tests for the ADempiere client needed some graphical interface to work. To work around this issue I installed a minimal X11 environment and started the Fitnesse test software within this X11 environment. Now when the tests a run the popups can be shown by the code and triggered by Fitnesse.

1. Setup Jenkins

The default installation of Jenkins was done by me some time ago and the Jenkins is already running some build processes for the iDempiere project to build the OSGi based code using Buckminster.

For the testing of the Fitnesse tests we decided to use the 361 code base maintained by Carlos Ruiz from Kenai repository.

To keep things clear I first created the build job to run the build of ADempiere with the ant task.

This is quite straight forward and no magic. Just let the Ant plugin call the complete target and go for it.


2. The up to date database script

To recreate a fully updated database I created a short collection of commands within a shell script which looks like this:

#This script installes fresh ADempeire Postgres database
#Author Dominik Zajac
#Date: 10-13-2011
#Version: 0.0.1

#Remove existing database
/usr/bin/dropdb -U adempiere adempiere
echo "Old Database removed";

#Import new fresh database
/usr/bin/createdb -U adempiere adempiere
echo "Database created";
/usr/bin/psql -U adempiere adempiere < $SCRIPTHOME/adempiere.dump
echo "Database imported";

#Apply migration scripts
$WORKSPACE/migration/ \
$WORKSPACE/migration/360lts.010-release commit \
|psql -U adempiere -d adempiere

echo "Migration scripts applied"

What the script does is quite clear. It loads a default database and applies all necessary migrations scripts to it to have a fully prepared database for testing.

 3. Run all the Fitnesse test triggered by Jenkins

Jenkins Fitnesse Screenshot

This two tasks within that build job are the main effort from Redhuan D. Oon and me. Red1 consolidated all the Fitnesse tests to one project so it was more easy to integrate it into the build server and run it. I created the sql database script which is very very basic and just runs commands step by step for database setup. The part for Fitnesse in Jenkins is starting a new instance of Fitnesse each time the tests are called and executes the tests within this instance. The results will be written to the fitnesse-restults.xml.

Jenkins takes care of the job to look if there are new changes in the repository every minute and reruns the job if there where some commits.

The next tasks would be:

  • migrate this testing stuff to iDempiere OSGi platform
  • write some presentation layer for the xml result file
  • implement a second instance for manual testing by some interested users



Build the iDempiere Project using Eclipse with buckminster

This tutorial explains the setup of an development environment for building the iDempiere project.

First download a the newest Helios(3.6) version of Eclipse. Be careful Helios is not the newest version of Eclipse but you need the newest version of Helios 3.6.2.x.

Now start Eclipse and install the following plugins.

  • buckminster core
  • buckminster maven
  • buckminster pde
  • mecurialeclipse (optional if you want to commit out of eclipse)


Update (2014-06-03):

I just tested this tutorial with Java 1.7.0 and Eclipse Kepler SP2 (4.3) on my Mac Book and it worked like a charm.
For all who are using the new Eclipse release this is possible, too.
Here is the Buckminster update pages I used for installing the plugins:


Next step is to download the sources via mecurial:
hg clone idempiere

This new created directory needs to be your workspace in Eclipse. You can select this at startup of Eclipse.

Create a new target platform in the Eclipse preferences.

Create a new empty directory within your workspace where all the other stuff is located now called: targetPlatform

Preferences -> Plug-in Development -> Target Platform -> Add

Follow the steps on the screenshots:

target definition
Close the preferences window if you are done and right click into the project explorer and click import.
Choose buckminster:
And click Finish to start the process. This takes a while.
You Eclipse should look something like this now:
If you want to start the java client out of eclipse now you can do this by selecting the org.adempiere.ui.swing package and right click -> run as -> Eclipse application.

ADempiere World Conference 2011


From Saturday and Sunday 03. -04.09.2011 the ADempiere World Conference takes place in Berlin this year.

ADempiere is one of the leading open source erp system. It’s community driven project fork of Compiere.For the time of the meeting at the von Beuth University in Berlin I will provide a streaming supported by the Piraten Streaming.


The videos I recorded at the conference are now available for download here.


Install OpenERP on CentOS 6.0 with Nginx HTTP Proxy

This tutorial should help you with the installation process of OpenERP on CentOS 6.x.

I installed OpenERP server and the OpenERP webgui with a nginx http proxy on a CentOS 6.0.

First of all I installed minmal CentOS 6.0.

Login as root and process the following steps.

Use the official nginx repository for the latest nginx version:

How to install nginx on CentOS 6

Add the EPEL repository for the two packages PyYAML and pydot which are not included in the CentOS main repository.

rpm -Uvh

Update the system and install all required dependencies:

yum update -y

yum install -y python-devel pychart python-dateutil python-reportlab python-lxml python-psycopg2 python-mako python-setuptools pytz PyYAML graphviz pydot  python-imaging pywebdav python-vobject postgresql-server nginx vim system-config-firewall-tui wget

Database setup:

Initialize the database directory:

service postgresql initdb

Start the PostreSQL server the first time:

service postgresql start

Add PostgreSQL server daemon to your default runlevel:

chkconfig postgresql on

Setup system user :

useradd openerp

passwd openerp

Create a database role and database:

su -c ‘createuser –superuser –no-createrole –createdb –pwprompt openerp’ postgres

su -c ‘createdb –owner=openerp openerp’ postgres

Download latest OpenERP 6.x version. Please download server and webapp package with the same version number here!

For example:



Move or download the tarballs for example into the /usr/src/ directory and extract them.

tar xvfz openerp-server-6.0.2.tar.gz

tar xvfz openerp-web-6.0.2.tar.gz

Continue with installing the OpenERP server.

Change the directory to openerp-server-<yourversion> and run:

python install

Install the database:

su -c ‘openerp-server –without-demo=all –stop-after-init –save’ openerp

Now install the OpenERP webclient.

Change to the openerp-web directory:

python install

Create the log directory for the webclient:

mkdir -p /var/log/openerp-web

and copy the config file to the /etc directory:

cp /usr/lib/python2.6/site-packages/openerp_web-6.0.2-py2.6.egg/doc/openerp-web.cfg /etc/openerp-web.cfg

open and edit the file to be prepared for access the webgui through the nginx proxy

vim /etc/openerp-web.cfg

change and uncomment the following lines:

tools.proxy.on = True

tools.proxy.base = ‘http://<yourproxyurl>’

Add the following lines to your /etc/local.start to start OpenERP on startup.

if [ “`runlevel | awk ‘{ print $2 }’`” -gt “1” ]; then
su -c ‘openerp-server -c ~/.openerp_serverrc’ openerp &
su -c ‘openerp-web -c /etc/openerp-web.cfg’ openerp &

Configuration of Nginx proxy:

Create and edit a virtual host for your Openerp configuration.

vim /etc/nginx/conf.d/openerp.conf

past and modify the following lines:

server {
listen 80;
server_name  <yourdomain> ;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080/;

Open the firewall port 80 tcp for webaccess.


and configure nginx to start at boot time.

chkconfig nginx on

Start nginx server the first time:

service nginx start

Now we need to start openerp with the command we wrote in the local.start file or reboot the machine to be sure our configuration is correct.

Try to connect to your configured url. For example: and login with username: admin and password: admin. Change the password for your admin user directly after your first login!



The (r)evolution has begun: OSGi + ADempiere = iDempiere

What is iDempiere?

This project mainly driven by Low Heng Sin and Carlos Ruiz the main developer and head of development of ADempiere project for 4 years  looks like to be created to bring the development around an OSGi implementation of ADempiere done by Heng Sing Low to a stable and productive level. The main communication platform of iDempiere is the well known forum hosted by Redhuan ( red1).


If you want to test this project you need to follow a strict setup procedure to be successful.

1. Checkout the HG-repository to a new directory in my example: ~/Development/iDempiere/workspace/

2. Install Eclipse Helios Java EE Edition with Mercurial Plugin, Buckminster and Equinox Target Platform

3. Import the Project the following way.

  • right click in the project explorer select import and then choose buckminster:

Import iDempiere Buckminster project into Eclipse

Import iDempiere cquery file into Eclipse

The import process takes a while. After it has finished successful your project tree should look something like my.

Now you should have some run configurations imported as well. Check them in your run configurations window.

iDempiere run configurations

This should be all you need to do for testing the iDempiere project.

If I have some more time I will document the install process of the server on CentOS. This should be quite easy. First test done by me have shown that the OSGi implementation works faster. But let me check if there is a real speed improvement. The main goal is to make iDempiere more extendable than ADempiere was or is.

I am looking forward what this new projects impact will be for the ADempiere community. Maybe iDempiere will be a total independent project maybe it will become ADempiere 4.0 we will see. Never the less it’s ass kicking improvement already.

Red1 reopend his forum

ADempiere-LogoIn the beginning of the ADempiere project Red1 gave the discussions and process a home. Now 4 years later the Forum is reopend and it start growing and living again.

If you search for an direct contact to main developers and progressive thinkers around the ADempiere project you are right there. There is place for technical questions and maybe some philosophical stuff around free and open software. It is not in competition with the SourceForge project forum it’s more an extension and more personal place.

Take a look and make you your own opinion about it.

Install ADempiere on Mac OS X 10.6

This Howto more or less just lists the points you need to do. ADempiere is installed the same way on several different unix systems so on MAC OS X. For more information please use the search functionality on wikipage.

ADempiere needs to be setup with correct DNS services be sure you know what you are doing.


First we need to install PostgreSQL. I am using PostgreSQL 8.4.x.

You can download it here.

Installation doen’t need special interaction just run the installer and follow the instructions.

Maybe you need to edit the pg_hba.conf file to allow database connection from your network.


Now download ADempire from here and extract it where you want.

You need to add some environment variables to ~/.bash_profile of the user you want run ADempiere.

export PATH=/usr/local/cuda/bin:$PATH
export DYLD_LIBRARY_PATH=/usr/local/cuda/lib:$DYLD_LIBRARY_PATH
export POSTGRES_HOME=/Library/PostgreSQL/8.4
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
export ADEMPIERE_HOME=<where_ADempiere_is_stored>

Next step we need to link tool.jar because this doesn’t work out of the box. I use Java 1.6 to run ADempiere.

sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/tools.jar

Make the script executeable by


and run it.

You should see the configuration window for all needed setup values.

After setup is finisehd (this takes some time) you need to import the default database.


Now you can start the server via the startscript


You can run the JAVA client by