There is a small change needed for mobile customizations in Infor CRM (Saleslogix) Mobile version 3.3 and higher. It's a small change, but one that will prevent your customizations from loading if you don't make it. Read more

When customizing the Infor CRM (Saleslogix) Mobile client, it's common for the ApplicationModule to grow very large as more and more customizations get added into it. This makes the code difficult to work with and very poorly organized. There are some better solutions to keep your code nicely organized and easy to maintain. Read more

Today at Microsoft's Build Developer Conference, a new, free, cross-platform code editor for web applications named Visual Studio Code was announced. This new IDE is more lightweight and similar to other text-based code editors like Sublime or Atom... Read more

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. Luckily, there is an easy solution. Read more

I've had a few posts lately covering the ComboBox control in the Infor CRM (Saleslogix) Web Client. The ComboBox itself isn't too exciting. However, as I've mentioned in the previous posts, the fact that the Infor CRM ComboBox renders as a Dijit Select form widget makes it so much more powerful due to the fact that you can use it as a Dijit Select widget and not just as an ASP.NET control. In this post, we'll look at changing the widget type of the ComboBox to a filterable widget to make it even more useful. We can change the ComboBox so a user can type and the list will automatically filter to show the items matching as the user types - and do it with a single line of code. Pretty cool, right? Read more

In my last post, I discussed how the Infor CRM (Saleslogix) ComboBox is a Dijit Select form widget. This opens up a few different things about what you can do to the control based on what is possible to do with the Dijit Select. For example, controlling the height of the popup list for the ComboBox. Read more

There's a problem with the ComboBox control in the Infor CRM (Saleslogix) Web Client. It won't disable. Sure, it has an Enable property, but setting it to false has no effect on the control and it will remain enabled. However, there is a solution. Luckily, the control itself renders as a Dijit Select form widget from the Dojo UI Library so we can simply manipulate the control based on what can be done to the Dijit Select. Read more

The blogs on customerfx.com go all the way back to 2003. There's years and years worth of information that we've accumulated and shared. Since the beginning of the Infor CRM (Saleslogix) web client, we've been posting and sharing what we've learned ever since. However, if you're just starting with developing & customizing the web client, it might be hard to know what to start reading. This post will contain an index of posts that would be a good place to start when getting started working with the web client. Read more

Showing and hiding tabs in the Infor CRM (Saleslogix) client should be an easy thing. It should be something you can do on demand, and any time, no matter where things are in the page life-cycle. You should be able to show or hide tabs based on changes in other controls on the detail form. The help in Application Architect describes creating a module, an external assembly that you can wire up for the portal to show and hide tabs and runtime. That just feels like too much work to do something that should be simple. Let's take a look at a simpler route that you can do with just a line or two of code. Read more

In my last post I wrote about using the OnClientClick property of a control (or button) to run JavaScript prior to running the actual server-side click action in order to prompt a confirmation message. To piggy-back on that post, there are a lot of useful things you can do with javascript that will run before your form submits back to the server to so some action. In this post, we'll look at that same idea to clear the dirty-flag with client-side code before the postback occurs in order to avoid the "you have unsaved data. If you continue you will lose the changes you have made". message if you redirect to another page during the postback.
Read more

I'm not a huge fan of bugging end users. I figure, if an end user clicked something, he or she meant to click it. However, that's not always the case. It's especially a good idea for destructive actions or for things that will make a lot of changes and you want to make sure before you pass the point of no return. If a user clicks something and you need to confirm the action with some sort of "Are you sure?" prompt, then it must be done. So, I suppose it's a necessary evil and something that fortunately is very easy to do in Infor CRM (Saleslogix). Read more

In most places in the Infor CRM (Saleslogix) web client, it's pretty easy to use security roles. You simply add the role string to an "Applied Security" property and the rest is magic. But what if you need to get more granular than that? What if you need to access the roles at runtime and apply security to something that doesn't have an Applied Security property? What if you need to apply role security to individual controls on a form, such as enabling or disabling a checkbox? Luckily, it is just as easy to use security roles programmatically as it is to apply them to properties of things in Application Architect. Read more

For years we've referred to Saleslogix as "SLX". It makes things easy when referring to it. Everyone knows what you're talking about and you've saved yourself 8 keystrokes! But now, with the Infor acquisition, we've lost that... Read more

Over the last year and a half I've been working on another product named Contatta. It's a great product and I'm really excited to see how it does in the marketplace. I got to work with some completely brilliant people and learned quite a bit as a developer. Many of the great minds behind Contatta were the same great minds that were formerly behind SalesLogix, including the wizards that authored the Argos framework that the Saleslogix mobile client is built on. Well, my contract working with Contatta has, for now, come to an end. As much as I loved working on Contatta, I am excited to, once again, get involved in the Saleslogix and Infor CRM community. Read more

Sometimes it's the easiest things that can be a big barrier to entry for getting started with something. I was reminded of this recently with some forum posts on slxdeveloper.com. Something as simple as getting the ID value of the current record can... Read more

If you've had any exposure to SalesLogix, you'll have used a bundle. Bundles are great, but when it comes to delivering data or schema changes in a bundle, there have always been a lot of unknowns as to what is actually happening. What if the schema changes already exist in the target database? What about data, does it only insert or does it do updates if the data already exists? This post will attempt to clarify these questions so you'll no longer need to wonder about what is really happening when you deliver schema or data in a SalesLogix bundle. Read more

Some entities in SalesLogix, such as Tickets, use a "pretty key" as an easier to use value to reference the record. These pretty keys take a SalesLogix table ID value and then create a value like 000-00-1234. If you are creating an external application with this functionality, you'll need to be able to create these pretty keys there as well. Read more

Sometimes the easiest tasks can get in the way of doing the real work. Programatically looking up users should always be an easy task. When I noticed that we didn't appear to have a post on doing this on customerfx.com I thought it was time to create a post on this topic. Read more

Most of the SalesLogix systems I see now days no longer use remote users. Instead, all users VPN into a central network to access SalesLogix, or use the SalesLogix Web and Mobile clients instead for remote users. This removes the need to worry about things like synchronization for remote users and also allows you to do some SalesLogix table manipulation without going through the SalesLogix OLE DB Provider since things no longer have to be "sync aware". This post will provide you with a SQL Stored Procedure to create SalesLogix table ID values from inside of SQL scripts. Keep in mind, you should only use this if you do not have remote users that synchronize with the host system. Read more

We looked previously at adding custom fields to the SalesLogix Mobile client. It was easy enough to do, but as I've mentioned before, one of the hardest parts about customizing the mobile product is that you have to know what to type. Let's take a look at just what's available when adding custom fields in an customization module so you'll have all the knowledge you need. Read more

The SalesLogix Mobile client is more customizable than you might think. It's easy to assume that the new architecture isn't as customizable as you might be used to with SalesLogix Web or LAN clients. However, it does sometimes take some rethinking. In this article we'll look at how to add a customization that pulls in data from the Twitter API and displays on the contact detail. We'll delay the loading of the data so that the contact detail will display quickly and bring in the data from Twitter when it is received. Read more

When adding custom fields to SalesLogix Mobile, you'll often want to do things to the value, instead of just displaying it as-is. There are many built-in formatting functions, or renderers, available in the out-of-the-box SalesLogix Mobile platform, but what if you need to do something custom? Let's take a look at what built-in formatting functions there are as well as how to create you own custom formatting function on the fly. Read more

Once you've started creating customizations for your SalesLogix Mobile, at some point you'll want to start getting those customizations into production by deploying them or bundling them to add to your production system. This article will walk... Read more

I've released some updates to the SalesLogix Mobile Developer Toolkit. This new release adds some fixes and a few new features. Download the SalesLogix Mobile Developer Toolkit New Features Some of the more notable new features in the SalesLogix Mobile... Read more

Time to take SalesLogix Mobile to the next level. Customization! This article will outline how to add custom fields to SalesLogix Mobile, from start to finish. You'll walk through every step, from creating the custom field to viewing and editing it in SalesLogix Mobile. Best part? You'll see a video that walks you through the whole process. Read more