Upgrading Infor CRM Mobile from Version 3.x to Version 4.0

If you’re using Infor CRM Mobile version 3.x, without question you should consider upgrading to version 4.0. Version 4.0 has a completely new UI that is a huge improvement to Infor CRM Mobile. It’s a more modern look and feel, but greatly improves the user experience as well. However, the upgrade from mobile 3.x to mobile 4.0 isn’t exactly like previous version upgrades. Mobile 4.0 has several breaking changes that you’ll need to account for in your mobile customizations. This article will provide you with the steps you’ll need to perform to upgrade to mobile 4..0 from version 3.x. Note: this information applies to customizations you’ve made in Infor CRM mobile. If you’re just running the out of the box mobile, you’ll not need to perform any of these steps, just install the mobile 4.0 bundle.

STEP 1: Modify Your Mobile Configuration Files

In your mobile customization module, you’ll have a folder named “configuration” with two files, production.js and development.js. In previous versions of mobile (prior to mobile 4.0), the content of these files were typically like this (the code below is from a customization module named “Custom”, this is the production.js file):

define('configuration/custom/production', ['configuration/production', 'Mobile/Custom/ApplicationModule'], 
function(baseConfiguration, CustomApplicationModule) {
    return mergeConfiguration(baseConfiguration, {
        modules: [
            new CustomApplicationModule()
        ]
    });
});

In mobile 4.0, the global mergeConfiguration has been removed. The above production.js file must be changed. This is how it should look in mobile 4.0:

define('configuration/custom/production', ['configuration/production', 'Mobile/Custom/ApplicationModule'], 
function(baseConfiguration, CustomApplicationModule) {
    baseConfiguration.modules.push(new CustomApplicationModule());
    return baseConfiguration;
});

STEP 2: Replace Mobile.SalesLogix and Sage.Platform.Mobile Namespaces

Starting with mobile version 3.3, the name spaces for everything in argos-sdk was changed from “Sage.Platform.Mobile” to simply “argos” and everything in argos-saleslogix was changed from “Mobile.SalesLogix” to “crm”. At that time, there were globals added for Sage.Platform.Mobile and Mobile.SalesLogix, as well as Sage/Platform/Mobile was mapped to argos and Mobile/SalesLogix mapped to crm in the dojo config. This allowed previously made customizations to continue to work, unchanged since it was basically translating the old namespaces to the new ones for you. This was removed in mobile 4.0, so if you’re customizations still have the old namespaces, which is likely, you’ll need to replace this in all code files in your customizations module.

Perform the following replaces in all of your code files:

  • Replace Mobile.SalesLogix with crm
  • Replace Mobile/SalesLogix with crm
  • Replace Sage.Platform.Mobile with argos
  • Replace Sage.Platform/Mobile with argos

Again, you should do this as a global replace in all of the code files in your module.

STEP 3: Change Any Customizations That Modified Anything in Application (or crm.Application)

In mobile 4.0, the Application class is now an ES6 module. This means, that if you had customizations that used lang.extend on the Application and modified things within the Application prototype, this will no longer work. Instead, you’ll modify these things directly in the local this.application variable in the ApplicationModule. Look through the ApplicationModule to see if anything is touching Application or crm.Application and change these. For example, if you were previously doing something like this:

lang.extend(crm.Application, {
    navigateToHomeView: function() {
        // some custom function
    }
});

This would now just modify the function directly on the local this.application reference, like this:

this.application.navigateToHomeView = function() {
    // some custom function
}

The above is just an example. The point is, anything that modifies anything in Application will need to be reviewed and likely changed for it to work in mobile 4.0

STEP 4: Replace Any FontAwesome Icons With New SoHo Icons

In mobile 4.0, FontAwesome is no longer included. While you can include it back in again if you want, a better choice is to simply change to the new SoHo icon choices. You can see the available icons in SoHo here. To find any references to FontAwesome in your customizations, simply to a search for “fa-“. Wherever you find something like this:

iconClass: 'fa fa-flag fa-lg',

or this:

cls: 'fa fa-flag fa-lg',

Change it to something like this, using one of the choices from the link above to the SoHo icons:

svg: 'flag',

STEP 5: Review Simplates for Any List Customizations

Lastly, review the simplate for any List.js, or modifications to the simplate for any List customizations. There were some changes the how the list simplate templates work in mobile 4.0. You’ll know something is wrong since they won’t look like other lists with the nice card look. You’ll need to tweak these (likely remove some of the extra stuff you might have added to them) as necessary so they’ll look right.

Those are the “for sure” list of things you’ll likely need to change for your customizations to work in mobile 4.0, there could be others you’ll encounter as well, but this list is the place to start. Good luck.

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, now Infor CRM, since 2001 and believes in sharing with the community. His new passion for CRM is Creatio, formerly bpm'online. He loves C#, Javascript, 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!