Barcodes

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.   Review Purchasing a Barcode Scanner for guidelines for purchasing scanner hardware.

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

Programming Scanner

Scanners must be configured to start and end the scanning process within EBMS.  The scanner must be programmed to send a 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.  

Scanners reading GTIN and IFT-14 barcodes require an additional prefix.   Scanners programmed to read GTIN and ITF-14 barcodes require the scanners to be configured to send both a F8 ASCI hexadecimal 1D character CHR(29) and an ASCI hexadecimal 1E character CHR(30)  ad the beginning and the F10 Hex1F CHR(31) at the end.  These additional characters are only required to handle GTIN and IFT-14 codes.

Programming Barcodes

Open documents 

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

  • Open the sales order or invoice by prefixing the sales order number with the $S followed by the sales order number.  Example: $S1234567

  • Open a proposal document by prefixing the proposal number with the $K followed by the Proposal number.  Example: $K98765

  • Open expense invoice by scanning a barcode with the following information: prefix of $N, vendor code, slash /, and expense invoice or purchase order number. Example: $NVENDORID/12345 where the vendor ID = VENDORID and the invoice number is equal to 12345.

  • Open an Inventory > Warehouse Transfer dialog by scanning a warehouse code with a $F prefix.  Example: $F99999

  • Open the serialized item record by scanning a serial number prefixed with the $R code.   Example:  $R1234-AB-2345

Set focus and populate values

The following prefix(es) must be added to focus and populate an entry:  

  • $O14 to set the Ordered quantity

  • $Q14 to set the Shipped quantity

  • $IABCDE to set the Product ID

  • $Mea to set the unit of Measure

  • $R123-45-1234 to set the serial number

  • $U10.25 to set the unit Price or $A147 to set the extended Amount

Combine prefixes

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 barcode sequence must be accompanied by a $I special sequence. If not, the special sequences will not be interpreted. The quantity will default to one (or incremented by one if lines are combined) and all unspecified settings with default if they are not set using the barcode.  

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.

Focus only

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.

Character restrictions

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

NOTE: The order of special characters is not important, but the scan cannot open a document and populate the document on the same barcode.

• $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

• $J Job 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).

Requirements

  • All quantities, weights and prices must be exactly five digits, translated from 12345 to 123.45 with leading zeros to equal 5 digits.

  • The inventory id (or UPC) must be numeric; no alphabetic or symbols allowed.  Prior to 7.4 a maximum of 8 inventory id digits was supported.

  • Format must be $B, digit '1', and 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

Use an EBMS function to compress codes by converting numeric values into alphanumeric codes.

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:

Example: 2123456 0299 0

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

  1. First character (2 in example code) identifies the product Type
    0 = normal UPC code
    2 = weighed items
    5 = coupon
    7 = normal UPC code
    Many companies using EBMS are using the code with bulk foods so the leading digit needs to be 2.

  2. Next 6 digits contain the UPC code.  123456 in the example

  3. Next 4 digits contain the price.  0299 in example equals $2.99

  4. Last character (0 in example) is the check digit.   This value is ignored by EBMS.

 In the above example, EBMS would search for an item whose UPC equals "123456" (6 digits). EBMS stores UPC information in the INVENTRY.UPC  and INVENUNT.UP 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