Programming Scanners and barcodes

All barcode scanners used within the EBMS software require programming to scan barcodes.    The following scanner programming applies to various wired and wireless sales and product scanners.   

Note that this section does not apply to the Mobile Scanners.   Review [Inventory] Mobile Scanners > Configuring the Scanner in EBMS for details on the alternative mobile scanner.

Programming Scanner

All scanners must be configured to send an F8 ASCI hexadecimal 1D character Chr(29) at the beginning of the scan and the F10 Hex1F chr(31) at the end of the scan.    Review the technical programming instructions provided by the manufacturer to program these important processes that are required to interface with EBMS.  

 

Programming Barcodes

Add the following prefix(es) to open dialogs, set entry focus, and populate values.   

 

The following dialogs can be opened by prefixing the barcode with the following EBMS Special Character Sequences:

 

The EBMS Special Character Sequences listed below can be used to set variables within various documents.

 

 

Put the document and entry codes together to create a single string.  Example:  The $S12345$O3$Q3$IABCDE$U10  sets the ordered, shipping, product id, and price within the sales order.

 

If an inventory-oriented special character sequence is present, the inventory id must also be specified within the same scan. In other words, the noncompressed sequences must be accompanied by a $I special sequence. If not, the special sequences will not be interpreted. For example, $Q232$S12345 will not be interpreted because it lacks specification of the inventory id.

 

Special character sequences that reference documents ($N, $S) also support lookup by AutoID. For example, expense invoice 123 from VENDOR1 could use either:

 

$NVENDOR1/123, where APINV.ID = "VENDOR1" and APINV.INVOICE = "            123", or

$N5473NP5AL57BBL10 , where APINV.AUTOID = "5473NP5AL57BBL10"

If a special character sequence is present, but the digit following the $ is not recognized (e.g. $1), then the $ prefix will be ignored, and the remainder of the barcode will be processed as if it were not a special character sequence.

 

If a special character sequence is not present, a lookup on the scanner characters is performed, to see if it is a known inventory item id, UPC, serial number or lot number, in that order.

 

To set focus without assigning a value, the special character must come last and must have no value after it. A dollar sign ($) must be used before each prefix. Multiple prefixes may be used.

 

Non-numeric sequences are limited to the character set of the Code 39 Symbology, and $ (dollar sign) is further disallowed, as it is reserved for the special sequence prefix. Therefore, a company's item id's, customer id's, invoices, etc. will not be scannable if they use any other punctuation characters outside of Code 39. Supported punctuation includes: /,%,+.

 

Examples:

 

$Q232$IDUCTAP will add 23 DUCTAP to the order.

$Q232$IDUCTAP$U will add 23 DUCTAP to the order and set the focus on the unit price field.

 

NOTE: The "Default the Quantity Shipped to equal Quantity Ordered" in Sales->Options must be turned off for this to work, unless you change your "$Q" to "$O".

 

Special Character Barcode Sequences

• $2 Fixed width sequence $2IIIIIIAAAA... unpacks to 2IIIIII AA.AA  Review the UPC-A Barcodes section below:

• $A Extended Price

• $B Compressed number 1WWWWWUUUUUIIIII... uncompressed to WWW.WW, UUU.UU, IIII.....  ( W = unit weight ) Review the Compressed Barcodes section below:

• $C Customer Id

• $D Work Code (Payroll) / Bin Code (Horticulture)

• $E Employee ID

• $F Warehouse Transfer Document

• $H Job Costing Inventory Transfer  (JCINVTRN.ID)

• $I Inventory ID

• $K Proposal

• $L Location (Only applies to wireless scanners)

• $M Unit of measure

• $N Expense Invoices -   APINV.ID / APINV.INVOICE  (Example: Vendor: ACE & Invoice 456.5)  = *$NACE/456.5*

• $O Ordered

• $P AutoID of INTRAN to prelink

• $Q Shipped Quantity

• $R  Serial Number

• $S Sales Invoice Number

• $T Task ID (not ticket)

• $U Unit Price

• $V Received (Warehouse Transfer only)

• $W Warehouse  (INWH.WAREHOUSE)

• $X Compressed number 1QQQQQUUUUUIIIII... uncompressed to QQQ.QQ, UUU.UU, IIII.....   Review the Compressed Barcodes section below:

• $Y Section (Horticulture module)

 

Compressed Barcodes

A "compressed" character sequence is composed of the prefix (e.g. $B), the digit '1', followed by a special encoding of the remaining information. For example, $B format after uncompression is first 5 digits is Quantity xxx.xx next 5 is the price xxx.xx the rest is the inventory ID (or, more likely, UPC code).

 

Caveats, gotcha's and restrictions:

 - All quantities, weights and prices must be exactly five digits, translated from 12345 to 123.45 -- remember leading zeros!

 - The inventory id (or UPC) must be numeric; no alphabetic or symbols allowed.

 - Prior to 214503 (ebms:task?166171), a maximum of 8 inventory id digits is supported.

 - Remember the digit '1' following the prefix, which must precede the numeric string.

 

Example:

Shipped = 4 --> 00400

Unit Price = $44.95 --> 04495

ID/UPC/Serial = 90125999

The number to be compressed is then: 1004000449590125999

After compression, this becomes: 7MLSGF62JGRZ

Code 39 barcode string: *$X7MLSGF62JGRZ*

 

UPC-A Barcode

EBMS supports barcode labels for weighed items (like bulk foods) conforming to the UPC-A symbology.

 

The printed label may contain all sorts of human-readable information:

 

item

quantity

unit of measure

unit price

extended price

But the printed barcode contains only twelve digits of information, formatted as follows:

 

2123456 0299 0

|            |

|        Check digit    

V

Product Type

0 = normal UPC code

2 = weighed items

5 = coupon

7 = normal UPC code

 

 

Since we are dealing with weighed product (bulk food), the leading barcode digit needs to be 2.

The last digit is always a checksum value -- and is ignored by EBMS.

 

If the leading digit is 2 (and the scanner adds a '$' prefix), then EBMS will expect the barcode to be formatted as follows:

 

  UPC   Extended Price = $2.99

|-----| |--|

2123456 0299 0

|            |

|        Check digit    

V

2 = weighed item

 

In the above example, EBMS would search for an item whose UPC equals "123456" (6 digits). EBMS stores UPC information in the following fields:

Review boggle technical documentation for more details on this barcode programming.

 

Barcodes for the Mobile Scanner

$C Customer (for a new Sales Order)
$E Employee (Log in)
$F Warehouse Transfer
$G Lot Number
$H Job Transfer
$J Job
$L Location (treated as Reference Code in End of Year mode)
$N Purchase Order
$O Serial Number
$P Purchase Order
$R Reference Code (End of Year mode)
$S Sales Order
$T Task
$V Vendor (for a new Purchase Order)
$W Warehouse