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 un
articolo a fasi), oltre ad acquisire il cod. articolo viene impostata
correttamente anche la fase associata l 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),
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.
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 '§').
|