tag:blogger.com,1999:blog-22198646258617287902024-03-04T22:40:31.201-08:00Angel's BlogWelcome to cheleguanaco's blog (AKA Angel Magaña), a small corner of the blogosphere dedicated to my insights on SugarCRM which I hope you will find helpful.Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.comBlogger115125tag:blogger.com,1999:blog-2219864625861728790.post-9603422167865726292021-09-21T17:23:00.003-07:002021-09-21T17:23:28.446-07:00MySQL Quick Hit: Counting RecordsWithin the context of our technical work, we sometimes just need a simple number to guide us along to help answer our questions.For example, we may be curious about the number of records that were created per day. Or, perhaps we want to know how many were modified, etc. Filters and reports within Sugar can help us get some answers, but we can also do some nifty things by way of SQL queries.&Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com1tag:blogger.com,1999:blog-2219864625861728790.post-28974188768618482242020-09-18T16:06:00.003-07:002020-09-18T16:06:53.601-07:00SugarCRM: Label PlacementSometimes things happen. Allow me to illustrate.For a number of years, there has been a little known option within Sidecar view metadata that allowed one to define the placement of field labels relative to the data. You can see the setting defined in line 173 of the snippet pictured below:Setting the value to false causes the labels to display to the left of the data, as illustrated in the image Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com2tag:blogger.com,1999:blog-2219864625861728790.post-31191466933187670292020-03-13T19:41:00.000-07:002020-03-13T19:41:51.906-07:00MySQL Troubleshooting: Error 1118 Row Size Too LargeA while back I found myself attempting to correct an issue relating to the restore of a MySQL database backup. The problem at hand was the result of a very large table that would halt the process with the following:
Error 1118 Row Size Too Large.
The source of the error was a table that contained numerous fields, tallying in the hundreds. While the database contained this table with a Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com1tag:blogger.com,1999:blog-2219864625861728790.post-43304858732633351622020-02-03T16:52:00.000-08:002020-02-04T09:45:36.662-08:00SugarCRM Customization: CSS and Label Tricks
A few weeks ago, a colleague and I were posed an interesting customization scenario pertaining to an easily overlooked area of Sugar. Before we dive into the details of the scenario and corresponding solution, let us review some of the background.
Have you ever wondered where the abbreviations and icon colors for the various modules within your Sugar instance are defined? Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com0tag:blogger.com,1999:blog-2219864625861728790.post-89153584718765173912019-07-15T08:00:00.000-07:002019-07-15T08:00:06.516-07:00SugarCRM Customization: Sending Emails - New and ImprovedIt seems like an eternity since I posted examples on programmatically sending emails through Sugar.
As some of you might have already correctly surmised, a number of changes have occurred to Sugar since those blog entries were written. One of the major additions to Sugar since then has been SugarBPM, which itself includes an email template engine.
Let us revisit the original problem of Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com0tag:blogger.com,1999:blog-2219864625861728790.post-80613865538480599622019-06-27T18:55:00.000-07:002019-06-27T18:55:00.492-07:00SugarCRM: ExceptionsA number of years ago I read a funny comment about computers which read as follows:
"The problem with computers is that they do what you tell them to do, not what you want them to do."
The point being that computers do not think, they just follow instructions. As such, programmers have to be mindful of the instructions given and anticipate problems. While it is not possible to accountAngel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com0tag:blogger.com,1999:blog-2219864625861728790.post-34529140985444813492019-03-11T10:54:00.000-07:002019-03-11T10:54:36.817-07:00SugarCRM 101: AuthenticationDid you know that Sugar supports 3 different mechanisms for authenticating a user upon them attempting to access the application?
The authentication options are:
Sugar
LDAP
SAML
The Sugar option refers to the standard username/password combination an administrator can configure within Sugar, as described here:
https://support.sugarcrm.com/Documentation/Sugar_Versions/8.3/Ent/Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com1tag:blogger.com,1999:blog-2219864625861728790.post-12072721438938946612019-02-07T09:32:00.000-08:002019-03-08T12:46:51.614-08:00SugarCRM DevOps: CompressionQuestion: Which would download faster, a 3.5 MB sized file or one approximately 500 KB in size?
It is not a trick question. Without a doubt, our expectation would be that the smaller sized file would download faster, regardless of the speed of our network connection to the server. But how can we reduce the size of payload if we cannot trim the actual contents? A quick and easy way to reduce the Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com1tag:blogger.com,1999:blog-2219864625861728790.post-33635684003689341392018-05-23T11:45:00.000-07:002018-05-23T11:46:00.045-07:00SugarCRM: More Customization TipsIn a previous post on the subject of customizations we explored some general tips and advice that help us avoid a variety of problems. We will continue this discussion, but this time around we will focus on JavaScript. More specifically, we will focus on the manner in which one can handle responses to requests made to the Sugar REST v10 API.
One may have a need to send such a request Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com0tag:blogger.com,1999:blog-2219864625861728790.post-40286838479094839992017-11-22T16:13:00.000-08:002018-05-10T18:59:36.516-07:00SugarCRM: Related Data InteractionsOften times a customization we are working on requires us to interact with related data, usually records that are children of another. For example, a customization might require us to determine if a given Account record has 1 or more related Contacts. Or for that matter, we may need the collection of ID values that represent all the Calls linked to a Contact.
In either example, the path most Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com0tag:blogger.com,1999:blog-2219864625861728790.post-61303896055007483732017-06-30T20:21:00.000-07:002017-06-30T20:21:32.363-07:00SugarCRM: Customization TipsOne of the tasks we regularly perform within the Technical Account Management team at SugarCRM is review customizations, especially code level modifications. Two of the main objectives behind such reviews are:
Identify areas of opportunity (customizations that can be further refined or optimized)
Catalog potential pitfalls one may encounter were the instance upgraded
A challenge posed Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com0tag:blogger.com,1999:blog-2219864625861728790.post-22410829902007352202017-01-18T11:25:00.001-08:002017-01-18T11:26:32.565-08:00Elasticsearch: Heed the WarningsA few posts on this blog have talked about different topologies one can use to deploy Sugar, either for development purposes or production use. Perhaps the most important point in those posts is the matter of ensuring that one should not expose the Elasticsearch server to any other machine besides the one where the web server is running.
Because Elasticsearch data can be read without any sort ofAngel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com3tag:blogger.com,1999:blog-2219864625861728790.post-37732119382424838282016-12-22T11:27:00.000-08:002016-12-22T11:27:33.333-08:00SugarCRM Reference: Analyzing a Record pageAs a continuation of a prior post, below is a diagram depicting the various components used on the record page within Sugar 7.
Not unlike other areas of Sugar 7, a variety of layouts and views are used to render this screen. In a follow-up post we will take a closer look at specific areas of this same diagram as there is more info to be had.
Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com0tag:blogger.com,1999:blog-2219864625861728790.post-26062565321046098722016-05-18T16:32:00.000-07:002016-05-18T16:34:44.623-07:00SugarCRM: Working with Sugar 7 SessionsOne of the changes that was introduced in Sugar 7 relates to the manner in which user sessions are managed.
In older versions of Sugar, the length of a user session was determined by a PHP parameter that controls the lifetime of a PHP session. For all intents and purposes, a Sugar session was equivalent to a PHP session and deleting the latter would in turn cause your Sugar session to alsoAngel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com11tag:blogger.com,1999:blog-2219864625861728790.post-81602917241608368802016-05-04T12:55:00.001-07:002016-05-04T12:55:59.363-07:00SugarCRM Troubleshooting: Still Loading...Some months back I posted an article that spoke to a problem that caused Sugar to get stuck at a "Loading..." message. As discussed in that post, the culprit usually revolves around the rewrite module or its configuration.
In recent months, however, some Sugar customers reported puzzling situations where the Loading... problem could not be resolved through corrections to the rewrite Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com7tag:blogger.com,1999:blog-2219864625861728790.post-27535787687268198182016-02-26T14:17:00.002-08:002016-02-26T14:17:24.895-08:00SugarCRM: Bulk API ExplainedRecently I have found myself in various conversations revolving around the topic of the Bulk API and its capabilities. These conversations have helped highlight various misunderstandings relating to its functionality, which I believe are the result of a lack of documentation on the subject. Hopefully this post will help clarify some of the more common themes.
To begin with, let us discuss what Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com2tag:blogger.com,1999:blog-2219864625861728790.post-6498400629217205152015-08-10T18:20:00.002-07:002015-08-10T18:20:19.933-07:00SugarCRM Quick Hit: SugarBean and JavaScriptSometimes in the course of customization work we may be performing within Sugar we may have a need to load one or more records from a module.
For example, we may need to load an entry from the Calls module. Or, as demonstrated in a recent example I posted, we may need a set of records from the Leads module.
The Sidecar framework in Sugar 7 makes this process quite easy via the app.data Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com9tag:blogger.com,1999:blog-2219864625861728790.post-32033192572363640062015-07-29T21:12:00.001-07:002015-07-29T21:12:21.937-07:00SugarCRM Customization: Lead Conversion Stats ChartIt is always cool to find new ways to visualize data stored in SugarCRM.
For this customization, I focused on exposing data representing the number of Leads converted versus those that were not converted within the given month, commonly referred to as the Lead Conversion Rate. To make this data more readily apparent, I created a custom pie chart, which doubles in helping us see the power of theAngel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com1tag:blogger.com,1999:blog-2219864625861728790.post-19135770477819916882015-05-21T18:53:00.001-07:002015-05-21T18:53:30.704-07:00SugarCRM Reference: Dissecting the NavBarA common challenge for Sugar developers is often times less about the development of a solution, but instead, finding the starting point to apply it. For example, should we wish to customize something in the subpanels area, do we modify the subpanels layout controller, or the subpanel-list metadata? Similar questions apply to various areas of Sugar.
To alleviate this problem, it is helpful to Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com1tag:blogger.com,1999:blog-2219864625861728790.post-31565063363612739222015-05-01T20:04:00.000-07:002015-05-01T20:04:42.705-07:00SugarCRM Customization: Custom Upload DirectoriesI always enjoy finding gems within SugarCRM, little known features that end up opening up a number of doors for further and even more intriguing customizations. A while back, a discussion with a colleague led me to one such discovery.
Those of you making use of documents and other file attachments in Sugar might find it of help to know that said attachments can be stored on Amazon S3 storage Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com19tag:blogger.com,1999:blog-2219864625861728790.post-87861740742359189492015-04-09T10:14:00.004-07:002015-04-09T10:14:59.554-07:00SugarCRM 101: SecurityThe topic of data visibility and security is an important one, especially within the context of systems such as SugarCRM (Sugar) which are used to store information about our customers/clients.
Within Sugar itself you will find a set of sophisticated security features that permit administrators to control which users can access or see certain records, and secondly, given the ability to see a Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com2tag:blogger.com,1999:blog-2219864625861728790.post-78985227409356359102015-02-24T19:27:00.000-08:002015-02-24T19:27:00.929-08:00SugarCRM Customization: Custom Blur EventOne of the ideas that I regularly try to convey when talking about the customization capabilities of the Sugar 7 framework relates to leveraging JavaScript wherever possible. This is especially true for projects where our objective is to upgrade heavily customized versions of Sugar up to version 7.x.
In the pre-7.x world, some customizations that can now be implemented natively via the Sugar Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com6tag:blogger.com,1999:blog-2219864625861728790.post-67244861941770203492015-01-27T18:53:00.001-08:002015-01-27T18:53:22.518-08:00MS-SQL Quick Hit: Listing Field Definitions
Some months back I wrote about some important performance gotchas pertaining to using SugarCRM on Microsoft SQL Server (MS-SQL). More recently I had a need to analyze a system to uncover the source of similar issues.
While doing so, I came up with an SQL query that helped me quickly view all the column names and their definitions, simplifying the process of identifying potentiallyAngel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com2tag:blogger.com,1999:blog-2219864625861728790.post-42783825490614453582014-11-13T11:44:00.002-08:002014-11-13T11:44:39.154-08:00SugarCRM Diagram: Multiple Server Deployment (Basic)A few weeks ago we looked at an example of a very basic topography one can use to deploy Sugar 7. Along the way we also looked at the advantages and disadvantages of such configurations. Today we will look at a slightly more complicated setup.
The diagram below illustrates a deployment implemented across multiple servers. While there are many variations to this concept, the one illustrated in Angel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com1tag:blogger.com,1999:blog-2219864625861728790.post-21822637240357176412014-08-27T14:00:00.002-07:002014-08-27T14:01:24.998-07:00SugarCRM 101: ElasticsearchI recently found myself doing an extensive amount of work relating to Elasticsearch. While doing so, the usefulness of the O'Reilly Elasticsearch book came to mind, along with the thought: it would be useful to have a list of helpful commands handy.
So here it is, a list of commands that will hopefully help answer some of your questions on the manner in which Elasticsearch interacts withAngel Magañahttp://www.blogger.com/profile/09861818705795234299noreply@blogger.com0