Ryan Farley’s Blog

Ryan Farley on .NET Development with a focus on CRM Development for Infor CRM (Saleslogix)

Microsoft’s New Visual Studio Code IDE and Infor CRM (Saleslogix) Mobile

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. The IDE was actually built on Github’s Electron node-based framework (the same thing that Github’s Atom editor is built on). The IDE runs on Windows, Mac OS X, and Linux and can develop web applications using ASP.NET, Javascript, or whatever else. Now, to the point of this post. It also works as a great IDE for Infor CRM (Saleslogix) Mobile. It’s free, and if you work like me, you’re not always using the same operating system. When working with Infor CRM Mobile, I prefer developing on my MacBook. However sometimes I need to do the work on a Windows instance, depending on where the SData portal is I am working with. Using an cross-platform IDE allows you to work with a familiar set of tools no matter where you’re working. Also, it has built-in Git support which is really nice. Here’s a look at Visual Studio Code with the Infor CRM Mobile code open (Click image for a larger view) So far, looks promising. I’ll admit, it will take a whole lot for me to move away from my preferred IDEs when working with the mobile client (IntelliJ and WebStorm). I mean, a WHOLE lot. I love JetBrains IDEs. Frankly, I’m not sure VSCode has much to offer yet over other editor – but there’s some real promise behind it and it will be interesting to see where Microsoft takes it....

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

Creating a Searchable & Filterable ComboBox in Infor CRM (Saleslogix) Web Client

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?

How to Disable the ComboBox Control in the Infor CRM (Saleslogix) Web Client

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.

Index of Posts for Starting with Infor CRM (Saleslogix) Development

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.

Easily Showing and Hiding Tabs at Runtime in Infor CRM (Saleslogix)

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.

Avoiding the Dirty Data Message When Programatically Redirecting to a Record in Infor CRM (Saleslogix)

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.

Confirming Actions With an "Are you sure?" Prompt in Infor CRM (Saleslogix)

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).

Programmatically Using Security Roles and Secured Actions in Infor CRM (Saleslogix)

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.

Infor CRM (Formerly Saleslogix) Needs an Acronym – I Propose ICRM!

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 acronym (tear). It’s time for a new one. I propose “ICRM”. Who’s on board? From now on, when I say ICRM, at least you’ll know what I’m talking about. Let’s hear it!...

Thoughts on the Future and Involvement in the Saleslogix/Infor CRM Community

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.

Finding the Current Parent Record ID in SalesLogix Web

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 get in the way of getting the real work done if you’re just getting started. Since I couldn’t find an existing blog post on this topic on our website I figured it was time. Let’s take a look at a few different ways to do this. Like many things in SalesLogix Web, there are a few different ways to do this, depending on where you’re using the code. In a Code Snippet Action A Code Snippet Action you can write code in C# or VB.NET since a Code Snippet Action is compiled into a separate DLL that is referenced by the web client. In a Code Snippet Action you have a built-in reference to the form which you can use to get to other things, such as the EntityContextService. Here’s the code: // Get a reference to the EntityContextServce // and call GetEntity() - note, in this example are current entity is an account IAccount myparent = form.WorkItem.Services.Get<Sage.Platform.Application.IEntityContextService>().GetEntity() as IAccount; In a C# Snippet Action A C# Snippet Action is different than a Code Snippet Action. As the name implies, it can only be C#. This is because it is placed right into the ASCX user control when you build the web platform (and SalesLogix is a C# application). The form, or user control, is called a SmartPart. It has a built in method called GetParentEntity that...

Delivering Data & Schema in SalesLogix Bundles

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.

SQL Stored Procedure to Create SalesLogix Table ID Values

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.

A Deeper Look at Adding Custom Fields in SalesLogix Mobile

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.

Subscribe To Our Newsletter

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

You have Successfully Subscribed!