Select Page

Epicor Configurator Upgrade: Some Reassembly Required

All About Epicor 10.2 Product Configurator

With the festive season charging forward like a white-tailed deer dodging a hunter’s shot, I began to reflect on some of the holiday gifts I had received as a child. I remember finding my brightly colored box named for me, ripping through the wrapping paper with glee, anxious to find just what was bottled up inside the cardboard box of the year—normally some elaborate plastic play-thing, composed of more components than angels on a pin. Pulling open the cardboard gates, I routinely discovered that the contents of a box never quite resembled the shiny images on its outer face. That is, there was one pivotal phrase that stood between the receipt of a gift and its actual usage: “Some assembly required.”

That single phrase was as impassible and looming as the Sphinx. Upon reading this riddle, I would rush to my father and beg him to figure it out for me, and in typical holiday spirits, he would lay his eggnog aside and curse his way through the necessary assembly. The lessons learned through these experiences stayed with me into adulthood. Now, as I’ve perused the aisles of the local box shop, looking for a suitable gift for my own, I’ve quickly learned to spot the familiar warning—and move on. I’ve become known as the parent who has bequeathed gifts like modeling clay for the holidays. It encourages the imagination, I’ve claimed. Moreover, there is no way for a parent to botch its assembly!

With Epicor’s version 10.2 similarly cresting the horizon like a jolly old man in a flying toboggan, I’ve come to notice how customers utilizing Epicor’s legacy Product Configurator react to the idea of an upgrade in much the same way I’ve reacted to a 600-piece dollhouse—they duck into the next aisle. In any version, Epicor’s Product Configurator is a complex module—it is part functional setup, part development toolkit. And companies spend a lot of work in developing the configurators that will support their business requirements. That is, there is a lot of assemblies required, once this gift is unwrapped. And the idea of reimplementing Epicor 10 configurator for a new version feels, to some customers, like their dollhouse just got smashed, and they are required to reassemble it again, only now with a new set of assembly instructions.

In spite of these understandable concerns, I believe Epicor’s 10.X configurator platform is a tremendous improvement to its previous iterations: it is more scalable, more flexible, and allows for better-designed solutions that yield a better end-user experiences. And try as I might, I can find no CPQ solutions made of modeling clay…

While there are no easy instructions when it comes to upgrading Epicor 10 configurators, I have found, in working with customers, that there are a few lessons that we’ve learned, lessons that could be thought of as “reassembly instructions.”

A few might include the following:

I have found that it benefits customers to run an early initial trial upgrade of their existing Epicor database, strictly for purposes of reviewing the upgraded configurators. With each new version of 10.X.XXX, the upgrade process gets tweaked and improved, so issues upgrading configurators in one version may be resolved in another, and the upgraded configurators may be sufficiently intact, as to constitute a decent starting point from which to begin their efforts.

In terms of business logic, companies benefit when they look for opportunities to utilize UD methods in lieu of the on-leave event handlers in legacy versions. These can be a helpful way of centralizing code, and even a nice way just to pull it out and give it a clear and distinct definition, which allows for more logical designs and greater maintainability.
In terms of Method Rules, companies should look to consolidate the many individual rules from legacy versions into single statements in 10. In the Epicor 10 configurator rule designer, the option to “execute specified expression” allows for great freedom in developing blocks of code to update multiple fields at once. This allows customers to consolidate all of their efforts into a single place, which usually makes for better maintainability.

In most cases, the development of a solid C# skillset is a must for working in configurator 10.X, in much the same way that Progress ABL/4GL skills were central to Epicor’s legacy configurators, particularly if the configurator being upgraded has a lot of custom code to manage its business logic.

Converting code need not require a .net savant. There is the web page for converting 4GL to C#–that can get you in the ballpark, one block at a time. But for the absolute novice to C#, it helps to have someone available who has worked in C# and Progress-based configurator environments.

C# has a few particularities that are critical to handle right away, as they will prevent a block of code from passing syntax check. These include:

The use of a semicolon: all statements end with a semicolon.

Braces: multi-line blocks of code (such as if-then blocks, switch statements, or for each blocks) are wrapped in braces (“{}”).

Case Sensitivity: C# is a case-sensitive language. That is, the .net compiler will interpret “cmbPartNum” to be something other than “cmbpartnum.” This is an infuriating peculiarity for someone coming from a Progress environment, where the case did not matter.

Object Orientation: in the .net platform, interaction with any program involves the use of object properties and methods. This involves commands that differ somewhat from the legacy design. For instance, a command to update a field in 10.X, you might look like ‘Inputs.chrPartDesc.Value = “lalala”’ whereas the same command in the progress-based configurator would look like “chrPartDesc = ‘lalala’”. Understanding these small differences can go a long way in making steady progress in configurator conversion.

I find it a good approach to have a customer review their existing configurator code base prior to the upgrade, and identify each unique king of logical activity they perform. This might include, but is not limited to the following:

  1. For each loops
  2. Switch Statements
  3. If then else logic
  4. Reading UD tables
  5. Writing to UD Tables

From there, the customer can develop a solution catalogue for addressing each unique code construct—how the each unique activities performed in Progress 4GL would be performed in C#. The idea here is to document each code conversion best practice, so you don’t have to reinvent the wheel the next time you encounter the same construct in another configurator.


So, with the festive season approaching, consider giving yourself the gift of an Epicor upgrade. Yes, there is some assembly required, but not as much as you might think, and once assembled, it will keep the kids busy for the next ten years. Moreover, have you ever tried to pick modeling clay out of your carpet?

Running on Old Drumsticks – Moving Beyond Epicor’s Legacy Versions

Running on Old Drumsticks – Moving Beyond Epicor’s Legacy Versions

In some ways, enterprise applications are like professional athletes.

There is a period of promise. There is a period of inconsistent, but incremental growth, which culminates in a period of eminence and excellence. Then, there is the period of slow decline, of lowered expectations, and eventually, the time for a replacement. For every Joe Montana, there is a Steve Young, for every Brett Favre, an Aaron Rogers. But ERP vendors have one advantage that us mere mortals lack. While it’s terribly difficult to reprogram a creaky knee or a sore arch, it is possible to reprogram an enterprise system.

To paraphrase Marcellus Wallace,

Some athletes think their bodies will age like wine. If you mean it turns to vinegar, it does. If you mean it gets better with age, it doesn’t.

As an Epicor ERP implementation consultant, I’ve stepped into many organizations whose business systems, to keep with the culinary motif, have more gristle on them than a bucket of secret recipe chicken. Their basic structure is like a freezer-burnt fry hen. And since it takes more spice to make an old bird taste good, their aged systems have become harder to maintain, harder to support, harder to extend or reconfigure.

The secret recipe I recommend to these Epicor ERP implementation clients is to begin with a new bird. It is possible to take an aging platform and replace it with a more current, more robust platform, one fit for future endeavors.

It is also possible to do all of this while still retaining the original flavor—competencies, and capabilities of the application that have differentiated it from its competitors. Epicor spent the last few years doing just that—replacing its aged legacy architecture with its version 10 application: a full-stack Microsoft platform, a platform that makes it more scalable, maintainable, and versatile than it ever was. For Epicor customers who haven’t made an ERP software upgrade and are living on its legacy versions, a migration path has provided them with the programmatic equivalent to a Canterbury spring—the fountain of youth.

Still, many Epicor customers are hesitant to make the jump from their legacy 803 or 905 version of the software to its new version 10 manifestation. In working with customers, I’ve found that companies often have a few distinct challenges preventing them from making the jump:

Epicor ERP Customizations:

  • Companies that have significantly customized the application in its legacy version fear that it will be impossible to bring them up to version 10 without chaos. They fear that Humpty Dumpty will not come together in 10, as he had in the legacy version.

Epicor ERP Product Configurators:

  • Epicor’s Product Configurator module is a challenging and complex module to master, in any version. With the advent of version 10, the architecture of Epicor’s Product Configurator module changed dramatically. Companies that have dialed in their legacy configurators may shirk from the effort to redesign the wheel in a new version.

Epicor ERP Crystal Reports:

  • With the move to a Microsoft-centric stack, Epicor moved from the Crystal Reports to SQL Server Reporting Services (SSRS) as its reporting platform. Customers comfortable with Crystal may be hesitant to go through the effort to replace their suite of custom Crystal reports with their SSRS concomitant.

But the challenges in moving to version 10 are not insurmountable. In a recent webinar, we discussed some of the methods that one could employ to overcome these challenges. In subsequent posts, I will further discuss these methods. Our goal at the Estes Group is to make it such that the benefits of moving to Epicor’s version 10 platform outweigh the risks and the costs.

So if you’re on a legacy version of the application, and if you’re tired of running on an old set of drummies, come check us out—we’d love to talk with you, and help get your company running again.


Watch Our Webinar “De-Risk Your Epicor Upgrade” for Useful Tips and Tricks. 

Have a question? Ask us any question you have about Epicor and your legacy version. Let’s see what lies on the other side of your ERP upgrade.

Epicor ERP Data Management Tool, The Tool That Keeps On Giving

Epicor ERP Data Management Tool, The Tool That Keeps On Giving

I like to peruse the Epicor-related message boards on a semi-regular basis. Usually, I’ll find something nice, and occasionally I can help someone with a problem they’re having.

Sometimes, a poster will suggest using DMT to solve a problem and the person says, “We don’t have DMT licensed.” It usually takes me a while to get over the shock.  Well, shock is a strong word. Dismay, disbelief, incredulity, maybe.


Epicor’s Data Management Tool is just too handy an appliance for a customer not to have. Sure, there are ways to get data into the ERP system without it.

First, there’s the manual way: put your fingers on the keyboard and get cracking. Your great-great-grandchildren will be colonizing Alpha Ceti 6 before you get done.  Paste insert/paste update is a good way to get certain lists entered, especially for setup tables. Units of measure, FOB, AR Terms, etc. are good uses for this handy functionality.


But for crunching in the big stuff like customers, vendors, parts, and manufacturing methods, where the record counts grow, you must have it.  Consider that a typical manufacturer might have 10,000 – 20,000 parts, 25,000 operations and 100,000 bill of material records. This data management software makes this possible in a reasonable time frame.  And it handles the complexity so you don’t have to.


Here’s an example. When you enter the bill of operations, it’s one Excel sheet. Epicor ERP’s Data Management Tool in the Epicor 10 upgrade sets up the main record, plus all the default resources, etc. in several tables.  You don’t have to worry about it.


DMT interfaces with Epicor’s “business objects” to make sure your data follows the rules.

Try to enter a BOM record without its related operation? No can do. Operation without a part revision? Customer with no sales person set up? Uh-uh. The data has to go in its natural order, just as if you were manually typing away.  DMT respects the logic of the Epicor business objects.


With direct SQL updates (just say no), you can unintentionally corrupt your database. While you can add or delete records you don’t mean to (it’s a powerful tool, after all), it’s really hard to damage your database with DMT.


Some folks use the DMT as a part of their daily business processing. You can load transactions up in an Excel file, and away you go.  It has great utility “utility,” too. I’ve seen a bad inventory part record where you couldn’t open it in Part Maintenance. Just load it into DMT and update something, the part description maybe. It doesn’t even have to change. Boop! Problem fixed.


Not sure you need DMT? Think it’s too difficult to master? Give us a shout. We’ll walk you through its benefits and operation.


Learn from our Webinar Replay:

De-Risk Your Epicor ERP upgrade

Author Bio:

Joe Trent is a Senior Consultant with The Estes Group. He has over 35 years of experience in manufacturing and distribution systems, in software development,
implementation and use.