Posts Tagged ‘Extract transform load’

Thoughts on a modular OpenERP

February 18, 2011 2 comments
Image representing Microsoft as depicted in Cr...

Image via CrunchBase

Sharing my thoughts on how we have been using OpenERP these past four months. Couple of our customer (which happen to be small businesses) appreciate it as a full integrated system, and they are starting to use most of its modules. Starting with financial management for creating invoices and receiving payments. Pretty much managing its finances. Then they use the logistics and purchasing modules, and they have started planning for the CRM modules.

Those clients happen to be very small and they don’t have a large budget for a full-fledged ERP implementation, so they use it as they learn it. They started playing with it and from time to time they call us to help them with their questions or problems. And I think this list is growing for a couple of reasons. They find a lot of functionality and they love it. Second reason is, it gives them a chance to run away from Microsoft. We set world records when it comes to software piracy in Argentina, and the law has become stricter about it. Nowadays small businesses are being audited and are being forced to either buy Microsoft (plus other) licenses, or go open source. And many are choosing open source. And they are finding OpenERP a super option for getting rid of Microsoft Windows servers and Microsoft SQL servers. In the long run, this is a great scenario for cloud computing, but more on that on a later post.

Now, we finished a project and starting a new one. With different clients. We could safely say they are not related to OpenERP but we ended up using it. Why? Because OpenERP provided us with the infraestructure we needed for our projects. The system provided with the business objects (and forms, reports and views) necessary for deploying our applications.

In one project we needed to keep track of attendances with a fingerprint reader. So we used the contract, employee and attendances business objects provided by OpenERP. We just integrated the fingerprint reader module to the HR module. And the customer is pretty much happy with this, plus it saved us a lot of hours. Now we are starting a project where we need to calculate the safety stock, reorder point and order size for a manufacturing company. We will use the MRP module in OpenERP since it will provide us the business objects we need for this project (such as Bill of Materials).

Well, using OpenERP business objects is an scenario we never anticipated, and we are very happy with it. And we are very glad OpenERP is getting more and more modular. Plus, it is a good way to expand the OpenERP presence in customers.

Have a great weekend!


Giving feedback to the OpenERP team

February 15, 2011 Leave a comment
Software value feedback loop

Image by jakuza via Flickr

I found the OpenERP Improvement Ideas website. It is a very interesting site and it is a way of collaborating on setting OpenERP roadmap. The way it works? It is pretty simple. After creating your registered user, you are assigned a point amount (15 I think, I tried it last Sunday but I forgot, and I don’t want to create a new user). And you are able to vote for the different development initiatives. Plus, you are able to comment on them and discuss them with the development team and other OpenERP users. It is a very cool idea for collaborating in the development process, giving feedback and enhancing the community. Plus, it is a good idea well implemented, since the voters system is quite simple and powerful at the same time.


Learning OpenERP with videos

February 14, 2011 1 comment
Audio-Video-Concert SCRAP

Image via Wikipedia

Well, I don’t have that much time but I wanted make a quick short post on a website that helped me a lot to learn OpenERP. This website is OpenERP Video, you can find it at this URL:

My experience with the website has been very positive and I am very happy it exists. Actually, when I was beginning with OpenERP, I watched many of its videos since they taught me how to use the system, while at the same time reading the OpenERP book.

A couple of interesting things about this website, it has video content provided by the community and Pragmatic TechSoft. So if you have a nice video on how to use OpenERP, you can upload it and promote it at this website. The other interesting thing about this website, is how large its media library is. Keep in mind that producing a video is not easy, and producing a tutorial video is quite demanding since you need to devote the time to do it plus plan for it. Then edit it. It takes a lot of time.

These videos are brand new, and you can find videos covering the new features of OpenERP 6.0, such as OpenERP 6.0 module and UI improvement videos.

My last point is, we should have more videos online. Since end-users do not read manuals and they can’t spend weeks in classrooms. So having them watch videos is a good way to ensure the OpenERP adoption among end-users.

So… Kudos to Pragmatic!!!!

OpenERP, Kettle and TerminatOOOR

February 10, 2011 Leave a comment
The blue/white elephant logo of the PostgreSQL...

Image via Wikipedia

Yesterday I have been testing Kettle and OpenERP. Other OpenERP consultants recommended me to use TerminatOOR in order to update the OpenERP data model. I was intrigued by it and yesterday I gave it a try. So this is a summary of my yesterday’s experiences with Kettle and TerminatOOR.

So when it comes to dealing with OpenERP data model, pretty much you do two things. You either extract data or load data. Importing is pretty straightforward, I was able to connect to the OpenERP server with the Table Input step and extract data with JDBC (don’t forget to install the PostgreSQL JDBC driver). This might not be the  best idea for pulling data from the system but it is a quite intuitive and efficient one. Just be sure you are pulling the right data, double check against the system. And don’t forget to tell your DBA to set the database permissions so you don’t experience any undesired visit to your database.

The real challenge lies in updating the data. You can update the data with the Table Output step, but this approach has several drawbacks. The first one is security, OpenERP can not enforce the security rules with this approach since it bypasses the application security layer. Second one is you might end up with inconsistencies in the database. Don’t forget that objects in OpenERP might update more than one table everytime they are updated/created. So if you update the OpenERP tables with a database tool, chances are you will run into consistency problems sooner or later (actually sooner than you think).

This is where TerminatOOOR comes into the scene. TerminatOOOR is (other than the movie where Arnold Schwarzenegger was smartly cast as a robot) a Kettle Step that provides a connector between OpenERP and Kettle. TerminatOOOR is a project of the founder of the brazilian society Akretion. I will not go into the details on how to install it and configure it, you can find it in the project wiki. The wiki is quite complete and helps you figure out how to use the connector and test it. And there is more documentation on the way.

Before finishing this post, I would like to make a couple of suggestions if you are trying TerminatOOOR for the first time. First, learn to use Kettle before trying the connector. Learning ETL tools and how they are used and their potential takes more than one day, so devote at least one day to learn the ropes of developing Transformation in the Pentahoo tool. Don’t forget that you will update OpenERP with Kettle, not with  TerminatOOOR. The latter will connect Kettle and OpenERP. There are tutorials online for learning Kettle and it is quite an intuitive tool to learn. But if you want to learn the ropes of developing the scripts used by TerminatOOOR, you can check the OOOR page.

Second, study the examples that come with the connector (you can find them in the samples directory). Open them and try them. They will show you how TerminatOOOR works and how it updates OpenERP. Third, don’t forget that openerp-server has to be running! It took me a while to figure out what was wrong with my transformations and the main problem is, I did not start the openerp-server daemon, therefore Kettle was not able to call the webservices in the system.

And last but not least, TerminatOOOR comes with a very handy Ruby Test Console. Try it and debug your Ruby scripts in the console before running them with Kettle. It is very handy for debugging connection problems with OpenERP (it saved me lots of hours).