Welcome to the Technology Advisors Blog!!

Technology Advisors CRM and Technical Information
Tags » SalesLogix
Jun 13
2012

Why You Should Consider Going To Sage Summit This Year

POSTED BY: Mary Ann Pekara POSTED IN: MyBlog

TAGGED IN: SalesLogix

Mary Ann Pekara

Every year people decide whether or not they'll go to their CRM vendor's customer/partner conference. Sometimes we can't afford to take the time off work so it is not realistic but if we can afford the time, here are some great reasons to attend this year's Sage Summit, August 12-14 at the Gaylord Opryland Resort and Convention Center in Nashville, TN.

  • You've made the investment, get more from your Sage solution
  • Solve real business problems
  • Get answers to your questions
  • Achieve hard-dollar savings
  • See what's next in business technology
  • Build your network through face-to-face interaction
  • Educate your entire cross-functional team (group discounts)
Sage Summit is the largest gathering of Sage product users that exists, making it the perfect place to talk with other users about shared challenges, business processes, use cases, etc. Not to mention, it is simply a great place to network. 

Just for attending Sage Summit, you will receive exclusive money-saving discounts on products, services, training and more. This doesn't even include the countless actionable ideas you'll be able to take back to your business to help you improve productivity, cut costs and improve decision-making.


Register now!

Jan 23
2012

SalesLogix Mobile - New User Friendly and Faster Features

POSTED BY: Mary Ann Pekara POSTED IN: MyBlog

TAGGED IN: SalesLogix

Mary Ann Pekara

We are all living in a mobile world and all we want is to quickly and easily access all the information we can possibly get, right at our fingertips. That's not too much to ask, right? 

Sage SalesLogix Mobile is quick and easy to use, as it is built on next generation web application technology. Because Sage uses its Sdata web service to communicate directly with your main database, there is no syncing of data necessary. I'm definitely not the most technical person in the world, or anywhere close, but I do know that not having to sync definitely speeds things up. Plus, with a single URL to access your data, end-user installation is not required.

I recently watched a demo of the new Sage SalesLogix Mobile v1.2 and here are my favorite/most useful take-aways:

  • Enhanced productivity
    • Improved visibility
      • Single-press pick lists and lookups
        • No more multiple clicks to validate actions
        • More of a "click" and "go" approach
      • "Clear" button on text fields = No more backspacing
    • Faster data entry/lookups
      • Custom keyboard for URLs, Email and Phone data entry
        • Example - A ".com" button exists when you're typing URLs
      • Faster search with hash tags (Sdata handles hash tag queries)
        • Example - Opportunity: "#closed ab" --> Closed opportunities where name starts with "ab"
    • Localized for multiple languages (French, German, Italian, Russian)
      • Multi-lingual support through single portal
  • Calendar Improvements
    • New week view
    • Month view shows activity count and selected day details
SalesLogix Mobile

What else would you like to see in SalesLogix mobile?

Dec 12
2011

A SalesLogix CRM v8.0 Preview

POSTED BY: Mary Ann Pekara POSTED IN: MyBlog

TAGGED IN: SalesLogix

Mary Ann Pekara

 

Dave Wallace, Director of Product Management for Sage SalesLogix CRM, provided Technology Advisors’ customers a preview of the new SalesLogix v8.0 coming out next year.

Dave dove into the updates in the Web Client from a Usability perspective, highlighting:

 

  • List Management
  • Account List View
  • Detail View
  • Scrollable Grids in Tabs
  • Copy Text to Clipboard
  • Move & Copy Contact
  • Mail Merge

 

He showed Activities and Calendaring, calling out the ability to update multiple opportunities at one time and the new configurable pop-up alerts.
Next, onto the LAN improvements which included updates to the UI, the Windows 7 Thumbnails and how to mark a resource as a location and manage those resources. Then the big one, how to Add a Field!

In the Mobile version, we looked at the Month and Week views as well as new features including:

  • Support for custom keyboard types on supported devices
  • New date/time picker control
  • Support for events
  • Plug-n-play customizations
  • Roles/secured actions

 

The discussion led to Data Safeguarding where we saw the addition of security to SpeedSearch indexes and password security for the web.

The hour flew by quickly as we only covered a portion of the new features and functionality in the SalesLogix v8.0 release. What else does everyone want to see?

 

Oct 06
2011

Considerations for Purging/Deleting Entity Data in SalesLogix

POSTED BY: Allen Dsouza POSTED IN: MyBlog

TAGGED IN: SalesLogix

Allen Dsouza

Normally when data is deleted from a database, it is simple enough to have a programmer write a DELETE statement in SQL to wipe out a bunch of records from a table. This technically works okay, but has some issues that one should be aware of.

SalesLogix maintains the schema of the database in its own system tables and uses this data to keep track of data structure and relationships. When data is removed using a straight database call, any child records to the records being deleted still remain in the database leading to orphaned data.

Even though this orphaned data may not be visible anywhere, from a data quality standpoint, this is not a good idea and eventually leads to useless records piling up in the database. Luckily, SalesLogix provides a purge data wizard that allows for purging a set of data and their child records - based on conditions that you might want to specify.

To purge data, launch the Tools --> Maintenance --> Purge Data Wizard

SalesLogix Purge Records

It will walk you through a series of steps that help you specify the exact data set that needs to be purged.

Depending on which record you are on, the wizard will automatically check the box that matches that record type. For example, if you launch the wizard from Contacts, the default Contacts button is checked as in the screenshot below:

SalesLogix Purge Records Wizard

The wizard will allow you to select one of the following methods of selecting the dataset for deletion:

  • Based on the value in a single field
    • Allows for selection of a field, an operator and a value that will be used as a condition for the deletion.
  • Based on the values in two fields
    • Same as above, but allows for 2 conditions to be created.
  • Entire current lookup or group
    • If a group can be created using multiple conditions and joins, then this group can be used as the basis for the record deletion.
  • Active record
    • Only the record that is currently being worked on will be deleted
  • Currently selected records
    • This allows you to highlight a set of records in the group view and only have those highlighted records be deleted.

From experience, I have found it best to delete based on a group. This is because:

  • The data in the group can easily be exported to Excel before deletion. This helps in case the list has to be passed around for review.
  • The group can be shared with SalesLogix users so everyone can review it before it is deleted.
  • The group lets you make sure you have the conditions right before you attempt a Delete.
  • In most cases there are multiple conditions to be specified and the "group builder" comes in handy to build a more complex group based on a set of business rules.Considerations for Purging/Deleting Entity Data in SalesLogix
Sep 29
2011

Designing Reporting Filters in SalesLogix

POSTED BY: Allen Dsouza POSTED IN: MyBlog

TAGGED IN: SalesLogix

Allen Dsouza

When a SalesLogix report is run, you normally see two different kinds of filter options/parameters. The purpose of this post is to explain what they are and how they are different.

Normally when a report is run, the first set of filters is a set of options that appear on the report selection page. It looks like this:

SalesLogix Reporting Filters

These options allow you to dynamically specify the data that should show up in the report. For example, if the report is a contact based report and needs to be filtered to a certain group, or a certain record that the user is currently working on, this is where you would do it. It also allows you to save these criteria if you would like to reuse them the next time the same report is run.

Note that these filters are externally passed into the Crystal report from SalesLogix and are not a part of the Crystal report parameters collection.

The second set of parameters you could run into are the actual Crystal report parameters that are built into the report:

SalesLogix Reporting Filters

These parameters are designed into the report and allow you to specify additional parameters like date ranges or other options that you may way to have a user specify to control what data is shown, or even how it is displayed.

These filters get applied in addition to the SalesLogix filters mentioned above. The combination of both sets of parameters is what gives you the final result in the report.

A key point to note here is that the SalesLogix filters are meant to allow for filtering data at the entity level so that one may filter by Entity group, Date or User. The crystal parameters usually complement these filters by allowing complex formula based filtering to be used to change display formats on the fly and reformat a report to work differently based on the parameters specified.

Aug 09
2011

Creating and Naming SData Feeds in SalesLogix

POSTED BY: Allen Dsouza POSTED IN: MyBlog

TAGGED IN: SalesLogix

Allen Dsouza

SalesLogix allows you to access your data via the new SData webservice feeds that are hosted as a part of the SalesLogix web client. Normally to enable your SData feed, all you have to do is check the "Generate Feed" option on the entity that you wish to create the feed for. The feed is normally not enabled by default, so make sure to turn it ON when you create your entity so that you can use it for external SData based data integrations.

SalesLogix Sdata Integration

If your "Path Name" field contains an invalid character, then a validation message will force you to correct this before saving. So if you use an underscore character like in the screenshot below, this is what the error will look like:

SalesLogix Sdata Integration

Recently we ran into an issue for a client who happened to use numbers in their extension tables. The extension table was named Account2. When the SData feed was created, interestingly, it does remove the number from the name, adds an "s" at the end, and calls the feed "accounts". Obviously the system doesn’t like this because the name is the same as the SData feed for the Account entity. So I renamed the feed to "AccountTwo", which was a perfectly valid name. This caused an error indicating that I have invalid characters in the SData feed even though I didn’t have any. 

On further examination I realized that the application was using the "Display Name" of the Entity to create the SData feed. Since the display name of the entity has the number 2 in it, it kept complaining about the invalid number. Changing the DisplayName temporarily to a different name like "AccountTwo" allowed me to create my SData feed. Then I could change the DisplayName back to what it previously was,  and things worked just fine.

SalesLogix Sdata Integration

Aug 02
2011

SalesLogix Reporting Basics

POSTED BY: Allen Dsouza POSTED IN: MyBlog

TAGGED IN: SalesLogix

Allen Dsouza

 

We frequently get questions about the reporting functionality in SalesLogix. So here is some information that should give you a pretty good idea about how the reporting works and how it interfaces with the SalesLogix database.

SalesLogix actually uses the Crystal Reports software to design and output reports. So in terms of wanting to know the flexibility of the reporting software, just look at the functionality of Crystal Reports and that should tell you how easy/hard it is to design reports. 

The first step is obviously to create the report in Crystal Reports. In doing this, the most important thing to be aware of is to create an OLEDB connection to the SalesLogix application server.  Instead of creating a report to directly connect to the SQL or other back end database, you need to make sure that the SalesLogix OLEDB database driver is used. This causes the report to run in the context of every SalesLogix user and therefore causes the user's security to be enforced so that they only see what they are supposed to see. 

If you bypass this step and connect directly to the database, then you run the risk of having a user have access to all the data in the system. 

SalesLogix Reporting
In order to load a report into SalesLogix, you need to have the admin tools to first pull the report into the SalesLogix environment. To do this, use the SalesLogix Architect tool to load the report into the SalesLogix database. Once added, it should show up like below tied to the family (category) that the report is in.
 
SalesLogix Reporting
Once you have the report loaded via the admin tools, it is ready for use. In the standard windows (LAN) client, the client software on the users machine has the necessary crystal reports DLLs which run the report.
 
On the web client however, things work a little differently. The SalesLogix web client uses a web reporting engine from Crystal Reports. The web reporting engine is usually installed on a separate web server. Note that in this case the web server does all the hard work of running the report as opposed to in the LAN client where the individual machines are used to split up the reporting load because the reports run locally on the user's machines.
 
With the web reporting, there is no real change in how the report is designed and deployed, so no additional effort there. The SalesLogix web client simply passes the request for a report to another webserver that pulls up the report definition and data and then sends the final output to the users machine via a browser.
 
Hopefully this gave you a pretty good idea about the various reporting components in SalesLogix and how they work together.
Jul 21
2011

SalesLogix Web and Database Views

POSTED BY: Greg Andorka POSTED IN: MyBlog

TAGGED IN: SalesLogix

Greg Andorka

Adding a database view into the SalesLogix web architecture can be a tricky process, due mostly to the fussiness of NHibernate. What follows is a step-by-step guide to help you through the process.

Problems at the end of the process can be avoided by following these rules when designing your view.

1.    The view name cannot start with the letter I.
2.    The view name and fields must be capitalized.
3.    The view fields must not have spaces in them.
4.    The view key field must be of type char(12).  You can accomplish this with a simple Cast or Convert SQL function (in MS SQL Server).

IMPORTANT: If the key field does not have a database type or char(12) you will get the error "Year, Month, and Day parameters describe an un-representable DateTime" at runtime.

Once your view is working the way you want, the next step is to enable it in DB Manager. 

1.    Open the Architect or Administrator tool and launch DB Manager.  2.    Right click on your view and select Properties.
3.    Click the “Enable” button, and click OK.
4.    Right click on the key field of your enabled view and select properties.
5.    Verify that the “Field Type” box reads “SLX Standard ID”.

I have seen situations where the view's key field is not populated in the RESYNCTABLEDEFS table. This can be easily checked with the query:

select * from ResyncTableDefs where TableName = ‘my view name’

If it is missing, then simply add it with the query:

Update ResyncTableDefs set KeyField = ‘my key field name’ where TableName = ‘my view name’

We are now ready to add our view as an entity.

The process is the same as adding any other table from the database. Note that any relationships that you create from an entity based on a database view should have the Cascade property set to "None" or "Not Applicable" since the underlying database view cannot be directly changed.

Jul 12
2011

Viewing the Outside World From Within SalesLogix

POSTED BY: Greg Andorka POSTED IN: MyBlog

TAGGED IN: SalesLogix

Greg Andorka

There are many situations where a user needs, or would like to have, access to web based information that is not stored in SalesLogix. We would like to integrate access to other information from within SalesLogix so the user sees a single, seamless application. A couple of approaches for this will be described that use techniques both dependent, and independent, or SalesLogix framework.

The first, and simplest, approach is to show external data on a tab in one of the main views. We've all seen this demonstrated a thousand times. All you need to do is all the SalesLogix "Dynamic Web Content" control to a form and populate the "Dynamic URL" property.

The "Dynamic URL" property supports a syntax that allows you to dynamically populate a query string on the URL with the current entity's properties in a codeless way. The syntax for referencing an entity's properties is ${.}. Here is an example from the Application Architect help file that displays the location of the current entity on a Google map.

http://maps.google.com/maps?q=${Address.Address1},+${Address.City},+${Address.State}+${Address.PostCode}&sll=37.0625,-95.677068&sspn=23.875,57.630033&hl=en&ie=UTF8&t=h&z=16&iwloc=addr

This works great if there is no variation in the resource or query portions of the URL.

Another approach would be to display the data in a new browser tab or window. There are a number of ways to do this, and we will describe one that uses JavaScript in the client browser to accomplish this task.

Our solution is to add a button to a quick form, and use the onClientClick event of the button to execute a piece of JavaScript to open a new window/tab. This seems straightforward enough. The only tricky part is to inject the JavaScript code onto the page in an ASP/SLX appropriate way. To do this we will add the following code to the form Load Actions.

Sage.Entity.Interfaces.<ISomeEntity> myentity = this.BindingSource.Current as Sage.Entity.Interfaces.<ISomeEntity>;

string sURL =
string.Format("http://www.mycompanywebsite.com.com/DataSite/GetMeInfo?frm={0}&id={1}", FormName, MyEntity.Id.ToString());

<MyButtonControlID>.OnClientClick = "window.open('" + sURL + "', '', 'directories=no,location=no,menubar=no,pageXOffset=0px,pageYOffset=0px,scrollbars=yes,status=no,titlebar=no,toolbar=yes');";

ClientBindingMgr.RegisterSaveButton(<MyButtonControlID>);

This approach has the advantage of showing the URL in a new browser window, and gives us the freedom to build the complete URL in code without the restriction of having a predefined URL template, as in the first example.

The disadvantage of this approach is that it still requires a round trip to the server, and the associated performance hit, just to execute the code. Ugly!

Our third and final approach is to get everything to run in the client browser and still live within the confines of ASP/SLX.

As you might suspect, there are tricks to getting this to work also. The first is to use the non-standard HTML attribute pin="pin" in the script tag in order to get ASP to leave our code on the page. Here is an example. We could have just as easily put our code in an external file, but we would still need the non-standard "pin" attribute in the script tag.

    <script pin="pin" type="text/javascript">  

    function showWin( someURL )

    {

        // put any preprocessing here

        window.open(someURL, '', 'directories=no,location=no,menubar=no,pageXOffset=0px,pageYOffset=0px,scrollbars=yes,status=no,titlebar=no,toolbar=yes');

    }

    </script>

Next, we need to use a control that will execute our JavaScript function, showWin(), directly without posting to the server first. Our solution to this depends on using a SmartPart, and placing our control on it. For instance, just add a simple anchor tag <a href=”javascript:showWin()” >Show the window</a> to the appropriate place on your page.

These three approaches give varying degrees of flexibility when linking to the outside world. Each has a place in the developers' toolbox to accommodate the variety of situations that may arise.

Jul 07
2011

SalesLogix Mail Merge DLL Installation Issue

POSTED BY: Allen Dsouza POSTED IN: MyBlog

TAGGED IN: SalesLogix

Allen Dsouza

We recently ran into an issue in SalesLogix version 7.5 sp3 where the mail merge did not work after an install. Clicking on the write->email menu would bring up the following message:
 
The Following HTTP status error was reported in THTTPRequestThread.Execute: Retrieving the COM class factory for component with CLSID{1BBD3B34-C697-449A-AE6B-37A18D338C0F} failed due to the following error: 80040154
 
The issue was traced back to the mail merge dlls not being registered on the server even though the installation process seemingly went through successfully.
 
To resolve this, un-register and re-register the following DLLs
SLXMMGUI.dll SLXMMEngine.dll SLXMM.dll
 
If these files are missing, then you will need to find them from a working installation and just copy them over and register them.
 
Sometimes this issue also occurs if the following registry key is missing:
HKEY_CLASSES_ROOTCLSID{1BBD3B34-C697-449A-AE6B-37A18D338C0F}
 
You will need to export this registry key from a working installation and re-import it to the affected server.
 
Finally rebuild and redeploy the SalesLogix website to republish all changes to the website.