Nov 29, 2010

Announcing Openbravo 3.0 RC3

by Paolo Juvara
I am pleased to announce the immediate availability of Openbravo 3.0 RC3, the third release candidate in the 3.0 series.

Release candidates are incremental deliveries towards the full 3.0 road map and do not contain the full set of functionality intended for 3.0.

My Openbravo workspace

The RC3 milestone contains some exciting new capabilities delivering a completely new experience for Openbravo users. In particular, Openbravo 3.0 RC3 introduces the amazing My Openbravo workspace that provide a portal-like dashboard to Openbravo users.
Using this new feature, users can easily integrate at UI level their Openbravo installation with any other web application, either on their organization intranet or in the public Internet.
For example you can:
  • Integrate with your corporate CRM system and add a chart showing your sales pipeline for the rest of the year;
  • Integrate with your organization's web calendar to see all of your appointment for the day;
  • Integrate with Facebook and Twitter to always be up to date of what people are saying about your company or to update your colleagues on what you are woking on today.
These are only some examples. With My Openbravo, the sky is the limit and you can make Openbravo your primary workspace from which you can start all of your work activities, either in the ERP or in other systems.

My Openbravo renders information in widgets. System administrators can easily configure the default widgets displayed for all users in the system; they can also provide different role based workspaces so that users with different responsibilities in the organization can see the content that is most appropriate to them. Further, individual users can personalize their workspace by rearranging existing content, or adding and removing widgets.

With 3.0 RC3, Openbravo puts the user at the center of the ERP experience.

My Openbravo is only one of the many exciting new features of Openbravo 3.0 RC3, which also includes:
  • New configurable login page;
  • Support for modal windows that replace pop-ups;
  • New styling that renders 2.50 classic windows with the new 3.0 look and feel.
The last feature is very relevant as it demonstrates how a new window built as an extension or delivered as a module in 2.50 looks and behaves when upgraded to 3.0 without taking any action to convert it to the new technology.

Openbravo 3.0 RC3 is intended for production usage by early adopters and it is a fully supported release available in all editions, Community, Basic and Professional Edition.

If you are a new user interested in learning about Openbravo and evaluating the product, you should consider using Openbravo 3.0 RC3. If you are an existing community member interested in staying up to speed with the latest evolutions of Openbravo, you should download and install Openbravo 3.0 RC3.

If you are interested in deploying Openbravo for production usage in a new project, you should consider either Openbravo 2.50 or Openbravo 3.0 RC3 depending on the time frame of your implementation and your attitude towards both risk and change.

If you are already using Openbravo 3.0 RC2 for production purposes, we recommend that you update to RC3 as soon as possible.

If you are using Openbravo 2.50 for production purposes, you will need to wait for a later RC before upgrading to 3.0.

Early adopters interested in deploying Openbravo 3.0 RC3:
  • are recommended to thoroughly test planned business processes before deploying release into a production environment;
  • should be prepared for both UI and functional changes in subsequent releases; future 3.0 release candidates will provide improvements in usability and system operation but will require users of 3.0 RC3 upgrading to those releases to be able to absorb significant changes.
If you want to learn more about Openbravo 3.0 RC3, please review the release notes for a full description of the release, download instructions or Amazon EC2 AMI codes. If you are pressed for time and have only a few minutes to learn about the product, you can take it for a spin in our demo environment by logging in with user name "Openbravo" and password "openbravo".

We are confident that you will be as excited about 3.0 RC3 as we are. As always, you are encouraged to tell us what you think, by posting a comment on this post, raising an issue in issues.openbravo.com or discussing it in the Early Releases Discussion forum.



Nov 29, 2010

Openbravo releases: life cycle and support plan

by Juan Pablo Aroztegi

Let’s play a game: find a word that describes in the best possible manner how your ideal ERP should be. Think about it for a minute. Many of you have probably answered Stable. I mean, once you implement it in a customer you want it to behave as you designed it to be. No more, no less. No inconveniences, no surprises.  That’s stability, right? Admittedly this sounds pretty good.

Some of you, on the other hand, might have answered Featureful, Useful, Pleasant or even Gorgeous. But hey, hold on a minute… if you want something to be Stable it can’t possibly be Beautiful, Pleasant and Featureful at the same  time. You know, business software is boring by design. That’s how it’s been up to now and don’t expect it to change in the future. Learn to live with that.

Really? Is this true? How can we find a balance between offering a user a stable but featureful, pleasant and beautiful product? Imagine an ERP that you enjoy using. Is that even possible? We believe it is, and this is why we have redesigned our releases life cycle and support plan. We started applying it in June 2010, now let me explain you how it works.

Principles:

  • We care about the ERP’s stability: a major release should be there for a long time.
  • We care about eliminating headaches to the system integrator: upgrades should be easy. And don’t force me to upgrade to the next major version, let me skip one if I want to.
  • I want a featureful ERP: one that helps me get the job done in a pleasant manner. Allow me to get the latest features in an easy manner.

Based on these principles, we have defined three phases for every major release:

  1. Preventive Support:
    • Customers receive support according to SLA.
    • Customers are entitled to report defects and expect resolution.
    • Openbravo ships regular maintenance packs.

    This phase starts on the release day and ends 6 months after the second to next release, with a minimum duration of 2.5 years.

    Example: 2.40 was released on November 2008. And 3.0 will be released on March 2011. Therefore the Preventive Support phase for 2.40 lasts till September 2011 (March 2010 + 6 months).

  2. Reactive Support – phase 1:
    • Customers receive support according to SLA.
    • Customers are entitled to report defects and expect resolution (major severity only).

    This phase lasts for 1 year.

    Example: 2.40 finishes the Preventive Support phase in September 2011. And the Reactive support – phase 1 lasts till October 2012.

  3. Reactive Support – phase 2:
    • Customers receive support according to reduced SLA (no critical tickets accepted).

    This phase lasts for 2 years.

    Example: 2.40 finishes the Reactive Support – phase 1 in September 2012. And the Reactive support – phase 2 lasts till September 2014.

Let’s illustrate this so that we can get the idea visually:

Note that Openbravo 3.1 and 3.2 are fictional releases, they are not planned nor developed yet. They are listed here to illustrate the support plans for 2.50 and 3.0 if the future 3.1 and 3.2 were to be released in 03/2012 and 03/2013 respectively.

As you can see in the graph the minimum support length of a release is of 5.5 years. Feel free to check the complete document in our wiki for more details.

We’ve seen there are different user profiles: those more conservative who look for a “Stable” product above all. And those somewhat more aggressive who look for new features and additional stimulus. Which profile fits better to you? The good news is we have a plan for both.


Tagged: Release process, Releases, Support



Nov 26, 2010

Connecting to postgres database in java code

by Shankar Balachandran
To connect you java program with postgres driver, add the postgres library jar (postgresql-jdbc3-8.2.jar or any current jar file) file in the libraries. Then the following code can be modified for your particular database and table.


package javaapplication1;
import java.sql.*;
/**
 *
 * @author shankar
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
          System.out.println("-------- PostgreSQL JDBC Connection Testing ------------");

      try {
        Class.forName("org.postgresql.Driver");
            Connection connection = null;
             connection = DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/sample","postgres", "postgres");
       if (connection != null)
          {
               
        

                  String query="select ad_alert_id from ad_alert";
                  ResultSet rs=s.executeQuery(query);
                  while(rs.next())
                  {
                      System.out.print(" "+rs.getString(1));
                  }
                

          }
          else
              System.out.println("Connection Failed!");
      }
          catch(Exception e){
                              e.printStackTrace();
          }
   
    }
}



Nov 23, 2010

Openbravo and Var Group: bringing ERP innovation to Italian SMBs

by Paolo Juvara
Last September, Openbravo signed a master distributor agreement with our Italian partner Openia. Openia is part of Var Group, a conglomerate with over 30 years of experience in the Italian market and the national leader in distributing solutions and services for the enterprise.



Last Friday, Var Group held its annual group meeting planning the activities for 2011 and I was invited to present Openbravo and introduce it to over 370 people representing all companies within the group.

Var Group recognizes that, in a difficult global economic climate, Italian small and medium companies have been able to return to rapid growth thanks to their agility, innovative spirit and ability to attract new international customers in high growth markets. These companies require IT solutions that match their agility.

Openbravo is the perfect solution for these companies thanks to its native web based interface, rapid implementation cycles and flexibility. Because of these characteristics, Var Group has now added Openbravo to its existing portfolio of products as the perfect ERP to service the needs of Italian small and medium businesses.

Thanks to Openia and Var Group, Openbravo is now coming to an Italian SMB near you.



Nov 20, 2010

SMB best practices: AP/AR offsetting with Openbravo

by Paolo Juvara


Suppose that your company, F&B Inc., has a business relationship with a partner called Fairbelts that is both a supplier and a customer.

Over time, you will find yourself making payments to Fairbelts as a supplier as well as collecting payments from Fairbelts as a customer. Wouldn't it be easier cancel the mutual debt off rather than having to move money across the companies? This practice is known as AP/AR offsetting.

Most accountants would frown hearing about AP/AR offsetting as it reduces traceability of cash flows; they would advise you to keep your payables and receivables activities strictly segregated. Some legislations discourage this practice for the same reason and in a few countries this is even illegal.

That said this is a handy practice and many small and medium businesses (SMB) take advantage of it to reduce their collection efforts.

If your legislation permits it, Openbravo, with Advanced Payables and Receivables, allows you to take advantage of AP/AR offsetting without loosing control of your cash flows or your open receivables. Here is how I recommend to do it:
  1. Setup a separate financial account, let's say called "AP/AR Offset Register"
  2. Setup a specific payment method, let's say called "AP/AR Offset" and enable it only for the above account.
  3. Now consider the scenario where you want to use an AP invoice to pay an AR invoice
  4. Navigate to the AP invoice and pay it using the AP/AR Offset payment method out of the AP/AR Offset Register. Name your payment out using the AR invoice number.
  5. Navigate to the AR invoice and pay it using the AP/AR Offset payment method out of the AP/AR Offset Register. Name your payment out using the AP invoice number.
  6. Validate that the AP/AR Offset Register account balance always remain zero.
With this approach:
  • You do not affect cash traceability because all transactions happen in a separate financial account, without affecting the balance of the real bank accounts.
  • You have a simple control method: the balance of the AP/AR Offset Register must always be zero.
  • Everything is traceable. For example, looking at an AR invoice, you can see that it has been paid by an AP offset because the payments associated with it uses payment method "AP/AR Offset". If you want to know which AP invoice is associated with that offset you can look at the payment name.
Let's make a more specific example:
  1. F&B sells $1,000 to Fairbelts and issues invoice AR1 for that amount
  2. F&B purchases $500 from Fairbelts and receives invoice AP1 for that amount
  3. In AP/AR Offset Register, F&B registers a payment out of $500 to Fairbelts; payment is numbered AR1 and it is applied to payables invoice AP1.
  4. In AP/AR Offset Register, F&B registers a payment in of $500 from Fairbelts; payment is numbered AP1 and it is applied to receivable invoice AR1.
  5. AP/AR Offset Register balance is zero.
  6. Payables invoice AP1 is fully paid.
  7. Receivables invoice AR1 has an outstanding balance of $500.
  8. Business partner Fairbelts sends electronic payment of $500 to bank account West Bank Account.
  9. When bank notifies F&B of the payment, F&B records the payment with number "EFT102" in West Bank Account and applies it to invoice AR1.
  10. Receivables invoice AR1 is now fully paid. When users inspect the invoice they can see the payment details:
    o Payment AP1 $500
    o Payment EFT102 $500
In this scenario, the AP/AR Offset Register balance is non zero only in between steps 3 and 4. The fact that this account is not zero is an indication that there is a AP/AR offset transaction that has not been properly completed. You can use this as a managerial control and monitor that the balance of this account properly reconciles to zero at the end of every cycle.

This is an example of how Openbravo allows smart SMBs to adopt lean business processes while preserving financial control best practices.



Nov 17, 2010

Advanced asset management for Openbravo ERP 2.50

by Patricia San Juan

Openbravo is pleased to announce the availability of a new “Advanced Asset Management” module.

An asset is a long-term item held for business use . The companies are allowed to depreciated an asset within its economic life time which at the end means an allocation of its cost as a way of reflecting its progressive lost in value.

The advanced asset management pack for Openbravo 2.50 allows companies to benefit from the following capabilities (among others):

  • acquire assets and keep its corresponding “asset” and “inventory” information within the same asset card, including subsidy allocation if any

  • manage subsides and generate a “parallel” subsidies amortization

  • get a “to do” list of the purchased and/or sold assets which might require to be managed by the asset management team

  • manage assets making them part of an asset class to be depreciated based on the same depreciation rules and accounting information

  • book “asset” specific movements such as: appreciation, special depreciation, manual depreciation and storno depreciation

  • keep track of the current value of an asset, and therefore depreciated amounts

  • get a list of all the asset/s movements booked in the system

“Advanced Asset Management” is a commercial module available on Openbravo ERP from 2.50 MP22 by installing the “Advanced Asset Management Pack”:

Modules definition

Advanced asset management pack contains below modules:

  • Advanced asset management, which is the key asset management functionality.

  • Advanced asset management TODO list, which provides asset management team with a “to do” list of purchased and sold assets.

  • Advanced asset Special Documents, which allows the end-user to manually register and post asset specific movements such as: appreciation, manual depreciation, special depreciation and storno depreciation.

  • Reports for Advanced Assets Management, which helps the end-user to get a list of every “financial” and/or “asset specific” movements of an asset.

How to install it

Advanced asset management pack as well as the advanced asset management module can be installed from the Central Repository at the application path: “General Setup || Application || Module Management”.





How it works

The advanced asset management pack allows companies to acquire, manage and dispose assets.

Asset management team will be able to run the “Asset To Do List Updater” process and get a list of the “financial” purchase invoices containing assets accounts and the corresponding asset cards if any.

Once an asset has been created, the asset management team can run the depreciation plan of the asset from its asset card to be later on posted in the “Depreciation” window.

Finally an asset could also be disposed. The system will allow the financial people to book a “financial” sales invoice for the revenue of the asset sold.

Asset management team will run the “Asset To Do List Updater” process this time for the sales invoices. The system will “automatically” calculate the corresponding net book value of the asset.

Please be aware that this post is a brief summary about the “Advanced Asset Management” feature in Openbravo ERP. If you want to learn more about it, visit the project's home page, and specially the project's wiki where you will find the Functional and the Technical documentation of the project (English) and also the complete User Manual (English).



Nov 15, 2010

Improving Openbravo ERP Shipment documents using Extension Points

by Adrián Romero

Extension Points [1] is a cool feature that allows to enhance the capabilities of the core flows in modules without customizing Openbravo ERP. This way you will not have any conflict between the new enhancements in the core flows you developed and the upgrades of Openbravo ERP. Extension points are hooks in the core PL/SQL procedures that performs the business logic of the core Openbravo ERP flows that allows to add other PL/SQL procedures to the flow that enhance and modify the functionality.

To demonstrate the capabilities of the Extension Points that the Shippment Flow includes [2]. I created a very basic Picking and Packaging module that modifies the Shipment flow adding the following functionality:

  • Processes "Create Shipments from Orders" and "Generate Shipments" generate shipments in draft status and do not complete them automatically. This allows a new step in the shipment process to pick the goods from the warehouse and pack everything together before goods are delivered to the customer.
  • A new field is defined for all Shipment lines. This field is "Ready". When this field is marked it means that the goods of the line are ready for delivery to the customer. A shipment cannot be completed until all lines are marked as "Ready".
  • For informations purposes it has been added a new field named "Due date" in the Shipments header. This field will be useful for example to create reports that list late Shipments not yet delivered.

To dig into the technical details how Extension Points are used in this module. These are the new PL/SQL functions created.

  • PNP_CREATEDRAFT [3]. This function is hooked to the Extension Point "M_Inout_Create - Calling Post Process" that is executed in the automatic generation of shipments. This function just indicates that the generated shipments must not be completed.
  • PNP_VERIFYREADY [4]. This function is hooked to the Extension Point "M_Inout_Post - Finish_Process Extension Point" that is executed when completing a Shipment document. This function verifies that all lines of the Shipment are marked as ready, and if any of the lines is not ready it cancels the process.

The Picking and Packaging module is hosted in the Openbravo Forge [5], you can inspect the source code [6] and you can install also in your Openbravo ERP instance using the Module Management window. The latest version is 1.0.1 and it has a been published in "Test" maturity status, so if you want to install in your Openbravo ERP instance you need to modify the Standard Settings of the Module Management window. This Picking and Packaging module is not intended for production environments.

This module is basically a proof of concept of what can be done with Extension Points and Modularity to extend and improve Openbravo ERP capabilities but if you like it and you want to continue implementing more functionalities you are welcome, just send a message to me.

If you want more details about the internals of Extension points I recommend this blog post [7] by my colleague Gorka Ion.

[1] http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/Concepts/DB/PL-SQL_code_infrastructure#Extension_points
[2] http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/Reference/ExtensionPoints
[3] https://code.openbravo.com/erp/mods/org.openbravo.module.pickingandpackaging/file/1.0.1/src-db/database/model/functions/PNP_CREATEDRAFT.xml
[4] https://code.openbravo.com/erp/mods/org.openbravo.module.pickingandpackaging/file/1.0.1/src-db/database/model/functions/PNP_VERIFYREADY.xml
[5] http://forge.openbravo.com/projects/pickingandpackaging
[6] https://code.openbravo.com/erp/mods/org.openbravo.module.pickingandpackaging/
[7] http://obdeving.wordpress.com/2009/10/27/extending-existing-procedures-at-openbravo/



Nov 15, 2010

Why Hybrid Selection is the right Selection Method for Grids

by Rob Goris

Openbravo 3.0 release candidate 4 introduces an entire new interaction paradigm for document manipulation. Using a multi-level master-detail page layout it will be possible to view parent and child records, in either grid or form view, simultaneously. Both forms and grids have been redesigned as well and are optimized for the full document life cycle: creating, editing, processing, searching and comparing. One of the most dramatic differences with Openbravo 2.50 is that these tasks now can be done for multiple documents at a time through the multi-tabs GUI, in-grid editing and multiple objects selection in grids. In this article, I´d like to tell you about the different methods for object selection in grids and which method works best for our grids.

Grids consist of rows and columns. Each row represents a record and each column represents an attribute of that record. A single select in a grid is simply done by clicking on a row. The row will be selected and the screen will update all related information (e.g. children) to the selection. It is common to highlight the row to give the user a visual cue of what is selected. Multiple, discontinuous rows can be selected using a CTRL- (Windows) or CMD- (Mac) click combination. Multiple, continuous rows can be selected using a SHIFT-click combination. A combination of the above is possible using these key-click combinations but this is not recommendable as it is very easy to lose the selected set by clicking or pressing wrongly by mistake. This is especially the case when the selected set is out of sight because of vertical scrolling.

This is where the use of check-boxes comes in handy. Traditionally the preferred choice for multiple selection, they became "out of fashion" in the last decade in favor of other multiple selection methods. Now they´re back and we want to use them in a way that combines different selection methods:

Object Selection: The simplest method of direct selection: The user selects one object and manipulates it directly. For example, you select a folder (icon) and drag it into the trash bin on your desktop. This was quite a revolution in 1984 when Apple introduced their first graphical user interface. Command line interfaces (the standard at that time) used an indirect way of manipulation where you first had to define the action and then point to the object, e.g. deltree c:\myfolder.

Object Selection in early Mac OS

Toggled Selection: The user selects the objects using check-boxes (or toggle buttons). This is the easiest way of discontinuous selection. After the objects have been selected, you can do something with them (delete, process, move, etc.). Selecting a row without ticking the check-box does not select it. An example of toggled selection can be found in Windows XP in the Add or Remove Windows components dialog. Only the objects that are ticked will be added/removed, not the highlighted row.

Toggled Selection in Windows XP

Collected Selection: This concept revolves around placing and accumulating selected objects in a separate bucket. In large lists or lists that span multiple pages, this is an easy way to see which objects already have been selected. We intend to use this for the multiple objects selector that has been discussed earlier.

Multiple Objects Selector concept using Collected Selection

From a usability point of view, this method would also be appropriate in grid selection but less so from a practical (space) point of view. In the 3.0 grids, we will use a snippet of the collected selection method though, by displaying the amount of objects selected in the top left of the grid.

Selection counter

Hybrid Selection: This is a combination of Toggled Selection and Object Selection. This is what we will use for the Openbravo 3.0 grids. In most cases, the user will select one object only, view its children, edit its attributes and apply a process to it. This is object selection. In other cases, the user wants to select multiple objects in a grid via toggled selection. This is where the rows get checked.

Single row selected via Object Selection

Single row selected via Toggled Selection

Multiple rows selected via Toggled Selection

Hybrid Selection recombines the best of three worlds resulting in more efficient document manipulation and lower error rates.



Nov 12, 2010

Openbravo financial management for universities introduced at HIS user conference

by Paolo Juvara
This week I spent a few days attending the Hochschul-Informations-System GmbH (HIS) user conference in Oberhof, in the German state of Thüringen.

This is not the usual open source or technology conference but it is an event centered around the end users of HISinOne, HIS impressive campus management system for German universities. For the past 18 months, Openbravo and HIS have been working closely to embed Openbravo as the financial management solution for HISinOne and the combined solution was presented at this event in front of nearly 400 IT staff and the administration users coming from most universities in the country.

At this conference, not only I had a precious opportunity to interact in person with many perspective end users of the system but I was also offered a speaking slot and had a chance to introduce Openbravo.



The slides of my presentation are available online. Make sure to read the English transcript of my speech available as speaker notes.



Nov 8, 2010

Performance Enhancement in Ubuntu 10.04

by Shankar Balachandran
I am using ubuntu for an while now and over the last few months and I find that the performance of my system has been drastically reduced. I know its more because of improper system management than hardware ineffectiveness (mine is a 2gb ram with 160gb hard disk). If it were windows it would have been simple..:) Run disk defragment, %prefetch%, %temp%, temp in cmd and delete all temporary files. But ubuntu is more fun, because you don't employ some tool to do the job that you should bend yourself and do..:) So here is the list of things that i did in order to increase the performance of my Ubuntu System.


1.Prelink:
              Go to Synaptic Package Manager and search for 'prelink' and you will find  a single app. install that and then come over to terminal and edit the following file, /etc/default/prelink
i.e give
gksu gedit /etc/default/prelink
and in the file that opens up, change the PRELINKING=unknown to PRELINKING=yes.
This will help in prelinking applications, enabling it to start quickly.

2.Swiftfox
Swiftfox is an optimized build of Mozilla Firefox. Swiftfox has builds for both AMD and Intel processors and is based on the most cutting edge Firefox source code available. Add the repository to /etc/apt/sources.list
Deb http://getswiftfox.com/builds/debian unstable non-free

         Install from a terminal window as root using the correct package name:
apt-get update && apt-get install swiftfox-prescott

Most firefox plugins are compatible here and even your existing firefox bookmarks and plugins are imported automatically..:)

3.Swappines:
Go to terminal and give,
sudo cat /proc/sys/vm/swappiness
you will get a value of 60. if your RAM is greater than 1Gb you can change this value to 10. To do that, set,
sudo sysctl -w vm.swappiness=10.
But this is a temporary setting, to make it permanent, edit /etc/sysctl.conf

sudo gedit /etc/sysctl.conf and edit/add the following parameter
vm.swappiness=10.

4. Openoffice tweaks:
We all know open office takes little time in loading. And in most likelihood we will be looking for better word processors. But we can optimize it. Open the word processor and go to tools->options and then change the following options based upon the screenshot attached below. (change the setting little according to your system specs).
 
  I found the word processor opening instantly now..:)

5. Autoclean
     There is an inbuilt package autoclean that should remove most irrelevant packages.
  sudo apt-get autoclean

6. Residual Config
    Go to Synaptic Package Manager and click on the 'Status' button in the left bottom end of the screen. Then in the window on the left hand side, you will find menus like installed, manually installed, not installed, etc... If there is a menu not installed (residual config), then select all applications under that (you can choose only one by one..:( and i had a long list) and give 'Mark for Complete Removal' and Apply the changes.

I think after performing all this also, there is a high risk that your system is slow. Then it boils down to the application, say for example for me Netbeans is a dream in all ways, it makes app development too easy but literally eats my system, so in such cases you need to tweak your application rather than the system.