Thursday, September 24, 2009

Calling all GoldMine users....

Are you a GoldMine user considering a switch to SugarCRM?

Perhaps you already took a look at SugarCRM, but want to get a better representation of the experience by using it with some of your old GoldMine data.  

If so, the FREE SugarCRM Express Conversion (SEC) utility was specifically designed with you in mind.

Thursday, September 17, 2009

SugarCRM Customization: Search Popups

Sometimes the SugarCRM framework makes it so easy to customize certain things, one is left to wonder if really is that easy. Here is a good example that helps illustrate the point.

Suppose one wants to modify the popup search window that appears when one clicks the Select button in the Contacts subpanel or in general, when relating a record to a contact, e.g. a Note.

Some common customization needs include:
  • Adding or removing columns to the ListView
  • Adding or removing search fields

To modify the popup search window to apply such customizations:
  1. Navigate to /modules/Contacts/metadata and locate the file popupdefs.php
  2. Copy popupdefs.php to /custom/modules/Contacts/metadata. (If the folder doesn't exist, create it.)
  3. Open popupdefs.php from /custom/modules/Contacts/metadata using a text editor
Taking a close look at popupdefs.php will reveal two areas of importance pertinent to our example.

The listviewdefs array is used to define the list of fields displayed within the ListView of the popup search window. In a very similar manner, the searchdefs array is used to define the fields that appear in the search area of the popup.

Changes to either of those arrays will modify the popup search window.
NOTE: It may be necessary to clear /cache/modules/Contacts for the changes to take effect.

Saturday, September 5, 2009

Top 3 Reasons Why I Like SQLyog

Technology circles have a tendency to produce heated, fanatical debates over which software, hardware, design philosophy, etc. is the best. While debate is good, more often than not, those types of debates become more a clash of differing ideologies rather than a civil discussion on the merits of the various options that are available.
There seems to be little value to such discussions and my general philosophy is that no single vendor/design philosophy/technology is the best solution to all problems. One should use the best tool for the task at hand. Sometimes that means using open source solutions like Linux or phpMyAdmin, while on other occasions, it might mean using C# or other Microsoft technology.
That being said, below are the top three reasons why I prefer SQLyog for MySQL administration. Please do not read this as an article on the reasons why SQLyog is better than phpMyAdmin, Navicat or other similar tools. The best solution for you will be determined by your specific needs, not mine.
1. Performance
Performing database operations within SQLyog is usually a matter of 1 or 2 clicks and being a desktop application, refreshes are almost instantaneous. In addition, the multi-pane and tabbed interface makes it easy to view different bits of data without having to navigate to an entirely different area within the application. For example, results for a query are displayed directly below it. If one wishes to modify the query, it is a simple matter of editing the query, below is an image depicting the SQLyog interface:
2. Data Transfer
Ever have a need to move data from one MySQL server to another? SQLyog makes it a cinch.
Built-in functionality allows one to connect to establish silmutaneous connections to multiple MySQL servers and then move databases between them. One can also make a copy of a database within the same server. It is a very simple process, requiring minimal input, as illustrated below:
3. Export options
Often times, it is necessary to export data to other formats for additional analysis, backup or other purposes. SQLyog's export capabilities simplify this process tremendously and offer multiple file formats including HTML, XML and SQL.
Below is a view of the simple, one window interface for exporting data:
By no means is the above a comprehensive list of features found in SQLyog (Community Edition), but they do represent a sampling of features that make it a very useful tool. It should also be noted that the vendor, Webyog, offers an Enterprise level version of SQLyog which includes additional features.

Thursday, September 3, 2009

Common SugarCRM Import Problems

Having problems importing data into SugarCRM? Below is a list of some common problems and solutions.

PROBLEM: Import process appears to be working, but ends abruptly (usually at the same point in the overall process on every occasion). e.g. Attempting to import 100 records always stops at record 38.

SOLUTION: More often than not, these situations are the result of improperly formatted data. Some common issues that cause these type of problems include:
  • Errant commas within the data
  • Carriage return values within the data
  • Field mismatches between records
Below is an example of a set of records that demonstrates proper formatting:
Row 1:first,last,phone_home,email
Row 2:angel,magana,888.555.1212,

In the above example, Row 1 represents the column headers or labels, while Row 2 represents an actual record. Were one to assume that each value in the rows is separated by a comma, inspection of Row 1 and Row 2 would reveal that there is an equal number of values in Row 1 as there are in Row 2. That's exactly what we want. Any type of difference would cause a problem.

The folowing demonstrates a file that would cause a problem:
Row 1:first,last,phone_home,email
Row 2:angel,magana,888.555.1212,
Row 3:john,doe,888.555.1313,,123 Main Street

Other common problems can be addressed via PHP.INI modifications and are related to:
  • Low max_execution_time, max_input_time, post_max_size or upload_max_filesize values
The first two values control the amount of time PHP will allow to expire before it stops processing a script. A setting of 300 should be more than sufficient for either.
The last two settings are used to control the amount of data that can be accepted. A value of 40M or higher should suffice.

Please visit the official PHP site for further details.