Data ultimo aggiornamento: 29/04/2013

Clicca per accedere al sito di NTS Informatica
Clicca per accedere all'argomentoClicca per accedere all'argomentoClicca per accedere all'argomentoClicca per accedere all'argomento
Clicca per accedere al sito di NTS Informatica

Gestione barcode EAN 128 SSCC (GS1-128)

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).

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:

0112345678904444103400001MENU

Al momento Business traduce il barcode EAN128 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)

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 '§').

Clicca per accedere al sito di NTS Informatica