A Small Sample of Amazing Things We’ve Done

Please Contact PracticalTek Sales with any questions or interest regarding the items below.


Master Pack Customization – Created a customization inside the Master Pack Screen that allows for the processing of shipments. The enhancement allows for the closing, staging, and shipping of a master pack from three check boxes added to the top right of the screen.

Part Number Generator – In Part Maintenance, when creating a new part, the user will be asked a number of questions regarding the new part being entered. Based on the responses, the solution builds the next available part number concatenated with values based on the answers provided.

Master Pull Sheet – This report displays the total number of pieces needed to be pulled for a part for all open orders. It displays this information in three areas: One, is a Summary view which only shows how much to pull and from which bins. The second part shows all the bins and how much to pull from each bin. This second area allows the person pulling the material to look at the bin quantities as they pull, making it easy for them to check bin quantities as they go. The third section shows the detail section of the quantities displaying each order line for each part and the order quantity for each order line.

Non-Conformance Buttons – In the Non conformance screen, we created 3 buttons on three different tabs (Operation, PO Receipts, and RMA), called “Create Job”: When clicked, code would execute using the values displayed/loaded in the screen to create a Job automatically, schedule it and then release it. 

Customer Shipment Notification – At the time a shipment occurs, it notifies the customer their shipment has gone out via an email. The details of the email include: Job Number, their PO, Date, Time, Part, Quantity, Carrier, Tracking Number, Weight, Number of Packages, Freight Cost, etc.

UPS/FedEx Integration – Built a solution to execute the UPS/FedEx <-> Epicor® interface Process step via a schedule to run every 5-minutes, 7-days a week.

Recursive Linking for Dynamic Query Extraction – The query’s objective was to grab all parts that had been sold in the last two years. Although, it also needed to include the Components that went into that part as well as the sequential BOM Levels (0,1,2,3). Then, finally combine that with a list of Part Numbers that had an OnHandQty of Zero. Each query higher in the tier increases the depth and complexity of the query. They were all separated to ensure that the validity of the final query could be verified in simpler ways.

Automate the Approval Process and Revision for Specifications – We added an Inspection Attributes tab that utilized custom tables to store additional attributes for each specification. Additionally, we automated the approval process entirely, as well as, auto-generated revisions and defaults. This simplified the revision and approval process while allowing them to create more detailed Specifications.

Create Jobs from the Non conformance Screen with a Button Click – In the Non conformance screen, we placed buttons in the Operation, PO Receipts, and RMA tabs. When clicked, these buttons would use the fields from each associated tab to auto-generate Jobs. Not only that, after creating the Jobs, the screen would automatically schedule and release them.

Receive PO Lines by Simply Clicking on Them – In the Receipt Entry screen, we added a grid that displayed all the PO Lines yet to be received.  In this grid, if the user double-clicked one of the rows, the screen would automatically flag the line as Received.  This drastically reduced the receipt entry process for this customer.

First/Last for Every Row in a BAQ – If you want a first/last return for every row in a BAQ, this method will work for you. This method does have its limitations as well. Using this method, you can only return one column per sub query. So, if you wanted five fields for your query to be a first or last field, ten you would need five subqueries.

Extracting a Large Amount of Data Using a Command Prompt and DMT. (Requires Epicor® 10.1 or later) – Extracting data out can be a cumbersome task and very time consuming. Running a DMT extract via the command prompt is much easier and quicker. It utilizes a BAQ that pulls the data and then writes the data to an excel file. All this is done automatically by typing a few commands into the command prompt and then letting the program do the rest. This is a great feature that can save clicks, reduce time, and make data extracts less painful for DMT.

Change the Number of Returned Records in any Search Window – Ever tried viewing a large portion of your parts in a search window inside of Epicor®? By default, the system sets a small number of records to return every time you run a search. Some customers require a larger return of records for parts, sales orders, jobs, etc. This default setting can be changed to show more records in any Epicor® search window and can be changed on a per client basis because not every person who runs Epicor® needs to see a large number of returns. Not to mention, having the ability to set this on a per client basis keeps performance impact at a minimum.

Using PowerShell and SSMS to run DMT – Automate DMT Extractions and Data Loads using PowerShell and Management Studio. Also, receive email notifications when extraction/loading completes.

Access to Two datasets in 1 Tablix – Used a subquery in the Select statement to reference the BAQReportParameter Table with the same GUID. This data didn’t need to be linked on anything specific because the Parameters table applies to all fields. The below was a simple yet elegant solution to the common one dataset per Tablix problem.

Seconds from Midnight Converter – Epicor® stores some of their times as Seconds from midnight. We made a tool in to convert that. Works both ways, integer to time, time to integer.

CSV – SQL Tool – Tool primarily used for DMT. Templates can have upwards of 150 fields, so instead of writing out every single possible field that could be used. This simple program takes any CSV DMT template that is formatted for Epicor®, and converts this file into a text file that can be used to directly copy and paste the query into SSMS for populating. No Spelling Errors, No Fields missed.

End Activity/Start Activity Streamlined – With current Epicor® functionality, the user would need to complete an Operation via the End Activity step, fill out their values and click “OK” to complete that Operation. Moving to another Operation would require them locating the “Start Setup Activity” or “Start Production Activity”, reference the Job, Assembly and Operation before being able to truly kick off that Operation. PracticalTek developed the functionality to allow a shop floor user to seamlessly go from ending one Operation activity and moving onto another Operation by adding custom button to MES screens. Example: Adding a ‘Start Activity’ button to the ‘End Activity’ screen in order to save clicks.

Next Operation Indicator – We developed a solution that displays the next job operation in the footer of the Job Traveler. This was used as a safeguard to make sure there are no missing pages in a Job Traveler and also quick reference. The ‘Final Operation’ is also indicated as such. This solution can be extrapolated across data with multiple rows for one field. (Ex: Job Operations, Assemblies, Line Items, etc.)

MES – End Labor Activity Screen – We put a stand-alone application inside of an existing Epicor® screen. Specifically, we created a Job Traveler application and embedded it in the End Labor Activity screen. It sped up production on the floor by reducing the amount of time the user spent on data entry. Have a need to make some quick updates without loading another screen? Want to streamline data entry? This is one way to accomplish that.

Method Tracker Button – We placed a button in Sales Order Entry that opens up Method Tracker. When the button is clicked, Method Tracker opens up and automatically loads the PartNum that was selected/highlighted in Sales Order Entry screen. Allows users to quickly open and load relevant screens and information when entering in data. It speeds up workflow. 

Report Print Screen – In a BAQ Report screen, we added the ability to Drag and Drop files that were attached and displayed when the Crystal Report ran. Need a way to attach and print a file that’s separate from a Crystal Report? Need to Drag and Drop a file for any other reason? This may be the solution for you.

Customer Maintenance – We added multiple user defined tables to meet the customer’s complex customer setup and relationship model that spans the globe. This Customer Maintenance screen also utilizes a Zone BAQ to load the Customer. You can use User Defined (UD) tables to store additional data in your Epicor® environment. UD Tables can be linked to and added to any screen in Epicor®.

Sales Order Columns – We used a BAQ to display multiple columns in a drop down. Most of Epicor’s® drop downs display only one column when clicked. Our client had multiple Bill To records for each of their customers, and these Bill To records often had the same name but different addresses. We used a BAQ to not only show the Bill To name, but the address as well. This allowed their users to make the correct choice the first time.

Syncing Sales Order Entry – Synced Epicor’s® Sales Order Entry screen with a 3rd party ERP Order Entry System. This requirement was very business specific, but it’s important to inform you that it is possible to link Epicor® to other ERP systems in real time.

Order Lines – Gave users the ability to Copy Order Lines in the Sales Order Entry screen. One of our customers in the medical field needed the ability to duplicate Order Lines. Before we developed this solution, their users had the grueling task of entering in data over and over again.

MES – Multiple Job Scrap Entry – We created a Scrap Entry screen that allows the user to enter in Scrap data for all of the jobs that they are clocked into.

Job Entry Search – We gave users the ability to search through and select a Material PartNum in the Job Entry screen.

Get Default GL for PO Line – Many of our customers have asked us if there is a way to get the default GL Account for a Purchase Order Line Item in the Purchase Order Entry screen. These customers understood you can go to the Release for the PO Line Item and click the “Get Defaults” button to get the default GL Account, but they wanted this to happen automatically after adding the PO Line Item. Using C#, we were able to get the default GL Account to fill in automatically after the user enters in or changes the PartNum for the PO Line.

Purchase Order Due Date – When the user saves, the BPM checks to see if there is a Due Date for the purchase order. If there isn’t, the BPM prevents the save and notifies the user that the Due Date is required.

Sales Order Discount BPM – After the user clicks the “Ready to Process” checkbox, a BPM checks to see if any of the Order’s line items have a discount greater than 20%. If one is found, an email is automatically sent to management for review.

Sales Order Category – When the user first adds an Order Line, the Sales Category is automatically defaulted to “Products”.

Customer Shipment Email – After the user checks the “Shipped” checkbox, an email is automatically sent to the customer contact to let them know that their order shipped.

Quote Entry – When the user saves on the Quote Entry screen, a BPM checks to see if the sales person entered a unit price lower than the target sales margin. If this is indeed the case, the BPM pops up a message notifying the user that this has occurred. The user is still allowed to save the record, but they are notified that they are under target before doing so.

Customer Shipment BPM – After the user checks the “Shipped” checkbox, the BPM checks to see if the Ship Via for the shipment matches the Ship Via selected for the Order. If they don’t match, management is notified via email that the Order was shipped using a different Ship Via than what was selected when the Order was put in.

Case Entry BPM – When a case is closed a series of actions kick off to close the case in Epicor®. Unfortunately, there is no single field that flags a case as closed. To remedy this, we built a BPM that checks a User Defined checkbox (UD field) when the user closes a case.

Attachments – Updated over 3K records in the attachments table. This customer needed to change their server name that held their JobNum attachments. As a result, their attachments no longer worked.

Sales Order Drop Fee – After saving the Order record, a BPM would check to see if a “Drop Fee” was created. If not, the BPM would ask the user a Yes or No question, and act accordingly based on the user’s answer.

Quote Entry QOH – Immediately after entering in the Part, the BPM would go out and find the Quantity on Hand (QOH) for the Part and display it to the user in a pop-up.

A Number of Reports (SSRS and Crystal) Including:

  • Bill of Material Single Level Cost
  • BOM Cost Estimating Report
  • Late Order Report
  • Job Historical Review Report Un-Suppressed Details
  • COC’s
  • Labor Edit Report
  • Negative On-Hand Qty
  • On Hand Qty by Location w/ or w/o Primary Bin
  • On Time Delivery Performance Report and Graph
  • Order Ship Address
  • PO Lines by Vendors
  • Production Hours by Project
  • Safety Stock Analysis Export to Excel
  • Shipments by Country by Date Range
  • Shipments KPI
  • Product Efficiency Report
  • Detailed WIP Report
  • Jobs in Process
  • Dead WIP Report
  • Material Issued to Jobs
  • Part Lead Times
  • Expected Receiving’s
  • Vendors Flagged for Inspection
  • Inventory with No Activity
  • Supplier Receiving’s and DMRs
  • Sales Order Backlog
  • Supplier Ordered Quantity vs. Received
  • Etc.

Numerous Dashboards Including:

  • MES – Scrap Entry
  • In Process Job Costs
  • Part Info Dashboard
  • Project Dashboard
  • On Time Shipment
  • Parts Requirement
  • Etc.

PracticalTek also offers a Tips and Techniques Course designed to provide information that can increase navigation skill, efficiency and productivity. This course will teach users things such as:

  • The ability to drastically increase the speed in which selected programs launch.
  • The ability to display or hide certain columns in a list view. Information you need could be hidden by the system.
  • Automatically loading Search Menus in Trackers.
  • Personalizing the look and feel of your Epicor® experience.
  • Setting up Hot Keys and personalizing the Toolbar.
  • Setting up Real-Time alerts like Global Alerts and Shop Warnings to provide notifications when certain criterion are met.
  • Linking Attachment records in the system.
  • Creating a Favorites group that holds only the programs you use.
  • The ability to leave notes for other users in key programs.
  • Many more!

Load Builder Application – The Load Builder application is one PracticalTek built for a customer who had rather complicated loads placed on their trucks

These loads included parts shipped to their customer, as well as, containers that housed additional parts. They needed to track quantities, weights, JobAsms, JobMtls, and needed to record other specifics pertaining to everything on the truck. Furthermore, they needed to ensure the items added to the truck were both accurate and necessary.

The Load Builder application allowed them to do just that. After opening the screen, they would specify parent records. The parent data, more or less, went by the Sales Order Number in Epicor®.

MetGrade – This solution helped the customer track whether or not certain purchased part materials were within spec (min/max) when the material arrived at their facility. LS is involved in metals and they test them to ensure the makeup of the metal fell within their needed specifications.
They called these specifications “MetGrades” (material grades).
We tied a MetGrade key value to several UDTables, as well as, the RcvDtl table and the Part table. This was so they could tie a MetGrade value directly to the incoming part when it was received.
Once the part was received, Quality control would take the part and inspect it. Those inspection values were handled by this solution.

LS WIP Inspection – This solution helped the customer track parts that were in process. The user can create attributes they want measured. Then by part number, create groups of attributes and their tolerances to be used in an inspection process. The inspection process is done by Licenses Plate Number and Part Number, each job/part having a unique Licenses Plate Number.
This solution uses UD tables to store these values. Five UD tables in total are being used.

MES – MES, or Manufacturing Execution System is a streamlined Epicor® experience designed for the shop floor. It can be installed on workstations around your production environment to allow for shared use by employees. Rather than the traditional Epicor® menu, MES provides only programs related to the user’s role(s), and allows for faster data entry due to the streamlined approach.

PracticalTek Professional Services

Hover Over Any Of The Icons Above For More Information On Epicor® Services

Reasons To Switch To Epicor®

Specific industries that Epicor® covers include:

  • Aftermarket automotive
  • Building and lumber
  • Distribution
  • Manufacturing
  • Retail
  • Service-oriented businesses
  • Bio-Tech

Epicor® might be the best ERP system for your business if you need a full-featured platform that’s tailored to your size needs, especially if you’re not looking to invest heavily on in-house IT growth.

Epicor® blends function and cost to create a compelling experience for businesses of any size, making it a top ERP software package we recommend.

PracticalTek is an Epicor® Independent services provider