Installation Steps of Apache OFBiz 16.0 in Ubuntu

Viithiisys Technologies
Viithiisys
5 min readSep 14, 2017

--

Apache Open For Business Project is an open source ERP/CRM system from the Apache Foundation starting point for reliable, secure and scalable enterprise solutions. It offering complete accounting/ledger, inventory management, CRM, and project management systems.

Here, are the steps that we have followed for the Installation of Apache OFBiz 16.0:-

STEP 1:- Install JAVA

Firstly install java in your system which is primary requirement for installing Apache OFBiz. Run the following commands on terminal:-

$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update

Install Java :-

$ sudo apt-get install oracle-java8-installer

After installation check the java version.

To check the installed version and switch to Java-8-oracle version for OFBiz run the command below:-

$ sudo update-alternatives --config java

This command will list all installed versions with current active marked and provides dialog to switch. There are 3 choices for the alternative java .

STEP 2:- Edit .bashrc file

Then edit JAVA_HOME Environment in .bashrc file.

$ vi .bashrc 
$ export JAVA_HOME=/usr/lib/jvm/java-8-oracle

After making changes then I reloaded the .bashrc file with following command.

$ source ~/.bashrc

STEP 3:- Installing OFBiz

We are using 16.11.03(stable version).

Download Apache OFBiz here.

Note: Please choose a stable version under ‘Releases’ Section.

STEP 4:- Quick START

To quickly install and fire-up OFBiz, follow the below instructions:-

$ ./gradlew cleanAll loadDefault

STEP 5:- Start OFBiz

$ ./gradlew ofbiz

To check for the proper installation visit https://localhost:8443/ordermgr/control/main

USERNAME:- admin
PASWWORD:- ofbiz

Steps to migrate OFBiz from Derby to MySQL database

Step -1

Place the MySQL JDBC driver in build.gradle file.

dependencies {
pluginLibsCompile 'mysql:mysql-connector-java:5.1.6'
}

Step -2

Then, create three databases i.e ofbiz,ofbizolap,ofbiztenant then set there PASSWORD as mentioned in the below commands:-

C:\mysql-5.5.23-winx64\bin>mysql -u root
mysql>create database ofbiz;
mysql>create database ofbizolap;
mysql>create database ofbiztenant;
mysql>use mysql;
mysql>select database();
mysql>create user ofbiz@localhost;
mysql>create user ofbizolap@localhost;
mysql>create user ofbiztenant@localhost;
mysql>update user set password=PASSWORD(“ofbiz”) where User=’ofbiz’;
mysql>update user set password=PASSWORD(“ofbizolap”) where User=’ofbizolap’;
mysql>update user set password=PASSWORD(“ofbiztenant”) where User=’ofbiztenant’;
mysql>grant all privileges on *.* to ‘ofbiz’@localhost identified by ‘ofbiz’;
mysql>grant all privileges on *.* to ‘ofbizolap’@localhost identified by ‘ofbizolap’;
mysql>grant all privileges on *.* to ‘ofbiztenant’@localhost identified by ‘ofbiztenant’;

Step -3

  • Stop ofBiz server.
  • Create a backup of <ofbizdir>/framework/entity/config/entityengine.xml .
  • Edit entityengine.xml as follows and update the following datasources:

Replace derby with mysql in default, default-no-eca and test delegators as follows:-

Then, start ofbiz you will see the databases will be created as below :-

Follow commands to use created databases and have a look to the tables:-

Now, use the below tasks to load the data.

STEP 6:- Data loading tasks

OFBiz contains the following data reader types:-

  • seed:- OFBiz and External Seed Data — to be maintained along with source and updated whenever a system deployment is updated.
  • seed-initial:- OFBiz and External Seed Data — to be maintained along with source like other seed data, but only loaded initially and not updated when a system is updated except manually reviewing each line.
  • demo:- OFBiz Only Demo Data is loaded.
  • ext:- External General Data (custom)
  • ext-test:- External Test Data (custom)
  • ext-demo :- External Demo Data (custom)

You can choose which data readers to pass in the following syntax like I have chosen to seed,seed-initial,ext,ext-demo readers.

Example:

$ ./gradlew “ofbiz — load-data readers=seed,seed-initial,ext,ext-demo”

STEP 7:- Load default OFBiz data

Loads default data set; meant for initial loading of generic OFBiz data.
Can be applied for development, testing, demonstration, etc. purposes.

The default data set is defined by datasource using the read-data attribute,
followed by the name of the data set, into the datasource element of the ‘entityengine.xml’ file.

$ ./gradlew loadDefault

STEP 8:- Load seed data

Load ONLY the seed data (not seed-initial, demo, ext* or anything else);
meant for use after an update of the code to reload the seed data
as it is generally maintained along with the code and needs to be
in sync for operation

$ ./gradlew "ofbiz --load-data readers=seed"

STEP 9 :- Load ext data

Load seed, seed-initial and ext data; meant for manual/generic
testing, development, or going into production with a derived
system based on stock OFBiz where the ext data basically
replaces the demo data

$ ./gradlew "ofbiz --load-data readers=seed,seed-initial,ext"

After completion of installation, below are simple steps to be followed for creation of Ofbiz Component.

Steps for Creation of OFBiz Component

Ofbiz components resides in the specialpurpose directory. Plugins can be added manually or fetched from a maven repository. The standard tasks for create new plugin is giving below. To create a new plugin.

The following project parameters are passed:

  • PluginId: mandatory.
  • PluginResourceName: optional, default is the Capitalized value of pluginId
  • WebappName: optional, default is the value of pluginId
  • BasePermission: optional, default is the UPPERCASE value of pluginId

Enter following command below to create component/plugin:-

$ ./gradlew createPlugin -PpluginId=myplugin

or

$ ./gradlew createPlugin -PpluginId=myplugin -PpluginResourceName=MyPlugin -PwebappName=mypluginweb -PbasePermission=MYPLUGIN`

The above commands achieve the following:

  • create a new plugin in /specialpurpose/myplugin
  • add the plugin to /specialpurpose/component-load.xml

Once the component is created, you should load its data (required to grant access rights to the “admin” user);

$ ./gradlew “ofbiz — shutdown”
$ ./gradlew loadDefault
$ ./gradlew
$ ./gradlew ofbiz

Hope you have enjoyed. For more updates Stay tuned :)

--

--