Saturday, November 12, 2011
Tuesday, October 11, 2011
Thursday, September 29, 2011
Wednesday, September 21, 2011
Friday, September 9, 2011
Sunday, September 4, 2011
Wednesday, August 31, 2011
In our example, we will assume we need to attach files to a Lead record using a custom application that we have built. We will focus on the part of the code that would be responsible for attaching the file, using C# and the CandyWrapper .NET wrapper for the SugarCRM SOAP API.
Alright, now we need to review the process involved in completing this task. Here is a step-by-step summary of what our code needs to do:
1. Create a Note
2. Associate the Note entry with the desired Lead
3. Attach the file to the Note entry
Pretty straight forward. Let us take a look at the code snippet that will take care of it for us.
Monday, August 29, 2011
Tuesday, August 16, 2011
Monday, August 8, 2011
Por mucho tiempo he deseado traducir el contenido de este blog al Español para facilitar el intercambio de información con uds., pero la verdad es que el tiempo no me lo permite en muchas ocasiones.
Pero reconozco la necesidad y quisiera resolver esto, si uds. creen vale la pena.
Favor dejar su comentario sobre el tema.
Although the process is still not a simple matter of a couple of clicks of the mouse, major advancements to the SugarCRM architecture since that time have indeed simplified it when compared to when I first had to tackle the issue, so do not be discouraged.
Let us take a look at exactly how it is done.
Tuesday, August 2, 2011
In a nutshell, Employees are a representation of the various individuals that work at your organization. In some cases (maybe all), those same individuals are also SugarCRM users, but it is not mandatory. Users, on the other hand, are a representation of all the individuals that have access to the SugarCRM system. Note that anyone defined as a User is also automatically added to the Employees list -- which is often the reason why confusion creeps in when discussing this topic.
Another important difference between the two is that of the two, data can only be assigned to a User but not to an Employee. These subtle differences are specially important on commercial deployments (Professional, Enterprise Editions) as User counts are limited by the number of licenses one has purchased.
But what happens if one had a need to assign data to an Employee, for reference purposes?
Wednesday, July 27, 2011
At first glance, the reasons why someone would want to do this are not always readily apparent. However, consider the scenario where one uses a text area field (e.g. description) on a module and one wishes to display that field on the subpanel.
The process of including the field on the subpanel is easily accomplished via Studio, but over time, an issue not initially apparent usually starts to surface.
Because a text area field can hold large amounts of text, it is possible for a user to populate the field with a number of pages worth of data. That on its own is not a problem. However, displaying that on a ListView, of which a subpanel is a good example, usually causes undesired display problems, as demonstrated by the image that follows (click to enlarge):
The issue at hand is that the Description field with the longer text value makes the subpanel appear a bit odd, to the point that the additional columns that are part of the view appear to the extreme right of the screen.
So how do we solve this? Easily, via a logic hook. Let us take a look at how we do so.
Thursday, June 9, 2011
It is certainly possible and that is exactly what we will cover in this post.
To save ourselves some time, we will simply modify the script from the previous post and change the relevant portions so as to cause it to use an e-mail template instead of the file based template it previously used. But before that, we need to create the e-mail template.
Create your e-mail template as you would any other, following these steps:
1. Select Emails > Create Email Template within SugarCRM
2. Compose your message and click Save when done
Next, we need the ID of the email template you just created. This will allow us to leverage it within the script, giving us our desired result.
To retrieve the ID:
1. Select Emails > View Email Templates
2. Click on the email template you just created
3. Copy the content from the address field in your web browser to your clipboard
4. Paste the content to Notepad or other format where it can be easily inspected
Once pasted, you should find that the address field contains something similar to the following:
The portion to the right of the equal sign is what we will need.
With the preliminary work out of the way, we can proceed to modify the script that sends the message. If you want to see the original script, take a look at the original post.
Thursday, May 19, 2011
|Photo by ivanpw/Flickr|
Due to the extensive amount of hosting providers that are available today, building and maintaining a comprehensive list of all those compatible for use with SugarCRM is a daunting and difficult task for any single individual such as myself. However, it is also not necessary to do so, as the answers to a few questions should suffice in determining the suitability of any provider.
Before you sign up, ask these questions:
1. Which version of PHP is installed?
An answer such as PHP 5 will not suffice. It needs to be exact, such as PHP 5.3.1. While there are many versions of PHP that are compatible with SugarCRM, there are also a number of them that are not. It is worth noting that many hosting providers have a tendency to use the latest versions of PHP. This is sometimes a problem for SugarCRM as said versions may not yet have thoroughly tested. One should not assume that SugarCRM will work because the server is using the latest release.
2. How often is PHP updated and can I revert to an older version if necessary?
One common problem SugarCRM users encounter on shared hosting providers is that the provider will at random update the version of PHP in use. That action unto itself is not a problem, except that sometimes the update is to a version of PHP that is not supported by SugarCRM. The ability to switch to a different version (one supported by SugarCRM) would be a helpful capability.
3. What is the memory limit for PHP?
This is one of the most important factors. Anything below 64MB is unusable for SugarCRM. If it is less than 128MB, you will only be able to run SugarCRM Community Edition. For this scenario, the higher the number, the better.
Friday, May 13, 2011
Tuesday, May 3, 2011
Monday, May 2, 2011
Things, unfortunately, do not always go according to plan. Although, in this case, it is probably for the best as the time elapsed has allowed for better tools to emerge to simplify this process.
Anyway, I am happy to announce that this past weekend, I released the code to the CandyWrapper project. It is a C# class library, originally created with VisualStudio 2008. Over the next few weeks, I plan on adding other files to the project, including a small test application and the source code for the installer.
You can download the source code from GitHub, by visiting the following link:
I ask for your patience (and any tips) with regards to my usage of GitHub, as it is a new tool to me. Likewise, given that fact, it is unlikely I will be able to assist you with any problems you might experience using it.
I hope you find this contribution of assistance to your work.
Thursday, April 14, 2011
Tuesday, April 12, 2011
Friday, April 8, 2011
Wednesday, January 26, 2011
Suppose one needs to add some log messages to SugarCRM in order to trace a problem -- not uncommon when writing custom code such as that found in logic hooks.
How do we go about adding custom log messages so we can see what is going on?
It is actually fairly easy and only requires one line of code:
$GLOBALS['log']->fatal('My custom debug message');
There are two important items to note about this bit of code.
First, the word fatal actually refers to the logging level. SugarCRM allows you to select from various levels, including info, fatal and debug (the most verbose). The level can be defined by an admin level user by simply selecting Admin > System Settings and modifying the logging level at the bottom of the screen. Your custom message will print out only if the selected level within System Settings screen matches the level you use within this line of code.
Next, in this example, the text My custom debug message is all that would be printed by the logging engine. It is basically a string of your liking, which can include references to variables -- either your own or those created by SugarCRM (such as $bean->id).
Consequently, log messages (custom or otherwise) are written to a file named sugarcrm.log which you can find in the root install directory of your SugarCRM instance. If you prefer a different name for your log file, change it via the earlier referenced Systems Settings screen.
Lastly, if you are using a hosted instance, you may not have access to the root directory corresponding to your install. To circumvent that and access your log file, select Admin > Diagnostics.
Thursday, January 6, 2011
According to the stats for this blog, logic hooks are a popular subject amongst visitors. As such, I figure the topic would be a great way to kick off an idea of mine that I have been tossing around for a bit.
Going forward, I will select a topic of interest, or theme, on a monthly basis. The objective: to discuss the topic at hand in further depth throughout the month, with other posts sprinkled in between for variety.
However, this idea can only work with your assistance.
To help, simply reply to the post announcing the month's topic (e.g. this post) and suggest a facet of said topic for discussion. For example, perhaps you have been wanting to build a logic hook to execute an SQL query, but are unsure about how to get started. Simply share your scenario within the comments area.
In turn, I will select one of the suggestions on a weekly basis and provide a detailed post discussing the process involved in addressing the issue.
Now, while all suggestions are welcome, there are some rules to consider:
1. For obvious reasons, I cannot create a detailed post for every suggestion, but if time permits, I will tackle more than 1 per week.
2. Please be as clear as possible in your description of your scenario. If the description is not clear, I will not consider it.
3. Do not post sample code or the like. A clear description of the goal will suffice.
4. Some scenarios may require very specific configurations, such as custom modules, etc. I will not be able to create mirror environments for all cases, but my response will include sufficient guidance to fulfill the vast majority (if not all) of your goal.
5. Suggestions on themes for upcoming months are welcome and highly encouraged.
Thanks and now lets have the suggestions relating to logic hooks (in the comments section)!
Wednesday, January 5, 2011
A good example of this came up just a few days ago on the SugarCRM Forums when a user asked if it was possible to change the starting point for the numbering sequence on Cases. By default, SugarCRM begins at the number 1 and automatically increments it by 1 whenever a new Case is added. However, many users would prefer it to start at a different number.
So, how does one change the start point?
It is actually rather simple and requires two things: access to a MySQL administrative tool such as SQLyog, phpMyAdmin, etc. and a single SQL command.
Assuming you already have access to the administrative tool, executing the following command would do the trick for you:
ALTER TABLE cases AUTO_INCREMENT = nnn;
Where nnn represents the starting number you wish to apply. For example, to set the starting point to 1000, use the following command:
ALTER TABLE cases AUTO_INCREMENT = 1000;
That is it! Quick and easy!
Monday, January 3, 2011
No problem. Simply go to the customization Studio and add a new field of type "Drop Down," making sure to assign or create the appropriate drop down list at field creation time.
Simple enough, but that only works for custom fields. What about changing an existing, default field so as to make it behave like a drop down. For example, we might want to change the Subject field for Cases or the Name field for Opportunities into drop downs.
Doing so would help us ensure uniformity in the classification of support inquiries or revenue opportunities, which in turn improves data quality and simplifies the measurement of effectiveness. Ultimately, one of the goals of CRM technologies is to simplify the process of measuring how well your business is doing and the quality of the data in the system has a significant impact on that function.
So, how do we convert these default text fields to drop down fields? Lets take a look.