Barcode Scanning

Hello All,
Is it possible to configure Epicor so that when a barcode gets scanned, the data gets sent to the correct field based off of the Data Identifier? Can this be accomplished with a BPM?

Not following exactly what you mean. A barcode is nothing more than an easy way to type things. Can you elaborate?

Hi Tevin,

I think you’re on the right track to use the barcode to drive the data to the right field. Others have used tabs and tab order but that can get brittle if the tab order changes or the system slows down and overruns the fields.

We are looking at this here as well and I’m imagining a field that we click in and scan the barcode into it and a customization would drive the data into the various fields.

Mark W.

For some labels, like the AIAG format, the data contains “extra information”

The Part number is prefaced with a “P”, the quantity is prefaced with a “Q”, the PO number “K”, etc. The barcode tells you what the data is so the software must strip off the first character to leave you the data but if you know it’s the part number, why not just stuff it in there? Or at least, send an error message if you were expecting the part number and got the PO Number instead.

Mark W.


ah! I get it now, yeah this would have to be customized. We’ve done this a few times but the downside is that it requires customization to each screen no way to globally do this.


Would it be possible to create a “floating screen” that accepted all barcodes and send them to an active screen? You would need some kind of listener in the Epicor form. That could cut down on the customizations. Just a thought…

Mark W.

You would still hve to write the listener on every form…and determine the action…it’s doable but not ez

1 Like

Very true, but at least all of the barcode processing would be in one place. Still a PITA…

I really like the approach of a barcode containing more than just the data. My approach has been to not just fill in the data but make the needed action too. I can’t imagine needing it on a huge number of screens. To me the logical screen to place it on the the main MES screen. I ran into a fun feature on the MES screen when doing that. There are hidden hot keys on the MES screen. For example after an employee has clocked in, pressing “c” closes the screen. My initial barcode had a “c” in it which caused the screen to close…

Now this is my kind of discussion.

I also like the idea of encoding command data - I actually did that this past year to facilitate an inventory using EXCEL and a buttload of horrible VB - worked like a champ, got me some office cred too.

Mark is 100% correct about the potential pitfalls of tabs - we run into that now on my heavily customized inv transfer screen. Of course in our case, our network and E10 servers are not very good on reliability and performance and still we dont have too many problems.

Jose is correct that really the only way to do this (easily) is via customizing every screen you want to affect which sucks. There is the sketchy possibility of installing a global keyboard hook on the OS and doing and some preprocessing but I dont think it really solves the issue of ensuring the proper field is being populated (unless we start utilizing Windows Messages to communicate to the E10 forms… bleh, seems like more work than touching every form customization) - and messing with OS tends to be frowned upon - besides you’d be processing ALLLLLLL keystrokes on the OS.

It would still require key preview on all the forms lest you want to make one massive onChange function that has to be applied to every possible control. Even still - with form key cap, if you want your code to be copy/pastable on every screen, you’d have to keep a standard naming convention on all the references to your controls on each form.

A relevant article:

Now that I’ve rambled - Carson mentioned that you probably wouldn’t have to touch alot of forms, I agree. BUT If you are modifying the part number data on your labels, you would have to modify EVERY place possible you would scan that modified PN to ensure the system understands it (still most likely a handful of screens - but dont forget any programs external to E10 will need some attention too).

Dont forget your selected barcode format will also affect your available characters - definitely would avoid anything less than CODE 128 for this application

I offer up a solution for 12 credits :smiley:

Would it be a better solution to make a separate barcode for the purposes of the form filling in? 2D barcodes (If you have the right scanners) could probably have all of the information that you would need on the screen in one barcode (looks like up to 2000 characters). So you had a listen that just listens for one key combination at the beginning of that 2d barcode and that fires a process that parses out and places all of the information in one scan, that would save a lot of time. You could still leave the 1d barcodes alone for use in other places. You could customize the parsing placing for each screen so that it could ignore information that it doesn’t need.

Bartender can concatenate that information you need upon label creation, and add in the listen special characters and whatever else you need to build up the string to get this to work (like code type labels like the P in front of part number for example), if you are using bartender to create your labels, which I would recommend because it’s a much easier way to make labels.

So the label would maybe look something like this

I really like this idea… too bad I have cheap scanners :cry:

Quick google search for one, first thing I see is $165. If you get one and prove the process, they will pay for themselves in a matter of days.

Another option instead of the listen, is to have a BPM form open on the start of the form, and the scan could happen then and the BPM form could parse the information to the screen. If the listen part is the hardest part of the project, that would replace that without too much issue.

I think I am going to try to get this to work with an MES screen. I will post progress (and obviously questions!) as I attempt to work through this. It may take me a few months to fit it in, but I think would be a worthwhile attempt.

If you can guarantee all your clients are Windows 10 you might want to look at the barcode scanner class.
When I looked at it in the past it looked good and would cleanly separate the barcode scanner from the keyboard.

1 Like

CK71 Handhelds can be configured to capture multiple barcodes at once and you can program how it should process it. In addition, you can have it eat Prefixes (P, K, Q, 1T, S…) [I havent used this feature yet]

You could also try embedding the \t (tab) into your barcode perhaps the UI will treat it as a tabe to the next field.

In E10 I think the PCID Feature is meant to be the “License Plate” and as you can scan it, it would Process all other information.

Just beware whatever you do try to stick to Code39, Code128 - it is very unlikely your company has high-end portable/stationary scanners that support those PDF Barcodes etc… =)

In E9 I created my own PCID but that took quite some work. I know where you are coming from.

I’m dying to learn all about PCID and how to implement it in E10… alas there are only so many hours in the week (including my time on the weekends too)

1 Like

I haven’t used it yet since it wasnt quite ready (In 10.1.400.x atleast only the Setup Screens were ready).

For the time being I have my own PCID Engine which also accurately lets Machine Operators Print Customer Labels taking some weight off the Material Handlers. Handles Mixed/Master/Multi-Master labels and works with BarTender Re-Print Console etc…


Very impressive, sounds like we have similar needs. So where’s that
download link? :joy:

I really would love to hear more about your implementation!

Did anyone make any progress on this? We are trying to implement something like that here and I am not sure what the best way to go about it is.