Professional Epicor® C# Customization

The release of Epicor® 10 increased the need for C# skills.  Though customizations can still be coded in VB.NET, it is not recommended (especially since you lose Web Access).  C# gives you all the features you need at a stable and lightning fast speed.  Further increasing the need for C# is BPMs.  In Epicor® 10, BPMs no longer use progress code.  It has been replaced with C# instead (LINQ).

The shift to C# may cause some concerns for your custom work, metrics, reporting and other packages, especially those created by third parties. Custom code isn’t guaranteed to survive the transition, and the Epicor® upgrade process won’t be able to ensure that all of the functionality you’ve come to rely on will continue to operate.

Don’t let previous developers leave you stranded or face issues with a third-party-developed install package from years ago harm your operations. It’s time to get professional consulting.

PracticalTek Knows C# Customization

The truth is, C# is nothing new to our developers. We’ve been coding in C# since before Vantage® 8.

Your upgrade may be leading to new areas, such as data sets being defined in assemblies that are no longer referenced, or you might be missing assemblies completely. BPMs have changed, and some users are reporting problems with old options because the import file is no longer correct. You’ve probably run across a variety of .bpm, .i and .p extensions but aren’t sure what to do with each.

Solving all of that requires a specific knowledge of both Epicor® systems and the C# language. Lucky for you, that’s exactly what we have at PracticalTek, and it’s exactly what we deliver at affordable rates for all of our clients.



Talk to a C# Customization Expert



To help you understand what we offer with C# customization, here are some C# examples.

Img 56cddcf26de28

C# Example 1: Sales Order Entry


What we did: Added a selection the Actions dropdown that allowed the user to print the Pick List report, using the Order Number loaded in Sales Order Entry. 

Img 56defef606d68We get this request C# customization a lot: add something to the actions menu drop down and open it by passing values to it.  In this case the customer wanted to load a Sales Order number in SO Entry, and Print the Pick List using the same Sales Order number.  Custom C# code accomplished this quite nicely. It’s a core Epicor® function that you’ll use, and we’ll save you time and limit manual entry errors or formula missteps through this simple C# update.

Img 56deff46e1f68

Img 56cddcf26de28

C# Example 2: Time Phase Inquiry


Img 56defef606d68This C# solution was done in Epicor® 10.  The customer was satisfied that they could now filter the “Source” column by whether or not it contained the word “Forecast”.  We declared the grid in C#, and set a filter to it based on the checkbox value. The C# customizations the PracticalTek team focused on are functional ways to improve your operations, but as you can see we ensure they’re visually appealing and easy to navigate from the very first use.

Img 56df00be5b2a3 1024x327

Img 56cddcf26de28

C# Example 3: Hand Held – Unpick Sales Order Form


What we did: PracticalTek knows that picking can sometimes be a challenge.  For this solution users wanted to be able to print a Pick Label from their handheld device by a simple button click.  They wanted to load an OrderNum and Line, click the button, and there’s the Pick Label.

Img 56defef606d68Using C#, we built a print button and placed it at the bottom of the Unpick Sales Order screen.  When users clicked this button, the Pick Label would immediately print (completely skipping the report print screen).  This was accomplished with C# code in both the Hand-Held Unpick screen, and the Pick Label report (print screen).

Design functions like this placement allow your staff to have a more seamless integration of the technology they use and can help you slowly introduce new procedures and equipment with minimal interruption in the data you track and picking they perform.

Img 56df024db6216

Img 56cddcf26de28C# Example 4: Build a Dashboard Using C#


What we did: Built a dashboard that was actually a customization written entirely in C#.  If you’re wondering “why on earth would you do this?” you’re absolutely right.  That’s a completely valid question.  In Epicor® 9 there are some limitations to dashboards, but they are few and far between.  One of those limitations is the inability to select multiple records from a search.  Our Customer needed to do just this, so we built them a C# solution.

Img 56defef606d68Using nothing but C# code we built the dashboard our customer needed.  The screen below looks like a dashboard, but it’s actually a customized screen. Epicor® C# customizations from PracticalTek are designed specifically to meet goals and overcome limitations in the system. We’re not out to do the same job as Epicor® — instead, we’re working to make sure it functions in the most useful way for your business.

Sometimes that’s a custom C# screen, and at other times it means working within existing dashboards to add the layers you need for better access to your data.

Img 56df02a87150f

Img 56cddcf26de28 C# Example 5: Engineering Workbench


What we did: Our customer’s users needed to adhere to a strict ECO naming convention that was maintained via a UDTable.  Rather than allowing users to enter in their own ECOs, we built a button that automatically generated the “Next ECO” record based on the data from their UDTable.

Img 56defef606d68For this solution we built custom C# code inside the Engineering Workbench, as well as, BPMs (written in C#) that helped to populate the “Next ECO” value.  Essentially, we had our C# code in the Engineering Workbench “communicating” with our BPMs that were also written in C#. The operation went smoothly, and is designed in a way that works with future growth, plus still functions properly in the event of a migration or significant update.


C# customization from PracticalTek is designed to give you all of the power you need in your ERP environment. We’re able to build custom functionality, repair missing or broken capabilities after a migration and restore custom operations that were lost when you upgraded to Epicor® 10.

Want to see us in action? Contact us now for an estimate to build the functionality you desire and to learn more about our process.



Schedule C# Customization Services


Img 56df02fdbf1cf 1024x537




The information on this web page is provided by PracticalTek, LLC to its prospective customers and clients conditioned on your acceptance of the terms and conditions of use as set forth herein. By reviewing, browsing, accessing, using and/or downloading information from this site, you agree that PracticalTek, LLC is providing and you are using the information provided for educational or training purposes and that PracticalTek, LLC is not receiving remuneration for providing this information. Furthermore, you agree not to sell, reproduce, modify or attempt to modify the information provided nor reproduce, publish or distribute the materials. Unless otherwise noted, all materials are subject to intellectual property rights including copyrights and trademarks held by or licensed to others. In no event shall PracticalTek, LLC be liable to you for accessing this website. PracticalTek LLC is an Independent provider of Epicor® services and is not a partner.