Handheld scanners

looking for information regarding handheld scanners - company had them set up but lacked wireless connectivity issues - looking at reconnecting them and using kinetic warehouse.

What info are you looking for Robert?

We own the Honeywell CT40 with the Epicor Mobile Warehouse software. They seem to work well, but the combination of hardware and software is quite expensive. We are a relatively small company, so we only went with two devices.

If you have a developer that can create Epicor integrations, and find that you only need a few features from the EMW software, I would recommend a custom web-based tool and less expensive Android devices (basically any decent device with a barcode scanner that can open a web browser). I know some others on this forum have done that.


Great input Andrew!

We use CK65 LR for the forklift drivers, EDA51 for some of the warehouse staff, EDA71 for the Line Mangers all with Mobile Warehouse.
The CK65s have a physical keypad prioritizing the number entry.

Our warehouse staff have been loving the Zebra TC21 scanners we got for them middle of last year. Also Mobile Warehouse. However, they did have me write a method directive to re-sort the material list when issuing materials. They wanted it sorted by the Bin.BinSeq of the part’s default bin or the bin with most on hand (chosen in that order), then by the BinNum. Post-processing on Erp.BO.JobMtlSearch.GetList(), just a single custom code widget doing all the work:

foreach (var row in result.JobMtlList)
  // try to get default bin from PlantWhse
  var thisDfltBin = (from pRow in Db.PlantWhse where pRow.Company == this.Session.CompanyID && pRow.PartNum == row.PartNum && pRow.WarehouseCode == row.WarehouseCode select pRow.PrimBin).FirstOrDefault();
  if (String.IsNullOrEmpty(thisDfltBin))
    // no default, get bin in current whse with max on hand instead
    thisDfltBin = (from pRow in Db.PartBin where pRow.Company == this.Session.CompanyID && pRow.PartNum == row.PartNum && pRow.WarehouseCode == row.WarehouseCode orderby pRow.OnhandQty descending select pRow.BinNum).FirstOrDefault();
  var thisBinSeq = 999;
  if (!String.IsNullOrEmpty(thisDfltBin))
    // get the bin seq of the chosen bin
    thisBinSeq = (from wbRow in Db.WhseBin where wbRow.Company == this.Session.CompanyID && wbRow.WarehouseCode == row.WarehouseCode && wbRow.BinNum == thisDfltBin select wbRow.BinSeq).FirstOrDefault();
    // no bin found, leave the seq at 999 to throw it to the end (probably backflushed)
  // format bin seq as a zero-padded three digit number so it sorts right
  row.StagingBinNum = thisBinSeq.ToString("D3") + " " + thisDfltBin;
result.JobMtlList.Sort("by IssuedComplete by StagingBinNum by PartNum");

Decided to put this sorting bin string in the StagingBinNum field because it didn’t seem to be used (for us) otherwise and so it saved me from having to add a UD field.