Move inventory - barcode/Datamatrix scanner inconsistency

Hi Friends. I am working with Honeywell CT45XP handhelds at our company, and we have been using them for a little over a year. I have just put together a customized Datamatrix code that combines the part number, the from warehouse, and the quantity (hard coded to 1 ea.) in a single label so that the pickers can have the information defaulted when they go to pick and a part on the Move Inventory screen. I put the code into the scanner settings on live and on test in 2 different handhelds. The handheld running in my test environment is reading the barcode correctly and inputting the correct part number, quantity of 1, and from warehouse. The handheld running on live has the exact same code (copy and pasted) in the scanner settings and is reading the barcode with the correct fields, except that instead of putting 1 in the quantity field, it is reverting back to the entire quantity that is in the primary bin of the selected warehouse.

Has anyone run into this issue? I have verified that all of the other settings match between handhelds and we recently flashed over a copy of live into test and all of the setting would have carried over then too. I verified that the code in the scanner settings page matches. I have reordered the variables to see if processing quantity last would do anything.

I have noticed that it attempts to put my scanned quantity in the quantity field for a split second and then the app decides to revert it back to the total quantity in the bin. Is there a “pause” that I could code into the barcode to allow epicor to do its weird autopopulate function and then override it with my quantity?

1 Like

Sounds like the scanner is working correctly, and the app is misbehaving.
You can verify in notepad.

Before I would mess with the scanner settings, I would play with the screen a bit more and see if you can nail down the exact behavior.

I’m trying to learn more about barcodes, why a datamatrix and not a QR code?

Here is a good start.
Understanding the Differences Between Data Matrix vs QR Codes: - TechnoMark.

Ah yes, that’s why I went with a QR code last year… the ineligible characters in our part numbers were a hurdle.

QR codes on the other hand are larger and contain more data, such as website URLs, and are capable of encoding information not just in numeric and alphanumeric form, but also in Kanji and other multi-byte character sets.

I switched away from QR after the first attempt because the handhelds would try to search google for the text. We have QR codes in the warehouse for our team to look stuff up or complete external safety checklists on microsoft forms.

1 Like

I see, thank you for the info and the real-life experience with it.

We are working within an application so I’m hoping it doesn’t go out to the internet, but rather inputs the scan into the part text box. So far that’s what it has done.

1 Like

This sounds like there’s an “event” going on that is over-writing your scanned value. Your scan value goes in… but an Epicor event then runs and overwrites it.

I was able to “work around” this by adding some blank textboxes to my form, specifically for barcode scan entry, binding them to transview and then adding some onblur events that then wrote their values to the correct epbinding fields in a sequence instead of all at once.

In my case (working on the “Issue Material” form, you need to load the Job first… Epicor then loads the Assembly list… you choose the Assembly… Epicor then loads the corresponding material list.

Scanning these in directly failed because the system didn’t have time to load data in between each step. (Plus the current fields on the form are drop-down boxes so scanning into them directly had issues).

Anyway, in this case, I had each of these values scanned in and added an onBlur event to my added (material) field. I also have my scanner automatically include a tab after each scan.

So… I scan (1) barcode that contained my job number, assembly, & material sequence. It spit those values into (3) different “scan” fields (I had programmed “tabs” in my barcode so it took one scan and split it into (3) fields)… and then automatically “tabs” out of the last field.

This then kicks off my onBlur (chain) event:
image

The first row-update moves my TransView.Job value to the KeyFields.JobNum Ep Binding

… on success (giving Epicor time to load the Assembly list)… the second row-update fires moving my TransView.Assembly value to the IM.ToAssemblySeq Ep Binding.

… on success… the third row-update fires to move my TransView.Material value to IM.ToJobSeq.

At this point… having automatically “tabbed” out of the Material field, my user can scan a quantity barcode… then a bin barcode, then a lot barcode (if necessary depending on the part being issued).

The bin barcode was especially nice because the UI Form automatically loads the part’s “default bin” location… but my job pick list contains a barcode for the ACTUAL bin location where we have inventory. So scanning this, automatically overwrites the “from bin” value.

Not sure if any of this is helpful to you or not. But perhaps provides some breadcrumbs?

@dcamlin … are you using kinetic forms on a mobile device and building customizations around that specific hardware?

Kinetic forms, yes, but not a mobile device. Just App Studio stuff…

I was able to leave the Epicor base form alone… just added my “Barcode Scan Fields” at the top:

That way, I’m not messing with base functionality at all… AND, users can still issue material manually the old way.

The only thing I never figured out was how to “save” and “clear” the form via barcode scans. So, after scanning, my users have to click save… then clear the form to do their next issue. But they’re doing this in the warehouse on a touchscreen “Surface” so its been a nice improvement for them. Scan-scan-scan… save… clear… wash, rinse, repeat.

3 Likes

Nice David, awesome use case for the kinetic screen :muscle:

@timshuwy you seeing this? :+1:

I know we have mobile warehouse in the mix and I don’t want to downplay how great of a product it is in its own right, just liking what David has done using Kinetic forms.

Hmmm… have you thought about creating a barcode for the SAVE and CLEAR keyboard shortcuts? then the operator could just scan a code to go to the next record.
Save is Ctrl+S… clear is Ctrl+Shift+Delete

1 Like

Hi @timshuwy, yeah, I did attempt this but couldn’t get it to work. Could be a barcode 39 limitation. Code 128 may work better, but I’ll need to test it out further.

1 Like

Okay, finally got a “SAVE” barcode to work. I was missing a setting on my barcode scanner where I had to “Disable Keypad Emulation”. This was a little counter-intuitive because I would’ve thought that I WANTED to emulate a keypad… but apparently disabling this setting allows the scanner to send control characters.

So… incase anybody is looking for these settings down the road, here is my set-up (which I’m sure is different for various scanner/hardware):

Scanner: Symbol DS4308
Scanner Settings:

  • Add a Tab Key after scanned data
  • Enable Code 39 Full ASCII
  • Enable Function Key Mapping
  • Disable Keypad Emulation

Save Barcode (SSRS Expression): =“" & “$S” & "”

Now I just need to figure out the “Clear”. If I can’t figure out the expression, I may try to just add a Clear event in App Studio (after SAVE).

3 Likes