Skip to main content

Tips to speed up Openbravo Development

Openbravo as framework is as powerful as Openbravo as an ERP. Development and Customization has been very much streamlined due to the MVC architecture and the modular approach. That is one reason there are so many modules/verticals available on top of Openbravo.

Here are few tips that helped me increase my productivity in Openbravo development. This is more like a compiled list from various articles that I used. Feel free to add more to it in the comments.

1. SQL Query Editor
A feature that is available for a long time, the SQL Query Editor available in System Administrator role can be used for quick selects across any table in Openbravo. This could save your time from switching back from your query tool to the Application. To open the query Editor, go to SQL Query in the System Adminstrator role.

2. HQL Query Editor
A more useful tool that is provided as a module by Openbravo is the HQL Query Tool. This query can be used to perform hql query across all the Entities present in Openbravo. One advanced feature is that you can select your desired Entity from a drop down and find all the attributes of the Entity. To install the same, login as System Administratior, go to Module Management Window and search for 'Openbravo HQL Query Tool'.

3. Auto Logon Manager
The most time consuming task for me while developing is to type the default username and password more than few hundred times per day (increases exponentially with my potential code blunders). A simple feature that would remove this hassle is to use the Authentication Manager in Openbravo. Just add the following lines under Authentication section in file in config folder (or anywhere in the file, better to put it in the right section) to login into the Application as Openbravo user without having to enter the user credentials.
Source :

4. Smartclient Development Module
The smartclient development module provides you with an uncompressed version of the SmartClient components, thereby assiting in deep debugging of the Client side smartclient code, and also can provides non-obfuscated code so that you can debug even the custom code. More on the this module here.

5. Logging into multiple roles at the same time
More often than not we will be usually juggling between the client admin login and the System Administrator login. To save time from switching over one login to another, there are two ways.
1. Use incognito /private browsing mode. Using the incognito mode, one role opened in a session and another role opened in another session (separate windows).
2. A simpler way is to use Ip/domain name differentiation. For eg., if you are running Openbravo in your local instance then you can have two tabs opened, one with the URL http://locahost:8080/Openbravo and other with and have two different roles in each tab.

6. Debugger in chrome developer tools
One technical tip while debugging client side code, if you are not sure what your code actually errors out, you can use the 'debugger;' keyword that will stop the execution of the script at that point. But just be careful to remove the keyword after debugging so that the Application does not do that for unintended circumstances.


Popular posts from this blog

My 10 years in Application Development

It's been around 10 years since I started programming. May be a bit more, if I have to include my first attempts at C programming in school. But it would be a grave insult to call remembering ten lines of code and just replicating it to put a star on the screen. I also did a course on Visual basic, but it was more gimmicks that Application development. But it was truly in the year 2007 when I started my Master in Computer Applications that I found a new flare for developing applications. 
I was very late to computers in general and even when I joined my Masters, computers were not really accessible to me. But when I joined my Masters where one is actually expected to hone the skills which they already have, but in case it was were I was learning the skills, initially it was very difficult. I was not sure what computers had for me nor I had a natural flair for programming. But the thing about computers that attracted me was the visual medium it gave. Initially it was just a door t…

Changing Timezone in Postgresql, Ubuntu

Timezone and locale are integral concepts that one should be aware of when implementing a System. For example. if you create a database in PostgreSql, it will use the default System settings for the database. Lets say you have a server in UK and your client is US. If the client tries to retrieve the current date or time, it is going to show the UK time and not the US one.
Today I encountered a different issue in our client place where the Ubuntu timezone and PostgreSql timezone were showing a incorrect values. Instead of Indian Standard Time (IST) it was showing Pacific Daylight Time(PDT). These are the steps that I followed to change the timezone to IST in PostgreSql and Ubuntu.
Changing timezone in Ubuntu:
sudo dpkg-reconfigure tzdataYou will be prompted to choose the continent and then the area. Provided screen shots where we configure the location.
Use TAB key to navigate to the OK button and then press Enter.

The changes will get reflected immediately. To check it you can open a n…

Dissecting Openbravo 3.0 UI Architecture

Having been worked on Openbravo 3.0 UI for more than a year now (right from RC1) , Openbravo has leaped ahead of most contemporary ERP's in terms of UX design and usability. And a part of the credit has to go to the community too as they were actively involved in finalizing the UX and also involved enthusiastically in tested out the RC versions and providing their feedback.

In this post, I have tried to draw limelight on the basic UI components that are being used in Openbravo and their corresponding smartclient components. This is just to provide a very high level idea on how the entire architecture is coupled together. I have tried to use a single screen shot of Openbravo interface and tried to map the base components here.

The hierarchy can be visualized in simple terms as follows:

Exhaustive information on these components are provided in the Openbravo Wiki here.

Most of these components are defined and managed from individual files (or code) thereby making it really easy to …