back to top

Viewing SalesLogix Sales Process Details in the client

The SalesLogix Sales Processes allow users to create a set of repeatable stages and steps to help automate the selling process.  While these processes are a boon to the sales person they can be a pain to have to work with as a developer since their details are not readily exposed.

Sample SalesLogix Sales Process

As the above screen shot shows, managing the Sales Process is easy to do from the Tools…Manage…Sales Process area of the SalesLogix client.  However, the details of what comprise a Sales Process is actually stored in the Plugin table.  Sales Processes are plugins with a PLUGIN.TYPE = 1.  If you query a row in something like SQL Query Analyzer using something like:

Select * from plugin where type = 1

You will see the contents of the Sales Process are contained in the Data column and are serialized to be unreadable. 

SalesLogix Plugin Results in SQL

The same query done through the SalesLogix Administrator’s  Execute SQL function actually shows the data is a serialized XML data set:

SalesLogix Plugin Results in Administrator

Since we have the XML data we should be able to work with it.  Luckily SalesLogix has implemented a function for extracting plugin data from its serialized format to plain text.  Using the GetPluginText function implemented in the application.basicfunctions class allows us to do this.  The function requires passing in the plugin’s family and name seperated by a colon, like shown here:

strxml = application.BasicFunctions.GetPluginText(strFamily & ":" & strPluginName)

Now that we have the data extracted we can use standard XML calls to read the Sales Process data.  Let’s take a look at how you could read all of the stages that exist in a Sales Process.  With the XML extracted to plain text using GetPluginText we can do something like this:

       xml = application.BasicFunctions.GetPluginText(strFamily & ":" & strPluginName)
       Set objXMLDoc = CreateObject("Msxml2.DOMDocument")’DNL
       objXMLDoc.async = false
       If objXMLDoc.loadXML(XML)= False Then
           msgbox Application.Translator.Localize("Invaild Sales Process XML in plugin: ") & mPluginName
           Exit Sub
       End If

      Set objContentSetsNodes = objXMLDoc.documentElement.selectNodes("//SalesProcess") ‘DNL

      Set objNodes = objContentSetsNodes.Item(0).selectNodes("//Stages").Item(0).SelectNodes("Stage") ‘DNL
      ‘Resize the dynamic array
      Redim mArrColorTheme(objNodes.length)
      For i = 0 to objNodes.length – 1
          strStage= objNodes.Item(i).selectNodes("//Stage").Item(i).selectSingleNode("Name").Text
          msgbox strstage

      Next

This code goes into the top <SalesProcess> node, looks for the <Stages> node and then, within it, loops through all of the <Stage> nodes and returns all of the <Name> attributes back with a message box.

Not too bas, but a little bit harder than if the process definitions were stored somewhere other than the plugin table.

Contact Customer FX for your CRM project
We let our expertise speak for itself - let us know how our all-star team can help on your CRM project
About the Author
Kris Halsrud
Kris Halsrud
Kris Halsrud is a Senior Analyst / Developer for Customer FX Corporation.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Infor CRM Sync for Exchange: Action Required by August 31, 2026

Using Infor CRM Sync for Exchange with Microsoft 365? Your Exchange administrator must update tenant settings by August 31, 2026 to prevent sync disruption.

[Webinar] What’s Coming Next for Infor CRM SLX and Why v10 Matters

See what’s coming next for Infor CRM SLX, including new marketing workflows, automation improvements, and reasons to consider upgrading to v10.

Disable Caching in Infor CRM SLX Web Client

In the rare case caching is causing issues in the Infor CRM SLX web client, it is possible to disable specific types of caching by making edits using Application Architect, and then deploying.

Exploring AI Options for Infor CRM v10

I've started taking a closer look at the AI capabilities built into Infor CRM v10. Over the next several posts, I'll share what I learn. From the built-in features and supported AI providers to implementation considerations, costs, and practical use cases.

Infor CRM SLX 10.0: Delegate Ownership Changes for “Everyone” Records

Learn how the new EveryoneOwnerAssignment secured action in Infor CRM SLX 10.0 allows designated users to change ownership of Everyone-owned records without requiring Administrator access.

Related Articles

Infor CRM Sync for Exchange: Action Required by August 31, 2026

Using Infor CRM Sync for Exchange with Microsoft 365? Your Exchange administrator must update tenant settings by August 31, 2026 to prevent sync disruption.

[Webinar] What’s Coming Next for Infor CRM SLX and Why v10 Matters

See what’s coming next for Infor CRM SLX, including new marketing workflows, automation improvements, and reasons to consider upgrading to v10.

Disable Caching in Infor CRM SLX Web Client

In the rare case caching is causing issues in the Infor CRM SLX web client, it is possible to disable specific types of caching by making edits using Application Architect, and then deploying.

Exploring AI Options for Infor CRM v10

I've started taking a closer look at the AI capabilities built into Infor CRM v10. Over the next several posts, I'll share what I learn. From the built-in features and supported AI providers to implementation considerations, costs, and practical use cases.

Related Videos