Formattazione dei dati: togliere, aggiungere ed estrarre caratteri dal codice letto
La formattazione dei dati permette al lettore di modificare il codice prima di trasmetterlo: togliere caratteri iniziali o finali, eliminare la cifra di controllo, convertire UPC-E in UPC-A, sostituire un carattere, estrarre un solo campo da una stringa GS1. Le conversioni semplici si attivano con un codice del manuale; le regole complesse si creano meglio con il software del produttore.
Due livelli: opzioni di simbologia e regole di formattazione
Prima di creare regole, controlla se ti basta un'opzione già pronta. Molte trasformazioni comuni sono semplici interruttori nel capitolo della simbologia:
| Esigenza | Opzione tipica | Esempio di output |
|---|---|---|
| Il software vuole 13 cifre anche per gli UPC-A | Trasmetti UPC-A come EAN-13 | 0012345678905 (13 cifre) |
| Il software vuole 12 cifre per UPC-A | Trasmetti UPC-A come 12 cifre, preambolo off | 012345678905 |
| Codici UPC-E da trattare come UPC-A | Converti UPC-E in UPC-A | 01234565 diventa 012345000065 |
| Niente cifra di controllo | Trasmetti cifra di controllo: off | 800123456789 |
| Code 39 con asterischi | Trasmetti start/stop: off (di solito già così) | ABC123 invece di *ABC123* |
| Sapere quale simbologia è stata letta | Identificatore AIM | ]E08001234567897 |
Le opzioni disponibili e i loro nomi variano tra modelli. Verifica sempre nella guida e prova con il test del lettore. Prima di togliere una cifra di controllo, valuta che il software potrebbe usarla per validare: vedi cifra di controllo.
Le regole di formattazione
Quando le opzioni non bastano, i lettori professionali offrono un motore di regole: Honeywell lo chiama Data Formatting, Zebra Advanced Data Formatting (ADF), gli altri produttori usano nomi simili. Il concetto è sempre lo stesso:
- Condizioni: a quali letture si applica la regola (simbologia, lunghezza, caratteri presenti in una certa posizione).
- Azioni: cosa fare, in sequenza (sposta il cursore, salta N caratteri, trasmetti fino a un carattere, inserisci un testo, sostituisci, sopprimi).
- Comportamento se nessuna regola corrisponde: trasmettere il dato così com'è, oppure rifiutarlo con un beep di errore.
Le regole si possono comporre con i codici del manuale, ma richiedono lunghe sequenze di valori; con il software di configurazione si costruiscono in modo visivo e si esportano.
Esempi pratici con input e output
Togliere un prefisso fisso dalle etichette interne
Letto: MAG-0004512 Regola: se Code 128 inizia con "MAG-", salta 4 caratteri, trasmetti il resto Trasmesso: 0004512
Estrarre solo il GTIN da un Data Matrix GS1
Un Data Matrix su un farmaco o su un prodotto alimentare può contenere GTIN, scadenza, lotto e seriale. Se la cassa vuole solo il codice prodotto a 13 cifre:
Letto: 01080012345678971727123110LOTTO42[GS]21ABC123
(senza spazi; [GS] = carattere ASCII 29)
Regola: se inizia con "010", salta 3 caratteri, trasmetti 13 caratteri
Trasmesso: 8001234567897
La regola funziona solo se l'AI (01) è il primo campo, cosa comune ma non garantita. Verifica su un campione reale con il decodificatore GS1 e leggi GS1-128 e Application Identifier per la struttura dei campi.
Rendere visibile il separatore GS
Regola: sostituisci ASCII 29 con "|" Trasmesso: 01080012345678971727123110LOTTO42|21ABC123
Perché serve e quali caratteri scegliere è spiegato in carattere GS e FNC1.
Bloccare i codici sbagliati
Se a un banco di ricevimento merci devono passare solo SSCC, puoi creare una regola che accetta solo GS1-128 che iniziano con l'AI 00 e lunghi 20 caratteri, rifiutando il resto. Riduce gli errori di chi legge il codice sbagliato su un'etichetta piena di codici.
In che ordine il lettore applica le modifiche
È la fonte di molte sorprese. In generale il lettore decodifica, applica le opzioni di simbologia (cifra di controllo, conversioni), poi le regole di formattazione, infine aggiunge prefissi, identificatori e suffissi. Su alcuni modelli però una regola di formattazione attiva sostituisce prefissi e suffissi configurati altrove: il codice esce corretto ma senza Invio. Se dopo aver creato una regola l'Invio sparisce, aggiungilo dentro la regola stessa oppure verifica nel manuale come interagiscono le due funzioni. Per i prefissi vedi prefissi e suffissi personalizzati.
Nel lettore o nel software?
| Criterio | Nel lettore | Nel software |
|---|---|---|
| Nessuna possibilità di modificare il software | Unica via | |
| Molti lettori di modelli diversi | Regole da replicare e mantenere su ciascuno | Una sola logica centralizzata |
| Dati GS1 complessi | Possibile ma fragile | Più robusto, con parser GS1 |
| Sostituzione di un lettore guasto | Va riconfigurato con le stesse regole | Basta un lettore standard |
Se sviluppi o scegli il software, vedi integrazione del lettore con il software POS.
Errori comuni
- Regola troppo generica che taglia anche codici a cui non doveva applicarsi: specifica sempre simbologia e lunghezza.
- Regola dimenticata su un lettore usato: il codice esce "mutilato" e nessuno ricorda perché. Documenta le regole insieme alla configurazione.
- Posizioni fisse su dati GS1 a lunghezza variabile: funzionano finché lotto o seriale non cambiano lunghezza.
- Nessun test sui casi limite: UPC-E, EAN-8, codici con add-on, etichette danneggiate.
Domande frequenti
Posso aggiungere la data o l'ora a ogni lettura?
In emulazione tastiera di norma no, il lettore non ha un orologio per questo scopo. Alcuni lettori in modalità batch registrano informazioni aggiuntive; altrimenti lo fa il software.
Le regole sopravvivono a un reset?
Un reset di fabbrica le cancella. Se le salvi nei default personalizzati, un reset normale le mantiene: verifica il comportamento del tuo modello.
Posso avere regole diverse per due postazioni con lo stesso lettore?
Ogni lettore ha la sua configurazione: prepara due codici di configurazione distinti ed etichetta i lettori.