La funzionalità è abilitata in automatico nella gestione documenti e funziona 'sparando' il barcode nel campo 'cod. articolo' della griglia del corpo del documento (non funziona negli scarichi collegati), nella stessa modalità nella gestione ordini e nei programmi della logistica su palmare di ricevimento merce, movimentazione interna, picking e inventario.
Visto che il campo accetta solo 18 caratteri (la lunghezza massima del cod. articolo) se i caratteri vengono inseriti da barcode in emulazione tastiera (ovvero il tempo tra l'inserimento di un carattere e l'altro è minore di 25 millisecondi) il campo può accettare più di 18 caratteri (non c'è limite). In questa versione la parte di codice barcode che identifica un codice a barre (ed in Business tale codice è stato associato ad una fase), oltre ad acquisire il cod. articolo viene impostata correttamente anche la fase associata al codice barcode.
Visto che non è possibile determinare in modo preciso se il codice inserito è un EAN 128 che segue lo standard SSCC, viene assunto che il codice inizi per '00' e che la sua lunghezza sia almeno 20 caratteri, oppure che inizi per '01' e che sia lungo almeno 16 caratteri.
Nel codice a barre EAN128 il codice è una normale sequenza di caratteri, dove alcuni sono degli identificativi di campo, altri il valore, ad esempio il codice:
(01)00614141999996(17)100101(10)123ABC(21)1234567890
Identifica:
- 01 = codice a barre dell'articolo
- 17 = data scadenza (nel formato YYMMDD)
- 10 = lotto
- 21 = matricola
Quando il lettore legge il barcode, lo acquisisce senza le () e qui nasce il problema, visto che alcuni marcatori sono a lunghezza fissa (ad esempio il codice che segue lo (01) è sempre numerico di 14 caratteri, il codice che segue lo (00) è sempre numerico 18 caratteri), mentre altri sono a lunghezza variabile (ad esempio il codice (10) lotto può essere da 1 a 20 caratteri) ed alla fine viene 'passato' un carattere che determina la fine del campo e l'inizio di quello successivo. Alcuni lettori di barcode, come carattere di fine campo variabile passano 'APPS', altri 'MENU'. Non sappiamo se sono presenti altre soluzioni. Al momento Business 'tratta' in maniera particolare solo quei 2 tipi di carattere.
Per esempio, impostando i seguenti 2 barcode su un articolo:
leggendo da lettore barcode il seguente 0112345678901234 (con identificatore 01 e quindi 14 caratteri) oppure il seguente 00123456789012345678 (con identificatore 00 e quindi 18 caratteri)
nel caso il barcode letto contenga il lotto un possibile barcode letto dal barcode potrebbe avere la forma:
01
12345678904444
10
3400001MENU
Al momento Business traduce il barcode EAN
128 SSCC letto tramite i marcatori; i marcatori letti da Business sono solo:
- 00 e/o 01: in Business viene cercato un barcode con codice uguale a quello che segue il marcatore, qualora in Business non esista tale codice non sarà possibile determinare il cod. articolo, quindi verrà dato il messaggio di articolo inesistente
- 10: lotto alfanumerico (si consiglia di impostare in Business, nell'anagrafica ditta, la gestione dei lotti alfanumerici)
- 11: data produzione lotto
- 17: data scadenza lotto
- 21: matricola (in Business la matricola avrà sempre quantità proposta = 1)
- 310x: Peso netto in chilogrammi (attualmente gestito solo dal ricevimento merci), la x può assumere un valore tra 0 e 6 e indica il numero di decimali.
- 02: Identificativo del cartone, contiene il barcode in formato GTIN indicato nell'anagrafica dell'articolo
- 37: Moltiplicatore della quantità indicata nel GTIN, presente solo nel caso di AI iniziale 02
- 15: "Da consumarsi preferibilmente entro", data che verrà indicata nell'anagrafica lotti, se il lotto dovrà essere generato e non è stato indicato AI 17.
Gestione del confenzionamento, a seguito degli AI 01 e 02 viene indicato un barcode:
- GTIN-12: "00" + 12 cifre del barcode
- GTIN-13: "0" + 13 cifre del barcode
- GTIN-14: 14 cifre del barcode, dove la prima è l'identificativo della confezione e le restanti 13 corrispondono al GTIN-13 con il carattere di controllo finale ricalcolato
Per gestire il tipo di confezionamento, nell'anagrafica dei barcode il Tipo Barcode UPC (bc_tipo = 'U') è stato rinominato in GTIN\EAN14. Per i barcode di questa tipologia la colonna quantità sarà modificabile e sarà utilizzata SOLO durante la lettura di barcode GS1 (salvo presenza di opzioni di registro già esistenti a standard che derogano su questo comportamento).
Casi particolari del confezionamento:
- GTIN-14 con primo carattere 9: indica un barcode a confezionamento variabile, dovrà essere presente nel barcode anche un AI 310x
- GTIN-13 e GTIN-12: il primo carattere è 0, non è definito il confezionamento.
In entrambi i casi, per evitare di dover caricare i barcode che iniziano con 9, con 0 o con 00, durante la verifica di questi barcode il programma verificherà se esiste un barcode uguale per quanto riguarda la parte di identificazione dell'articolo. In pratica verrà escluso il carattere 9 iniziale (o i primi 2 zeri) e il carattere finale di controllo.
Gestione dei colli:
Alla lettura dei barcode GS1 che inizia con 01 verrà indicata come Unità di Misura l'unità di misura indicata nel barcode, come numero di colli fisso a 1 e come quantità quella determinata dal confezionamento (dalla tabella barcode). Per i barcode GS1 che iniziano con 02, valgono le regole sopra, ma sia i colli che le quantità saranno moltiplicate per la quantità indicata nel'AI 37.
Note per programmatori
Per ottenere la seguente funzionalità in BEMGDOCU, nella routine di validazione del cod. articolo (BeforeColUpdate_CORPO_ec_codart) è stata estrapolata la funzione per determinale il cod. articolo dato un codice in input (nuova funzione BeforeColUpdateCodart_TrovaArticolo), questa funzione lo cerca prima nell'anagrafica articoli, poi nel barcode (tutto il codice passato deve essere codificato nel campo barcode.bc_code), poi nei codici utilizzati da cliente/fornitore (codarfo), poi verifica se il codice indicato potrebbe essere un lotto (e nel caso compila il campo cod. articolo e si memorizza nella variabile strLottoXDaAnalotti il lotto, che verrà impostato in automatico alla fine della routine AfterColUpdate_CORPO_ec_codart), poi verifica se il codice potrebbe essere un EAN128 (funzione ereditabile BeforeColUpdateCodart_TrovaArticoloEAN128), poi verifica se il codice inserito è presente nel catalogo degli articoli da importare di Business.
Per realizzare la gestione dei barcode EAN 128 che segue lo standard SSCC è stata aggiunta la routine 'BeforeColUpdateCodart_TrovaArticoloEAN128'.
Nella nuova funzione suddetta possono venir impostate le variabili 'strEAN128Matric', 'strEAN128Lotto', 'strEAN128DtProd', 'strEAN128DtScad' (che potrebbero essere compilate dalla lettura del barcode). Se valorizzate, nella routine 'AfterColUpdate_CORPO_ec_codart' dopo aver inserito il cod. articolo verranno compilati lotto, matricola e nell'anagrafica del lotto e impostate le date di produzione e scadenza.
Se la funzione per leggere il cod. EAN128 non risponde alle specifiche richieste di determinati casi, potrà essere facilmente ereditata da BEVEBOLL.
La funzione BeforeColUpdateCodart_TrovaArticoloEAN128 riceve in input il codice STRINGA letto, dove non sono presenti gli eventuali caratteri di fine campo a lunghezza variabile. Per avere il codice effettivamente 'sparato' dal lettore è disponibile all'interno della funzione la variabile strEAN128Barcode, che andrà opportunamente tradotta (ogni carattere letto è separato da '§').
|