File di formato Badge
Il formato dei files del BADGE
L'importazione in Jolly dei dati dal lettore di badge avviene attraverso
files di formato proprietario generati dal lettore di badge (e/o dal sistema di
trasferimento di tali dati sul computer).
Perché Jolly possa leggere tali files è necessario utilizzare un file di
formato, che descriva il contenuto dei files che devono essere importati.
SINTASSI
I files dati (quelli contenenti le strisciate badge) devono essere files di testo contenenti un record (una strisciata del
badge) per ogni riga.
Il file di formato è un file di testo. Può contenere righe vuote e righe di commento (identificate da una doppia barra "//" ad inizio riga).
I campi che possono essere letti dai files di dati sono i seguenti:
- OPERATORE codice dell'operatore (ovvero: codice del cartellino associato all'operatore)
- LETTORE codice del dispositivo che ha eseguito la lettura
- DATA
- ORA
- LAVORAZIONE codice lavorazione
- RIFERIMENTO codice di riferimento (commessa, ordine lavorazione, eccetera)
I campi che si desidera trattare devono essere indicati, uno per riga, nel seguente formato:
NOMECAMPO=POS,LEN{,FORMATO}
dove
NOMECAMPO è il nome di uno dei campi, POS è la colonna a cui
deve essere iniziata la lettura e LEN è la lunghezza del campo.
Il FORMATO è consentito e necessario solo sui campi DATA e ORA:
- FORMATO DATA: stringa con GG (giorno), MM (mese), AA oppure AAAA (anno, due o quattro cifre); esempio: DD/MM/AAAA oppure AAMMGG
-
FORMATO ORA: stringa composta da con HH (ore), MM (minuti), SS (secondi); i secondi sono opzionali; esempio: HH:MM:SS oppure HHMM
I campi OPERATORE, DATA, ORA sono obbligatorî.
LE
CLAUSOLE UNIQUE
Le clausole speciali UNIQUE (che sono due: UNIQUE e UNIQUE-MSG) consentono di identificare gli elementi univoci di ogni strisciata al fine di escludere doppie letture.
Le clausole UNIQUE sono facoltative e ripetibili (ci possono essere tante
clausole quante se ne desiderano).
Il formato delle clausole UNIQUE è il seguente:
UNIQUE|UNIQUE-MSG=[(descrizione)]CAMPO[,CAMPO[,...]][SOLO-AUTO]
dove:
- UNIQUE impedisce in via assoluta la lettura di dati identificati
come non univoci;
UNIQUE-MSG emette solo un messaggio di avvertimento e chiede conferma all'utente; - DESCRIZIONE è una descrizione (facoltativa) del controllo effettuato e viene all'occasione mostrata all'utente per spiegargli causa e motivo dell'errore; la descrizione deve essere racchiusa tra parentesi tonde;
- CAMPO rappresenta uno dei campi descritti più sopra. E' possibile indicare qualunque campo ad eccezione di ORA, che viene automaticamente associato al campo DATA;
- SOLO-AUTO specifica che il controllo viene eseguito solo sui records letti 'automaticamente' da badge, escludendo quindi i records inseriti manualmente.
IDENTIFICAZIONE
DEL TIPO DI RIGA
I tipi di strisciata sono fondamentalmente quattro: le
strisciate di ingresso, di uscita, di inizio lavorazione e di fine
lavorazione.
Le strisciate di ingresso e di uscita possono essere confuse tra loro, nel senso
che è possibile demandare al programma la comprensione di quali siano gli
ingressi e quali le uscite. E' tuttavia fondamentale distinguerle dalle
strisciate di lavorazione, e distinguere tra loro all'occorrenza le strisciate
di lavorazione.
TIPORIGA=CAMPO{=|!=}valore[,valore[,...]]
I tipiriga ammessi sono i seguenti:
- INGRESSO: la strisciata è un ingresso
- USCITA: la strisciata è una uscita
- INGRESSO-USCITA: la strisciata è un ingresso oppure un'uscita; sarà il programma a decidere in base ad una successiva elaborazione;
- LAVORAZIONE-INIZIO: la strisciata registra l'inizio di una lavorazione;
- LAVORAZIONE-FINE: la strisciata registra la fine di una lavorazione.
I CAMPI sono tutti quelli definiti sopra (OPERATORE, LETTORE, RIFERIMENTO,
...).
Il simbolo di confronto può essere UGUALE (=) oppure DIVERSO (!=).
VALORE rappresenta il valore che il CAMPO deve possedere perché la strisciata
sia attribuita al TIPORIGA specificato. E' possibile specificare più valori,
che devono essere separati da virgole. Attenzione: gli spazî sono considerati
significativi.
E' possibile specificare più clausole che vengono esaminate in sequenza fino
alla prima che viene soddisfatta. Se non vi sono clausole o se nessuna di esse
è soddisfatta, alla riga viene assegnato il tipo INGRESSO-USCITA.
ESEMPI
Esempio di file di formato:
// per lettore DGX-022
// creato il 2005-03-29
OPERATORE=38,3
LETTORE=1,2
DATA=42,10,GG/MM/AAAA
ORA=53,8,HH:MM:SS
LAVORAZIONE=16,2
RIFERIMENTO=25,4
NUMERODOC=47,6
INGRESSO-USCITA=RIFERIMENTO=0000
//LAVORAZIONE=RIFERIMENTO!=0000
//INGRESSO=RIFERIMENTO=9000,9001,9002,9003,9004
//USCITA=RIFERIMENTO=9005,9006,9007,9008,9009
UNIQUE=(controllo obbligatorio)LETTORE,OPERATORE,DATA,RIFERIMENTO
UNIQUE-MSG=(secondo controllo: generico)LETTORE,OPERATORE,DATA