SugarCRM and Java Integration : Introduction

Overview Of The SugarCRM Platform:

SugarCRM is a widely adopted Customer Relationship Management System. the product is basically built on the LAMP (Linux, Apache, MySQL & PHP) open source stack. However, ever since the version 4.5 release in August 2006, the application also runs reasonably well on Microsoft’s Windows Server operating system and SQL Server database.
SugarCRM is released under the Mozilla Public License and the GNU-GPL license and has taken a lead among the approximately 20 open source CRM applications.

In my opinion SugarCRM company Has adopted a modern philosophy in software development .The company opted for a strategy to open their technology to complementors and create economic incentives (such as free or low licensing fees, or financial subsidies) for other firms to join their CRM ecosystem and adopt the SugarCRM platform technology as their own. In fact SugarCRM firm followed two main strategies in their software development model .The first strategy is based on the mantra of “free, but not free”. SugarCRM give one part of the system away to some users (community or the general consumer) but charge others (corporate users). However it seems they didn’t opted for the strategy of “open, but “not open” make access to the interfaces easily available but keep critical parts of the technology proprietary or very distinctive. Instead they choose to give complete access to the underlying source code , allowing clients & companies to customize, integrate and extend the SugarCRM application with in-house technical resources to control their own requirements.

By looking to their SugarForge.org web site, you can see the wealth of projects that have been developed as extensions or Integrations to the SugarCRM system. Available source code, good documentation, training programs and a relatively active community provide the hallmarks for a successful open source effort.

SugarCRM Integration:

While the core of SugarCRM application is designed to manage a Company’s Customer Relationship, it is very likely that at some points the company might feel the need to do some integration with its CRM system. For example it might integrate its phone system to automatically make entries to SugarCRM when inbound or outbound calls have been made, connect registration of a web application with sugar system to create new accounts automatically to SugarCRM, connect a LIMS in various ways to Sugar ..and so on…

I had the chance to be involved in a project to Integrate SugarCRM with OpenOffice.org suite applications using the Java Programming language. This project was first funded by Appinux.com who hired me to develop a “OpenOffice Addon for SugarCRM. The project is open sourced and freely available to sugarCRM community.
Unfortunately -due to funding limitations-I could only release a minimal version of the plugin which I’m hosting at sourceforge.net : “OpenOffice Addon for SugarCRM
I’m now in charge of the project & have future plans to enhance it with more features and better design. Due to luck of funding and limitation of time, my progress might be slow in this project . but i’m committed to bring it to a decent degree of maturity in future. Of-course Java Developers are welcome to join the project if they are interested!

This being said , I’m planning to blog every now and then about the “OpenOffice Addon for SugarCRM project ; covering topics on SugarSoap API , Sugar and Java Integration , Sugar and OpenOffice Integration and other topics that might raise interesting during the ongoing project development process.

In the next article I’ll introduce the SugarSoap In Java Tutorial. SugarSoap is the SOAP Based SugarCRM webservice which enables Java developers to connect to Sugarcrm and interface with the variety of sugar services exposed by SugarSoap API.

ODF Toolkit vs. jOpenDocument

Openoffice.org API allows Java developers to access (read/write/export) the different supported fileformats within OpenOffice.org. The Drawback of this solution is that OpenOffice.org must be installed on client machine to enable your Java application to bootstrap the default OpenOffice.org process on the user machine.This constitutes a limitation, as every Java application using Openoffice API must ship also an OpenOffice.org installation or require user to install it before using the application.
The answer to this Limitation is the ODF Toolkit Project. this library can manipulate ODF files without worrying if OpenOffice.org is installed on client machine.
ODF Toolkit is Great tool but has its limitations too . it is currently only able to read/write ODF files but there is no option to export ODF files as PDF or any other non-ODF format. Sadly, the ODF Toolkit has currently no converters included within the project.
with more research i found another project jOpenDocument which seems to be similar to ODF Project . It is A pure Java library for OASIS Open Document files manipulation . One Great feature of jOpenDocument is that it can be used to create PDF files from ODF files. PDF generation with jOpenDocument requires also the use of the iText library. The iText library is available for free under a multiple license: MPL and LGPL.

Read this tutorial about how to Create a PDF document from a spreadsheet using jOpenDocument and iText.

OpenOffice Chart2 API Not Yet Ready !

I always thought OpenOffice.org is a pretty good piece of software but I just feel that SUN has taken the wrong approach with their OpenOffice.org development. Their effort on Netbeans is miles better.

As I was working on an OOo chart extension project, I was disappointed by SUN reluctance on the com:sun:star:chart2 API. OOo chart component experts said that it is not official and they may want to change something later. However, I feel that SUN should get their act together. They have been playing with the com:sun:star:chart2 API for more than 3 years and it is still not ready. This is very sloppy for an active open source project Like OpenOffice.org !

I do not agree with SUN approach regarding the development of com:sun:star:chart2 API. Consider that you are building a car, you need to do a lot of road test to ensure that the car would behave properly. SUN is building a car behind close door, it is never a good idea. Surely, there will be changes in the course of the chart2 development, but I do not think that it would matter too much if it is done properly. After more than 3 years of development and chart2 is still not ready for use is very poor performance for a open source project.

A standard OHLC chart could be drawn on OOo perfectly. OOo could draw the OHLC chart but could not combine it with other line charts in the same graph .

What I needed is a way to modify the OpenOffice.org code so that it could superimpose charts with same coordinate system to appear on the same graph. The com:sun:star:chart API is very rigid on the chart type so I needed to develop new chart type to take care of these needs and it is not flexible to use this approach.The com:sum:star:chart2 API appears to be the answer as it has the infrastructure in place to allow you to draw more than one chart-type on the same graph under the same coordinate system.

It is obvious that SUN knows about the problem on chart1 therefore they have developed chart2. However, for some strange reason, they could not release it. Probably due to some bugs in the system and it appears that only a handful of people have participated in the development.

In my next column I will describe an algorithm that uses com:sun:star:chart2 API to combine a candle chart and line chart in same graph.

Additional Resources :

Openoffice.org Wiki Chart2