Problem Showing All Area, Category, and Issue Values in Infor CRM (Saleslogix) Mobile And How to Fix

There is an issue with the Infor CRM (Saleslogix) Mobile client where, if you have a large list of Area, Category, & Issue values, not all of them will show in the lookup. This is caused by the fact that the out of the box AreaCategoryIssue lookup will retrieve only 200 rows, and, then filter the distinct list of these 200 rows to show the available area, category, or issue values. The problem comes into play when you have more than 200 rows in the AreaCategoryIssue table. Since only the first 200 rows are selected, you’re only going to see the distinct values from those first 200 rows.

I recently noticed this problem when working with a customer who had over 4000 entries in the AreaCategoryIssue table. From the first 200 rows that get retrieved in the lookup, only about 8 or so “Area” values were showing, since there were only 8 or so distinct Area values in the first 200 rows. This customer had significantly more Area values in their database. This is a problem, for sure, but it there is an easy way to fix. The fix isn’t exactly ideal, but for now will allow you to have a working lookup.

The Solution

Luckily, the lookup does cache the results. The rows that are retrieved the first time the lookup is used, are cached so they aren’t retrieved each time the lookup is used and instead used from the cache. What we are going to do is simply increase the number of rows retrieved to a number that will include all rows from the AreaCategoryIssue table. Yes, that’s a big hit, especially for my customer with over 4000 rows in that table. However, since the results are cached, at least you only get that hit once. To increase the number of rows retrieved, we’ll create a customization module with the following code:

define('Mobile/Custom/ApplicationModule', [
    'dojo/_base/declare',
    'dojo/_base/lang'
], function (
    declare,
    lang
) {
    return declare('Mobile.Custom.ApplicationModule', Sage.Platform.Mobile.ApplicationModule, {

        loadCustomizations: function () {
            this.inherited(arguments);

            lang.extend(Mobile.SalesLogix.Views.AreaCategoryIssueLookup, {
                pageSize: 1000 // make this number larger than the rows in the AreaCategoryIssue table
            });
        }

    });
});

This works. But like I said, expect a performance hit due to the extra rows we’re pulling back the first time this gets used. Ideally, this lookup will get changed in the future to only bring back a distinct list of Area. Category, & Issue values separately, but for now, at least this will get things working with little effort. 

ABOUT THE AUTHOR

Ryan Farley

Ryan Farley is the Director of Development for Customer FX and creator of slxdeveloper.com. He’s been blogging regularly about SalesLogix since 2001 and believes in sharing with the community. He loves C#, Javascript, Python, web development, open source, and Linux. He also loves his hobby as an amateur filmmaker.

Submit a Comment

Your email address will not be published. Required fields are marked *

Subscribe To Our Newsletter

Join our mailing list to receive the latest Infor CRM (Saleslogix) news and product updates!

You have Successfully Subscribed!