Aug 27, 2009

Openbravo 2.50: The Developers Guide

by Martin Taal
Openbravo 2.50 has been released a few months ago, so some of you may have already noticed that as part of this release we created a completely new developers guide. This blog is to help spread the word even further that the developers guide is a great resource of information available for those of you who are customizing or developing on Openbravo 2.50.

The developers guide consists of different sections providing valuable information for starting developers, medium experienced as well as Openbravo expert developers. Here is an overview of these sections.

The introduction is relevant when starting development with Openbravo (see the Development Environment and Development Concepts sections) and for developers wanting to know more about the changes from 2.40 to 2.50 (see what's new and howto upgrade).

The how-to sections describe Openbravo development topics using a focused development goal. There are how-tos on modularity, extending the datamodel, adding windows and webservices, the data access layer and more.

The fundamentals and concepts chapter gives a detailed description of all relevant Openbravo ERP development concepts. The content ranges from common development topics (such as the project structure, build tasks) to modularity and the application dictionary. Each of the main layers of the application is discussed: database, middle-tier and web-tier with webservices.

The reference section consists of a detailed description of the data model from different points of view: the database model, the entity model, the hibernate mapping and the REST XML Schema. In addition javadoc and other reference-like topics are discussed in this section.

The examples section contains examples of existing code in the Openbravo ERP application. The purpose of this chapter is to give directions for the reader to study current Openbravo code and use that as the basis for own custom code

A very useful section is the tips and tricks section. The tips and tricks are based on experience and user questions and solutions in the forums.

I hope that the developers guide is useful for you as a developer. Feel free to give feedback on the guide, especially if certain parts can be improved or if you miss certain information.

Happy reading!



Aug 27, 2009

The Family Grid

by Rob Goris

A concept that combines parents & children, column filtering, aggregation and table joining, allowing the user to freely manipulate and analyze data

Data is stored in Openbravo in a header-line relationship, also known as a parent-child relationship. For example a business partner who has two bank accounts and two locations. This data model consistently separates parent and child records which makes it suitable for 1:n relationships where there are few parent records and many child records. It will be less suitable for 1:1 or 1:n relationships where n is small. The user can only work in one view at a time and needs to switch back and forth between parent and children frequently.

The next generation of Openbravo ERP aims to offer a more flexible master-detail GUI where parent & child grids or forms can be shown in the same view. This allows for much faster record creation, editing, comparing and searching. Besides that, different views can be opened on separate tabs, offering multi-tasking.

Reports in Openbravo - and most other ERPs - are produced as one-off documents. They have a pre-defined set of dimensions, layout and data grouping. This works fine in most of the cases but in some cases more flexibility is desired.

Pre-defined views make it easy for the user to create out-of-the-box reports and to work on standard tasks but they do not allow the user to freely experiment with the data. Now imagine a grid view where:

  • Parent and child information is combined

  • Both attribute values and records can be shown

  • Column values can be aggregated (e.g. sum, count, average)

  • Complex nested boolean searches across parent and multiple children can be performed on user level by just using column filters

  • Grids can be joined

  • The user can experiment with data in a flexible way. Questions such as "Give me the sum of all unpaid invoices of over 1000 Euros of customers in the Czech Republic that have an HSBC bank account" can easily be answered by manipulation of a grid

  • Most reports can be replaced by this new grid view


The concept that is presented below aims to simplify data by summarizing it, comparable to pivot tables and on the other hand aims to simplify multi-dimensional analytical queries, comparable to on-line analytical processing (OLAP). In the hands of a savvy user, this concept can be a powerful yet easy tool for do-it-yourself business intelligence. For implementation in Openbravo I can imagine that this is an additional view. Not all record types will need it.

I have to admit that I have no idea about potential performance issues. For now I think it is good first to look at whether this idea can make our users more productive, effective and better informed and then assess how to realize it.

This movie presents the idea.

Let me hear your thoughts on the UX Lab forum.



Aug 13, 2009

Openbravo on the cloud

by Josep Mitjà
As you might know, Openbravo ERP has been commercially available for cloud deployment since early 2008. Openbravo Professional Subscription has offered an appliance than can be deployed on any popular virtual cloud and notably on Amazon Elastic Computing Cloud (aka Amazon EC2).

We have used this capability extensively both with clients and internally for a long time, with awesome results:
  • We have reduced our infrastructure costs significantly
  • We have eliminated hardware maintenance costs
  • We have reduced the time to deploy a new system, drasticaly simplifying the procurement process
As an example, our on-line demo is hosted in the Amazon EC2 cloud.

Today I found an interesting 5 minutes video which explains the advantages of deploying aplication like Openbravo in the cloud.



This video is presented by rPath. Openbravo partners with rPath to enable its Professional Subscription for cloud deployment.



Aug 11, 2009

Openbravo announces commercial relationship with Canonical + native Ubuntu package

by John Fandl
In case you haven’t seen the press release (Openbravo broadens support for Ubuntu with commercial open source ERP package), Openbravo now provides a fully-supported, subscription-based ERP offering on Ubuntu’s technology stack, with an easy-to-install native Ubuntu package. The pre-integrated and supported technology stack features Ubuntu 9.04, PostgreSQL 8.3, and Tomcat 6. If you want to skip the press release and head straight to the goodies, this link will tell you how.

So now what’s your excuse for not implementing Openbravo ERP? ☺



Aug 11, 2009

Bank Statement Reconciliation Redesign

by Rob Goris
Bank statement to bank reconciliation is the process for entering and reconciling bank statements with cash transactions from accounts payable and accounts receivable and cash balances in the general ledger. This sounds like a terrible thing to do on a daily basis but it doesn't have to be. We had a look at how to improve this functionality in Openbravo and came up with the following ideas:

  • Introducing an additional layer on top of grid and form views that shows an overview of the bank account, its items that need to be reconciled, some balances and shortcuts

  • Possibility to import a bank statement

  • Automatic matching of bank statement lines with Openbravo transactions. We need to figure out the exact logic here still but value, reference or keywords in the description could be used for automatic match finding. The user then only needs to verify whether the proposed match makes sense, and tick the box.

  • Searching for matches among transactions and invoices. Making a match with an invoice and reconciling means that this invoice will change to status paid.

  • Creating new transactions on the fly when they don't exist yet

  • In case of partial payments we want to be able to match a bank statement line with a part of an invoice. This results in the invoice being paid partially. I call this splitting of the invoice but perhaps this term is not ideal as the invoice remains as a whole but there are just payments made against it.


Have a look at the mockup images and do give your feedback. Thanks!



Aug 10, 2009

Status Update for July 2009

by Paolo Juvara
This is the latest installment of the status update series, which refers to the month of July 2009. You can see the consolidated updates on our wiki in a status update page.

Status Update for July 2009
  • Maintenance packs
    • Openbravo ERP 2.50 MP3 was released to the community on July 30, 2009
    • Openbravo ERP 2.40 MP7 was released to professional subscription customers on July 17, 2009
  • Modules
    • The following new 2.50 compatible modules have been released:
      • CIF and NIF valiation (Spanish Localization)
      • Tax Report Launcher
      • Inter-company documents
  • Core enhancements:
    • The following enhancements have been completed and released as part of 2.50 MP3:
      • Performance: optimize Product selector on oracle to be faster with many products (feature request 9562)
      • Performance: remove extra request for the MessagesJS in generated pages (feature request 9727)
      • Application Dictionary: single record UI pattern (feature request 4113)
      • Disallow to create client record in Client window (feature request 3437)
      • Heartbeat Configuration and Registration windows are edit only (feature request 486)
      • Accounting: Create new Sub-Account per BPartner or Product (feature request 9888)
      • Asset Management: Asset report for depreciation schedule (feature request 9887)
    • The following enhancements are available in the pi code repository and will be released as part of 2.50 MP4:
      • Accounting: Add C_DOC_TYPE_ID as a dimension to the FACT_ACCT table (feature request 10002)
      • Accounting: Ability to add additional processes as post actions to the Accounting Process (feature request 10017)
      • API Enhancement: Include getChildOrg() and getChildTree() methods in OrganizationStructureProvider class (feature request 10126)
  • Defects
    • A total of 277 defects have been resolved, with the following breakdown by severity:
      • 17 critical
      • 166 major
      • 85 minor
      • 9 trivial
  • Infrastructure
    • Worked on stabilizing the ERP smoke tests in the Continuous Integration framework at builds.openbravo.com

In addition, the Openbravo Community released the following new 2.50 compatible modules:

  • Chart of Accounts France
  • Taxes: configuration for France
  • Translation: French France (fr_FR)
  • CRM
  • Phidias Pack Base
  • Phidias Skin

Finally, we made progress in the following areas that have not yet been released:






Aug 4, 2009

Openbravo Forge updated

by Peter Nuding
It's been a great time and a steep learning curve since we launched the Openbravo Forge in March this year.
By now we have well over 100 projects around Openbravo ERP and Openbravo POS, driven by almost 7000 registered developers.

We've been looking closely at how the new platform is being accepted and we have listened to your feedback to identify the roughest edges. Now the homepage of the Openbravo Forge has been updated to address what we found.

The overhaul brings a number of improvements that will make life easier and more productive for all of us:

• Searching for projects is now a lot easier
• Categories are navigated just a click away on the left
• Breadcrumbs at the top left make it easy to know where you are, and jump back
• Openbravo ERP & POS core project forums and downloads can be accessed directly from the main page
• Registration of a project is now easy to reach on the left bar
• The activities like "Design", "Develop" etc. now carry clear descriptions
• The concept of core projects and categories is better reflected
• A new section for editorial content puts the latest useful information right where you enter

You will also notice slight changes to the top and left bars found on every page. The project selector has moved from the top to the left bar, where you also find quick access to all projects you participate in. Browsing through ERP & POS project categories is now also a quick move on the left bar, just like adding your own project.

We also proudly show our growth now - at the top right you will always see how many projects and developers are currently registered.

It's never been easier to set up your Openbravo ERP and POS projects - have a look if you have not tried it, yet!



Aug 3, 2009

Openbravo Forge: Real-world Collaborative Development Examples

by John Fandl

Since joining Openbravo in April, I have spent time speaking with members of our ecosystem and personally experiencing the Openbravo Forge. As expected, members of the ecosystem can now complete projects in collaboration with or independently from Openbravo staff. However, I am surprised by the results we have been able to achieve so quickly, and am really please to see how some business practices have dramatically improved.

Re: the quantitative numbers, as of this writing the Openbravo Forge statistics (publicly shown in the upper right corner of the screen) read “139 projects and 6997 developers”!

Read on for some qualitative examples of what is happening at the Openbravo Forge.

Partner and Ecosystem Contributions and the Resulting Exposure

The old way: Openbravo Partners and the ecosystem completed extensions and had difficulty sharing them worldwide.

The new way: Openbravo Partners and the ecosystem are collectively sharing extensions, gaining wide exposure in the process.

Success Stories: Since the Forge went live, companies like Opensistemas have started publishing some of their extensions there. During an implementation for well-recognized European Fast Food Chain Bocatta, Opensistemas implemented POS features such as a kitchen monitor, an expanded menu, and an ingredients menu. For those in the ecosystem, these features are available here.

Community Translation and Localization Projects

The old way: Openbravo staff created an SVN branch so translators and the community could support these efforts. Openbravo staff was required to personally create localization packages and release them on our specific release schedule.

The new way: The Openbravo Forge lets anyone create their own translation project and release it as desired. They do not require any daily support from Openbravo.

Success Stories: Since the Forge went live, Openbravo staff has been able to invest more time supporting ecosystem efforts and less time on basic administration. As a result, country location projects are growing daily:

Independently Learning about and Creating Openbravo Modules

The old way: The ecosystem learned how to develop on top of Openbravo via wiki documentation.

The new way: The forge makes it more attractive to learn how to develop modules via interactive collaboration with Openbravo.

Success Stories: Right now in Pakistan, a Computer Science Professor is using the Forge to mentor development projects for his students. With the forge, his students have all the tools they need to learn about a development process in open source. The result for the ecosystem is a set of new and exciting features. The result of Openbravo is the opportunity to mentor the teacher and the students on how to develop for Openbravo. You can check their progress here and here.

Partners and the Ecosystem Create and Manage Projects in Private on the Forge…for Free

The old way: Some partners and ecosystem members were required to pay for a private Forge space, manage their projects on a public Forge, or potentially use a rudimentary sharing tool in order to control project management.

The new way: Partners can manage their projects privately on the Openbravo Forge. Neither Openbravo nor the community will have any access to private project content. Free hosted project services include forums, news, downloads, bug tracking, versioning control system for code, and Wiki / Central Repository modules integration.

Success Stories: As of today, Openbravo is only aware of the 115 public projects on the Forge. Unless a staff member is provided access by a project administrator, we are unable to view any work being completed in a private Forge project.

The Forge is actively helping the ecosystem quickly bring Openbravo ERP to new markets and industries. This is because members of the ecosystem can independently connect with one another. They can also have the flexibility to choose what projects to work on, or even to start a project publicly or privately. As for Openbravo, we spend much less time on administration and basic coordination, and much more time on guidance and support.


Virtual and Face-to-Face Collaboration

One final thought on Openbravo’s growing ecosystem and our efforts to support it. While the Openbravo Forge is a great tool to support asynchronous collaboration, we at Openbravo also strongly believe in the traditional face-to-face method, and our biggest event is the Openbravo World Conference (OBWC). For a glimpse of what the 2009 edition offered, please see this video. Happy collaborating via the forge, and I hope to see you at OBWC 2010!