SalesLogix How to Track Entity Change for 1-1 Extension Table

I recently had to implement this change for a client that needed to track if a property on an extension table changed and apply a business rule based on the original and new value. My first response was yes, that can be easily done since SalesLogix has provided this functionality in the framework. It took a bit of digging around to get it working but I finally was able to implement it successfully. I have included 2 examples below for reference (the first one does not work). Code has only been tested in 7.5.1

SalesLogix v7.5.3 WEB non-existent JavaScript file

I ran across an issue in the SalesLogix Web Client v7.5.3 where the browser is trying to load a JavaScript file that does not exist on the web site.  The problem is that the file has been misnamed in the VFS. The file is gears_init.js It should be gears-init.js

The solution is to make a copy of gears_init.js and re-name the copy to gears-init.js, then add the new file into Application Architect at Sage SalesLogix > SupportFiles > jscript > sage-platform > gears-init.js.

Do not delete the incorrect file since we don’t know how Sage will fix the problem, and its presence does not seem to cause any problems.

SalesLogix MSSQL Maintenance Plans

When setting up a new instance of SalesLogix on a Microsoft SQL Server I generally setup two maintenance plans using the Maintenance Plan Wizard.  Note that if you are using SQL 2005, make sure you are running MS SQL Service Pack 3.  There was an issue in earlier versions of SQL 2005 that caused maintenance plans to not run on schedule.

The first plan performs a full backup of the SalesLogix database every night and deletes database backups older than two weeks.  Keeping two weeks of backups is up to the clients judgment and hard drive size.  Some clients want more backups, others want fewer backups.
SalesLogix MSSQL Maintenance Plans

SalesLogix Group Of Opportunities Estimated To Close This Month

Today I was asked about creating an opportunity group in SalesLogix that contained opportunities estimated to close this month.  This is a similar request to the previously posted creating a SalesLogix Group of Contacts with Activities Completed Today.

This query once again requires the use of an IN statement.  We know we are looking for Opportunities, so we will look for a specific list of OpportunityIDs in a list created/provided by us in a SQL statement.

So we will have SELECT * FROM OPPORTUNITY WHERE OPPORTUNITYID IN (**SQL statement that returns the list of opportunities we want.**).

How To Create A Sage SalesLogix Provider Plugin For Custom Security

This example shows how to create a dll file that will augment security in SalesLogix by wrapping around the existing security of Saleslogix.  This modifies sql statements as they come through the SalesLogix Provider.  So you have: If this table is in the join, add to the where clause.  In the example below, a user is only allowed to see contacts where they are set as the Contact’s Account Manager (Contact.AccountManagerID Field).

SalesLogix Group of Contacts with Activities Completed Today

Today I was asked about creating a group of Contacts who have had an activity completed today.

The simplest way to go about this would be to set a condition of Contact.History.CompletedDate within the last 24 hours.  Even by cutting this down to 12 or 8 hours, this is not an exact formula and could cause incorrect data to show.

A better and more accurate way to show this data would be to use an IN statement.  Simply create a new group, add a condition for the ContactID field, set the operator to "in" and set the value is to "select contactid from history where convert(varchar, completeddate, 110) = convert(varchar, getdate(), 110)".
Group of Contacts