INTRODUZIONE
Questa guida illustra la procedura di riconoscimento, interpretazione e gestione di un barcode formato EAN128.
Con il sistema di formattazione UCC/EAN-128, si inseriscono degli identificativi di applicazione AI (Application Identifier) in modo da segnalare all’applicazione cosa si sta leggendo. Il sistema recupera il codice articolo dal barcode, verifica la corrispondenza con gli articoli presenti a gestionale, e propone l’acquisizione dell’articolo codificato a gestionale, accodando alla descrizione informazioni sensibili del prodotto, il tutto gestibile da una gestione personalizzata degli Application Identifiers (AI) previsti dal formato EAN128.
Usando l’AI 310y e possibile segnalare che il dato che segue e’ un peso netto in Kg.
La cifra che sostituisce “y” segnala il numero di decimali, mentre il peso complessivamente deve essere di 6 cifre.
Ad esempio, il peso netto di 35,97 kg verra’ codificato in
(3102)003597
Fonti:
http://www.codiceabarre.it/bc128.htm
http://www.gs1-128.info/application-identifiers/
https://it.wikipedia.org/wiki/GS1-128#Lista_completa_degli_Identificatori_di_Applicazione.
Ogni gruppo di “AI”+dato è separato da un altro da un carattere ASCII non stampabile, quindi non visibile sul barcode (chr 27). Tuttavia, il dato è presente nel codice a barre e, quando viene letto, viene inviato e gestito dal programma per recuperare tutti i blocchi di informazione.
CONFIGURAZIONE
Non sono previsti moduli commerciali per attivare questa funzionalità, pertanto risulta attiva con l’installazione della versione 18.0.x
NOTA: Dopo l’installazione dell’aggiornamento, avviare il software ed effettuare l’update del database. Successivamente, è necessario riavviare il software, per caricare correttamente gli AI.
A questo punto, gli AI sono disponibili nel software. Si consiglia di accedere alla configurazione degli stessi (tramite anagrafica) solo per le seguenti operazioni:
- attivazione funzione di “trasposizione” del dato letto in descrizione articolo
- personalizzazione della dicitura da anteporre al dato letto nel barcode
L’accesso avviene da:
ANARAFICHE -> MAGAZZINO -> EAN128 Application Identifiers
LUNGHEZZA DEI BARCODE
Per accettare barcode EAN128 più lunghi di 30 caratteri, non è necessario modificare la lunghezza del barcode nelle impostazioni. Questo perché il campo TESTO RICERCA dei documenti ed il campo INSERIMENTO TESTO del punto cassa, dalla versione 18, accettano stringhe di testo lunghe fino a 4000 caratteri.
UTILIZZO
BACKOFFICE
Il sistema di riconoscimento avviene all’interno dei documenti del backoffice (vedi quelli elencato in “considerazioni e precisazioni”) e durante lettura barcode punto cassa.
Si supponga di avere codificato un articolo con il codice articolo “10”, ed il barcode “2000000000053”.
Dopo la lettura con pistola barcode, il barcode viene trasformato e si ottiene questo:
Ovvero il barcode originale viene trasformato nel barcode realmente esistente nel gestionale, e l’ean 128 viene salvato nel campo “NOTE” dell’articolo.
Nota bene: l’esempio riporta un ean 128 con le parentesi tonde per identificare l’AI. Nella versione corrente, invece, le parentesi non ci sono e l’ean 128 viene letto senza di esse.
L’ean128 viene salvato tra i tag “ean128” e “/ean128”, per poterli recuperare correttamente con un algoritmo dal campo note.
Se l’ean128 contiene altre informazioni, e queste sono state marchiate con la proprietà “trasponi in riga”, l’informazione contenuta nell’ean128 verrà accodata alla descrizione, munita di una nota descrittiva (anch’essa modificabile).
Si prenda ad esempio l’AI 13, che indica la “Data di confezionamento” del prodotto:
Attivare la trasposizione del dato in descrizione. L’esempio seguente mostra lo stesso codice articolo, con una data di confezionamento pari a 01/01/2016 (le date sono espresse nel formato YYMMDD):
0110↔13160101
La riga risultante sarà la seguente (da notare la descrizione articolo concatenata all’informazione del prodotto, separata dal carattere INVIO)
La cui stampa nel documento sarà la seguente
Dal barcode EAN-128 potranno essere recuperate, oltre alle informazioni extra, alcune informazioni che determinano la costruzione della riga in modo ancora più preciso.
AI TIPIZZATI: COSA SONO
Alcuni AI presentano un tipo transcodifica diverso da nullo, ovvero
Se nel barcode ean128 è presente quell’AI, l’informazione specificata nel codice sarà interpretata secondo quanto indicato nella voce di transcodifica, e concorrerà al calcolo più preciso del barcode e/o della riga da inserire nel documento.
Ad esempio 310y indica il peso netto del prodotto. Se si vuole usare questo AI come QUANTITA’ della riga del documento che si vuole creare, basta indicare come voce di transcodifica QUANTITA.
Con questo ean128:
0110↔13160101↔3102002136
Si intende:
codice articolo = 10
data confezionamento =01/01/2016 (aggiunta in descrizione)
quantità riferita a UM = 21,36
Attenzione: anche in questo caso si precisa che, solo leggendo un barcode originale ean128 (contenente, tra ogni gruppo AI+Dato il CHR(27)), si attiva la modalità di recupero delle informazioni.
Anche il prezzo singolo ed il prezzo totale possono essere espressi all’interno del barcode. Il prezzo si intende iva compresa.
AI TIPIZZATI: DATA SCADENZA, CODICE LOTTO e SERIAL NUMBER
Queste tre informazioni vengono usate, se presenti, per recuperare un barcode che rispecchi la combinazione “codice articolo” + informazione extra.
Pertanto, in presenza di questi AI, il barcode ritornato può essere relativo ad uno specifico articolo con specifica data di scadenza.
Nel caso il match non avvenga, verrebbe ritornato il barcode “standard” del prodotto.
Consultare la sezione “Considerazioni e precisioni” al punto 2.6 per maggiori informazioni.
PUNTO CASSA
Il principio di funzionamento è identico al backoffice. Il codice Ean128 si legge con lettore barcode, o lo si digita nel visore del punto cassa.
Attenzione: il punto cassa, di default, non accetta i caratteri “(” e “)”. Per abilitarli, seguire la kb “LETTURA BARCODE ALFANUMERICI SULLA SEZIONE PUNTO CASSA”.
Ad esempio, digitando l’ean128 seguente:
0110↔13160101
e successivamente
0110↔13160101↔3102002136
(gli stessi degli esempi precedenti)
si ottiene una vendita simile a questa:
Da notare la quantità di vendita che in entrambi i casi segue o meno la presenza dell’AI relativo.
Attenzione: anche in questo caso si precisa che, solo leggendo un barcode originale ean128 (contenente, tra ogni gruppo AI+Dato il CHR(27)), si attiva la modalità di recupero delle informazioni.
CONSIDERAZIONI E PRECISAZIONI
- Durante la fase di lettura del barcode 128, avviene l’analisi dello stesso per recuperare ed interpretare le informazioni. Tuttavia, il barcode ean128 può esistere come barcode REALE nella tabella barcode. In tal caso, il meccanismo di riconoscimento viene ignorato, e passa semplicemente l’articolo con i dati standard, senza usare i dati del barcode 128.
- La tabella di memorizzazione dei valori di identificazione del barcode EAN 128 conterrà:
- AI (application identifier): campo chiave di tipo stringa, la sigla dell’AI
- Descrizione del dato: significato internazionale del tipo AI
- Lunghezza fissa: indica, se presente, che il valore da interpretare è presente e sicuramente a lunghezza fissa.(campo nullabile)
- Lunghezza massima: se lunghezza fissa è NULL, allora il dato potrà essere lungo fino al valore indicato nel campo. Altrimenti il dato sarà certamente lungo fino al valore indicato nel campo.
- Id TipoDato: codifica 2bit per indentificare il tipo di dato
- 0 = Testo (generico)
- 1 = Quantità
- 2 = Prezzo
- 3 = Data
- se lunghezza 6 = formato YYMMDD
- se lunghezza 10 = formato YYMMDDHHMM
- dove YY da 00 a 50 si riferisce agli anni 2000-2050 e dove YY da 51 a 99 si riferisce agli anni 1951-1999.
- IdTipoTranscodifica: indica se l’eventuale presenza del dato nel barcode va considerata come parte fondamentale della riga del documento, e quindi utilizzata come dato fondamentale per consolidare la riga:
- 0 o nullo= ininfluente
- 1 = indica la quantità riferita all’unità di misura dell’articolo
- 2 = indica il prezzo singolo ivato dell’articolo
- 3 = indica il prezzo totale ivato dell’articolo
- 4 = indica il codice articolo, e quindi verrà usato il primo barcode disponibile, solitamente inizia con “20”.
- 5 = indica la data scadenza: Dovrà essere recuperato dalla tabBarcode il barcode corretto dall’accoppiata “codice articolo” + “data scadenza” (per usare il barcode esatto). In mancanza di corrispondenza, va usato solo il codice articolo (e quindi il primo barcode disponibile, solitamente inizia con “20”).
- 6 = indica il codice lotto del prodotto: Dovrà essere recuperato dalla tabBarcode il barcode corretto dall’accoppiata “codice articolo” + “codice lotto” (per usare il barcode esatto). In mancanza di corrispondenza, va usato solo il codice articolo (e quindi il primo barcode disponibile, solitamente inizia con “20”).
- 7 = indica il serial number del prodotto: Dovrà essere usato direttamente il serial number e non il codice del prodotto. In mancanza di corrispondenza, dovrà essere usato il codice prodotto (e quindi il primo barcode disponibile, solitamente inizia con “20”)
- Formattazione dato: pattern di formattazione del dato. Valido solo se tipo dato = 3 (tipo “data”). Può essere espressa la formattazione della data usando i seguenti tag, rispettando maiuscole e minuscole:
- YY = Anno specificato a 2 cifre (usare al posto di YYYY)
- YYYY = Anno specificato a 4 cifre (usare al posto di YY)
- MM = Mese specificato a 2 cifre
- DD = Giorno specificato a 2 cifre
- hh = Ora specificata a 2 cifre
- mm = minuto specificato a 2 cifre
Una formattazione MMYYDD con un dato di questo tipo “071625” ritornerebbe comunque una data nel formato italiano “25/07/2016”;
- IsTrasponiInDescrizione: indica se l’eventuale dato presente nel barcode verrà riportato in aggiunta alla descrizione dell’articolo
- Il meccanismo di riconoscimento sarà valido in:
- Punto cassa
- Creazione documenti di backoffice
- Ddt
- Fattura
- Ordine cliente
- Ordine fornitore
- Movimenti magazzino
- Preventivi
- Sia per punto cassa, che documento, verrà implementata questa politica di recupero delle informazioni che compongono la riga documento:
- Il barcode dell’EAN128 viene convertito istantaneamente nel barcode standard del prodotto, e la descrizione ritornata verrà composta con le informazioni extra previste dalla tabella di anagrafica;
- La quantità del prodotto verrà recuperata dall’ean128 (se presente), e precisamente relativa agli AI con tipoTranscodifica = 1
- Il prezzo unitario ivato del prodotto verrà recuperato dall’ean128 (se presente), e precisamente relativa agli AI con tipoTranscodifica = 2
- Il prezzo ivato complessivo della riga del prodotto verrà recuperato dall’ean128 (se presente), e precisamente relativa agli AI con tipoTranscodifica = 3
- Il barcode EAN 128 letto in origine verrà salvato come dato nella tabella dei documenti (campo NOTE RIGA usato per salvare metodo di calcolo dei prezzi) e nel punto cassa (campo NOTE della tabDettaglio). Il dato verrà salvato in questo formato:
- EAN128 [barcode] /EAN128
- La tabella con la lista degli AI verrà sincronizzata tra backoffice e punto cassa; inoltre questa tabella sarà inclusa negli schemi di esclusione di synctool. Apparterrà al gruppo TABELLE LOCALI DUE.
- Il sistema di riconoscimento dell’EAN 128 può avvenire solamente in queste circostanze:
- DOCUMENTI BACKOFFICE à Inserendo il barcode nel campo TESTO RICERCA, selezionando il tipo ricerca “BARCODE” o “CODICE/BARCODE”e premendo INVIO o TAB;
- Inserendo il barcode ean128 nella casella di inserimento testo (visore) del punto cassa e premendo INVI
- La funzionalità è sempre attiva e non è vincolata da modulo commerciale, tuttavia non è implementata la transcodifica del barcode in altri ambiti non specificati al pt.8
- Il sistema verifica con l’utilizzo della logica del proprietario (Owner) la validità del dato letto. Pertanto, un barcode ean128 facente capo ad un articolo NON previsto per quel negozio, non verrà riconosciuto come valido e verrà segnalato un errore.
-
Struttura dell’UCC/EAN-128
Come detto sopra, un codice formattato UCC/EAN-128 e’, in effetti, un Codice a Barre 128 ed e’ strutturato nel seguente modo:
-
- Carattere di START del Codice 128 ( A, B, o C ).
-
- Carattere speciale FNC1 (character 102) del Codice 128A anticipa sempre un AI.
-
- AI – Application Identifier ( vedi la tabella ).
-
- I dati da codificare secondo l’AI scelto.
-
- Check Digit carattere di controllo del Codice 128.
-
- Carattere di STOP del Codice 128.
Start FNC1 AI Data Check STOP I blocchi FNC1-AI-Data possono essere piu’ di uno all’interno del codice, inoltre all’inizio ed alla fine secondo le specifiche del Codice 128 ci puo’ essere uno spazio vuoto.
-
Quindi, ogni blocco di dato è composto da:
carattere chr(29) + AI + Data
Nell’esempio: 0110↔13160101